-5

可能重复:
如何防止 SQL 注入?

我想修复 appRain CMS 中的 SQL 注入: http ://code.google.com/p/apprain-quickstart/downloads/list

如果有人可以帮助我,在哪个 php 文件中查找并给我正确的功能,那就太好了。

我试过使用 mysql_real_escape_string,但我找不到正确的函数在哪里使用它。

漏洞利用:http ://www.securityfocus.com/archive/1/520911

或:/profile/-1 union all select 1,2,3,version(),5,6,7,8,9,10,11,12,13,14,15,16,17,18,19

谢谢

4

1 回答 1

0

阅读您正确提供的链接。

问题的解决方法写在链接里

1.使用prepared statement类修复sql注入漏洞&过滤sql错误请求。设置 error(0) 以防止通过异常或错误报告泄露信息。

2. 解析输入字段,限制 () > < \ / 等字符,以防止脚本包含。如果脚本代码在模块上下文之外执行,则还要解析易受攻击的输出部分。

做出准备好的陈述

$oDB=new PDO('..your connection.. ');
$hStmt=$oDB->prepare("select * from users where id=:id");
$hStmt->execute(array(':id',$userID));

请注意,上面$userID没有与 SQL 字符串组合,因此 SQL 注入将不起作用。

使用 mysqli_real_escape_string

请注意,它mysql_real_escape_string已被弃用,因此我将提及如何使用mysqli_real_escape_string

$a= "'ABCD"; //will not work because of quotation

$a= $mysqli->real_escape_string($a);
   //Now this is the string with special chars escaped

欲了解更多信息,请阅读

PDO 如何防止 PHP 中的 SQL 注入?

转义字符串http://php.net/manual/en/mysqli.real-escape-string.php

于 2012-12-16T11:23:45.907 回答