微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

GET参数易受SQL注入攻击 – PHP

我被要求处理由另一个程序员设置的网站的安全问题.到目前为止,我还没有看到任何代码,所以我在这一点上做了假设,我想覆盖我的基础.托管该站点的组进行了安全检查,发现他们的代码容易受到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());

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐