php - <script> 标记未在文本区域中处理

标签 php mysql apache textarea

为了演示 XSS 攻击,我正在构建一个执行以下操作的网络应用程序:

  1. 像论坛一样工作
  2. 通过 HTML 文本区域获取用户的帖子并将这些消息存储在 mysql 数据库中
  3. 显示用户在主题中的所有帖子。目标是显示 XSS 攻击,如 alert("attack"); 由于输入过滤不充分。

我在 Apache 和 PHP 中使用 MySql 数据库。

在文本区域中输入以下内容:

<script>alert("attack");</script>

数据只是没有被添加到数据库中,并且将帖子存储到数据库中的页面中的 $_POST 方法返回一个空字符串。但是,所有其他情况都有效。到目前为止,我还没有在 PHP 中使用任何用于输入过滤的特殊函数,因为这是一个演示 XSS 的应用程序。

但是,在将上述脚本手动添加到数据库时,会弹出预期的警告框。

谁知道这是怎么回事?

最佳答案

你是否使用 mysql_real_escape_string 或类似的方式转义输入数据?如果不这样做,您的引号可能会混淆生成的 SQL 查询。

关于php - &lt;script&gt; 标记未在文本区域中处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5605731/

相关文章:

php - 在 XML 中使用 HMAC-SHA1 生成 SignatureValue

php - 我如何在 PHP 中获取系统统计信息

apache - 如何获取适用于 Windows 的 mod_jk.so/mod_jk.dll 文件?

Apache2 mod_rewrite 基于 URI 匹配将 SSL 重定向到非 SSL,反之亦然

mysql - 如何将www目录设置为公开?瓦姆普

php - 将数组插入 MySQL

php - 为什么 Yii2 dateTime() 功能不写入时间?

mysql - MySQL通配符字符串选择

c# - 由于似乎无法在参数化查询中指定表名,是否有安全的替代方法?

php - 带有数据库选择的 CodeIgniter :