webForumDet fria alternativet

.htaccess problem med php

9 svar · 399 visningar · startad av matissen

matissenMedlem sedan feb. 200513 inlägg
#1

Jag försöker skapa en autoban på min sida om något försöker lista undermapper etc. Tänkte för så att jag har en htaccess-fil som om hindrar från att listar och skickar till en php-fil som bannar.

Min .htaccess-fil ser ut så här:

Options -Indexes
ErrorDocument 400 /errorpages/error400.php
ErrorDocument 401 /errorpages/error401.php
ErrorDocument 402 /errorpages/error402.php
ErrorDocument 403 /errorpages/error403.php
ErrorDocument 404 /errorpages/error404.php

Sedan ser min error404.php fil (och de andra errorfilerna) ut så här:

<?PHP 

include "connection.php";
$expires = time() + '20';
$ip = $_SERVER['REMOTE_ADDR']; 
$query = "INSERT INTO bans (ip, expires) VALUES ('$ip', $expires)";
$result = mysql_query($query);

?>
<center>
<table width=500 cellpadding=10>
<tr>
	<td>
	<center>
		<b>Denna sida är inte för allmänheten.</b><br><br>
		Tyvärr måste jag av säkerhetskäl blocka din IP adress: <?PHP echo $ip;?>
 		i 24 timmar.
	<br><br>
		/Administratör
	</center>
	</td>
</table>
</center>

Det funkar nästan. Om man försöker komma in på en undermapp kommer "TILLTRÄDE..." upp, och IP med tid loggas i bans-tabellen.

Problemet är att man loggas ÄVEN om man är inne på tillåtna sidor (där inget errormeddelande kommer upp). Det ser ut att funkar, dvs man kan surfa som vanligt på sidan, men varje klick på sidan ger en till logg i bans-tabellen. Jag antar att det är min error404.php som felar, men vad är det som felar?

Eller är det .htaccessfilen?

Sedan är tanken att ha en fil i header som kollar av om man blivit banned när man försökt komma in på tillåtna sidor, och om man har det så kommer ett error om att man blivit bannad.

Hilfe, hilfe......

UlfTMedlem sedan maj 20018 027 inlägg
#2

En liten fråga, varför detta ytterst ovänliga felmeddelande? Måste man utgå från att folk har något skumt för sig bara för att de försöker nå en sida som inte finns?

matissenMedlem sedan feb. 200513 inlägg
#3

fixat :)

kan någon vara snäll och hjälpa mig med problemet....

UlfTMedlem sedan maj 20018 027 inlägg
#4

En tanke kan ju vara att något av dessa fel faktiskt uppstår när man surfar in på någon av dina tillåtna sidor. Kan det vara så att du länkar felaktigt till något?

GislavedMedlem sedan nov. 20041 740 inlägg
#5

Det är väl ganska troligt att du har en bild eller länk på de andra sidorna som inte finns på den angivna sökvägen?

matissenMedlem sedan feb. 200513 inlägg
#6

Fast även om jag tar bort de andra och bara behåller error404 raden (vilket bara borde för så att error404.php filen endast körs när någon går till en sida som inte finns) så loggas IP + tid i bans, även om man är på sidor som finns.

Jag trodde detta var ett enkelt problem och att det var jag som var kass på hur man ska utforma htaccess eller hur php:n är skriven.

Jag vill att man inte ska kunna lista andra filer eller mappar, utan att man då blir bannad. Borde inte detta funka? Och nu borde man ju bara komma till error.php-sidorna om man gör något som orsakar error 400-404 eller hur?

Fler förslag?

Gislaved - preciserad vad du menar med det du skrev? Förstår inte riktigt... vilken sökväg?

UlfTMedlem sedan maj 20018 027 inlägg
#7

Vad menar du med bannad? Man kommer ju fortfarande åt de andra sidorna efter ett sådant fel. Jag tycker fortfarande det är överdriven paranoia att banna folk som råkar använda felaktiga adresser. Det räcker väl med en humoristisk 404-sida?

Gislaved menar nog samma sak som jag, dvs att du länkar felaktigt på dina sidor. Anta att du har lagt in en bild på sidan. Bilden ligger på din webserver. Bildens verkliga sökväg är "images/bild.jpg". Men du har på din sida refererat den som <a href="image/bild.jpg">. Du har alltså stavat fel på katalognamnet, och då hittas inget på den angivna sökvägen. Därmed uppstår något av felen 400-404, och besökaren loggas. Jag påstår inte att du har gjort just detta fel. Men det kan ju tänkas att du har gjort något liknande fel i den stilen. Du kanske ska kolla igenom alla länkar som kan tänkas vara fel.

matissenMedlem sedan feb. 200513 inlägg
#8

Jag tror inte jag länktat något fel.

Och det kommer inte att gå in på några andra sidor på 24 timmar om man blivit bannad. Det kommer ligga en funktion i header som läser av Ip och kollar banstabellen. Finns ip där kommer man inte in på sidan utan får ett meddelande om att man blivit bannad och hur länge det är kvar på banningen.

Det är inte paranoia som gör det, utan det finns helt enkelt saker som behöriga ej ska ha tillgång till.

aasahMedlem sedan mars 20034 471 inlägg
#9

Jag kan förstå hur du tänker men jag tror att du förbiser något. Folk som surfar via AOL och proxy servrar. Det måste inte vara samma person 18 timmar senare tex, bara för att det är samma ipnummer!!

Jag har förhoppningsvis stängt mina underkataloger genom att helt enkelt ha en indexfil i dem som kollar om admin är inloggad och den som kommer surfande, i så fall fritt fram, i annat fall redirect till hemsidans welcome-sida. Du skulle ju kunna göra på liknande sätt och bara lägga till att ip-nummret loggas utan att för den skull fräsa ifrån om det. Om personen framhärdar kan du ju slänga ur dig en kommentar då. Folk lär ju inte skriva fel flera gånger i rad. Och genom att lagra nr:t får du ju koll på hur vanligt det är.

Men... eftersom övriga sidor ger felmeddelande, det är inte så att du lägger dessa http-filer i hemsidans rot, väl? För i så fall kommer ju harmlöst felskrivande av en sidas adress att ge detta resultat. Alltså någon råkar skriva:
https://www.yoursite.com/welcomme.php istället för https://www.yoursite.com/welcome.php tex....

matissenMedlem sedan feb. 200513 inlägg
#10

indexfil skulle kunna vara lösningen. Och i de mest hemliga mapparna skulle man ju kunna ha en ban eftersom de ligger ganska djupt i katalogsystemet så att någon skulle "råka" skriva in den är osannolikt.

Sedan är mycket att detta bara för att jag försöker lära mig mer om PHP, och tänkte detta kunde vara en bra grej.

Tack för det bra tipset!

134 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)