Quelques conseils sur la programmation sécurisée en PHP
Introduction
Pour fournir des services Internet, vous devez toujours maintenir une conscience de la sécurité lors du développement du code. Il est possible que la plupart des scripts PHP ne se soucient pas des problèmes de sécurité, en grande partie parce que de nombreux programmeurs inexpérimentés utilisent ce langage. Cependant, il n’y a aucune raison pour que vous ayez des politiques de sécurité incohérentes en raison de l’incertitude concernant votre code. Lorsque vous placez quelque chose impliquant de l'argent sur un serveur, il y a une chance que quelqu'un essaie de le pirater. Créez un programme de forum ou toute forme de panier d'achat, et la possibilité d'être attaqué devient infinie.
Tutoriel vidéo PHP recommandé : https://www.php.cn/course/list/29/type/2.html
Contexte
Pour assurer la sécurité de votre contenu Web, voici quelques directives générales de sécurité :
1 Ne faites pas confiance aux attaques de formulaire
. Le formulaire est simple. En utilisant une simple astuce JavaScript, vous pouvez limiter votre formulaire pour n'autoriser que les nombres de 1 à 5 dans le champ d'évaluation. Si quelqu'un désactive JavaScript dans son navigateur ou soumet des données de formulaire personnalisé, votre validation côté client échouera.
Les utilisateurs interagissent avec votre script principalement via les paramètres du formulaire, ils constituent donc le plus gros risque de sécurité. Que devriez-vous apprendre ? Dans les scripts PHP, validez toujours les données transmises à n'importe quel script PHP. Dans cet article, nous vous montrons comment analyser et vous protéger contre les attaques de script intersite (XSS), qui peuvent détourner les informations d'identification des utilisateurs (ou pire encore). Vous verrez également comment empêcher les attaques par injection MySQL qui peuvent altérer ou détruire vos données.
2. Ne faites pas confiance aux utilisateurs
Supposez que chaque élément de données obtenu par votre site Web est rempli de code nuisible. Nettoyez chaque partie, même si vous pensez que personne ne tentera de pirater votre site.
3. Désactivez les variables globales
La plus grande faille de sécurité que vous puissiez rencontrer est l'activation du paramètre de configuration register_globals
. Heureusement, PHP 4.2 et versions ultérieures désactivent cette configuration par défaut. Si register_globals
est activé, vous pouvez désactiver cette fonctionnalité en modifiant la variable register_globals
sur Off dans votre fichier php.ini :
register_globals = Off
Les programmeurs débutants trouvent pratique d'enregistrer des variables globales, mais ils ne le font pas. Je ne sais pas comment. Réalisez à quel point cette configuration peut être dangereuse. Un serveur avec des variables globales activées attribuera automatiquement toute forme de paramètre à la variable globale. Pour comprendre comment cela fonctionne et pourquoi c'est dangereux, regardons un exemple.
Supposons que vous disposiez d'un script appelé process.php
qui insère les données du formulaire dans votre base de données. Le formulaire initial ressemble à ceci :
<input name="username" type="text" size="15" maxlength="64">
Lors de l'exécution de process.php
, PHP avec l'enregistrement des variables globales activé attribuera le paramètre à la variable $username
. Cela permettra d'économiser des frappes par rapport à l'accès via $_POST['username']
ou $_GET['username']
. Malheureusement, cela vous pose également un problème de sécurité, car PHP définira la valeur de la variable sur la valeur envoyée au script via les paramètres GET ou POST si vous n'initialisez pas explicitement la variable et que vous ne voulez pas que quiconque le fasse. Pour le faire fonctionner, il y aura un gros problème.
Regardez le script ci-dessous. Si la valeur de la variable $authorized
est vraie, elle affichera les données vérifiées à l'utilisateur. Normalement, la valeur de la variable authenticated_user()
ne sera définie sur true que si l'utilisateur réussit correctement la validation hypothétique de la fonction $authorized
. Mais si vous activez register_globals
, n'importe qui peut envoyer un paramètre GET tel que authorized=1
pour le remplacer :
<?php // Define $authorized = true only if user is authenticated if (authenticated_user()) { $authorized = true; } ?>
这个故事的寓意是,你应该从预定义的服务器变量中获取表单数据。所有通过 post 表单传递到你 web 页面的数据都会自动保存到一个称为 $_POST
的大数组中,所有的 GET 数据都保存在 $_GET
大数组中。文件上传信息保存在一个称为 $_FILES
的特殊数据中。另外,还有一个称为 $_REQUEST
的复合变量。
要从一个 POST 方法表单中访问username字段,可以使用 $_POST['username']
。如果 username 在 URL 中就使用$_GET['username']
。如果你不确定值来自哪里,用 $_REQUEST['username']
。
<?php $post_value = $_POST['post_value']; $get_value = $_GET['get_value']; $some_variable = $_REQUEST['some_value']; ?>
$_REQUEST
是 $_GET
、$_POST
、和 $_COOKIE
数组的结合。如果你有两个或多个值有相同的参数名称,注意 PHP 会使用哪个。默认的顺序是 cookie
、POST
、然后是 GET
。
以上就是为大家整理的一些编程安全建议。更过相关问题请访问PHP中文网:https://www.php.cn/
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

IntelTXT est une technologie de sécurité assistée par matériel lancée par Intel. Elle peut garantir l'intégrité et la sécurité du serveur lors du démarrage en établissant un espace protégé entre le processeur et le BIOS. Le nom complet de TXT est TrustedExecutionTechnology, qui signifie Trusted Execution Technology. En termes simples, TXT est une technologie de sécurité qui fournit une protection au niveau matériel pour garantir que le serveur n'a pas été modifié par des programmes malveillants ou des logiciels non autorisés lors de son démarrage. celui-ci

Le compte public officiel WeChat de BYD a annoncé que BYD a conclu un accord de coopération avec Stingray, une société de technologie de médias musicaux, et prévoit d'introduire les produits KTV de voiture interactive Stingray dans les véhicules à énergie nouvelle à partir de 2023 et de les promouvoir sur plusieurs marchés à travers le monde. , BYD et Le système de divertissement développé conjointement par Stingray ajoutera davantage de fonctions de divertissement aux véhicules à énergie nouvelle de BYD pour répondre aux divers besoins des utilisateurs. Le système de divertissement prendra en charge plusieurs langues et fournira une conception d'interface conviviale, permettant aux utilisateurs de rechercher facilement par titre de chanson, artiste, paroles ou genre. De plus, le système mettra automatiquement à jour les pistes chaque mois, offrant aux utilisateurs une nouvelle expérience musicale. Afin d'assurer la sécurité de conduite, lorsque le véhicule est en mode conduite,

L'attaque par fractionnement de réponse HTTP (attaque par fractionnement de réponse HTTP) est une vulnérabilité qui utilise des applications Web pour traiter les réponses HTTP. L'attaquant construit une réponse HTTP malveillante et injecte du code malveillant dans la réponse légitime pour atteindre l'objectif d'attaquer l'utilisateur. En tant que langage de développement Web couramment utilisé, PHP est également confronté à la menace d'attaques par fractionnement de réponse HTTP. Cet article explique comment utiliser PHP pour empêcher les attaques par fractionnement de réponse HTTP. Comprendre les attaques par fractionnement de réponse HTTP

À mesure que les applications Web continuent d'évoluer, nous avons besoin de plus en plus de mesures de sécurité pour protéger nos données et notre vie privée. Parmi eux, la résolution DNS sécurisée est une mesure très importante, qui peut nous protéger contre les attaques de serveurs DNS malveillants. Il est également important d'utiliser une résolution DNS sécurisée dans le proxy inverse Nginx. Cet article discutera de la résolution DNS sécurisée dans le proxy inverse Nginx et expliquera comment le configurer. Qu’est-ce que la résolution DNS ? La résolution DNS (DomainNameSystem) convertit les noms de domaine en IP

À l’ère d’Internet, la fuite d’informations est devenue un phénomène très courant dans nos vies. Parmi eux, le keylogger réseau est un outil d'attaque de pirate informatique très efficace qui vole des informations sensibles telles que les mots de passe des comptes d'utilisateurs en enregistrant les entrées de l'utilisateur, ce qui constitue une menace pour la vie privée et les biens. Par conséquent, comment empêcher efficacement les enregistreurs de frappe réseau est devenu un défi important auquel nous, les utilisateurs d’Internet, sommes confrontés. Cet article vous présentera plusieurs façons d'éviter d'être victime des enregistreurs de frappe en ligne. Mettre régulièrement à jour le système d'exploitation et le logiciel keylogger réseau et plus encore

Nginx est un serveur Web et un serveur proxy inverse largement utilisés avec une structure modulaire évolutive et des avantages en termes de performances efficaces. Cependant, tout comme d’autres logiciels, Nginx peut présenter des failles de sécurité. Afin de protéger la sécurité du site Web, les mises à jour de sécurité de Nginx sont très importantes. Cet article présentera quelques recommandations de mise à jour de sécurité pour Nginx. Mettez régulièrement à jour Nginx Comme pour tout logiciel, les mises à jour sont cruciales. Surtout pour les serveurs Web et les serveurs proxy inverses comme Nginx, si

AMDSecureProcessor fait référence à un coprocesseur utilisé pour améliorer la sécurité du système informatique. Cette technologie a été développée par AMD, un fabricant de semi-conducteurs de renommée mondiale, pour fournir des mesures de protection plus strictes en matière de sécurité du système. AMDSecureProcessor est implémenté en intégrant un processeur de sécurité dans le processeur principal. Le processeur de sécurité est conçu pour effectuer des tâches informatiques liées à la sécurité et possède sa propre mémoire et son propre stockage indépendants, isolés du processeur principal. L'introduction de ce coprocesseur

Avec la popularité des paiements électroniques, les gens ont de plus en plus recours aux plateformes de paiement mobile telles qu'Alipay ou WeChat Pay. Ces plateformes offrent aux consommateurs et aux commerçants un moyen de paiement pratique et rapide, mais en même temps, la sécurité de la plateforme est liée à la sécurité des actifs et des informations personnelles des utilisateurs. Dans cet article, nous explorerons la sécurité de WeChat Pay pour évaluer ses performances en matière de protection des informations personnelles des utilisateurs et de sécurité des comptes. Tout d’abord, nous devons comprendre le mécanisme de sécurité du paiement WeChat. WeChat Pay est conforme à la norme PCI-DSS (PaymentCard
