的我經歷的PhoneCat教程AngularJS。一切都解釋的非常好,所以我正沿着以下,直到我打step 6在哪個環節被動態地從角公式產生:安全角度表達
http://localhost:8000/app/{{phone.imageUrl}}
雖然教程指出ngSrc
被阻止瀏覽器發出HTTP請求無效位置(編輯:顯然,本教程意味着瀏覽器只會在表達式得到評估後纔會調用鏈接。請參閱提供的鏈接中的「實驗」部分。),我現在想知道角表達式的安全性如何。由於phone.imageUrl
是外部加載的,理論上可能包含惡意內容,我想了解爲什麼這對我的web應用程序無關緊要。
顯然表達的內容被轉義以某種方式,所以包括在你的代碼下面將只打印出一些文字:
<img ng-src="{{""><script>alert('UNSAFE!')</script>"}}">
,但我想知道是否有一些「規則」是您需要注意保持Web應用程序的安全。例如,通過編譯上述代碼
var template = "<img ng-src="{{""><script>alert('UNSAFE!')</script>"}}">";
var something = $compile(template);
結果在加載DOM時執行腳本?當你無法確保角度表達式包含預期內容時,是否有「你不應該在你的web應用程序中做的事情」?
「外部加載」是指什麼? – Bergi
您的js/html代碼包含兩個部分 - 一個來自服務器,另一個來自用戶輸入。我不明白在這裏可能不安全。 –
@Bergi在教程中,它是從本地.json文件(通過本地網絡服務器提供的)加載的。但是,它可以很容易地生成尚未驗證的未知Web服務器的內容或響應。表達式甚至可以評估由用戶輸入填充的變量,所以我只是想知道如果沒有任何驗證,使用它們實際上是安全的。 –