用例:是否可以重寫window.document.location.host?
- 我的服務器是域www.mywebsite.com
- 在網頁中,我有一個JavaScript代碼調用到WebService是在同一個酒莊
- JavaScript調用簽名並只適用於在有限的時間
- web服務使用一個會話cookie在同一個域中設置的用戶名 返回到瀏覽器
- 這裏的風險是,一個惡意網站可以刮我的網頁,以獲得有效的Web服務調用,幷包括其頁面上的頁面上顯示的用戶名釣魚目的
我做什麼
讓說,我想阻止這個JavaScript的盜鏈: <script type="text/javascript" src="http://webservice.mywebsite.com/username.js?ID=SERVICE_ID;ts=1386607643;sig=52f72b1a0fe9158d87d9e4ba4e26a731"/>
在username.js,我做這個檢查:
if (document.location.host.match(/[.]mywebsite[.]com$/i) == null) { document.location.href="http://www.mywebsite.com/error.html"; } else { username = username_obtained_using_the_session_cookie }
我的問題
安全嗎?
你能詳細說明一下你的代碼或僞代碼嗎?我不確定我現在是否完全明白。 – janfoeh
我認爲,不同方面可以閱讀,修改和加載腳本。但你可以讓它變得更難。除了對其進行硬編碼以便僅在您的域中工作之外,我會縮小或打包它(或以其他方式混淆代碼),並將服務器設置爲僅在引用者是您的域時才提供腳本。 – towr