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
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
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 –
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? –