为了演示XSS攻击,我正在构建一个执行以下操作的Web应用程序:
alert("attack");
等XSS攻击。我正在使用Apache和PHP的MySql数据库。
将以下输入输入textarea:
<script>alert("attack");</script>
数据没有被添加到数据库中,并且将帖子存储到数据库中的页面中的$ _POST方法返回一个空字符串。但是,所有其他情况都有效。到目前为止,我还没有在PHP中使用任何用于输入过滤的特殊函数,因为这是一个演示XSS的应用程序。
但是,在手动将上述脚本添加到数据库中时,会弹出预期的警告框。
任何人都知道发生了什么事?
答案 0 :(得分:2)
您是否使用mysql_real_escape_string或类似方法转义输入数据?如果不这样做,你的引号可能会搞乱生成的SQL查询。