SQL注入是什么,如何防止SQL注入?-学习网-如何防止-SQL-SEO
SQL injection in web applications
当我们点击提交时,上面的表单提交到PHP脚本下面:SQL注入的工作原理在上面的示例中,假设用户填写表单如下:Username: ‘ or ‘1’=’1 Password: ‘ or ‘1’=’1现在我们的$查询成为:SELECT * FROM Users WHERE username=” or ‘1’=’1′ AND password=” or ‘1’=’1′;此查询始终返回一些行,并导致在浏览器上打印登录。因此,攻击者不知道在数据库中注册的任何用户名或密码,但攻击者仍旧可以登录。如何修复或防止SQL注入?最好的解决方案是使用预准备语句和参数化查询,当我们使用预准备语句和参数化查询时,SQL语句由数据库引擎单独解析。使用PDO我们可以将form-handler.php更改为使用PDO:prepare(‘SELECT * FROM Users WHERE username = :username AND password = :password’); $stmt->bindParam(‘:username’, $username); $stmt->bindParam(‘:password’, $password); $stmt->execute(); if (count($stmt) == 0) { echo ‘Not Logged In’; } else { echo ‘Logged In’; } $stmt->close(); $pdo->close(); ?>使用MySQLi(仅适用于MySQL)我们也可以在form-handler.php中使用MySQLi来修复SQL注入问题:prepare(‘SELECT * FROM Users WHERE username = ? AND password = ?’); $stmt->bind_param($username, $password); $stmt->execute(); if (count($stmt) == 0) { echo ‘Not Logged In’; } else { echo ‘Logged In’; } $stmt->close(); $conn->close(); ?>结论在本文中,我们了解了SQL注入是什么以及如何避免可能导致SQL注入攻击的Web应用程序中的漏洞,如果无法识别是否被执行SQL注入,可以使用web漏洞扫描工具进行扫描识别。相关文章推举什么是root? root可以指以下任何一项: 1.root-管理员 1.root可替换地被称为治理员,root是一个超级用户的 […]...Null是什么? 在数据库中,Null 是某个字段中完全没有值,并且表示字段值未知。Null 与数字字段,文本字段或空间值的零值 […]...Cron是什么?利用Cron Job自动执行定时任务 Cron是一个实用程序,用于在特定的时间自动执行重复任务。在Linux中,常用 cron 服务器来完成这项工作 […]...根服务器是什么? 在将域名转换为IP地址时,根域名服务器(也称为DNS根服务器或简称根服务器)负责基本功能:它响应域名系统根区域 […]...SSH是什么? SSH全称“Secure Shell”,中文译作安全外壳协议。SSH是一种与另一台运算机进行安全通信的方法,意 […]...SQL注入是什么, 如何防止SQL注入?文章版权及转载声明:
作者:Admin本文地址:https://360admin.cn/sql-zhu-ru-shi-shen-me-ru-he-fang-zhi-sql-zhu-ru-xue-xi-wang-ru-he-fang-zhi-sqlseo.html发布于 03-11
文章转载或复制请以超链接形式并注明出处磁力引擎导航网
觉得文章有用就打赏一下文章作者
支付宝扫一扫打赏

微信扫一扫打赏

我猜这是你最想看到的:
发表评论