Sida 1 av 2

Önskemål: visuell bekräftelse i gästboken

Postat: 2006-02-02 18:28
av MN
Hej, jag har skaffat gästboken "Advanced Guestbook" som finns här: http://www.phpbbhacks.com/searchresults ... rch_type=1 Jag är jättenöjd med den, och har fixat till design och lite andra smågrejer så att det passar mitt forum.

Jag har haft denna gästbok sedan augusti och allt har funkat tills nu för några dagar sedan: Det kommer en makalös mängd spam hela tiden nu. Jag har ökat "flooding control" i inställningarna och förhindrat att sökmotorer kommer åt gästboken. Men inget av detta verkar funka.

Därför undrar jag om man istället kan lägga in någon slags visuell bekräftelse precis som det finns i forumet. Är det svårt att koda? Jag vill inte byta gästbok igen nu för andra gången på ett år, när jag nu är nöjd med den jag har.

/MN

Postat: 2006-02-02 20:29
av Holger
Jag vet precis vad du menar. Jag hade exakt samma problem med denna gästbok. Problemet orsakas av WWW-fältet där man kan lägga in en URL. Detta lockar spammare som vill flytta upp den egna sajten i sökmaskinresultaten.

Jo, det vore fint med visuell bekräftelse i den, men det är ej trivialt att koda. Så det kommer du nog inte att hitta ...

Postat: 2006-02-03 18:23
av MN
Tror du att det blir färre spam om jag tar bort www-fältet? Det fyller egentligen ingen funktion på just min sajt. Det kan ju inte vara så svårt, jag tog bort något annat fält tidigare som jag tyckte var onödigt.

/MN

Postat: 2006-02-03 19:39
av PazZze
Holger, nu ska vi inte vara så negativa här...

http://www.yugdesign.com/scripts/catego ... ript8.html där finns ett script man kan ladda hem som innehåller en visuell bekräftelse, prova den :)

Edit (4/2 13:41):
fast den är inte den bästa... den lägger lösenordet i en input som är dold, men den stoppar kanske lite :)

Postat: 2006-02-05 22:32
av MN
Tack för tipset! Ska definitivt kolla upp det där närmare. Jag återkommer när jag vet mera.

/MN

Postat: 2006-02-06 10:07
av Holger
Jag tog bort www-fältet, men det hjälpte inte. De kollar inte om det finns eller inte, det verkar vara robotar som infogar inläggen i gästboken.

Postat: 2006-02-06 17:22
av MN
Jo det har jag också förstått att det är robotar som lägger in dessa meddelanden. Men jag tänkte att de kanske inte "hittar" gästboken lika lätt om det inte finns något fält för dem att lägga in länkar på.


/MN

Postat: 2006-02-07 17:42
av kamarad
Jag funderar om att installera den här modd och är osäkert bara på ett ställe i install filen :

#

# or via phpMyAdmin execute

#

db_guestbook.sql (remove this file after install)



Hur ska man köra den db_guestbook.sql filen i phpMyAdmin ?

Tack

Postat: 2006-02-07 19:37
av Holger
Öppna den i anteckningar och klipp och klistra innehållet till SQL-rutan i phpmyadmin.

Postat: 2006-03-24 11:27
av MN
Nu har det gått ett tag sedan jag ställde min ursprungliga fråga, och har under denna tid fått lite privat hjälp att fixa problemet med spam. En visuell bekräftelse har lagts till i formuläret, så om man inte skriver in koden så kan inget meddelande skickas till gästboken. Ska väl förhoppningsvis stoppa de flesta spammen, för de är nog ofta inte intelligentare än så ;)

En del av den visuella bekräftelsen kunde lösas med hjälp av PazZzes länk, tack :) Men det var en del problem med att få servern att visa bilden korrekt (kör privat server), men efter lite ändringar av inställningar funkar det utmärkt.

Sen har en stor säkerhetsmiss i gästboken upptäckt och fixats till också. Man kunde komma åt filer i gästbokens adminkatalog genom att bara skriva in länken till dem i sin webbläsare :shock:

Den visuella bekräftelsen ska förhoppningsvis funka nu, jag har inte fått något spam alls sedan detta installerades igår kväll, vanligen skulle det kommit minst 10 spam sen den tiden. Hoppas hoppas...

Här kan ni se resultatet
Om någon är intresserad av att veta hur jag/vi gjort så kan jag antingen lägga upp koden här eller skicka filerna till personen i fråga.

Envishet lönar sig ;)

/MN

Postat: 2006-03-24 11:34
av Holger
Mycket, mycket bra jobb där!
Lägg gärna upp ett how-to här och hos phpbb.com

Hänvisning:
Det finns redan robotar som kan kringgå phpBBs visuella bekräftelse.
En fix finns här:
http://www.phpbbhacks.com/download/6276
Jag fruktar att den enkla visuella bekräftelsen som du har inte kommer att vara något större problem för robotarna. Men du kan ju hålla oss informerade!

/Holger

Postat: 2006-03-24 11:44
av MN
Holger svarar snabbt som vanligt ;)

Ska lägga upp en guide till er så fort jag vet med större säkerhet att denna lilla modd gör en skillnad, det ser ljust ut men jag vill inte göra något förhastat.
Holger skrev: Jag fruktar att den enkla visuella bekräftelsen som du har inte kommer att vara något större problem för robotarna.
Är medveten om att den inte är så väldigt avancerad, men har en fil där man kan ändra hur komplicerad koden ska vara. Man kan lägga till ränder i bakgrunden, ändra bokstävernas position osv. Men jag vill att det ska vara enkelt i första hand, så jag provar detta tills vidare, det är ju möjligt att denna räcker.

Om inte annat så kanske jag kan få lite inspiration av den mer avancerade koden som fanns i länken du skrev ovan.

/MN

Postat: 2006-03-24 11:48
av Holger
Finfint! :-D

Postat: 2006-03-27 22:56
av MN
Inte ett spam så långt ögat når sedan jag lade till den visuella bekräftelsen, och detta är fyra dagar sedan. Under den tiden skulle jag annars ha fått minst 40 spam, så jag betraktar detta som ett fungerande säkerhetstillägg :P

Därför lägger jag nu upp en liten guide för er som är intresserade av att stoppa spam i Advanced Guestbook . Om jag inte anger någon mapp i beskrivningen, så betyder det forumets och gästbokens rot (det bör vara samma om du installerat enligt beskrivningen i originalgästboken).

OBS! Någon modig får gärna testa att göra förändringen i sin gästbok enligt denna guide, så att man kan se om denna guide är korrekt skriven...

Öppna:
addentry.php

Hitta:

Kod: Markera allt

$userdata = session_pagestart($user_ip, PAGE_INDEX);
Efter, lägg till:

Kod: Markera allt

session_start();
Öppna:
admin/addentry.php

Hitta:

Kod: Markera allt

if (isset($HTTP_POST_VARS["gb_action"])) {
Efter, lägg till:

Kod: Markera allt

	if($_POST["rand"] != $_SESSION["new_string"]) {
		message_die(GENERAL_ERROR, "Säkerhetskoden är inte korrekt ifylld. Gå tillbaka till ditt meddelande och korrigera.");
	}
Den svenska texten texten i koden ovan ska du översätta till det språk du använder i din gästbok!


Öppna:
admin/templates/form.tpl

Hitta:

Kod: Markera allt

	<tr>
	  <td class="row1"><span class="gen"><font face="$VARS[font_face]"><b>$LANG[FormName]: *</b></font></span></td>
	  <td class="row2"><span class="gen"><input type="text" name="gb_name" size="42" maxlength="30"></span></td>
	</tr>
Efter, lägg till:

Kod: Markera allt

	<tr>
      <td class="row1"> 
        <p><span class="gen"><font face="$VARS[font_face]"><b> Säkerhetskod:* 
          <br>
          </b><font size="1">Ange koden exakt som du ser den. Den &auml;r k&auml;nslig 
          f&ouml;r stora/sm&aring; bokst&auml;ver, noll har ett diagonalt streck 
          genom sig. </font></font></span></p>
        </td>
      <td class="row2"><span class="gen"><img src="guestbook_confirm.php" border="1"> 
        <br>
        <br>
        <input name="rand" size="5" maxlength="5">
        </span></td> 
    </tr>
Den svenska texten texten i koden ovan ska du översätta till det språk du använder i din gästbok!


Kopiera följande kod och klistra in den i en texteditor (notepad el dyl):

Kod: Markera allt

<?php
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache"); 
header("Content-Type: image/png");

session_start();
$WIDTH = 50;
$HEIGHT = 18;
$im = ImageCreate($WIDTH, $HEIGHT);

$string = md5(rand(0,9999));
$_SESSION["new_string"] = substr($string, 17, 5);

$colorFront = ImageColorAllocate($im, 0x96, 0x00, 0x0C);
$colorBack  = ImageColorAllocate($im, 0xFF, 0xFF, 0xCC);
$colorBack2 = ImageColorAllocate($im, 0xFF, 0xFF, 0xCC);

ImageFill($im, 0, 0, $colorBack2);

ImageString($im, 3, 8, 2, $_SESSION["new_string"], $colorFront);

ImagePNG($im);
ImageDestroy($im);
?>
Spara filen som guestbook_confirm.php i gästbokens (och forumets) rot.
Om du vill kan du ändra på vilka färger kodrutan ska ha genom att ändra på färgkoderna i denna del, färgkoderna är grupperade i sifferkombinationer om två och två:

Kod: Markera allt

$colorFront = ImageColorAllocate($im, 0x96, 0x00, 0x0C);
$colorBack  = ImageColorAllocate($im, 0xFF, 0xFF, 0xCC);
$colorBack2 = ImageColorAllocate($im, 0xFF, 0xFF, 0xCC);
Spara och stäng alla filer och ladda upp dem på din server. Klart!

Om ni testar detta, så "måste" ni rapportera här hur det gick, så jag vet att detta fungerat :wink:

/MN

Postat: 2006-05-21 13:59
av Spidey
Holger skrev:Jag tog bort www-fältet, men det hjälpte inte. De kollar inte om det finns eller inte, det verkar vara robotar som infogar inläggen i gästboken.
Hur tar man bort www-fältet från gästboken?
Sedan så skulle jag även vilja ta bort email-fältet.

Tack på förhand!



MVH Erik