Avatar billede thedeathart Nybegynder
14. juni 2004 - 22:15 Der er 25 kommentarer og
2 løsninger

IP ban script til hjemmeside.

Hej..

Jeg har for igennem længere tid oplevet spam på min hjemmeside.
Derfor har jeg lavet ip-loggin af alt hver der foregår.

Nu er det sket igen, og personen er blevet meldt til sin udbyder

Men kan jeg lave et ip-ban så personen ikke kan kommer ind igen ?

IP'en er: 80.167.117.2
Avatar billede jaw Nybegynder
14. juni 2004 - 22:18 #1
Du kan jo gemme personens IP i din database f.eks. i en ban-tabel med $_SERVER['HTTP_REFERER'];

Så kan du jo hver gang en bruger skal lave et indlæg, søge igennem databasen afvise indlæg hvis brugerens IP står i databsen...

Forståeligt? :)
Avatar billede thedeathart Nybegynder
14. juni 2004 - 22:21 #2
ja, men jeg vil helst lave et TOTAL ban, så bruger ALDRIG kan komme ind igen.
Avatar billede thesurfer Nybegynder
14. juni 2004 - 22:21 #3
Som jaw skrev..

Eksempel (pseudo-kode, da jeg ikke helt kan PHP)
---
<?
opret forbindelse til databasen
test nuværende ip mod ban-ip
hvis den ip'en findes i ban-ip, send brugeren til "banned.php": header("location: banned.php");
luk forbindelsen til databasen igen
?>

resten af din side her..
---
Avatar billede thesurfer Nybegynder
14. juni 2004 - 22:22 #4
Der skal nok vendes om, på rækkefølgen af disse linier:

hvis den ip'en findes i ban-ip, send brugeren til "banned.php": header("location: banned.php");
luk forbindelsen til databasen igen
Avatar billede jaw Nybegynder
14. juni 2004 - 22:22 #5
Du mener så vedkommende slet ikke kan komme ind på din side?
Avatar billede thesurfer Nybegynder
14. juni 2004 - 22:25 #6
Min kodestump indsætter du i filen "checkban.php".

Så indkluderer du filen på ALLE dine sider, ved at putte denne linie i toppen af ALLE siderne:

<!-- #include file="checkban.php" -->
Avatar billede jaw Nybegynder
14. juni 2004 - 22:27 #7
<? include("checkban.php"); ?>

ville så være mit bud :) Den anden kender jeg nu ikke i PHP? Men princippet er jo nok det samme...
Avatar billede cgroup Nybegynder
14. juni 2004 - 22:28 #8
Du skal ind og rette i hosts.deny filen i linux systmet skulle jeg mene, eller bare lukke for ham i firewallen
Avatar billede phpwiz Nybegynder
14. juni 2004 - 22:30 #9
opret en fil der hedder : .htaccess

der indeholder :

allow from all
deny from 80.167.117.2
Avatar billede thesurfer Nybegynder
14. juni 2004 - 22:30 #10
jaw> min linie var SSI og ikke PHP.. nok derfor :-)
Avatar billede thedeathart Nybegynder
14. juni 2004 - 22:32 #11
ser dette her rigtigt ud ?

<?php

ipen = $_SERVER['HTTP_REFERER'];

$qu = mysql_query("SELECT ip FROM banlist") or die(mysql_error());
$row = mysql_fetch_array($qu);

if ( $row[ip] =  $ipen ) { header("location: about:blank"); }

?>
Avatar billede jaw Nybegynder
14. juni 2004 - 22:35 #12
Ville nok bruge:
<?php

ipen = $_SERVER['HTTP_REFERER'];

$qu = mysql_query("SELECT ip FROM banlist WHERE ip = '$ipen'") or die(mysql_error());
$antal = mysql_num_rows($qu);

if ($antal > 0) { header("location: about:blank"); }

?>

Men må desværre indrømme, at phpwiz's forslag nok er bedre...

Thesurfer -> Tænkte nok det var noget i den stil :)
Avatar billede thedeathart Nybegynder
14. juni 2004 - 22:39 #13
jo.. tror jeg bruger både .htaccess og script

mit webhotel tillader htaccess, men just i case :)
Avatar billede phpwiz Nybegynder
14. juni 2004 - 22:40 #14
hvis du kan benytte .htaccess så er der ingen grund til at bruge script,

de ipadresser du deny'er i .htaccess filen, kommer _ikke_ igennem, lige meget hvad ...
Avatar billede thedeathart Nybegynder
14. juni 2004 - 22:41 #15
jaw, ligger du et svar, så får dig og phpwiz points
Avatar billede jaw Nybegynder
14. juni 2004 - 22:42 #16
erhm, ja da... men hvis du ikke benytter mit forslag, behøver du jo ikke give mig point...
Avatar billede thedeathart Nybegynder
14. juni 2004 - 22:43 #17
til flere ip'er skal jeg så bare skrive flere gange "deny" eller ?
Avatar billede phpwiz Nybegynder
14. juni 2004 - 22:44 #18
allow from all
deny from 1.2.3.5
deny from 5.4.2.2
deny from 234.234.234.2
osv osv
Avatar billede phpwiz Nybegynder
14. juni 2004 - 22:45 #19
og så er det jo nemt hvis du har en gæstebog, hvor du kan se ip'adresser, hvis de så spammer så kan du lave en admin ting, hvor du ved et tryk på et link, kan tilføje den ip adresse til din .htaccess fil !...

mulighederne er mange.
Avatar billede thedeathart Nybegynder
14. juni 2004 - 22:46 #20
jeg bruger både php og htaccess.. lidt paranoia må man vel godt være..

og jeg lavede en whois på www.ripe.net så fik jeg 2 ip'adresser mere, så jeg vil banne dem allesammen.
Avatar billede jaw Nybegynder
14. juni 2004 - 22:47 #21
hehe, siger tak og held og lykke med at holde folk ude :)
Avatar billede jaw Nybegynder
14. juni 2004 - 22:49 #22
Og forresten, så bøvede jeg da lidt dér !

$_SERVER['HTTP_REFERER'] skal udbyttes med $_SERVER['REMOTE_ADDR']

Hvordan jeg kunne f**** det op ved jeg ikke, beklager...
Avatar billede thesurfer Nybegynder
14. juni 2004 - 22:54 #23
Jeg håber ikke at du har tænkt dig at banne 80.167.64.0 - 80.167.127.255 ..
Avatar billede xyborx Nybegynder
15. juni 2004 - 09:28 #24
Det vil nok også være smart at kalde exit så siden stopper med at køre, efter header('Location ...'), ellers har han stadig en chance for at poste spam, udfra en cachet udgave af siden.
Avatar billede huutt Nybegynder
03. juli 2004 - 14:44 #25
<?
$IPs; // Ipadresser der skal bannes fra siden
$IPs[0] = "xxx.xxx.xxx.xxx"
$IPs[1] = "xxx.xxx.xxx.xxx"
$IPs[2] = "xxx.xxx.xxx.xxx"
osv..

$a = count($IPs);
  for ($x = 0; $x < $a; $x++) {
  if ($_SERVER['REMOTE_ADDR'] == $IPs[$x]) { 
    header("location: about:blank");
  }
  }

?>

sæt dette i toppe af din side
Avatar billede huutt Nybegynder
03. juli 2004 - 14:48 #26
men jeg vil anbefale .htaccess med deny handlinger da det beskytter hele siden og dens undermapper hvorimod at de andre script kun beskytter en fil af siden
Avatar billede thesurfer Nybegynder
04. juli 2004 - 19:20 #27
"hvorimod at de andre script kun beskytter en fil af siden": jae.. tricket er jo at inkludere filen i toppen af alle *vigtige* dokumenter.

F.eks.:
- Synderen må godt læse i gæstebogen, men ikke skrive i den
- Synderen må ikke få adgang til gæstebog-området, men må godt se andre områder af sitet
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester