【问题标题】:What is a function that will allow output with HTML and avoid XSS attacks什么是允许输出 HTML 并避免 XSS 攻击的功能
【发布时间】:2011-08-26 21:38:34
【问题描述】:

我正在寻找一种方法或函数来显示我的 mySQL 数据库中的数据。允许用户发布文章,我使用mysql_real_escape_string 来避免在将他们的帖子插入数据库之前进行 SQL 注入。

为了我的测试目的,我在一个文本区域写了我的帖子,带有<b> <a> <i> <li> 之类的标签。 稍后我将在 Stackoverflow 上使用像这样的编辑器来帮助用户发布他们的帖子。

但是,我知道 XSS 并且直接从数据库回显可能会导致 XSS 攻击。因此,我为我的测试选择了使用htmlentitieshtmlspecialchars 输出内容。他们都不会用 html 正确地向我显示帖子。

因此,我使用了条形标签,但据我所知和阅读,并不安全。

你也可以使用什么功能,可以让我正确输出数据,只是 like this 并防止XSS?

【问题讨论】:

  • 使用HTMLPurifier。对于给定的 html,它会像你想要的那样苛刻,并无情地(或礼貌地)撕掉你不想要的任何东西。
  • @Marc B : HTMLPurifier 轻吗?

标签: php xss html-entities htmlspecialchars strip-tags


【解决方案1】:

如果您想正确显示 html,您应该在获得时打印纯 html。 但是为了避免 XSS,请尝试删除 javascript 标签,并且不允许从外部资源加载图像。

【讨论】:

  • 我怎样才能完全删除javascript标签?避免外部图像的逻辑是什么?
  • 不允许用户从外部资源添加图片链接,但您的资源除外。
  • 因为不是图像,您将从外部站点加载危险代码。
  • 删除脚本标签是不够的。这是一个简单的例子:
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-15
  • 1970-01-01
  • 1970-01-01
  • 2013-06-15
  • 1970-01-01
相关资源
最近更新 更多