aurelia:正确清理innerHTML绑定数据

时间:2017-10-09 10:25:11

标签: aurelia sanitization aurelia-templating

我完全清楚我可以使用以下方法清理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或事件回调?

1 个答案:

答案 0 :(得分:2)

sanatizeHTML值转换器是一个非常简单的清理程序,只删除脚本标记。请参阅代码here

您可以使用更复杂的santizer创建自己的值转换器。检查this answer以获取有关如何在浏览器中清理html的更多详细信息。

但是不要忘记永远不要相信浏览器,如果可以的话,最好先清理服务器端的html,然后再将其发送到浏览器进行显示。