我們有一個(gè)高度安全的應(yīng)用程序,我們希望允許用戶輸入其他用戶會(huì)看到的URL。這帶來了XSS黑客攻擊的高風(fēng)險(xiǎn)-用戶可能會(huì)輸入另一個(gè)用戶最終執(zhí)行的javascript。由于我們擁有敏感數(shù)據(jù),因此絕不可發(fā)生。處理此問題的最佳做法是什么?僅憑任何一個(gè)安全白名單或轉(zhuǎn)義模式就足夠了嗎?有關(guān)重定向的建議(例如,在鏈接之前,警告頁面上的“此鏈接超出了我們的站點(diǎn)范圍”消息)是否有理由完全不支持用戶輸入的鏈接?澄清:基本上,我們的用戶要輸入:stackoverflow.com并將其輸出到另一個(gè)用戶:<a href="http://stackoverflow.com">stackoverflow.com</a>我真正擔(dān)心的是他們在XSS hack中使用此功能。即他們輸入:警報(bào)('被黑!');因此其他用戶獲得此鏈接:<a href="alert('hacked!');">stackoverflow.com</a>我的示例只是為了解釋風(fēng)險(xiǎn)-我很清楚javascript和URL是不同的東西,但是通過讓它們輸入后者,它們也許能夠執(zhí)行前者。您會(huì)驚奇地發(fā)現(xiàn)有多少個(gè)站點(diǎn)可以用此技巧攻破-HTML甚至更糟。如果他們知道處理環(huán)節(jié)上做到他們也知道消毒<iframe>,<img>并巧妙的CSS參考?我正在一個(gè)高度安全的環(huán)境中工作-單個(gè)XSS hack可能對我們造成非常高的損失。我很高興我可以制作一個(gè)Regex(或使用到目前為止最出色的建議之一)來排除我可能想到的所有內(nèi)容,但是這足夠了嗎?
- 3 回答
- 0 關(guān)注
- 1308 瀏覽
添加回答
舉報(bào)
0/150
提交
取消