为了演示 XSS 攻击,我正在构建一个执行以下操作的网络应用程序:
- 像论坛一样工作
- 通过 HTML 文本区域获取用户的帖子并将这些消息存储在 mysql 数据库中
- 显示用户在主题中的所有帖子。目标是显示 XSS 攻击,如
alert("attack");
由于输入过滤不充分。
我在 Apache 和 PHP 中使用 MySql 数据库。
在文本区域中输入以下内容:
<script>alert("attack");</script>
数据只是没有被添加到数据库中,并且将帖子存储到数据库中的页面中的 $_POST 方法返回一个空字符串。但是,所有其他情况都有效。到目前为止,我还没有在 PHP 中使用任何用于输入过滤的特殊函数,因为这是一个演示 XSS 的应用程序。
但是,在将上述脚本手动添加到数据库时,会弹出预期的警告框。
谁知道这是怎么回事?
最佳答案
你是否使用 mysql_real_escape_string 或类似的方式转义输入数据?如果不这样做,您的引号可能会混淆生成的 SQL 查询。
关于php - <script> 标记未在文本区域中处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5605731/