2017-07-19 39 views
1

有一种方法可以绕过引荐者检查网站吗? 像nodeJS像代理或类似的东西?如何通过NodeJS绕过引用者检查网站

有关信息,我必须发挥一些媒体服务器,但该服务器检查引用一个特定的值,如果这个值是不是在这里,它重定向我在404

对于我个人的学习,我想在nodeJS上找到解决方案,而无需在浏览器上安装插件。我已经开发了一个扩展(WebExtension API)来重写请求头并添加引用值。

感谢

UPDATE 这里是什么,我现在在做一个示例代码。 console.log显示添加的请求,但不显示Chrome检查器。

var http = require('http'); 
var httpProxy = require('http-proxy'); 
var express = require('express'); 
var app = express(); 

var url = "http://localhost:3001"; // create target server for testing 

var proxy = httpProxy.createProxyServer(); 

// simple url 
app.all("/radio/*", function(req, res) { 

    req.headers['referer'] = 'http://new-referer-url'; 

    proxy.web(req, res, { 
     target: url, 
     headers: req.headers 
    }); 

    console.log(req.headers); // the request is passed here but not in Chrome inspector 


}); 

app.listen(3000); 
+0

你是什么意思“不在Chrome检查员”?您正在从Node进程到服务器进行查询。 Chrome不参与。 –

+0

您是否有文档表明'req.headers ['referer'] = value'有效?与创建您自己拥有**的请求相反,您可以通过该请求控制自己,并且可以使用我以任何方式显示的方式指定标题? –

+0

你说得对。这是我的缺乏理解。 我的目标是: - 创建一个获取URL(媒体网址)的代理。 - 此代理会对添加新引荐来源的标题请求进行修改。 就像客户端(浏览器)不会直接与媒体的URL进行通信并暴露其默认引用者。 – Burolisan

回答

0

欺骗referer(原文如此)是著名的简单:只需将头添加到您的要求:

yourRequest.setHeader("Referer", "the value"); 

或者当你创建请求:

var yourRequest = http.request({ 
    /* ...other options here, host, protocol, etc... */, 
    headers: { 
     Referer: "the value" 
    } 
}); 

注意referer只有三个r s,而不是四个,因为它拼写正确。这只是其中的一个。

+0

感谢您的回复。我添加了一个代码给你解释我在做什么。 – Burolisan