我有<script src="bla"></script>
可以加载到多个域中。
我想知道是否有办法控制它将被加载的域。
澄清一下:我的脚本是服务器端呈现的,所以基本上如果请求的域无效,我可以返回空字符串。
这是为了防止其他网站嵌入我的脚本。
谢谢!
答案 0 :(得分:2)
您可以检查推荐人,但这是由用户的网络浏览器设置的,并非100%可靠。
我认为没有办法100%检测哪个域嵌入了脚本。
答案 1 :(得分:0)
您是否只能检查请求所在的域名?
参见http://msdn.microsoft.com/en-us/library/system.net.httpwebrequest.host.aspx,您可以通过HttpContext.Current.Request获取它。
一个例子:
if (HttpContext.Current.Request.Host.Containts("fred.com")) {
return; // Or you could do a Response.Write and Flush
}
您还可以将脚本代码嵌入到闭包中,只需在开头查看并返回:
(function() {
if (location.hostname == "....") return;
...more code here...
})();
答案 2 :(得分:0)
您可以使用相同的机制来防止热链接图像 - apache上的mod_rewrite,或iis上的isapi过滤器,例如
如果请求来自其他域,则删除该请求,或发送一个绝对脚本。