2017-07-19 6 views
1

Il existe un moyen de contourner la vérification référent d'un site Web? Avec nodeJS comme un proxy ou quelque chose comme ça?Comment contourner la vérification de référenceur de site Web avec NodeJS

Pour info, je dois jouer certains médias sur un serveur, mais ce serveur vérifier la referrer pour une valeur spécifique, si la valeur est pas là, il me redirect sur un 404.

Pour mon apprentissage personnel, je Je voudrais trouver une solution avec nodeJS sans installer un plugin sur le navigateur. Je l'ai déjà fait lors du développement d'une extension (API WebExtension) pour réécrire les en-têtes de la requête et ajouter la valeur du référent.

Merci

MISE À JOUR Voici un exemple de code de ce que je fais maintenant. Le fichier console.log me montre la requête ajoutée mais pas l'inspecteur 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

Que voulez-vous dire "pas dans l'inspecteur Chrome"? Vous effectuez une requête à partir d'un processus de nœud vers un serveur. Chrome n'est pas impliqué. –

+0

Avez-vous de la documentation pour suggérer que 'req.headers ['referer'] = value' fonctionne? Par opposition à la création de votre propre ** demande ** sur laquelle vous avez le contrôle, et dans laquelle vous pouvez spécifier des en-têtes de l'une ou l'autre des façons que je montre dans mon asnwer? –

+0

Vous avez raison. C'est un manque de compréhension de mon côté. L'objectif pour moi était de: - créer un proxy qui obtient une URL (url de médias). - Ce proxy ferait les modifications de la demande d'en-têtes pour ajouter un nouveau référent. De la même manière que le client (navigateur) ne communiquerait pas directement avec l'URL des médias et exposerait leur référant par défaut. – Burolisan

Répondre

0

Spoofing referer (sic) est célèbre trivial: Il suffit d'ajouter l'en-tête à votre demande:

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

Ou lorsque vous créez la demande:

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

Notez que referer a seulement trois r s, pas quatre comme il le ferait s'il était épelé correctement. C'est juste une de ces choses.

+0

Merci pour votre réponse. J'ai ajouté un code pour vous expliquer ce que je fais. – Burolisan