当前位置:  开发笔记 > 编程语言 > 正文

如何让我的用户插入HTML代码,没有风险?(不仅是技术风险)

如何解决《如何让我的用户插入HTML代码,没有风险?(不仅是技术风险)》经验,为你挑选了3个好方法。

我开发了一个Web应用程序,允许我的用户在LAMP环境中动态管理网站的某些方面(是的,某种cms)(debian,apache,php,mysql)

好吧,例如,他们在我的服务器上的私人区域创建新闻,然后通过cURL请求(或通过ajax)在他们的网站上发布.

这个消息是用WYSIWYG编辑器创建的(fck at moment,可能是未来的tinyMCE).

所以,我不能禁止html标签,但我怎么能安全?我必须删除什么样的标签(javascripts?)?这意味着服务器安全..但如何"合法"安全?如果用户使用我的应用程序制作xss,我可以遇到一些法律问题吗?



1> DGM..:

如果你使用的是php,一个很好的解决方案就是使用HTMLPurifier.它有很多选项可以过滤掉不好的东西,并且作为副作用,可以保证形成良好的html输出.我用它来查看可能是恶劣环境的垃圾邮件.



2> Gavin Miller..:

你要删除的内容并不重要,有人会总能找到解决问题的方法.作为参考,请看一下这个XSS备忘单.

例如,您将如何删除此有效的XSS攻击:


您最好的选择是只允许可接受标签的子集并删除其他任何内容.这种做法被称为白名单,是防止XSS的最佳方法(除了不允许使用HTML).

在测试中也使用备忘单; 在您的网站上尽可能多地开火,并尝试找到一些方法来执行XSS.



3> John Feminel..:

这里的一般最佳策略是将您认为安全的特定标签和属性列入白名单,并转义/删除其他所有内容.例如,明智的白名单可能是

,

    ,
      ,
    1. , , ,
      , , 
      , .或者,考虑像TextileMarkdown这样的人性化标记,可以轻松转换为安全的HTML.

推荐阅读
小色米虫_524
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有