2017-10-09 139 views
0

我非常清楚,我可以用消毒的innerHTML綁定的數據:奧裏利亞:正確消毒的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

sanatizeHTML值轉換器是一個非常簡單的殺毒軟件,只能刪除腳本標籤。請參閱代碼here

您可以使用更復雜的santizer創建自己的值轉換器。有關如何在瀏覽器中清理html的更多詳細信息,請參閱this answer

但是不要忘記永遠不要相信瀏覽器,如果可以的話,最好在服務器端清理html,然後再發送給瀏覽器來顯示它。

+0

感謝您指點我正確的方向!服務器實際上是在進行消毒,我只是想要一個客戶端的消毒器來提供更安全的防僞。 –