PHP与SQL注入攻击[一]
程序员文章站
2022-10-05 20:27:31
haohappy http://blog.csdn.net/haohappy2004 sql注入攻击是黑客攻击网站最常用的手段。如果你的站点没有使用严格的用户输入检验,那么...
haohappy
http://blog.csdn.net/haohappy2004
sql注入攻击是黑客攻击网站最常用的手段。如果你的站点没有使用严格的用户输入检验,那么非常容易遭到sql注入攻击。sql注入攻击通常通过给站点数据库提交不良的数据或查询语句来实现,很可能使数据库中的纪录遭到暴露,更改或被删除。下面来谈谈sql注入攻击是如何实现的,又如何防范。
看这个例子:
// supposed input
$name = “ilia'; delete from users;”;
mysql_query(“select * from users where name='{$name}'”);
很明显最后数据库执行的命令是:
select * from users where name=ilia; delete from users
这就给数据库带来了灾难性的后果--所有记录都被删除了。
不过如果你使用的数据库是mysql,那么还好,mysql_query()函数不允许直接执行这样的操作(不能单行进行多个语句操作),所以你可以放心。如果你使用的数据库是sqlite或者postgresql,支持这样的语句,那么就将面临灭顶之灾了。
http://blog.csdn.net/haohappy2004
sql注入攻击是黑客攻击网站最常用的手段。如果你的站点没有使用严格的用户输入检验,那么非常容易遭到sql注入攻击。sql注入攻击通常通过给站点数据库提交不良的数据或查询语句来实现,很可能使数据库中的纪录遭到暴露,更改或被删除。下面来谈谈sql注入攻击是如何实现的,又如何防范。
看这个例子:
// supposed input
$name = “ilia'; delete from users;”;
mysql_query(“select * from users where name='{$name}'”);
很明显最后数据库执行的命令是:
select * from users where name=ilia; delete from users
这就给数据库带来了灾难性的后果--所有记录都被删除了。
不过如果你使用的数据库是mysql,那么还好,mysql_query()函数不允许直接执行这样的操作(不能单行进行多个语句操作),所以你可以放心。如果你使用的数据库是sqlite或者postgresql,支持这样的语句,那么就将面临灭顶之灾了。
上一篇: PHP面向对象分析设计的经验原则
下一篇: PHP与SQL注入攻击[二]