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

/ 191,752评论 / 536039阅读 / 17点赞

有时我们想引用其他网站的资源(图片,视频等),明明在其网站上可用,而我们发送请求时却得到了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. Claribel说道:

    This text is invaluable. Where can I find out more?

  2. DanielEmilk说道:

    купить 1 комнатную квартиру в новостройке https://zastroyshikekb.ru

  3. Allenplesy说道:

    недвижимость купить квартиру https://zastroyshikekb54.ru

  4. WilliamVet说道:

    недвижимость купить квартиру https://kvartiranovostroi.ru

  5. лучшие капперы россии https://rejting-kapperov12.ru/ .

  6. Matthewstype说道:

    купить квартиру в новостройке https://novyekvartiry2.ru

  7. WilliamDop说道:

    купить 2 квартиру новостройке купить квартиру недорого

  8. ThomasSkawl说道:

    купить 2 квартиру новостройке https://novye-kvartiry-spb.ru

  9. Jamesjax说道:

    купить 2 квартиру новостройке купить 1 квартиру в новостройке

  10. Jamesjer说道:

    buy online doxycycline: can i buy doxycycline over the counter uk – doxycycline with out a rx

  11. Jamesjer说道:

    Paxlovid buy online: paxlovid india – Paxlovid buy online

  12. Обеспечьте конфиденциальность с резидентскими прокси, использовать этим инструментом.
    Какие преимущества у резидентских прокси?, ознакомьтесь с подробностями.
    Советы по выбору резидентского прокси, инструкция для пользователей.
    Для каких целей используют резидентские прокси?, узнайте возможностями.
    Как резидентские прокси обеспечивают безопасность?, обзор функций безопасности.
    Защита от каких угроз обеспечивает резидентский прокси?, рассмотрим важные аспекты.
    Зачем нужны резидентские прокси и какой их выигрыш?, сравним основные плюсы.
    Секреты увеличения скорости с резидентским прокси, практические советы для оптимизации работы.
    Зачем использовать резидентский прокси для сбора информации?, анализ возможностей для парсеров.
    Секреты анонимности с резидентским прокси, рекомендации к безопасности онлайн.
    Как улучшить работу в социальных сетях с резидентским прокси, подробный обзор функционала.
    Какие преимущества дает аренда резидентских прокси, рассмотрим лучшие варианты.
    Как использовать резидентские прокси для защиты от DDoS-атак, анализируем меры безопасности.
    В чем причина популярности резидентских прокси?, проанализируем основные факторы.
    Сравнение резидентских и дата-центровых прокси, подсказки для выбора.
    proxy резидентские https://rezidentnieproksi.ru/ .

  13. Jamesjer说道:

    ciprofloxacin: buy cipro without rx – cipro online no prescription in the usa

  14. it’s about fostering a connection with an entity that mirrors the essence of a real woman. High-quality sex dolls

  15. vegan说道:

    Hi there! Quick question that’s totally off topic.

    Do you know how to make your site mobile friendly? My weblog looks weird when browsing
    from my iphone 4. I’m trying to find a template or plugin that might be able to correct this issue.
    If you have any recommendations, please share. Appreciate it!

  16. Jamesjer说道:

    buying doxycycline online: doxycycline 100mg tablet – doxycycline no prescription best prices

  17. Jamesjer说道:

    doxycycline antibiotic: doxycycline 100mg capsules – doxycycline for sale uk

  18. Jamesjer说道:

    buy paxlovid online: paxlovid india – paxlovid price

  19. Jamesjer说道:

    can i purchase generic clomid pill: clomid without dr prescription – where to get clomid without dr prescription

  20. Jamesjer说道:

    can you get cheap clomid online: where to buy clomid – can i get clomid pill

  21. Jamesjer说道:

    amoxicillin 500 mg purchase without prescription: amoxicillin 500 mg capsule – amoxicillin online canada

  22. Jamesjer说道:

    doxycycline tablets online: how to order doxycycline – doxycycline 75 mg

  23. GregorySal说道:

    https://indibeti.in is a premier online casino offering a wide array of games including slots, table games, and live dealer options. Renowned for its user-friendly interface and robust security measures, Indibet ensures a top-notch gaming experience with exciting bonuses and 24/7 customer support.

  24. Timothyzicle说道:

    недорогие квартиры от застройщика квартиру новостройку жк купить

  25. Terryanoff说道:

    квартира в новостройке от застройщика квартиры от застройщика цены жк

  26. Jamesjer说道:

    ciprofloxacin over the counter: buy ciprofloxacin – buy cipro no rx

  27. akp说道:

    Ahaa, its pleasant conversation on the topic of this article at this place at this
    weblog, I have read all that, so now me also commenting
    at this place.

  28. Jamesjer说道:

    Paxlovid buy online: Paxlovid over the counter – paxlovid pill

  29. DavidFex说道:

    The future football star Shabab Al-Ahly https://dubai.shabab-al-ahli-ar.com was born in Dubai in 2000. From a young age, he showed exceptional football abilities and joined the youth academy of one of the UAE’s leading clubs, Shabab Al-Ahly.

  30. GeorgeViarl说道:

    In the world of football, Atletico Madrid https://spain.atletico-madrid-ar.com has long been considered the second most important club in Spain after the dominant, Real Madrid.

  31. MichaelDrare说道:

    The fascinating story of Ja Morant’s https://spain.atletico-madrid-ar.com meteoric rise, from status from rookie to leader of the Memphis Grizzlies and rising NBA superstar.

  32. JamesUname说道:

    Galatasaray https://turkey.galatasaray-ar.com is one of the most famous football clubs in Turkiye, with a glorious and eventful history.

  33. Jamesjer说道:

    paxlovid for sale: paxlovid pill – buy paxlovid online

  34. Michaelphime说道:

    AC Milan https://italy.milan-ar.com is one of the most successful and decorated football clubs in the world.

  35. Charlesimify说道:

    Ремонт плоской кровли https://remontiruem-krovly.ru в Москве, цена работы за 1 м?. Прайс лист на работы под ключ, отзывы и фото.

  36. ThomasEnawl说道:

    пакеты бумажные с логотипом https://salavat-rik.ru

发表回复

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