Flux php sans défense. Vulnérabilité PHP et protection contre les injections PHP. Règles pour une programmation sécurisée en PHP. Évitez les fuites d’informations

Partout dans le monde, le slogan « La sécurité n’est pas une plaisanterie » se retrouve dans les aéroports. Chaque administrateur système doit attacher le même slogan à côté de son serveur PHP. Et toute personne se connectant à un serveur sur Internet doit prendre des mesures de sécurité appropriées sous peine de perdre des données et même de l'argent au profit de pirates malveillants. logiciel pourront causer des dommages en utilisant le clavier de leur ordinateur.

Un développeur de site Web préoccupé par les problèmes de sécurité doit constamment répéter : « Ne faites pas confiance au réseau ». Si vous souhaitez protéger votre site, répétez cette déclaration lorsque vous coderez les futures pages de votre site. Toute information transmise au serveur via le réseau (qu'il s'agisse d'une URL, de données provenant de Formulaires HTML ou des données provenant d'un autre port réseau) doivent être considérées comme potentiellement dangereuses. Cet article propose plusieurs méthodes pour sécuriser les informations entrantes. Il faut non seulement appliquer ces méthodes, mais aussi faire attention certaine heure identifier d’autres dangers potentiels et trouver des moyens de les prévenir.

La deuxième règle générale pour créer un site sécurisé est la suivante : « minimiser les dégâts ». Que se passe-t-il si le programme que vous écrivez, que vous pensez totalement fiable, s’avère en réalité vulnérable ? Ne serait-ce que pour rester totalement en sécurité, limitez les dégâts qu'un attaquant pourrait causer en exploitant cette vulnérabilité.

Lorsque les visiteurs visitent votre site, ils espèrent que celui-ci contient des informations valides qui ne nuisent pas à eux ou à leurs ordinateurs, et que les informations qu'ils fournissent seront traitées correctement. Il existe toujours un certain risque de faille de sécurité pour un visiteur lorsqu'il interagit avec un site, qu'il s'agisse d'un site de divertissement, d'information ou de commerce électronique. La responsabilité de protéger les visiteurs contre de tels risques incombe au concepteur du site. Cela signifie que vous devez non seulement stocker en toute sécurité les informations fournies par les visiteurs sur votre serveur, mais également prendre des mesures pour protéger les informations fournies lors de leur transfert des ordinateurs des visiteurs vers votre serveur.

Mais toutes ces considérations ne doivent pas interférer avec vos intentions, par exemple concernant la mise en ligne de votre site e-commerce.

Attaques possibles

Connecter un serveur à Internet peut être comparé à l’ouverture d’un magasin dans une rue animée. Vous aimeriez avoir beaucoup de visiteurs, mais sans prendre de précautions, vous constaterez peut-être que votre imprudence sera exploitée non pas par des visiteurs ordinaires, mais par des invités très indésirables.

Généralement les pirates nommez ceux qui seraient plus correctement nommés pirates de la sécurité des logiciels. Dans la communauté informatique, les crackers de sécurité sont des spécialistes qui, grâce à leur chance ou à leurs compétences, surmontent la sécurité systèmes informatiques et causer des dégâts. Et les pirates informatiques sont des programmeurs qui savent écrire des programmes de manière magistrale et sont capables non seulement de comprendre un code complexe, mais également d'écrire de manière indépendante un code efficace (et souvent inaccessible aux étrangers) dans de nombreuses langues. Pour un programmeur, acquérir le titre de hacker est un honneur, et le titre de cracker de logiciels signifie apparemment que son propriétaire doit garder un œil sur les messages « Wanted ».

Ne réalisant pas à quel point le titre de cracker de logiciels est humiliant, de nombreux programmeurs débutants s'engagent dans cette voie en recourant aux outils et aux scripts qu'ils trouvent sur Internet. Ces crackers débutants sont appelés script-kiddies ou, dans notre langage, kulhatskers. Ces personnes comprennent souvent à peine ce qu’elles font. Généralement, cette catégorie de délinquants est à l’origine d’attaques primitives telles que la compromission de sites Web, les injections XSS et SQL.

Compromission de site et attaques XSS

Les cas de compromission de sites, qui sont souvent plus gênants que réellement nuisibles, sont assez courants, car de nombreux sites offrent à un pirate informatique la possibilité d'annoncer au monde qu'il a réussi à atteindre son objectif. Pour compromettre un site Web mal conçu, il suffit parfois d’utiliser simplement un navigateur Web. Prenons par exemple le programme suivant :

Page avec un simple formulaire de commentaire PHP Basics

Ce programme implémente un système de commentaires sous une forme très primitive (si vous étudiez mon tutoriel PHP depuis le début, alors vous n'êtes peut-être pas encore familier avec les opérations de base de données ; si c'est le cas, je vous recommande de revenir à cet article après avoir lu le matériel sur MySQL).

En lisant ce code, un programmeur expérimenté commence à ne pas se sentir entièrement en confiance (rappelez-vous : « Ne faites pas confiance au réseau »). Un tel programme accepte les données de formulaire censées contenir du texte de commentaire. Ce texte est attribué à la variable $commentaire et stocké dans la base de données pour être affiché aux futurs visiteurs. Si les données saisies correspondent à nos attentes, il n'y aura aucun problème.

Maintenant, mettez-vous un instant à la place du refroidisseur et imaginez ce qui se passerait si l'entrée contenait des descripteurs HTML. Ce programme simple insérera mécaniquement de tels descripteurs dans la page générée, et cette page déformée se déroulera dans les navigateurs des autres visiteurs au lieu de la page normale. Un descripteur qui peut être particulièrement dangereux du point de vue de la sécurité des données est le . Un pirate de sécurité pourrait insérer le commentaire suivant :

Injection de code JavaScript malveillant

Ce type d'attaque est connu sous le nom de scripts intersites ou XSS. Après avoir fermé et ouvert cette page, le navigateur recevra un tel handle et commencera immédiatement à charger la page du faux site, plutôt que la page du site piraté. Avec un peu d'ingéniosité, un pirate informatique peut alors exploiter la confiance que les visiteurs accordent à votre site pour extraire des informations personnelles telles que des mots de passe ou des numéros de carte de crédit (par le biais du phishing, qui consiste à imiter la conception et la structure d'un site malveillant pour ressembler à un site malveillant). le site piraté).

Solution problème similaire est que les données d'entrée doivent être prétraitées à des fins de sécurité. Dans ce cas, il est nécessaire de convertir tous les caractères ayant une signification particulière pour le navigateur sous une forme sécurisée. Heureusement, PHP dispose d'un moyen d'effectuer précisément cette conversion. La fonction htmlentities() convertit les caractères , " et & en représentations de ces caractères sous la forme d'entités de caractères HTML (telles que

gastrogourou 2017