在开始之前,我想说我在这里已经阅读了类似的问题,但我认为它并没有真正回答这个问题:Show HTML user input, security issue和Security risks from user-submitted HTML
我认为这些问题很好地突出了问题,但我基本上就这些情况下的最佳实践提出建议。
我已经编程了一段时间,现在我想要网站管理员提交HTML标记以在他们自己的网站上显示他们想要的内容。
在数据库中保护此内容很好,但现在我想安全地在网站上显示它。
即使此功能仅供网站管理员使用,我仍然希望防止恶意脚本注入,并尝试使用不良的HTML阻止他们破坏页面。
现实是我无法安全地防止脚本注入,因为上面的线程似乎指出了什么?
我是否会使用这样的心态:如果他们破坏了网站,那么这取决于他们,还是我可以在更新内容时使用某种标记验证器?
答案 0 :(得分:1)
您如何看待markdown?
这是一种提交html的安全方式,并且拥有大多数流行语言的库。
答案 1 :(得分:0)
你是对的,如果你允许提交纯HTML - 没有办法阻止所有可能的注入。即使您在所有可能的组合中禁用<script>
标记(并且有很多),也可以使用其他方式,例如可用于运行恶意代码的onfocus
onmouseover
个事件。
答案 2 :(得分:0)
我会建议HTMLPurifier,它肯定是最好的解决方案。谷歌吧!