IP's auto toevoegen aan .htaccess
Php ers, Dit is mijn eerste script wat ik deels met hulp heb gemaakt via phphulp.nl Dus het leek mij wel fair om de code dan ook maar weer te posten op phphulp.nl. Het is dus mijn eerste zelf gemaakte scirpt dus boor me aub niet gelijk de grond in maar kom met opbouwende kritiek ;). Wat doet dit script? Dit script maakt het mogelijk om automatisch IP adressen toe tevoegen aan een htaccess file. Ook telt het script de regels in de .htaccess file komen die boven een aantal regels leegt ie de htaccess weer. Er word ook gekeken of het IP adres al in de .htaccess file staat zodat die niet te snel volloopt. Je kan dus bijvoorbeeld met een unieke link iemand toegang geven tot je FTP server zonder dat die een login krijgt. Wat je ook kan doen met dit script en daargebruik ik het zelf ook voor is als je achter je website een ftp server hebt hangen waar je bestanden op hebt staan voorkomen dat mensen gaan dieplinken. Ik hou ook een timelog bij. Je hebt intotaal 3 bestanden nodig; bestand 1 gewoon in kladblok opslaan allebestanden selecteren en dan opslaan als .htaccess. Plaats .htaccess in de root van een folder die je wil beveiligen. Dit moet er in de file staan: AuthType Basic order deny,allow deny from all bestand 2 is een gewone txt file waar je niks voor hoeft in te vullen. Deze file moet je opslaan als timelog.txt op deze manier kun je zien wie er allemaal je site bezoekt. bestand 3 is het php bestand. Ik zelf heb hem opgeslagen als ip.php. Maar je kan hem ook in een bestaande site hangen. Wijzig natuurlijk wel even waar je de 2 andere bestanden hebt staan.
<?php
$datum = date("j F Y");
$tijd = date("H:i:s");
// Hier maak ik een timer aan voor de timelog hier onder in het script
$ip = $_SERVER['REMOTE_ADDR'];
// Hier leg ik het IP adres vast van de bezoeker. Deze heb ik nodig voor de Htaccess file later in het script.
$file = "intranet/.htaccess";
// Hier leg ik vast waar de .htaccess file kan worden gevonden op de server.
$aLines = file($file);
$iAantal = count($aLines);
// Hier in laat ik de regels tellen in het bestand .htaccess
if($iAantal > 10)
// Hier in vertel ik het script dat er maximaal 10 regels mogen zijn in .htacces file.
// Dit doe ik omdat er anders een lijst van ontelbare IP adressen komen.
// Het nadeel van ook teveel IP adressen is dat als ze eenmaal in de .htacces file zitten ze toegang hebben.
{
$sContent = "
AuthType Basic \r\n
<Limit GET POST> \r\n
order deny,allow \r\n
deny from all \r\n ";
$fp = fopen($file, 'w');
fwrite($fp, $sContent);
fclose($fp);
}
// Hier vertel ik dat hij omdat er meer dan 10 regels zijn dat hij de file moet legen en een aantal standaard regels moet toevoegen.
// Deze standaard regels moeten er altijd ingezet worden anders zou de .htacces file leeg zijn en de directory dus onbeveiligd
$content = file_get_contents("$file");
if(strstr($content, $ip)){
echo " <br/><br/><b>U bezoekt deze site vanaf dit IP adres: $ip. <br/>
Het gebruik van deze site wordt bijgehouden!<b> ";
}
// Hierin laat ik .htaccess uitlezen. Dit doe ik om ervoor tezorgen dat 1 en het zelfde IP adres maar 1 keer word toegevoegd.
// Als ik dat niet zou doen zou de .htaccess file iedere keer vol lopen
if(!strstr($content, $ip)){
$file = fopen ("intranet/.htaccess","a");
fputs ($file, "allow from $ip \r\n");
fclose($file);
}
// Hier laat ik het IP adress toevoegen aan de .htaccess file als hij er nog niet instaat
$file2 = fopen ("intranet/15 Systeembeheer/timelog.txt","a");
fputs ($file2, "Toegang gegeven aan IP $ip Op $datum om $tijd \r\n \r\n");
fclose($file2);
// Hier laat ik een timelog aanmaken. Hier worden alle Ipadressen toegevoegt. Hier kijk ik niet naar het feit of ze wel of niet
// al eens op de site geweest.
?>
Reacties
0