2015-11-16 79 views
0

允許用戶生成unsanitized html的風險是什麼?我使用的文本角度和要使用:什麼是禁用ngSanitize的風險?

ta-unsafe-sanitizer="true" 

https://github.com/fraywing/textAngular/issues/233

現在 - 我想象中的人讀這不知道是什麼文字角是99.9%,所以我主要感興趣的允許原始html的整體結果。

+0

這取決於你在用這些數據做什麼。你有沒有把它展示給其他用戶? – JJJ

+0

它用於生成報告。其他用戶可以看到組織管理員生成的報告。構建這些報告的人是組織管理員。例如,它會成爲一名經理看多個辦公室。我不在乎他們讓用戶看到什麼,只要它不能讓他們訪問受限制的後端元素,這是我無法想象的。 – VSO

+0

不,但如果其他用戶看到它,可能會有經理插入惡意JavaScript。當然,這不一定要自願完成,而是以某種方式由某種病毒或攻擊者完成。基本上任何可能出錯的東西,如果隨意的JavaScript被包含到用戶瀏覽器中_理論上會出錯。 – dirkk

回答

1

假設您有一個帶有輸入的表單元素,並且用戶插入輸入類似drop table users。如果您的服務器代碼較弱或某些服務不知道它的安全級別,可能會丟失數據。 現在,這是一個例子。有許多方法可以用類似的方式做壞事。

其他例子是插入到圖片src一些網址查詢paramters像

<img 
    src='http://somehackingsite.com/images/lol.png?userIp="some scriptor other hacking style"' /> 

AngularJs通過剝離所有潛在的危險 提供了一種通過ngSanitize

解決它進行消毒HTML字符串令牌。

輸入通過將HTML解析爲令牌來消毒。所有安全 令牌(來自白名單)然後被序列化爲正確轉義的 html字符串。這意味着沒有不安全的輸入可以使其進入 返回的字符串。

屬性值的URL消毒白名單被配置 使用函數aHrefSanitizationWhitelist和 imgSrcSanitizationWhitelist $ compileProvider的。

+0

但是,這一切只是假裝保護,對嗎?因爲我可以直接將該字符串傳遞給API。 – VSO

+0

當然。它只是保護GUI。 但是,當角度解析它在你的網站上時,它也可以保護你的用戶。 例如某人成功聯繫到您的服務器並將一些腳本添加到每個人都應該看到的圖片元素。 – Dvir

+0

感謝您的回覆,我會讓這個運行一下,但我一定會回來接受一個答案。 – VSO

相關問題