我有喜歡它重定向到URL從參數查詢字符串頁:
page.html中的redirectUrl = index.html的
的頁面裏面,我有這樣的代碼:
window.localtion.href = redirectUrl;
這是要求使用參數重定向url。該頁面包含安全敏感數據。有人可以使用JavaScript這樣的網址:
page.html?redirectUrl = javascript:alert(document.getElementById(「password」)。value)
安全數據可以被盜。
如何防止繞過javascript代碼到window.localtion.href?防止使用JavaScript的window.location的
4
A
回答
1
這似乎是它會只要你不被它重定向工作:
的Javascript:
var field = document.getElementById("redirectUrl");
var newValue = String(field.value);
alert(newValue);
基本上,使用String構造函數來「消毒」的輸入。
這可能會幫助更多的其他情況:
https://www.owasp.org/index.php/XSS_%28Cross_Site_Scripting%29_Prevention_Cheat_Sheet
https://www.owasp.org/index.php/DOM_based_XSS_Prevention_Cheat_Sheet
總體來說,我不會使用JavaScript來淨化輸入建議。如果您處理真正敏感或重要的數據,強烈建議您使用服務器端語言來驗證和消毒輸入。
1
你可以嘗試把URL中的anchor element和檢查的協議:
var anchor = document.createElement("a");
anchor.href = redirectUrl;
if(anchor.protocol != "javascript:") {
window.localtion.href = redirectUrl;
}
但是,我不知道該瀏覽器的支持有多好這一點,因爲MDN列出了它作爲一個HTML5功能。
相關問題
- 1. window.location防止iframe重定向父窗口
- 2. 如何防止使用JavaScript
- 3. 使用JavaScript防止回發
- 4. 防止回發使用jQuery JavaScript的
- 5. 的JavaScript window.location的ID
- 6. 用JavaScript window.location的工作不
- 7. asp.Net防止用JavaScript
- 8. Javascript「window.location」停止PHP重定向
- 9. 當我使用window.location獲取URL時停止JavaScript執行
- 10. 的JavaScript window.location的行爲
- 11. 防止Fancybox內部的JavaScript
- 12. 防止在JavaScript中的innerHTML
- 13. 使用JavaScript防止標籤重疊
- 14. 使用javascript防止Android WebView導航
- 15. 模式防止外單擊使用javascript
- 16. 使用JavaScript/jQuery防止SQL注入
- 17. 防止多次使用Javascript函數
- 18. 使用javascript防止會話超時
- 19. 使用JavaScript防止表單注入?
- 20. 如何防止使用JavaScript彈出?
- 21. Javascript echo window.location
- 22. javascript - window.location或document.location
- 23. 設置JavaScript window.location
- 24. 防止用戶在javascript
- 25. 防止使用TNEFParser的Tika
- 26. window.location |的JavaScript重定向
- 27. 使用javascript window.location更改端口
- 28. 防止JavaScript的window.getSelection()循環引用
- 29. 防止JavaScript執行
- 30. 防止JavaScript注入
在這種情況下,誰會竊取數據?用戶?無論如何,他們可以在頁面上獲取任何數據。 –
@Pekka웃 - 用戶(愛麗絲)可以從Malory's(攻擊者)網站上鍊接到Bob的網站。這是一個經典的XSS攻擊。 – Quentin
@Quentin啊,現在明白了,謝謝。 –