


Partager un moyen simple et efficace de se défendre contre l'injection SQL en PHP
La sécurité WEB a toujours été un sujet très sérieux. L'injection SQL est une méthode d'attaque courante. Souvent, notre code est conçu pour traiter des données non conformes et empêcher l'injection. Mais en tant que langage faiblement typé, PHP comporte toujours des risques que nous ne prenons pas en compte. Cet article partage une méthode simple mais efficace pour empêcher l’injection SQL !
Je me souviens d'une phrase que j'ai vue dire il y a longtemps par un grand expert Dans un programme, 60% du code devrait être destiné à diverses défenses.
En fait, en y regardant maintenant, empêcher l'injection SQL ne nécessite pas réellement de filtrage de divers paramètres. Le mode d'information sèche sera activé ci-dessous !
PHP5.x a commencé à introduire une nouvelle méthode d'opération mysql ----- mysqli Il existe également une méthode d'opération correspondante en PHP appelée prétraitement PHP. L'approche orientée objet est utilisée pour effectuer des opérations de liaison paramétrées. En raison des différents pilotes de mode pour les opérations de base de données, elle peut être très efficace pour empêcher l'injection SQL.
Tout d'abord, jetons un coup d'œil à un exemple de code
<!--?php $root = "root"; $pwd = "root"; $host = "localhost"; $database = "database"; $conn = new mysqli($host,$root,$pwd,$database);//面向对象的方式实例化一个对象 $keywords = $_GET['keywords']; $search_sql = "select content from mykey where title = ? ";//其中的?是一个占位符 $search_action = $conn --->prepare($search_sql);//进行预处理操作 $search_action ->bind_param("s",$keywords);//绑定参数,第一个参数表示为上面预处理的的占位符的数量和每一个参数的数据类型,s为字符串,i为整形,d为双精度小数,有几个参数,就写几个s或d或i,比如说iiii,ssss,sidi这样的。然后后面就是有几个参数就写几个要绑定的变量,比如bind_param('sss',$username,$password,$code); $search_action ->bind_result($content);//将结果绑定在相对应的变量上,比如你select了username,password,你就可以写bind_result($usernmae,$password); $search_action ->execute();//执行sql操作 while($search_action ->fetch()){ echo $content.'<br>'; } $search_action ->free_result();//释放内存 $search_action ->close();//结束这个实例化 ?>
Ce qui précède est un exemple très simple de prétraitement PHP. Ses autres fonctions intégrées peuvent faciliter notre vitesse de développement, puis Après. En voyant cela, beaucoup de gens ne comprendront peut-être toujours pas. Certains voudront peut-être demander : êtes-vous toujours en train d'assembler des instructions SQL avec ce paramètre de liaison ? Si l'instruction est reconstituée, cela ne provoquerait-il pas une injection ?
Cela doit être expliqué à partir de son principe de fonctionnement. En fait, lors de l'opération de préparation, l'instruction a déjà été exécutée dans la base de données, et ultérieurement. La définition des paramètres et l'exécution sont simplement une question de transmission de données, elles ne seront donc pas du tout associées aux instructions SQL et, par conséquent, le code dangereux ne sera pas exécuté. Par conséquent, l’injection SQL peut être défendue efficacement dans ce mode.
Il existe de nombreuses opérations utiles dans la classe de prétraitement PHP. Je résumerai pour vous certaines instructions de développement de prétraitement PHP couramment utilisées dans les prochains articles.
Recommandations associées :
injection php sql et analyse de cas classique anti-injection_Tutoriel PHP
Attaque par injection SQL php et notes de prévention
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)

PHP 8.4 apporte plusieurs nouvelles fonctionnalités, améliorations de sécurité et de performances avec une bonne quantité de dépréciations et de suppressions de fonctionnalités. Ce guide explique comment installer PHP 8.4 ou mettre à niveau vers PHP 8.4 sur Ubuntu, Debian ou leurs dérivés. Bien qu'il soit possible de compiler PHP à partir des sources, son installation à partir d'un référentiel APT comme expliqué ci-dessous est souvent plus rapide et plus sécurisée car ces référentiels fourniront les dernières corrections de bogues et mises à jour de sécurité à l'avenir.

Travailler avec la base de données dans CakePHP est très simple. Nous comprendrons les opérations CRUD (Créer, Lire, Mettre à jour, Supprimer) dans ce chapitre.

Pour travailler avec la date et l'heure dans cakephp4, nous allons utiliser la classe FrozenTime disponible.

Pour travailler sur le téléchargement de fichiers, nous allons utiliser l'assistant de formulaire. Voici un exemple de téléchargement de fichiers.

CakePHP est un framework open source pour PHP. Il vise à faciliter grandement le développement, le déploiement et la maintenance d'applications. CakePHP est basé sur une architecture de type MVC à la fois puissante et facile à appréhender. Modèles, vues et contrôleurs gu

Le validateur peut être créé en ajoutant les deux lignes suivantes dans le contrôleur.

Se connecter à CakePHP est une tâche très simple. Il vous suffit d'utiliser une seule fonction. Vous pouvez enregistrer les erreurs, les exceptions, les activités des utilisateurs, les actions entreprises par les utilisateurs, pour tout processus en arrière-plan comme cronjob. La journalisation des données dans CakePHP est facile. La fonction log() est fournie

Visual Studio Code, également connu sous le nom de VS Code, est un éditeur de code source gratuit – ou environnement de développement intégré (IDE) – disponible pour tous les principaux systèmes d'exploitation. Avec une large collection d'extensions pour de nombreux langages de programmation, VS Code peut être c
