自定义用户HTML输入安全

时间:2014-06-28 05:38:01

标签: javascript php html security

我正在用php创建一个网站。其中一个功能是用户可以通过输入自定义HTML代码来编辑自己的页面。现在,您可以将代码输入textarea并将其显示在div中。将来我计划为用户添加更多有用的工具。

我的问题是如何保护我的网站免受恶意代码的侵害。我知道Facebook可以选择将自定义HTML放在页面选项卡中,以便安全地完成。目前,html正在由一个php脚本显示,该脚本将其回显到页面上,这样用户也可以在<script>标签中输入javascript。我不知道javascript和html的全部限制,但我知道嵌入到网站中的自定义javascript有可能搞砸了。

到目前为止,我的想法是:

  • 从用户代码中删除所有javascript

    • 优点:轻松
    • 缺点:用户无法使用javascript做任何有趣的事情
  • 将javascript限制为仅在显示div中执行

    • 优点:安全自定义javascript
    • 缺点:可能不可能/非常困难

如果有人有关于如何做到这一点或Facebook如何做到这一点的想法,我很想知道!提前谢谢。

1 个答案:

答案 0 :(得分:2)

如果您使用的是php,一个很好的解决方案就是使用HTMLPurifier。它有很多选项可以过滤掉不好的东西,并且作为副作用,可以保证良好的html输出。