Gå til innhold

[Løst]Helt enkelt antispam script?


Anbefalte innlegg

Hei!

 

Jeg har søkt litt her og litt der uten noe hell om å finne noe enkel antispam php script.

Jeg har tenkt på kansje noen spørsmål eller regne stykker, men er litt usikker hvordan jeg skal få det til? Noen forslag?

Lenke til kommentar
Videoannonse
Annonse

For det første, om du har et brukersystem, så kan du lage alle slike antispam veldig enkel.

 

Du kan først lage 2 rows på databasen som styrer brukerne, og kall dem antibot1 og antibot2 for eksempel.

 

Såå kan du kopiere denne:

 

$kake = mysql_query("SELECT * FROM `brukerne` WHERE `brukernavn` = '{$_SESSION['brukernavn']}'");

$data = mysql_fetch_object($kake);

 

$ab1 = $data->antibot1;

$ab2 = $data->antibot2;

$produkt = $ab1+$ab2;

 

if(isset($_POST['utfor'])){

if($_POST['ab'] == $produkt){

mysql_query("kode for å fjerne antibotsperren");

echo "<center>Jippi, du klarte det.</center>";

} else {

echo "<center>Feil antibotkode.</center>";

}

}

 

echo "<table width=50% align=center><tr><td class=ettellerannet>Antibot!</td></tr>

<tr><td class=noeannet><center></br>Legg sammen tallene, og skriv summen i feltet nedenfor.</br></br><form method=post action=\"\">$ab1 + $ab2 = <input type=text name=ab><input type=submit name=utfor value=\"Ta antiboten\"></form>

</br></br></td></tr></table>";

 

 

Trenger du mer hjelp, så si ifra. ^^

Dette var bare fort gjort.

Kan lages bedre.

Lenke til kommentar
For det første, om du har et brukersystem, så kan du lage alle slike antispam veldig enkel.

 

Du kan først lage 2 rows på databasen som styrer brukerne, og kall dem antibot1 og antibot2 for eksempel.

 

Såå kan du kopiere denne:

 

$kake = mysql_query("SELECT * FROM `brukerne` WHERE `brukernavn` = '{$_SESSION['brukernavn']}'");

$data = mysql_fetch_object($kake);

 

$ab1 = $data->antibot1;

$ab2 = $data->antibot2;

$produkt = $ab1+$ab2;

 

if(isset($_POST['utfor'])){

if($_POST['ab'] == $produkt){

mysql_query("kode for å fjerne antibotsperren");

echo "<center>Jippi, du klarte det.</center>";

} else {

echo "<center>Feil antibotkode.</center>";

}

}

 

echo "<table width=50% align=center><tr><td class=ettellerannet>Antibot!</td></tr>

<tr><td class=noeannet><center></br>Legg sammen tallene, og skriv summen i feltet nedenfor.</br></br><form method=post action=\"\">$ab1 + $ab2 = <input type=text name=ab><input type=submit name=utfor value=\"Ta antiboten\"></form>

</br></br></td></tr></table>";

 

 

Trenger du mer hjelp, så si ifra. ^^

Dette var bare fort gjort.

Kan lages bedre.

 

Den der så ut til var noe i den duren jeg kunne ha brukt. Er ikke på noe bruker side enda, er bare et messageboard der man kan legge ut info om snowboard, velding enkelt. Går det ann å ha flere regne stykker, når man oppdatere siden så kommer det en nytt regnestykke? Takk for innlegget :)

Lenke til kommentar

Vel, trikset da er å få siden til å huske på et spesifikt tall etter at du har trykket en knapp ellerno.

 

Problemet er at et PHP-script "glemmer" forskjellige ting idet du trykker på en knapp.

Om du for eksempel har skrevet;

$random = rand(1,10);

som gir deg et random tall fra 1-10, så vil den for hver oppdatering av siden lage et nytt tall.

Men alle $_POST og $_GET osv husker den enda.

 

Derfor kan koden være noe slik:

 

$random1 = rand(1,20);

$random2 = rand(1,20);

$produkt = ($_POST['ab1'] + $_POST['ab2']);

if(isset($_POST['utfor'])){

if($_POST['antibot'] == $produkt){

mysql_query("kode for ingen antibot mer.");

echo "<center><font style=\"color:green\">Du klarte det.</font></center>";

exit;

} else {

echo "<center><font style=\"color:red\">Feil antibotkode.</font></center>";

exit;

}

}

 

echo "<form method=post><table width=50%><tr><td class=ettellerannet>Antibot</td></tr><tr><td class=spesifiserticssfil><center>

</br>

Legg sammen tallene, og skriv summen nedenfor.</br></br>

$random1 + $random2 = <input type=text name=antibot><input type=submit name=utfor value=\"Utfør antibot\">

 

<input type=hidden value=\"$random1\" name=ab1>

<input type=hidden value=\"$random2\" name=ab2></br>

</center></td></tr></table>";

 

 

 

 

<input type=hidde value=ettellerannet name=noe> Denne er veldig viktig, for den tar med verdien av de to randome tallene fra scriptet videre til etter at du har oppdatert siden.

Da må du alltid huske å ikke regne ut antiboten i scriptet ved hjelp av $random1 og $random2. De vil bli nye tall, som alltid, men $_POST['ab1'] og $_POST['ab2'] vil være som før, ettersom de er lagret videre av scriptet.

 

Ikke noe som er lett å tenke seg til på egen hand.

 

Trenger du mer hjelp, så gjerne kontakt meg direkte på melding ellerno. Gøy å hjelpe.

Jeg veit den fungerer knirkefritt. Har testet den på siden min. Hehe.

 

Scriptet stopper botbrukere osv, men er enda ikke sikkert.

XSS-attack er fortsatt mulig på den.

Trenger du hjelp til å fjerne muligheten for det, så send en melding til meg ellerno.

Gidder ikke å gjøre det her, ettersom det er litt offtopic.

Lenke til kommentar
Vel, trikset da er å få siden til å huske på et spesifikt tall etter at du har trykket en knapp ellerno.

 

Problemet er at et PHP-script "glemmer" forskjellige ting idet du trykker på en knapp.

Om du for eksempel har skrevet;

$random = rand(1,10);

som gir deg et random tall fra 1-10, så vil den for hver oppdatering av siden lage et nytt tall.

Men alle $_POST og $_GET osv husker den enda.

 

Derfor kan koden være noe slik:

 

$random1 = rand(1,20);

$random2 = rand(1,20);

$produkt = ($_POST['ab1'] + $_POST['ab2']);

if(isset($_POST['utfor'])){

if($_POST['antibot'] == $produkt){

mysql_query("kode for ingen antibot mer.");

echo "<center><font style=\"color:green\">Du klarte det.</font></center>";

exit;

} else {

echo "<center><font style=\"color:red\">Feil antibotkode.</font></center>";

exit;

}

}

 

echo "<form method=post><table width=50%><tr><td class=ettellerannet>Antibot</td></tr><tr><td class=spesifiserticssfil><center>

</br>

Legg sammen tallene, og skriv summen nedenfor.</br></br>

$random1 + $random2 = <input type=text name=antibot><input type=submit name=utfor value=\"Utfør antibot\">

 

<input type=hidden value=\"$random1\" name=ab1>

<input type=hidden value=\"$random2\" name=ab2></br>

</center></td></tr></table>";

 

 

 

 

<input type=hidde value=ettellerannet name=noe> Denne er veldig viktig, for den tar med verdien av de to randome tallene fra scriptet videre til etter at du har oppdatert siden.

Da må du alltid huske å ikke regne ut antiboten i scriptet ved hjelp av $random1 og $random2. De vil bli nye tall, som alltid, men $_POST['ab1'] og $_POST['ab2'] vil være som før, ettersom de er lagret videre av scriptet.

 

Ikke noe som er lett å tenke seg til på egen hand.

 

Trenger du mer hjelp, så gjerne kontakt meg direkte på melding ellerno. Gøy å hjelpe.

Jeg veit den fungerer knirkefritt. Har testet den på siden min. Hehe.

 

Scriptet stopper botbrukere osv, men er enda ikke sikkert.

XSS-attack er fortsatt mulig på den.

Trenger du hjelp til å fjerne muligheten for det, så send en melding til meg ellerno.

Gidder ikke å gjøre det her, ettersom det er litt offtopic.

 

Tusen takk! Den skjønte jeg helt ut, godt forklart! :)

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...