+-

我被要求处理由另一个程序员设置的网站的安全问题.到目前为止,我还没有看到任何代码,所以我在这一点上做了假设,我想覆盖我的基础.托管该站点的组进行了安全检查,发现他们的代码容易受到SQL注入攻击.
示例:www.example.com/code.php?pid = 2& ID = 35(GET参数ID易受SQL注入攻击)
现在,因为我是新手,我已经解释过我可以解决主机问题,但是他们的网站仍然需要被更深入的安全知识的人查看.
因此,为了处理潜在的SQL注入(并且没有看到代码),我会使用mysql_real_escape_string:
$query = sprintf("SELECT * FROM table WHERE pid='%s' AND ID='%s'",
mysql_real_escape_string($pid),
mysql_real_escape_string($id));
另外,我会考虑mysqli_real_escape_string和预处理语句,但我不知道它们是如何配置的.但mysql_real_escape_string会处理潜在的SQL注入吗?
最佳答案
如果可以,请跳过旧的mysql_ *内容并使用PDO.
$pdo = new PDO('mysql:host=localhost;dbname=whatever', $username, $password);
$statement = $pdo->prepare('SELECT * FROM table WHERE pid=:pid AND ID=:id');
$statement->bindParam(':pid', $_GET['pid']);
$statement->bindParam(':id', $_GET['id']);
$results = $statement->execute();
var_dump($results->fetchAll());
点击查看更多相关文章
转载注明原文:GET参数易受SQL注入攻击 – PHP - 乐贴网