Bekijk Volledige Versie : Aantal referer's verbieden doormiddel van een htaccess
Om spam te voorkomen probeer ik al dagen lang sommige referer's te verbieden doormiddel van een htaccess bestand.
Via Google heb ik een manier hiervoor gevonden:
/var/www/html/.htaccess
RewriteEngine on
Options +FollowSymlinks
RewriteCond %{HTTP_REFERER} himado.in [NC,OR]
RewriteCond %{HTTP_REFERER} yanqiao.com [NC,OR]
RewriteCond %{HTTP_REFERER} qvodbt.com [NC,OR]
RewriteCond %{HTTP_REFERER} enterupload.com [NC,OR]
RewriteCond %{HTTP_REFERER} unoxxx.com [NC,OR]
RewriteCond %{HTTP_REFERER} 95kxw.com
RewriteRule !^403\.shtml$ - [F]
Maar als ik dit toepas zie ik dat min var/log/httpd/error.log bestand vol komt te zitten met deze lijnen:
[Tue Aug 16 23:58:51 2011] [warn] [client 121.14.162.87] mod_include: Options +Includes (or IncludesNoExec) wasn't set, INCLUDES filter removed, referer: http://www.uy456.com/html/2/18487.html
[Tue Aug 16 23:58:52 2011] [warn] [client 118.0.103.52] mod_include: Options +Includes (or IncludesNoExec) wasn't set, INCLUDES filter removed, referer: http://himado.in/?keyword=%E3%82%AB%E3%82%A4%E3%82%B8
[Tue Aug 16 23:58:58 2011] [warn] [client 221.89.29.212] mod_include: Options +Includes (or IncludesNoExec) wasn't set, INCLUDES filter removed, referer: http://himado.in/?keyword=%E3%82%AB%E3%82%A4%E3%82%B8
[Tue Aug 16 23:59:00 2011] [warn] [client 60.39.155.66] mod_include: Options +Includes (or IncludesNoExec) wasn't set, INCLUDES filter removed, referer: http://himado.in/?keyword=%E3%82%AB%E3%82%A4%E3%82%B8
Overigens heb ik ook alle error pagina's zoals 403,404 en 405 geupload in /var/www/html
Maar toch blijft mijn error.log bestand vol lopen die ik elke dag moet legen omdat hij zo'n 5 tot 10 MB wordt aan het eind van de dag.
Graag wil ik hiervan af, kan iemand mij hiermee helpen.
Het gaat hier om een CentOs Linux server met Direct Admin waar Apache 2.2.19 op draaid en ConfigServer Security & Firewall - csf v5.34
Triloxigen
17/08/11, 15:28
Ik denk dat het nogal een nutteloze opgave is om dat via referers te gaan doen gezien de hoeveelheid en de wisselende referers.
Kun je iets meer vertellen over wat voor site je hebt en op wat voor manier er gespammed wordt? Het kan de moeite lonen om:
- Akismet te gebruiken
- ReCAPTCHA te gebruiken bij registratie en bijvoorbeeld eerste paar berichten
- Geen url's te laten posten voor gebruikers met minder dan 10, 25, 50 of 100 posts.
Op die manier hou je veruit de meeste spam tegen en is het echt 100% handwerk geworden om te spammen.
We kunnen je wel helpen met een htaccess op basis van referrers, maar vertel ons eens wat meer over de site en de doelstelling. Wat zijn deze bezoekers en hoe komen ze op je site? Ik zie op zich geen fouten in je htaccess. Probeer als laatste regel eventueel RewriteRule .* - [F] en zet eventueel de Options-regel boven de RewriteEngine On, al lijkt me dat niet erg relevant. Misschien heb je nog iets aan http://www.besthostratings.com/articles/block-referrer-spam.html.
Ik zie zo geen logica tussen de mod_rewrite regels en de foutmelding in je error_log, deze is er wel? Maak je trouwens gebruik van SSI (Server Side Incudes)? Je kunt proberen er Options +FollowSymLinks +Includes van te maken.
Kun je iets meer vertellen over wat voor site je hebt en op wat voor manier er gespammed wordt? Het kan de moeite lonen om:
- Akismet te gebruiken
- ReCAPTCHA te gebruiken bij registratie en bijvoorbeeld eerste paar berichten
- Geen url's te laten posten voor gebruikers met minder dan 10, 25, 50 of 100 posts.
Op die manier hou je veruit de meeste spam tegen en is het echt 100% handwerk geworden om te spammen.
We kunnen je wel helpen met een htaccess op basis van referrers, maar vertel ons eens wat meer over de site en de doelstelling. Wat zijn deze bezoekers en hoe komen ze op je site? Ik zie op zich geen fouten in je htaccess. Probeer als laatste regel eventueel RewriteRule .* - [F] en zet eventueel de Options-regel boven de RewriteEngine On, al lijkt me dat niet erg relevant. Misschien heb je nog iets aan http://www.besthostratings.com/articles/block-referrer-spam.html.
Je kunt proberen er Options +FollowSymLinks +Includes van te maken.
Het gaat hier niet om een forum, ik heb namelijk zelf een Joomla website en heb daarbij alle benodigde hulpmiddelen zoals captcha enz dus dat is mijn probleem niet.
Mijn probleem is niet met een van de domeinen op mijn server maar geheel mijn server.
Ik gebruik Custombuild voor Direct Admin, al mijn software houd ik op to date.
Een klein voorbeeld vanuit mijn Apache Status pagina:
117.41.160.137 localhost GET /d2/files/7/ts6wtgj0vmopqg/\xbd\xad\xcb\xd5\xdb\xaa\xdc\xf6\xd7\xd4\xc5\xc4\x cd\xea\xd5\xfb\xb0\xe64.avi HTTP/1.1
Niet 1 maar tientallen regels telkens, dit zorgt voor een dikke log bestand in var/log/httpd/homedir.log ik weet overigens niet of dit ook andere gevolgen heeft voor mij zoals Dataverkeer, maar aangezien die bestanden niet op mijn server staan denk ik van niet.
En die spam referer's het zijn bijna allemaal website uit China geen gek idee wat die mafkezen willen bereiken, echt raar dat die kinderen niks anders te doen hebben.
Ook 3 regels uit mijn var/log/html/error_log bestand:
[Thu Aug 18 12:09:51 2011] [error] [client 77.12.233.101] File does not exist: /var/www/html/d2, referer: http://70.85.48.252/bt/htm_data/4/1004/402560.html
[Thu Aug 18 12:11:44 2011] [error] [client 60.63.224.199] File does not exist: /var/www/html/d2, referer: http://kuaibo.us/movie.php?mid=1273
[Thu Aug 18 12:12:24 2011] [error] [client 112.98.148.136] File does not exist: /var/www/html/d2, referer: http://b.wowoar.info/viewthread.php?tid=337994&extra=page%3D28
En ga zo maar door dus het heeft inderdaad geen nut om die referer's 1 voor 1 te verbieden.
Ook door deze rotzooi loopt mijn error.log bestand redelijk vol aan het eind van de dag.
Is dat een punt?
Ik vind het geen lekker gevoel.
Trouwens die .htaccess bestand om Options +FollowSymLinks +Includes toetevoegen heeft geholpen ik niet meer die errors:
mod_include: Options +Includes (or IncludesNoExec) wasn't set
Mischien wil ik alles te goed hebben en heeft bijna iedereen last van dit soort dingens, maar zoals ik ook bovend heb vermeld is dit een rot gevoel.
Ik heb eerder geprobeerd om landen als Chine, Japan, Korea enz te verbieden met Country IP Block maar blijkbaar heeft dat ook geen nut.
Lijkt mij op dit moment meer een poging tot referer spam.
Websites bezoeken met refers naar je eigen site. Vervolgens hopen dat er ergens log bestanden geindexeerd worden die dan weer een klikbare link terug bevat.
Wat wij ik in het verleden heb gebruikt voor een site die een slashdot effect te verwerken kreeg is:
RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} !^CoralWebPrx
RewriteCond %{QUERY_STRING} !(^|&)coral-no-serve$
RewriteCond %{REQUEST_URI} !^/checkout(.*) [NC]
RewriteCond %{REQUEST_URI} !^/customer(.*) [NC]
RewriteCond %{HTTP_COOKIE} heavyloaduser=true [OR]
RewriteCond %{HTTP_REFERER} slashdot\.org [NC,OR]
RewriteCond %{HTTP_REFERER} digg\.com [NC,OR]
RewriteCond %{HTTP_REFERER} blogspot\.com [NC,OR]
RewriteCond %{HTTP_REFERER} reddit\.com [NC,OR]
RewriteCond %{HTTP_REFERER} stumbleupon\.com [NC,OR]
RewriteCond %{HTTP_REFERER} twitter\.com [NC,OR]
RewriteCond %{HTTP_REFERER} geenstijl\.nl [NC,OR]
RewriteCond %{HTTP_REFERER} bit\.ly [NC]
RewriteRule ^(.*)$ http://%{HTTP_HOST}.nyud.net%{REQUEST_URI} [R=302,L,CO=heavyloaduser:true:%{HTTP_HOST}]
Bovenstaande .htaccess zal bezoekers vanaf de vermelde websites redirecten met een 302 temporary redirect naar [jouwdomein].nyuyd.net
en zet tegelijkertijd een cookie dat het een van de heavyloadusers is.
Als gevolg hiervan zal deze gebruiker voor elke aanvraag naar de reverse proxy cache gestuurd worden. Terwijl aanvragen van de proxy of je reguliere bezoekers gewoon op je site terecht komen.
De heavy load users zien je site ook, maar worden niet door je eigen server bedient. Dit scheelt bandbreedte en systeembelasting als je geslashdot bent (of op geenstijl staat).
Gezien onze .htaccess regels en wat je zelf ook al hebt, kan ik niet anders concluderen dan dat wat je hebt correct zou moeten functioneren.
Vergeet niet dat je toegang kunt blokkeren tot je website. Dit wil niet zeggen dat de aanvragen niet in je logfiles verschijnen. Hiervoor moet je juist voorkomen dat de aanvragen je apache omgeving bereiken.