Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何为sql注入测试我的php脚本并防止它_Php_Mysql_Sql Injection - Fatal编程技术网

如何为sql注入测试我的php脚本并防止它

如何为sql注入测试我的php脚本并防止它,php,mysql,sql-injection,Php,Mysql,Sql Injection,我有像用户可以上传照片,输入用户名,密码等输入值 我想自己测试SQL注入,我想用一些方法来防止它 我正在使用MySQL,我知道你们中的一些人会说使用PDO或MySqli,但目前我仍然使用MySQL作为数据库 谢谢大家! 测试此类应用程序时,请在每个字段中输入如下值: <div style="background:red">It's Buggy</div> ?是一个可以安全绑定的数据占位符 更好的方法是使用类似或的东西来提供适当的数据库层。这使您的代码在MySQL和其他数

我有像用户可以上传照片,输入用户名,密码等输入值

我想自己测试SQL注入,我想用一些方法来防止它

我正在使用MySQL,我知道你们中的一些人会说使用PDO或MySqli,但目前我仍然使用MySQL作为数据库


谢谢大家!

测试此类应用程序时,请在每个字段中输入如下值:

<div style="background:red">It's Buggy</div>
是一个可以安全绑定的数据占位符


更好的方法是使用类似或的东西来提供适当的数据库层。这使您的代码在MySQL和其他数据库之间更具可读性和可移植性。

谷歌上的许多文档。见:

尝试将
放入输入中,如果出现错误,则是sql注入


您可以使用如下代码插入SQl
anything'或'x'='x

您可以很容易地防止这种情况,只需在谷歌上搜索“sql注入示例”,并亲自查看注入技术根据用例的不同而有所不同。作为用户名/密码检查的示例,考虑到以下sql:

SELECT user_id 
FROM users 
WHERE name = "$_POST['name']"
AND password = "$_POST['pass']";
…在这种情况下,为
POST
ed密码字段传递一个简单的
或“=”
,将产生以下结果:

SELECT user_id 
FROM users 
WHERE name = ""
AND password = ""
OR "" = "";
…和BAM!有
用户id
结果,但实际上不应该有


这只是一个孤立的例子。我建议使用
PDO
作为数据库驱动程序为您执行注入检查!

我在@johncode中播发了这一个,但请阅读我的问题好的,我希望您告诉我如何注入它!仅仅因为您使用的是MySQL数据库并不意味着您不能在c上使用PDO或MySQLi扩展客户端。@YoussefSubehi您可以查看渗透测试服务或工具以“攻击”“你的应用程序有各种各样的漏洞——SQL注入、XSS、CSRF等等。有很多漏洞会发现各种绝对可怕的事情。请非常小心地只测试开发副本,因为如果生产系统充满漏洞,您可能会意外地将其丢弃。PDO和MySQLi只是连接MySQL数据库的不同方式,您不需要更改数据库。或者,更好的做法是,称自己为
Robert');落桌学生--
看看发生了什么我同意,这是我最喜欢的测试。
Bobby的“表”
将捕获这两种引用。这是一个非常肤浅的测试,因为使用UTF-8有很多方法可以绕过它。使用过
addslashes
的人可能会认为它们是安全的,但大错特错。一个说“谷歌it”的答案根本不是一个真正的答案。如果你认为我将把我知道的所有sql注入都放在这里,那你就错了。他问了一些例子,我给了他一个例子,并指示他学习更多的例子,我想这也很公平,@tadman是一个很好的资源。。。花点时间学习PDO。与整个系统遭到黑客攻击和崩溃相比,它将为您节省大量时间。
SELECT user_id 
FROM users 
WHERE name = ""
AND password = ""
OR "" = "";