小编k10*_*k10的帖子

PHP的addslashes是否容易受到sql注入攻击?

可能重复:
mysql_real_escape_string()做了什么,addslashes()没有?

我一直在评论关于PHP的addslashes函数如何/为什么容易受到sql注入攻击的文章.我读过的所有内容都说特定的mysql编码类型存在问题(default-character-set = GBK),或者如果启用magic_quotes则存在问题.但是,在这种情况下,我无法摆脱addslashes()函数并执行恶意操作 - 例如以管理员身份登录.

    $user = addslashes($_POST['user']);
    $pass = sha1($_POST['pass']);
    $sql = "SELECT * FROM admins WHERE user = '".$user."' AND `pass` = '".$pass."'";

    $nums = mysql_num_rows(mysql_query($sql));

    if($nums==1){
    $_SESSION['admin_user'] = $user;
    $_SESSION['admin_pass'] = $pass;
Run Code Online (Sandbox Code Playgroud)

这是对客户的(次要)安全审核,我会建议他们使用PDO,但我需要显示他们当前的漏洞.

参考文献:

php addslashes

6
推荐指数
1
解决办法
7516
查看次数

PHP/MySQL注入示例

这是这个问题的后续问题:PHP的addslashes是否容易受到sql注入攻击?(感谢在那里回复的每个人).

相同的场景,但我有这个代码(在另一页):

             $ID = $_GET['id'];
             $sql = "SELECT * FROM blog WHERE id='$ID'";
             $result = mysql_query($sql);
Run Code Online (Sandbox Code Playgroud)

这应该很容易被利用,对吧?

如果我没记错的话,我不能在mysql_query()中运行第二个查询,但我应该能够做一些其他恶意的事情,对吧?希望能够将用户插入管理表或更改密码或其他内容,但我认为除了触摸博客表之外我无法做任何其他事情.那是对的吗?关于我如何玩耍和调整某些东西以证明有顾虑的任何建议?

php mysql sql sql-injection

1
推荐指数
1
解决办法
5191
查看次数

标签 统计

php ×2

addslashes ×1

mysql ×1

sql ×1

sql-injection ×1