求方法。自己域名的jsp,想只允许被指定的域名iframe使用。
自己网站的jsp,给别人的网站iframe嵌入调用。我想限制只能指定的域名可以调用我的jsp,如果是别的网站域名调用,则做区别处理。
用js,top.location.hostname拿父页面的域名。但是发现跨域拿不到。
用iframe src带参数的方法,感觉没意义。因为参数公开的,别人调带参一样的src就行了。
求方法啊~~~js的java的等等思路都可以 --------------------编程问答-------------------- --------------------编程问答-------------------- 在你的页面中加入如下脚本(尽量靠近页面上部)
<%
String ref = request.getHeader("Referer");
if (ref!=null && !ref.contains("localhost")){
out.print("This page could not be used by your server.");
return;
}
%>
你可以将"localhost"换成其他的字符串(例如你的域名) --------------------编程问答--------------------
这个方法可以,还有一个方法就是在tomcat中配置 --------------------编程问答-------------------- 建议配置成过滤器
--------------------编程问答-------------------- 使用 Referer 吧,但是不能直接用 contains。
public static boolean isIllegalReferer(String referer) {--------------------编程问答-------------------- 如果只是允许自己的域名访问,即采用同源策略的话,可以使用非标准的 HTTP 响应头 X-Frame-Options
if (StringUtils.isBlank(referer)) {
return false;
}
try {
URL url = new URL(referer);
return url.getHost().contains(".test.com");
} catch (Exception e) {
log.error("isIllegalReferer, referer: [" + referer + "] cause exception", e);
return false;
}
}
response 设置一下这个头,值设为:SAMEORIGIN,即:response.setHeader("X-Frame-Options", "SAMEORIGIN");
X-Frame-Options 需要的最小浏览器版本:IE 8+, Firefox 3.6.9+, Opera 10.5+, Safari 4.0+, Chrome 4.1.249.1042+
更多的方法可以 Google 以下关键词“frame busting” --------------------编程问答-------------------- return url.getHost().contains(".test.com");
改为:
return url.getHost().toLowerCase().lastIndexOf(".test.com") > 0; --------------------编程问答--------------------
学习了!!! --------------------编程问答-------------------- 学习了!以后用的着的。 --------------------编程问答--------------------
补充:Java , Web 开发