2017-10-18 2 views
0

Ich injiziere JS-Code auf verschiedenen Websites (mit Selenium und Python), um POST-Anfragen an meinen lokalen Webserver zu senden. Auf einigen Websites funktioniert es gut. Aber meistens bekomme ich die Anfragen nicht. Es ist aufgrund der Inhaltssicherheitsrichtlinie bekannt.Wie man Ajax Content Security Policy Richtlinie zu überwinden?

Zum Beispiel, wenn ich versuche, den Code mit Konsole in Chrome auf github.com zu laufen, erhalte ich eine folgende Fehlermeldung:

Refused to connect to ' http://10.50.50.127:7777/ ' because it violates the following Content Security Policy directive: "connect-src 'self' uploads.github.com status.github.com collector.githubapp.com api.github.com www.google-analytics.com ...".

Mein Code sieht wie folgt aus:

function sendData() { 
      var request = new XMLHttpRequest(); 
      request.open('POST', 'http://10.50.50.127:7777', false); 
      request.send("test"); 
     } 

I habe einige Recherchen angestellt und eine mögliche Lösung gefunden - einen lokalen Proxy-Server zu verwenden und Daten an einen relativen Pfad wie "/ test" zu senden. Aber es ist ziemlich kompliziert, einen Proxy-Server von Grund auf neu zu schreiben.

Was kann ich tun, um diese Inhaltssicherheitsrichtlinie zu umgehen?

Antwort

0

Wenn Sie über beide Seiten gesteuert haben, können Sie verwenden.

https://easyxdm.net/wp/

Grüße

+0

Leider habe ich keine Kontrolle über das Back-End. –

+0

Machst du einen Ajax Anruf bei deinem Server? –

+0

Die Websites gehören nicht mir, daher habe ich keinen Zugriff auf die Backend-Seite –

0

Habe ich es! Stellt sich heraus, Sie können nur alle Sicherheitskontrollen deaktivieren:

chrome_options = webdriver.ChromeOptions() 
chrome_options.add_argument('--disable-web-security') 
chrome_options.add_argument('--allow-running-insecure-content') 
browser = webdriver.Chrome(chrome_options=chrome_options) 
Verwandte Themen