我正在使用contentEditable div,它允许用户编辑主体HTML,然后使用AJAX请求直接将其发布到网站。当然,我必须对它进行一些安全检查。最明显的是通过在提交的HTML中搜索<script
来确保没有提交脚本标记。这是在第一次运行htmlentities
之后完成的,将数据传输到另一台服务器,然后运行html_entity_decode
。另外,每个打开的标签都必须关闭,并且每个关闭的标签都必须在用户提交的HTML中打开。用户提交的HTML的安全风险
忽视不相关的安全风险(如SQL注入)和非安全风险(如用户发布不适当的图像),还有什么其他安全风险,如果有的话,具体链接到允许用户添加HTML直接到一个页面?
更具体地讲,
- 是把脚本的页面有办法没有明确使用脚本标签或
- 有没有方法可以危及站点的安全性和它的用户可以通过编辑没有使用脚本的HTML?
可能出现的[在PHP网站中避免xss攻击的最佳做法]的重复(http://stackoverflow.com/questions/71328/what-are-the- best-practices-for-avoid-xss-attack-in-a-php-site) – Quentin
这当然是这个问题的一个子集,但这个问题稍微宽泛一些。我相信对这个问题的理想答案已经在这里提出,而对这个问题的答案并不适合这个问题。 –