[nginx/openresty]代理请求修改referer,破解防盗链

/ 182,014评论 / 454059阅读 / 15点赞

有时我们想引用其他网站的资源(图片,视频等),明明在其网站上可用,而我们发送请求时却得到了403错误,访问被拒绝,很可能就是该网站对这些资源文件设置了防盗链,下面我们聊聊其防盗的原理以及破解方法。

名词

防盗链

Referer

Origin

破解防盗链

直接伪造请求

这个方法适用于客户端,而不适用于浏览器中的网页。

const axios = require(`axios`);
const getServer = (in_url, in_data, successFun, errFun) => {
    axios({
        method: "get",
        url:    in_url,
        params: in_data,
        headers: {
            "referer":"https://www.bilibili.com/"

            //"referer":"https://127.0.0.1/"  //你可以尝试使用这一句替换上面那句,请求将被拒绝
        }
    }).then(function (res) {
        console.log(res.data);
        if (typeof (successFun) != 'undefined') {
            successFun(res);
        }
        console.log("--- 请求成功 ---");
    }).catch(function (err) {
        console.log(err);
        if (typeof (errFun) != 'undefined') {
            errFun(err);
        }
        console.log("--- 请求失败 ---");
    })
}

//获取对应id的视频的下载链接
getServer(
    "https://api.bilibili.com/x/player/playurl",
    {
        "fnval": 80,
        "bvid":"BV1pT41157it",
        "cid":"746904707"
    });

代理转发

客户端,网页都适用,但一般客户端不需要由服务器代理,客户端自己可以搞定,就不需要占用服务器的带宽性能

server {
        listen       80;
        server_name  localhost, 127.0.0.1;
	resolver 8.8.8.8;
        location / {
		header_filter_by_lua_file /usr/local/openresty/lua/toBili.lua;
                proxy_set_header referer 'https://www.bilibili.com/';
		proxy_set_header Host $proxy_host;
		proxy_set_header Origin 'https://www.bilibili.com';
		if ($query_string ~* ^(.*)url=(.*)$) {
			proxy_pass $2;
		}
	}
}
ngx.header['Access-Control-Allow-Origin']  =  '*';
ngx.header['Access-Control-Allow-Methods'] = 'get, post, options';
ngx.header['Access-Control-Allow-Headers'] = 'dnt,x-mx-reqtoken,keep-alive,user-agent,x-requested-with,if-modified-since,cache-control,content-type,authorization';

关于空referer

<!DOCTYPE html>
<html lang="zh">
<head>

    <meta name="referrer" content="never">
</head>
<body>
</body>

摸索过程记录

add_header Access-Control-Allow-Origin '*';
add_header Access-Control-Allow-Methods 'POST,OPTIONS,GET';
add_header Access-Control-Allow-Headers 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization';

思考

上面的示例中,我们在使用时,只能也必须传入一个参数 url,那有没有办法传递更多参数呢?

  1. Davidfrify说道:

    lisinopril online without a prescription lisinopril 5 mg buy online lisinopril 12.5 mg

  2. WilliamRen说道:

    https://cytotec.club/# buy cytotec pills

  3. WilliamRen说道:

    https://cytotec.club/# buy misoprostol over the counter

  4. Davidfrify说道:

    zestril discount lisinopril 420 lisinopril price in india

  5. RandallGuesE说道:

    cipro: buy generic ciprofloxacin – cipro pharmacy

  6. Davidfrify说道:

    ciprofloxacin order online cipro 500mg best prices buy cipro online canada

  7. RandallGuesE说道:

    tamoxifen bone pain: tamoxifen medication – tamoxifen hormone therapy

  8. Davidfrify说道:

    buy cipro online without prescription antibiotics cipro ciprofloxacin mail online

  9. RandallGuesE说道:

    buy cytotec pills: buy misoprostol over the counter – cytotec buy online usa

  10. WilliamRen说道:

    http://cytotec.club/# buy cytotec online fast delivery

  11. RandallGuesE说道:

    lisinopril medication otc: lisinopril 30mg coupon – lisinopril 40 mg without prescription

  12. WilliamRen说道:

    https://lisinopril.network/# zestril 10 mg price

  13. RandallGuesE说道:

    cipro ciprofloxacin: ciprofloxacin mail online – ciprofloxacin generic

  14. RandallGuesE说道:

    cytotec abortion pill: cytotec pills buy online – buy misoprostol over the counter

  15. Davidfrify说道:

    order propecia without prescription buy generic propecia without prescription buy generic propecia prices

  16. RonaldSwobe说道:

    https://ciprofloxacin.tech/# п»їcipro generic

  17. WATER说道:

    Everyone loves what you guys are usually up too.
    This type of clever work and reporting! Keep up the awesome works guys I’ve included you guys to my own blogroll.

  18. Davidfrify说道:

    cost of generic propecia tablets buy cheap propecia without a prescription order cheap propecia pill

  19. WilliamRen说道:

    https://lisinopril.network/# lisinopril over the counter

  20. RonaldSwobe说道:

    https://finasteride.store/# cost of generic propecia without prescription

  21. RonaldSwobe说道:

    http://lisinopril.network/# buy cheap lisinopril 40mg

  22. drugs说道:

    I am regular visitor, how are you everybody?

    This article posted at this web site is actually pleasant.

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注