Ip ban class met text file

Door Pepijn , 13 jaar geleden, 3.861x bekeken

Beste medephpers,

Ik had laatst een script nodig om iemand een x aantal uur te verbannen van een pagina. Op mijn login pagina moest een bezoeker 24 uur verbannen worden als deze het wachtwoord meer dan 5 x fout had.

Vandaar dat ik deze class geschreven heb. Ik ben pas een week bezig met programmeren in classes dus alle kritiek is welkom.

Mvg
Pepijn

Gesponsorde koppelingen

PHP script bestanden

  1. ip-ban-class-met-text-file

 

Er zijn 6 reacties op 'Ip ban class met text file'

PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Aaa Trump
aaa Trump
13 jaar geleden
 
0 +1 -0 -1
Nog even aan want meer hergebruik denken:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
  public $filename = NULL;

function
__construct(filename) {
$this->$filename = $filename;
}

?>
Jelmer -
Jelmer -
13 jaar geleden
 
0 +1 -0 -1
Waarom sla je alles op in $this? $content gebruik je niet buiten de methods, dus dan kan je beter een normale variabele gebruiken. En mist $this->position in is_banned? Ik zie hem nergens terugkomen. Bedoelde je daar niet $this->content?

Je manier van ip-adres ophalen werkt averechts. Headers zijn heel gemakkelijk aan requests toe te voegen. Ik hoef nu alleen maar een header Client-IP of X-Forwarded-For mee te sturen met mijn request, en jij pakt het verkeerde adres. Op die manier zou ik bijvoorbeeld jouw ip-adres kunnen verbannen ipv mijn echte adres.

Misschien is het nog een mooie verbetering als je ban_ip() de mogelijkheid geeft om een ander ip-adres te verbannen. Dan kan je deze class ook gebruiken om bijvoorbeeld mensen uit je gastenboek te verbannen wanneer zij ontoepasselijke berichten hebben achtergelaten.


13 jaar geleden
 
0 +1 -0 -1
IP bans zijn bagger aangezien er honderd-duizend-miljoen mogelijkheden zijn om die te omzeilen. Je hebt er eigenlijk niks aan.
Ook vind ik het niet goed dat je gewoon een txt bestand gebruikt. Gebruik liever bijvoorbeeld xml in combinatie met dom.
Ook kan je beter PHP_EOL gebruiken i.p.v. \r\n aangezien dat niet op elk platform (windows, linux, mac) een new line is.
Jelmer -
Jelmer -
13 jaar geleden
 
0 +1 -0 -1
\r\n werkt op alle platformen als een newline, PHP_EOL is afhankelijk van het besturingssysteem. Zou je PHP_EOL gebruiken, en daarna het tekstbestand van een linux-server naar een windows-server verhuizen, dan zou het niet meer werken. Wat dat betreft is het beter om wel \r\n te gebruiken, en niet PHP_EOL.

In XML zie ik niet echt een voordeel hier. XML is leuk als transport-formaat zodat verschillende services tegen elkaar kunnen praten. Zo'n database-bestand als dit zou ik liever zo binair mogelijk willen hebben, zodat het snel in te laden en aan te passen is. Misschien is een sqlite database wel een beter idee? Dat is ook maar een bestand, maar wel best snel. En je kan erin zoeken, zodat je niet meer je hele bestand hoeft in te laden.
Pepijn
Pepijn
13 jaar geleden
 
0 +1 -0 -1
Bedankt voor jullie reacties!

@Karl,
Hoe kan ik dan iemand verbannen? Als IP niet werkt.

Ik heb geen ervaring met xml, ik zal het eens uitzoeken.

@Jelmer
SQlite zie ik wel zitten, ook dat zal ik eens uitzoeken
PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Vdleije .
vdleije .
13 jaar geleden
 
0 +1 -0 -1
@pepijn

Dat kan niet ^^

Om te reageren heb je een account nodig en je moet ingelogd zijn.

Inhoudsopgave

  1. ip-ban-class-met-text-file

Labels

  • Geen tags toegevoegd.

Navigatie

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.