用例:是否可以重写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