Java实现跳过网站Referer校验

  为了防止盗链,网站的某些页面阻止了来自于非本站的链接进入,为了规避这个问题,可以通过如下方式实现:

  1、在需要跳转的js中使用如下语句:

var arg = ‘\u003cscript\u003elocation.replace("‘+searchUrl+‘")\u003c/script\u003e‘;
window.open(‘javascript:window.name;‘, arg);

  经测试,上述的方式在Chrome中生效,但在IE及FireFox中是不起作用的,为了能够支持更多的浏览器,可以在此基础上进行适当修改。

  2、为tomcat增加https配置,为系统添加一个Servlet,将第一步的searchUrl地址设置为Servlet的访问地址,并确保该地址是https地址,然后在Servlet中使用sendRedirect方式进行跳转。这样做的目的是使目标网站收到的请求来自于https的,而https的referer信息是不会传输的。

  经过以上两步操作,IE已经可以正常的访问该页面了,但是FireFox还是不可以,虽然它没有将https的地址放在referer中,但是它将请求https的那个地址放在了里面,导致请求仍然被目标网站拦截。针对FireFox的这种情况,可以通过about:config将配置项network.websocket.allowInsecureFromHTTPS的值修改为false规避。

  通过以上设置,即可跳过目标站点的Referer拦截。

  

  参考网址:

  http://segmentfault.com/q/1010000000123441

  http://evilcos.me/?p=46

时间: 2024-07-30 01:04:45

Java实现跳过网站Referer校验的相关文章

Bag标签之轻开B2C电子商务网站登录校验实例

选择邮件类型用户名登录轻开B2C电子商务网站,校验用户名是不是合法的邮件地址,以及密码不为空实例. 选择用户名类型及输入用户名密码 <TR> <TD width=62 align=center>用户选择:</TD> <TD width=256> <select name=my_type onChange="swapAction(this.value)"> <chtml> <if x="@{pPage

实现手机访问,自动跳转网站手机版

百度Site App的uaredirect.js实现手机访问,自动跳转网站手机版 以下为代码,可放置在网站foot底部文件,或者haead顶部文件,建议将代码放在网站顶部,这样可以实现手机访问立即跳转! <script src="http://siteapp.baidu.com/static/webappservice/uaredirect.js" type="text/javascript"></script><script type

Java Web简化版交友网站平台

原文:Java Web简化版交友网站平台 源代码下载地址:http://www.zuidaima.com/share/1550463487478784.htm 该案例用基本用到了Java Web开发的全部基础知识,实现的功能有:用户注册.登录.增删改查.文件上传和数据库设计等:

百度Site App的uaredirect.js实现手机访问,自动跳转网站手机版

以下为代码,可放置在网站foot底部文件,或者haead顶部文件,建议将代码放在网站顶部,这样可以实现手机访问立即跳转! <script src="http://siteapp.baidu.com/static/webappservice/uaredirect.js" type="text/javascript"></script><script type="text/javascript">uaredirec

适合JAVA新手学习的网站

http://www.cn-java.com/www1/  中文java技术网  看起来技术文章不少. http://www.javaxxz.com/  Java学习者  比较多入门的东西,而且网站制作比较干净,感觉不错 http://www.cnjsp.org 中国JSP技术网站  专门讨论JSP技术,包括JDO链接数据库等等 http://bbs.ccidnet.com/bbs.php 赛迪网 Java技术专区 赛迪网是国内最专业的计算机技术类网站,提供非产多的技术教程,这个Java专区能够

Java基础---Java循环跳转语句之break(二十五)

Java循环跳转语句之 break 生活中,我们经常会因为某些原因中断既定的任务安排.如在参加 10000 米长跑时,才跑了 500 米就由于体力不支,需要退出比赛.在 Java 中,我们可以使用 break 语句退出指定的循环,直接执行循环后面的代码. 例如,使用循环输出 1--10的数值,其中,如果数值大于 2 ,并且为 3 的倍数则停止输出. 实现代码: 运行结果: 代码: public class HelloWorld {    public static void main(Strin

Java基础--Java循环跳转语句之continue(二十六)

Java循环跳转语句之 continue continue 的作用是跳过循环体中剩余的语句执行下一次循环. 例如,打印 1--10 之间所有的偶数,使用 continue 语句实现代码为: 运行结果: 代码: public class HelloWorld {    public static void main(String[] args) { int sum = 0; // 保存累加值 for (int i = 1; i <= 10; i++) { // 如果i为奇数,结束本次循环,进行下一

绕过referer校验的一些小知识

对referer做校验一般是对csrf进行防范的手段之一,但是很多时候不经意间还会增加其他攻击的难度,如xss,jsonp劫持等等. 这里对referer的绕过做一个小的总结:目标网站是:www.domain.com 攻击者的域名是:evil.com 1.使用子域名的方式绕过,如下: http://domain.evil.com/ 2.注册一个类似的域名,如下:http://www.evildomain.com/ 3.将域名以参数的形式接下url后面 http://www.evil.com/?h

JAVA直接跳转到HTML5页面

package net.joystart.taskagent.controller; import java.io.IOException; import java.io.UnsupportedEncodingException; import java.security.SignatureException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; imp