Niektórzy szkicowi webmasterzy w przeszłości konfigurowali wpisy DNS, aby rozpoznawać nazwy domen na naszym adresie IP. To nie był błąd, ponieważ kiedy wdrożyliśmy środki zaradcze dla konkretnej nazwy domeny, nowa nazwa domeny zaczęła się odnosić do naszego adresu IP. Obie te fałszywe nazwy domen zostały zarejestrowane dla tej samej osoby. Mam dodatkowy powód, by podejrzewać, że był to celowy podstęp w niecnych celach. Moja strona jest dobrze znaną publiczną witryną ścigania.
Nie jestem pewien, jakie są intencje sprawcy. Może być uzyskanie pozycji w wyszukiwarce przez zaparkowanie jego domeny na moim adresie IP. Lub może to wymagać próby skryptu między witrynami lub próby włamania do zabezpieczeń IFrame / javascript / flash. Najważniejsze było to, że wskazał dwie różne nazwy domen w różnym czasie na adres mojego serwera.
Obie jego nazwy domenowe zostały zarejestrowane w GoDaddy, więc skontaktowałem się z ich nadużyciami, aby zgłosić, że ich serwery DNS są wykorzystywane do wątpliwej praktyki.
Na początku dodałem kod do mojej strony głównej, aby odpowiedzieć błędem 404 - Nie znaleziono, jeśli HTTP_HOST w adresie URL to nazwa domeny innego faceta. Zrobiłem to, ponieważ myślałem, że to jego błąd. Ale po dowiedzeniu się, że ta sama osoba wskazała następnie inną nazwę domeny na nasz adres IP, musiałem znaleźć lepsze rozwiązanie.
Lepsze rozwiązanie ... Zobacz przykład 2 dla skryptu.
Skonfigurowałem Microsoft IIS do używania jawnych nagłówków hosta dla naszych prawidłowych nazw domen. Następnie utworzyłem nową stronę internetową w IIS, która NIE używała nagłówków hosta i oznaczyłem ją jako „Fałszywe Nazwy Domeny”. Wszelkie nazwy domenowe rozpoznawane na moim serwerze internetowym, które pasują do jednego z moich jawnie zdefiniowanych nagłówków hosta, znajdowałyby drogę do właściwej treści. Ale każda nazwa domeny NIE zdefiniowana w ustawieniu nagłówka hosta, przechodzi do fałszywej witryny nazw domen. Domyślna strona główna tej fałszywej witryny z nazwami domen zawiera skrypt, który wysyła odpowiedź „301 - Moved Permanently”, przekierowując żądanie do Google.com.
Zdecydowałem, że jeśli zamierzamy zatruć wyniki wyszukiwania lub ukraść rankingi, Google może być miejscem do wysyłania ruchu, a tym samym zarabiania na swojej stronie złą wolą od pająków Google.
Dodatkową korzyścią z utworzenia witryny internetowej w celu przechwytywania nieznanych nazw domen ustawionych do rozpoznawania na nasz adres IP jest to, że mogę teraz rejestrować aktywność i sprawdzać, jak często to się dzieje. Ułatwia także testowanie witryny niż wstawianie kodu do poszczególnych stron w celu sprawdzenia poprawności nazw domen i przekierowania w razie potrzeby.
Oto snipit kodu dla tych, którzy korzystają z klasycznej ASP ...
Przykład 1. Odrzucenie nazwy domeny na poziomie strony
Wstaw ten kod do strony głównej ASP, aby odrzucić nieznane nazwy domen
If instr(1, UCase(Request.ServerVariables("HTTP_HOST")), "OURSITE.COM") < 1 Then
Response.Status = "404 Not Found"
Response.Write(response.Status)
Response.End
End If
Przykład 2 - odrzucenie nazwy domeny na poziomie IIS
<%@ Language="VBScript" CodePage=65001%>
<% option explicit%>
<%
'
' Some fraudulent webmasters have in the past set up DNS entries to resolve their domain names to our IP address.
' This file is a counter measure to prevent other domain names from resolving to our site.
' The intent of the fraud may be to gain search engine ranking status for their domain name by pointing it to a
' well known site. Or there could be more going on such as cross-site scripting attacks...
' By using IIS host headers, we explicitly resolve domain names. Any host headers that are not defined in IIS
' land on the Rogue Domain names website which servies up a 301 - Moved Permanently page that redirects to Google.
'--------------------------------------------------------------------------------------------------------------------
Response.Buffer = True
If instr(1, UCase(Request.ServerVariables("HTTP_HOST")), "OURSITE.COM") < 1 Then
Response.Status = "301 Moved Permanently"
Response.AddHeader "location", "http://www.google.com/"
Response.End
End If
%>