问题描述
|
我正在阅读有关网络安全性的文章,其中一个很明显的主题是SQL注入。我正在尝试建立一个基本的PHP页面,在其中可以执行SQL注入(它是本地服务器)。但是,看来我的代码(或服务器)自动转义了单引号。这是新标准还是我不知道的服务器上已激活的设置?是否需要清除输入内容?
这是我的服务器端代码的示例:
$foo = $_POST[\'foo\'];
$sql = \"SELECT * FROM bar WHERE foo=\'\" . $foo . \"\'\";
connectoTo(\"database\");
query($sql);
connectTo()连接到数据库服务器并选择数据库,而query()是执行查询时常用的过程。从来没有清洗过。但是,当我发送
$_POST[\'foo\'] = \"\' OR 1=1 #\"
PHP页面收到此作为
$_POST[\'foo\'] = \"\\\' OR 1=1 #\"
那么foo已经逃脱了吗? $ _GET也是如此。
有什么想法吗?我们是否不再需要清理用户输入?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)