我完全清楚我可以使用以下方法清理innerHTML绑定数据:
<div innerhtml.bind="someData | sanitizeHTML"></div>
但是,根据我的观察,此清理仅删除<script>
个标记。它不保护用户免受事件驱动的内容,例如:
"Hi! I am some HTML-formatted data from the server! <button onclick="getRekt();">Click me for butterflies!</button>"
是否有更好的方法可以防止在元素上呈现任何类型的javascript或事件回调?
答案 0 :(得分:2)
sanatizeHTML值转换器是一个非常简单的清理程序,只删除脚本标记。请参阅代码here。
您可以使用更复杂的santizer创建自己的值转换器。检查this answer以获取有关如何在浏览器中清理html的更多详细信息。
但是不要忘记永远不要相信浏览器,如果可以的话,最好先清理服务器端的html,然后再将其发送到浏览器进行显示。