Développement d’applications Web sécurisées

0
593
DOI: ESTE ARTIGO AINDA NÃO POSSUI DOI SOLICITAR AGORA!
PDF

PERES, Paulo Júnior de Jesus [1]

PINTO, Aurílio Guimarães [2]

FREITAS, Caio Guimarães [3]

LEITE, Francisco Canindé da Silva [4]

SILVA, Francisco Eronildo da [5]

OLIVEIRA, Geveson de Souza [6]

RIBEIRO, Dallas dos Santos [7]

ALMEIDA, Cristiany Caliri de [8]

MORAIS, Gilvanete Melo de [9]

PERES, Paulo Júnior de Jesus; et.al. Développement sécurisé d’applications Web. Revue scientifique pluridisciplinaire de la base de connaissances. 07 edition. année 02, vol. 03. PP 44-51, octobre 2017. ISSN : 0959-2448

Résumé

Avec la croissance de l’Internet et votre utilisation croissante comme un moyen de fournir des services et la communication, il est nécessaire que les développeurs des systèmes web ont autant d’attention que les pratiques de sécurité dans le développement de systèmes. C’est un fait que construire une application Web sécurisée est une tâche très difficile de nos jours, parce que pour un système à être considérée comme sûre dépend exclusivement sur le code élaboré par le programmeur, mais aussi serveur d’applications, serveur de base de données, le réseau de communication et bien d’autres choses qui sont hors de portée du développeur du système. Dans cette optique, l’objectif du présent article doit être une référence en ce qui concerne les principaux niveaux d’attaques utilisées par les pirates pour les vulnérabilités des systèmes web code et les possibilités de prévention. Les concepts utilisés dans cet article peuvent être utilisés dans n’importe quel langage de programmation, parce que les théories sont universels, mais afin d’illustrer les codes sont écrits dans le langage de programmation, tel qu’il est actuellement l’un des langages de programmation plus de PHP répartis sur la communauté. En ce sens, cet article vient de contribuer avec la Communauté étant une base rapide de la recherche sur la prévention des attaques sur les systèmes.

1. Introduction

Dans le contexte actuel, il est courant pour les entreprises, organismes publics et institutions recherchent d’agilité dans la diffusion de l’information aux clients et aux employés agilizing le processus décisionnel dans ce milieu. Toutefois, afin que cette stratégie de travailler, il est impératif qu’il y a la sécurité dans la manipulation et l’affichage des informations relatives à l’entreprise.

En ce sens, l’Internet se présente comme les moyens de faciliter et de fournir toute distribution des données et informations d’activité. Cette opportunité, commerce virtuel ou site e-commerce. Selon Teixeira :

Au Brésil, actuellement, 45,6 % de votre population a accès à internet (environ 90 millions de personnes). Si nous faisons une comparaison entre les années 2000 et 2012, nous avons vu une augmentation significative, environ 1 500 %, le nombre d’internautes au Brésil (TEIXEIRA, 2015, p. 19).

Le commerce électronique ou e-commerce, selon Salvador (2013) peuvent être définis comme des opérations commerciales effectuées dans l’environnement virtuel, avec l’aide de moyens électroniques, c'est-à-dire, est en mesure d’acheter un article en particulier à des kilomètres de distance, sans quitter la maison ou au bureau, à l’aide de smartphone, ordinateur ou autre périphérique. Où la commodité, la facilité d’accès et, principalement, par les consommateurs de prix sont attirés par le commerce électronique.

Toutefois, il est nécessaire que les développeurs prêter attention à la sécurité de l’information pour développer des applications pour l’Internet, car l’information est disponible pour tous les types d’utilisateurs. Selon Aguilar, suit le concept de sécurité de l’information :

Sécurité de l’information fait référence à la protection de l’information d’une entreprise en particulier ou une personne, c'est-à-dire, appliquer l’information corporative sur les gens. Information on entend tout et n’importe quel contenu ou des données qui ont valeur de toute personne ou organisation. Il peut être stocké pour une utilisation restreinte ou exposé au public pour consultation ou l’acquisition. (AHMAD, 2008).

Selon Ferreira (2017), dans cet univers de possibilités que l’internet est devenu, les utilisateurs malveillants ont la possibilité de voler des informations sensibles comme les mots de passe bancaires :, informations confidentielles, entre autres possibilités.

Le but de cet article montrent quelques techniques pour vous empêcher de vol d’informations ou d’invasion des systèmes et des mesures pour faire en sorte que les développeurs de systèmes qui utilisent l’internet (WEB DEVELOPEMENT) développent des systèmes sécurisés, réduire la vulnérabilité aux attaques de divers niveaux.

2. XSS (CROSS SITE SCRIPTING)

Deuxième Flux (2017), les XSS se produit lorsqu’une Web application prendre des données malveillantes envoyées par l’utilisateur. En général l’intrus profitera de l’absence de malice de la personne qui a développé l’application Web d’injecter un code malveillant qui tromper l’application ou à recueillir des informations restreintes système.

Un exemple de cette vulnérabilité est dans la méthode de transmission de variables de type Get (variables passées dans l’URL du site) tels que : http://www.igreja.com.br/mostar.php?site=sexo.php.

Cela peut générer une véritable nuisance pour le site, parce que l’utilisateur malveillant pourrait passer n’importe quelle adresse de site Web ci-dessus, ce que vous pourriez faire par exemple, que cette page pourrait fonctionner comme un site pornographique.

Selon les Flux (2017) afin d’éviter que l’application d’être vulnérables à ce genre d’attaque, les mesures peuvent être prises comme :

  • À l’aide de variables de type de données sensibles est contre-indiqué, car elle compromet la sécurité du système ;
  • Utilisation des filtres à la capture de données de l’utilisateur pour ce bloc tout type de code malveillant ou URL est injecté par les utilisateurs externes. Ces filtres peuvent être implémentées par le programmeur ou fonctions du serveur d’application.

3. INJECTION SQL

Selon Mueller (2013), l’attaque par Injection SQL est l’injection de code SQL en variables passées de Web forms et vise à exécuter du code arbitraire SQL dans une application Web.

Il s’agit d’une attaque très courante que dangereuse, un exemple est le script suivant appelé « remover.php », fait suite à la transcription du code :

< ? php

$sql = « supprimer de client où code = ». $ _GET[‘codigo’] ;

mysql_query ($sql) ou mourir (mysql_error ()) ;

?>

Analyser le script ci-dessus, ce qui suit est un exemple de comment l’utilisateur malveillant peut effectuer une attaque d’INJECTION SQL via l’URL : http://seusite.com.br/remover.php?codigo=666+OR+1. De cette façon, l’utilisation de cette instruction, le résultat serait être supprimer tous les enregistrements des clients entité.

Selon le manuel en ligne de PHP, le moyen le plus sûr est de contrôler le type des variables qui sont reçues par les champs de formulaires, alors, comme une forme de prévention, ce qui suit est un exemple de code :

< ? php

SetType ($offset, « integer ») ;
$query = « SELECT id, nom FROM products ORDER BY nom limite 20 OFFSET $offset ; » ;

Veuillez noter le %d dans la chaîne de format, à l’aide de %s serait inutile
$query = sprintf (« SELECT id, nom de produits ORDER BY nom décalage limite 20 % d ; »
$offset) ;
?>

Dans le code ci-dessus, la fonction « settype » a pour fonction de tester si la variable a reçu vraiment est de type integer, empêcher le code malveillant extraits sont incorporés dans la variable.

4. Régulière Expression Denial of Service (secrets seraient faites connues)

L’auteur Focke (2017) décrit les Expressions régulières (REGEX) comme technique d’utiliser des fonctions de langage de programmation utilisé pour traiter les informations de l’utilisateur. Ces fonctions essayer d’encoder la valeur des variables pour qu’ils ne peuvent pas endommager ou contourner le système.

Suit dans exemple de langage de programmation ASP :

<%

Dim variable
Variable = Sever. htmlEncoder (request (« var »))

%>

Suit un autre exemple, en utilisant le langage de programmation PHP :

< ? php
Si ( ! ereg ("^ [0-9,a-z,A-Z](+) [.,_,-]([0-9,a-z,A-Z](+)) *[@] [0-9,a-z,A-Z](+) [.,_,-]([0-9,a-z,A-Z](+)) [.]* [a-z,A-Z]() {2,3} [0-9,a-z,A-Z]() ? $», $ _ POS (« variable »)) {}
echo « caractères non valides dans le champ e-mail ! » ;
}
?>

Selon Mattos (2013), pour éviter ce type d’attaque, il est nécessaire pour les développeurs créer des filtres de capture afin de corriger les erreurs des algorithmes exécuter les normes du code REGEX par le langage de programmation utilisé.

5. APPLICATIONS CGI

Deuxièmement, favoriser (2017) Common Gateway Interface (CGI), est un type de matalinguagem ou indépendant de la plate-forme middleware fournies par les serveurs Web qui vous permettent d’exécuter des programmes/scripts à partir d’une URL. Ces scripts sont généralement écrits en Perl, Shell, Tcl, Java, Python ou C (plus écrit dans des langages interprétés) et situés dans un répertoire/cgi-bin.

Des applications CGI écrites sans soins peuvent générer des problèmes sérieux pour les vulnérabilités des serveurs Web. Deuxième Foster :

Programmation CGI diffère de la programmation traditionnelle, fondamentalement, en raison de votre environnement et votre fonction de passerelle entre le client et le serveur, ce qui finit par influencer beaucoup dans les aspects de sécurité (il faut se rappeler que ces applications fonctionnent dans un environnement précaire et que, En théorie, peut être exécuté par n’importe qui). (Foster, 2017)

Un script CGI qui s’exécute sous le même Web serveur UID n’est pas nécessairement une mauvaise action, mais si n’importe quelle application CGI possède une faille de sécurité qui permet à un attaquant d’exécuter des programmes sous UID du serveur Web, il peut causer un problème grave sur votre site. (Foster, 2017).

Deuxième personne (2017), un moyen de contourner ce problème est via « WRAPPERS », c'est-à-dire des programmes qui impliquent d’autres programmes connexes de changer leur mode de que fonctionnement. Ainsi, dans un environnement où les utilisateurs écrire des applications indépendantes de CGI, est une bonne stratégie pour isoler les uns des autres, c'est-à-dire les mécanismes d’application sur votre serveur ainsi que l’accès de l’utilisateur des scripts sera pas interféreront avec les données des autres utilisateurs. suexec (http://www2.idiscover.co.uk/apache/docs/suexec.html) résout ce problème (il existe d’autres outils qui traitent également de ce problème) causant des applications à exécuter des programmes CGI sous l’UID de l’utilisateur lui-même, autrement dit, le propriétaire de l’application CGI.

6. TYPE DE DONNÉES

Selon le manuel en ligne de PHP, doit toujours être prudent, c’est que certains langages de programmation utilisent des variables globales qui répondent à n’importe quel type de données. Il s’agit d’un usage incorrect, car il provoque une vulnérabilité de niveau considérable dans le système.

Personne (2017) décrit des exemples de traverser les variables dans le langage de programmation PHP :

< ? php

$cod = $ _GET[‘cod’] / tipo Get

$cod = $ _ POST[‘cod’] / / tipo post

$cod = $ _ SESSION[‘cod’] / / tipo session

$cod = $ _ COOKIE[‘cod’] / / tipo cookie

?>

7. ÉCRIRE DES FICHIERS VIA UPLOAD

Chaque fois que vous écrivez dans un fichier via UPLOAD le développeur doit s’assurer du type de fichier en enregistrant sur le disque. Par exemple, un fichier image peut tout simplement être traité à l’aide d’une validation des types de fichiers. C’est parce que des utilisateurs malveillants peuvent envoyer des fichiers qui modifie en quelque sorte le serveur ou l’application (personne, 2017).

Selon le manuel en ligne de PHP, suit un exemple de validation à l’aide du langage de programmation PHP :

< ? php

function type_up ()

{

    vérifie si le type mime du fichier image

    Si ( ! eregi ("^ image / (pjpeg | jpeg png gif bmp || |) $», $this-> fichie[“type”]r)) {}

        return 0 ;

    } else {}

        Return 1 ;

    }

}

?>

8. FORMULAIRES D’ASSURANCE AVEC SYNCHONIZER JETON

Selon Bragil (2017), prise de sincronizadora est une technique qui utilise une variable créée au début de la session, avec une valeur initiale définie par le développeur afin de s’assurer que le formulaire a en fait créé par l’application serveur.

Selon le Brésil (2017), vers un site avec authentification, vous pouvez commencer la valeur de jeton au moment de la connexion, puis assurez-vous que l’utilisateur est valide :

Exemple en PHP :

<??>

session_start () ;

Initialise la prise de sincronizadora avec une valeur aléatoire

$ _SESSION[“synctoken”] = uniqid (time ()) ;

….

?>

Maintenant la fiche sincronizadora enregistré en session, nous pouvons illustrer comment créer un formulaire protégé par elle :

<form name="frmteste" method="post" action="cadastro.php"></form>

<!– coloca todos os campos do formulário –>

<!– a nossa ficha fica como um campo hidden –>

<input type="hidden" name="token" value="<?=$_SESSION[“synctoken”]?>">

<div class="nicdark_archive1 nicdark_padding010" style="box-sizing:border-box;"><!–link pagination–></div>

Affichant le code source, remarquez que l’attribut de la valeur du jeton de manière aléatoire champ de valeur, tapez « 45jfg58955699j96uy8gtj85 ». La synchronisation se produit lors du traitement de la forme. Dans notre exemple, l’ACTION du formulaire est le fichier « cadastro.php » que lorsque vous recevez les données du formulaire, permettra de tester si la valeur du champ jeton du formulaire est le même en tant que la variable $ _SESSIO[“synctoken”]N. Si non, c’est un signe que quelqu'un essaie de faire ce qui ne devrait pas, en d’autres termes, c’est probablement quelqu'un qui a enregistré la page avec le formulaire sur votre micro et essaie de faire quelques « art ». Dans ce cas, vous pouvez prendre certaines mesures, comment recueillir le citoyen, afficher une phrase, en intimidant, entre autres. Si la valeur est égale, feu vert, vous pouvez continuer le traitement (Bragil, 2017).

Les avantages sont nombreux, car il s’agit d’un moyen simple et efficace pour augmenter la sécurité d’un système Web.

Conclusion

Le Web a été conçu sans beaucoup de souci, ou presque pas, en toute sécurité. L’objectif principal était de fournir une information plus conviviale ressources disponibles à l’époque. Avec la croissance rapide du Web et la diversification de votre utilisation, la sécurité est devenue un point d’une importance cruciale, en particulier pour le Web comme l’un des principaux appels commerciaux. Dans ce cas, le développement sans sécurité car un impact crucial sur les bénéfices et sur les travaux de la société.

Nous pourrions citer des autres cas d’invasion ou de l’insécurité dans le processus de développement de systèmes, mais nous traitons seulement les points essentiels d’un développement sécurisé.

Enfin, ce travail est en pleine extension et autres auteurs peuvent utiliser cet article comme une référence à augmenter la quantité d’attaques et de défenses pour être utilisé par les équipes de développement logiciel.

Références

Ahmad, Hong Keow. Sécurité de l’information (TI). Disponible à :< http://www.administradores.com.br/informe-se/artigos/seguranca-da-informacao-ti/23933/=""> </> consulté le 25 octobre 2017.

Bragil, Roger. Formes plus sûrs avec jeton synchonizer. Disponible à : < http://phpbrasil.com/artigo/z61mreuozqth/formularios-mais-seguros-com-synchonizer-token-ficha-sincronizadora=""> consulté le : 25 octobre 2017.

Ferreira, Rodrigo. « Sécurité des applications web ». 1er Ed. São Paulo : Maison du code. 2017. 156P.

Flux, Peter. XSS. < http://phpbrasil.com/articles/article.php/id/506="">Consulté le : 20 Oct. 17.

Focke, Erica. « EN UTILISANT LES REGEX À COCHER POUR LES CHAMPS DE FORMULAIRE ». < http://phpbrasil.com/articles/article.php/id/520="">Consulté le : 20 Oct. 17.

Foster, Anthony. « La sécurité dans les Scripts CGI ». < https://memoria.rnp.br/newsgen/9803/scripts.html="">. Consulté sur : 25 octobre 2017.

Mueller, John Paul. « La sécurité pour les développeurs web ». 1er Ed. São Paulo : Nouvelle TEC. 2013. 416 p.

Salvador, Mauricio. « Gestionnaire de site e-commerce. 1° Ed. São Paulo. Editeur : Ecole de commerce électronique, 2013.

Teixeira, Tarcisio. Site e-commerce : comme l’historique Internet et Civil règlement du commerce électronique au BrésilSão Paulo : Saraiva, 2015.

Personne, Márcio. « La sécurité en PHP ». 1 Ed. São Paulo : Nouvelle Tec 2007. 152p.

« Cross-SITE Scripting (XSS) ». Disponible à : <http: br.ccm.net/contents/19-cross-site-scripting-xss="">consulté : 20 octobre</http:> de 17

« Le manuel PHP en ligne ». Disponible à : <https: secure.php.net/manual/pt_br/security.database.sql-injection.php="">consulté : 20 octobre</https:> 17.

[1] Gradué en informatique, il agit comme un serveur public sur SUFRAMA, comme analyste administratif-vous. Spécialiste de la base de données pour ULBRA.

[2] Gradué en informatique, il agit comme un serveur public sur SUFRAMA, comme analyste administratif-vous.

[3] Gradué en informatique, il agit comme un serveur public sur SUFRAMA, comme analyste administratif-vous.

[4] Gradué en informatique, il agit comme un serveur public sur SUFRAMA, comme analyste administratif-vous.

[5] Gradué en informatique, il agit comme un serveur public sur SUFRAMA, comme analyste administratif-vous.

[6] Gradué en informatique, agit en tant que serveur SUFRAMA, en tant qu’analyste administratif-vous.

[7] Gradué en informatique, agit en tant que serveur SUFRAMA, en tant qu’analyste administratif-vous.

[8] Diplômé en administration des affaires, agit en tant que fonctionnaire sur SUFRAMA, en tant qu’administrateur.

[9] Diplômé en économie, agit en tant que fonctionnaire sur SUFRAMA, en tant qu’économiste.

DEIXE UMA RESPOSTA

Please enter your comment!
Please enter your name here