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

/ 183,174评论 / 461936阅读 / 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. Billyeroge说道:

    https://amoxila.pro/# amoxicillin from canada

  2. Billyeroge说道:

    https://zithromaxa.store/# purchase zithromax z-pak

  3. CharlesGib说道:

    where to get zithromax: can you buy zithromax over the counter – zithromax 250 price

  4. WalterLoult说道:

    взлом кошелька
    Как сберечь свои данные: страхуйтесь от утечек информации в интернете. Сегодня сохранение личных данных становится всё более важной задачей. Одним из наиболее часто встречающихся способов утечки личной информации является слив «сит фраз» в интернете. Что такое сит фразы и в какой мере обезопаситься от их утечки? Что такое «сит фразы»? «Сит фразы» — это смеси слов или фраз, которые часто используются для доступа к различным онлайн-аккаунтам. Эти фразы могут включать в себя имя пользователя, пароль или иные конфиденциальные данные. Киберпреступники могут пытаться получить доступ к вашим аккаунтам, с помощью этих сит фраз. Как охранить свои личные данные? Используйте запутанные пароли. Избегайте использования легких паролей, которые просто угадать. Лучше всего использовать комбинацию букв, цифр и символов. Используйте уникальные пароли для каждого аккаунта. Не используйте один и тот же пароль для разных сервисов. Используйте двухэтапную аутентификацию (2FA). Это вводит дополнительный уровень безопасности, требуя подтверждение входа на ваш аккаунт по другое устройство или метод. Будьте осторожны с онлайн-сервисами. Не доверяйте персональную информацию ненадежным сайтам и сервисам. Обновляйте программное обеспечение. Установите обновления для вашего операционной системы и программ, чтобы уберечь свои данные от вредоносного ПО. Вывод Слив сит фраз в интернете может повлечь за собой серьезным последствиям, таким как кража личной информации и финансовых потерь. Чтобы обезопасить себя, следует принимать меры предосторожности и использовать надежные методы для хранения и управления своими личными данными в сети

  5. Richardfrota说道:

    doxycycline without prescription: 200 mg doxycycline – buy doxycycline for dogs

  6. Billyeroge说道:

    http://zithromaxa.store/# zithromax drug

  7. MarvinMek说道:

    doxycycline 50mg doxycycline 50 mg doxycycline 500mg

  8. HenryIsona说道:

    generic zithromax azithromycin: zithromax order online uk – zithromax 250 mg australia

  9. Billyeroge说道:

    http://gabapentinneurontin.pro/# neurontin brand name 800mg

  10. Billyeroge说道:

    https://prednisoned.online/# can i order prednisone

  11. HenryIsona说道:

    can you buy amoxicillin over the counter in canada: where to buy amoxicillin – how to buy amoxicillin online

  12. CharlesGib说道:

    canadian pharmacy amoxicillin: amoxicillin 500mg cost – where can you get amoxicillin

  13. HenryIsona说道:

    purchase doxycycline online: 100mg doxycycline – doxycycline generic

  14. CharlesGib说道:

    otc prednisone cream: 20mg prednisone – cost of prednisone in canada

  15. HenryIsona说道:

    neurontin 300 mg capsule: neurontin price australia – buy neurontin 100 mg

  16. HenryIsona说道:

    zithromax capsules price: zithromax over the counter uk – zithromax 250mg

  17. HenryIsona说道:

    doxycycline mono: buy doxycycline cheap – buy doxycycline without prescription

  18. MarvinMek说道:

    amoxicillin where to get where can i buy amoxicillin over the counter amoxicillin no prescipion

  19. Billyeroge说道:

    https://prednisoned.online/# prednisone 20mg price in india

  20. MarvinMek说道:

    zithromax online buy generic zithromax online zithromax 500 without prescription

  21. 中華 ラブドール あなたの人形をより魅力的に見せてください:あなたの崇拝人形化粧のためのマニュアル

  22. MarvinMek说道:

    can i buy zithromax over the counter in canada purchase zithromax online zithromax canadian pharmacy

  23. Billyeroge说道:

    https://zithromaxa.store/# buy zithromax no prescription

  24. CharlesGib说道:

    odering doxycycline: how to order doxycycline – buy doxycycline online uk

  25. Richardfrota说道:

    amoxicillin 800 mg price: amoxicillin order online no prescription – amoxicillin 500mg capsules price

  26. CharlesGib说道:

    buy amoxicillin 500mg capsules uk: amoxacillian without a percription – order amoxicillin no prescription

回复 trampailt 取消回复

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