我有喜欢它重定向到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啊,现在明白了,谢谢。 –