2017-11-05 7 views
1

Ich habe eine Website, die einen guten Verkehr generiert, und ich habe festgestellt, dass einige Websites meine Website als Proxies verhüllen und ich habe Probleme bei der Erkennung sie mit PHP, damit ich sie blockieren kann.

Zuerst wenn ich auf diese Proxy-Website zugreifen und ich tun echo $_SERVER['HTTP_HOST'] oder echo $_SERVER['SERVER_NAME'] das Ergebnis ist richtig. Es zeigt mir den Namen der Website, die meine Website tarnt.

Aber wenn ich das tue

if($_SERVER['HTTP_HOST'] == "proxysite.com" || $_SERVER['SERVER_NAME'] == "proxysite.com"){ 
echo "you got it"; 
} 

das Ergebnis null ist

Wenn tun

if($_SERVER['HTTP_HOST'] == "mywebsite.com" || $_SERVER['SERVER_NAME'] == "mywebsite.com"){ 
    echo "you got it"; 
    } 

dann das Ergebnis ist "Sie haben es"

I don‘ Ich weiß viel über virtuelle oder reale IP und SERVER_NAME oder HTTP_HOST aber das sieht nach einem sicherheitsrisiko für mich aus und kommt direkt von google.

Alle meine Benutzer, die meine Website auf Google suchen, finden diese Proxy-Website und sie loggen sich auf meiner Website durch diese ein, weil sie auch Cookies und alles verwaltet. Ich kann es nicht glauben. Diese Art von Hack ist so einfach und ein sehr dummes Sicherheitsproblem für 2017. Soweit ich weiß, können diese Websites alle meine Benutzer Login-Informationen erhalten, die durch sie gehen. Ich habe das ganze Internet nach einer Lösung gesucht und das war Javascript. Ich tat das, aber jetzt wurden sie schlau, sie filtern und entfernen alle Javascript Codes.

Also die einzige Option für mich ist $ _SERVER ['HTTP_HOST'] oder $ _SERVER ['SERVER_NAME'], die nicht richtig erkannt werden.

Ich betreibe PHP 7.1 auf NGINX

Jede Lösung, bitte?

myWebsite.com HEADERS

[USER] => www-data 
[HOME] => /var/www 
[HTTP_CF_CONNECTING_IP] => 3a02:3f0e:5260:664:75fb:bb5a:f2a6:1ea3 
[HTTP_COOKIE] => __cfduid=d7711ced6c319ac0aa615de5f64160b561509570260; 
[HTTP_ACCEPT_LANGUAGE] => en-US,en;q=0.8,it;q=0.6,ro;q=0.4 
[HTTP_ACCEPT] => text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8 
[HTTP_UPGRADE_INSECURE_REQUESTS] => 1 
[HTTP_USER_AGENT] => Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36 
[HTTP_CF_VISITOR] => {"scheme":"https"} 
[HTTP_X_FORWARDED_PROTO] => https 
[HTTP_CF_RAY] => 3b8d9bf459da7ea0-BUD 
[HTTP_X_FORWARDED_FOR] => 3a02:2f0e:3260:664:75fb:bb5a:f2a6:1ea3 
[HTTP_CF_IPCOUNTRY] => RO 
[HTTP_ACCEPT_ENCODING] => gzip 
[HTTP_CONNECTION] => Keep-Alive 
[HTTP_HOST] => mywebsite.com 
[REDIRECT_STATUS] => 200 
[SERVER_NAME] => mywebsite.com 
[SERVER_PORT] => 80 
[SERVER_ADDR] => ******hiden.ip 
[REMOTE_PORT] => 34741 
[REMOTE_ADDR] => ****hiden.ip 
[SERVER_SOFTWARE] => nginx/1.13.6 
[GATEWAY_INTERFACE] => CGI/1.1 
[REQUEST_SCHEME] => http 
[SERVER_PROTOCOL] => HTTP/1.1 
[DOCUMENT_ROOT] => /var/www 
[DOCUMENT_URI] => /index.php 
[REQUEST_URI] =>/
[SCRIPT_NAME] => /index.php 
[CONTENT_LENGTH] => 
[CONTENT_TYPE] => 
[REQUEST_METHOD] => GET 
[QUERY_STRING] => 
[SCRIPT_FILENAME] => /var/www/index.php 
[FCGI_ROLE] => RESPONDER 
[PHP_SELF] => /index.php 
[REQUEST_TIME_FLOAT] => 1509882770.658 
[REQUEST_TIME] => 1509882770 

proxyWbsite.com HEADERS

[USER] => www-data 
[HOME] => /var/www 
[HTTP_CF_CONNECTING_IP] => 3a01:3f8:171:2a4c:0:0:0:2 
[HTTP_COOKIE] => __cfduid=dcad0dcc3004b494316f306212dc195911509878400; 
[HTTP_REFERER] => 
[HTTP_ACCEPT] => */* 
[HTTP_USER_AGENT] => Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36 
[HTTP_CF_VISITOR] => {"scheme":"https"} 
[HTTP_X_FORWARDED_PROTO] => https 
[HTTP_CF_RAY] => 3b8f5486a8196349-FRA 
[HTTP_X_FORWARDED_FOR] => 2a01:4f8:171:3a4c:0:0:0:2 
[HTTP_CF_IPCOUNTRY] => DE 
[HTTP_ACCEPT_ENCODING] => gzip 
[HTTP_CONNECTION] => Keep-Alive 
[HTTP_HOST] => proxywebsite.com 
[REDIRECT_STATUS] => 200 
[SERVER_NAME] => proxywebsite.com 
[SERVER_PORT] => 80 
[SERVER_ADDR] => ***hidden.ip 
[REMOTE_PORT] => 14485 
[REMOTE_ADDR] => ***hidden.ip 
[SERVER_SOFTWARE] => nginx/1.13.6 
[GATEWAY_INTERFACE] => CGI/1.1 
[REQUEST_SCHEME] => http 
[SERVER_PROTOCOL] => HTTP/1.1 
[DOCUMENT_ROOT] => /var/www 
[DOCUMENT_URI] => /index.php 
[REQUEST_URI] =>/
[SCRIPT_NAME] => /index.php 
[CONTENT_LENGTH] => 
[CONTENT_TYPE] => 
[REQUEST_METHOD] => GET 
[QUERY_STRING] => 
[SCRIPT_FILENAME] => /var/www/index.php 
[FCGI_ROLE] => RESPONDER 
[PHP_SELF] => /index.php 
[REQUEST_TIME_FLOAT] => 1509879844.936 
[REQUEST_TIME] => 1509879844 
+0

Niether 'HTTP_HOST' noch' SERVER_NAME' sagen Ihnen nichts über Proxy-Nutzung. Der Name 'Host:' ist das HTTP-Anfragefeld.Wobei 'ServerName:' ​​normalerweise ein vordefinierter Name in Ihrem virtuellen Webservers-Host-Bereich ist. – mario

+0

Ich verstehe nicht, wie kommt, wenn ich die 'SERVER_NAME' oder' HTTP_HOST' echo, es fängt die richtige Domain und beide sind gleich mit der Domain proxysite.com, und wenn ich 'SERVER_NAME' oder' HTTP_HOST' in ' if-Anweisung sind beide gleich mit mydomain.com –

+0

Sie sagten mir, dass \t Niether HTTP_HOST noch SERVER_NAME wird mir nichts über Proxy-Nutzung sagen. Es sagt mir, ob ich Echo benutze, aber in der IF-Anweisung sagt es mir nichts und ich sehe den Unterschied zwischen echo und if nicht. Warum unterscheidet sich SERVER_NAME in ECHO dann in der IF-Anweisung? –

Antwort

0

Wenn sie wirklich Ihre Website Proxying, müssen Sie die IP-Adresse des Servers sie‘bestimmen, re verwenden und blockieren sie. Wenn Sie sie daran hindern, Ihre Website zu erreichen, können sie nicht als Proxy fungieren.

Sie sollten sich also Apache, Nginx oder einen anderen Webserver anschauen, die Protokolldateien untersuchen und nach einer Unmenge von Anfragen suchen, die von der gleichen IP stammen, bis Sie sicher sind, dass es diese sind Wer macht diese Anfragen?

Blockieren Sie sie dann auf der Firewall-Ebene oder mithilfe eines Dienstes wie CloudFlare. Beachten Sie, dass die Verwendung eines Dienstes wie CloudFlare Ihnen dabei helfen könnte, diese Art von Problemen zu vermeiden, da sie in der Lage sind, unmenschliche Datenmengen für Sie zu überwachen. Ihr Service ist kostenlos. https://www.cloudflare.com/security/

+0

Ich führe bereits cloudflare und die Proxy-Website läuft cloudflare: Cloud Flare hat viele ips –

+0

Header sind am genauesten wie meine Website-Header. Der einzige Unterschied ist ip und server_name und HTTP_HOST. Ips sind immer anders –

+0

@MihaiGalan Gut, also wenn Sie auf CloudFlare sind, schlage ich vor, ein Ratenlimit zu setzen, so dass eine einzelne Site dann nicht in der Lage ist, Anfragen von ihrer Site an viele andere zu übertragen. Siehe: https://www.cloudflare.com/rate-limiting/ – jaswrks

Verwandte Themen