自定义用户HTML输入安全性

Custom user HTML input safety

本文关键字:安全性 输入 HTML 用户 自定义      更新时间:2023-09-26

我正在创建一个php网站。其中一个特性是用户可以通过输入自定义html代码来编辑他们自己的页面。现在,您可以在文本区域中输入代码,并将其显示在div中。在未来,我计划为用户添加更多有用的工具。

我的问题是如何保护我的网站免受恶意代码。我知道Facebook有一个选项,把自定义的HTML页面标签,所以它可以安全地完成。目前,html是由一个php脚本显示回显到页面上,所以用户可以在<script>标签中输入javascript。我不知道javascript和html的全部限制,但我知道嵌入到网站中的自定义javascript有可能把事情搞砸。

以下是我目前的想法:

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

      <
    • 优点:容易/gh>缺点:用户不能用javascript做任何有趣的事情
  • 限制javascript只在显示div

    内执行
      优点:安全自定义javascript
    • 缺点:可能不可能/非常困难
如果有人有关于如何做到这一点或Facebook如何做到这一点的想法,我很想知道!

如果你正在使用php,一个很好的解决方案是使用HTMLPurifier。它有许多选项可以过滤掉不好的内容,作为副作用,它保证了格式良好的html输出。