Avatar billede cskott Nybegynder
13. september 2006 - 17:54 Der er 33 kommentarer og
2 løsninger

Spam i gæstebog igen!

For et par dage siden stillede jeg dette spørgsmål: www.eksperten.dk/spm/731562

Det virkede til at starte med men nu er den allerede gal igen!

Hva kan jeg så gøre?
Avatar billede apocalyptica_apo Nybegynder
13. september 2006 - 18:06 #1
Det javascript der skulle forhindre det, er der ikke. Så det er muligt derfor..
Avatar billede boost Nybegynder
13. september 2006 - 18:14 #2
Jeg ville bruge denne her, så får du ikke flere problemer: http://www.finalwebsites.com/snippets.php?id=39
Avatar billede apocalyptica_apo Nybegynder
13. september 2006 - 18:22 #3
Ok kan se du kontroller på serversiden.. Men Jeg ville nok også bare bruge captcha(et forringet billede med bogstaver og tal) og så lave et felt hvor man så skal gentage det der står på billedet.
Avatar billede cskott Nybegynder
13. september 2006 - 20:07 #4
Ja jeg må jo se hvad jeg kan finde ud af..
det der på www.finalwebsites.com er det godt.? Og er det svært at sætte ind?
Avatar billede mclemens Nybegynder
13. september 2006 - 20:11 #5
Eftersom spam robotter ikke køre javascript kan man ikke bruge den javascript validering der er i tråden til noget ... hvis man skulle bruge den kunne man:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="content-type" content="text/html; charset=iso-8859-1"><title>Ingen titel</title>

<script type="text/javascript">
if(window.addEventListener)window.addEventListener("load", function(){wload();}, false);
else if(window.attachEvent)window.attachEvent("onload", function(){wload();});

function wload(){
  document.getElementsByName("jsok")[0].setAttribute("value","hemmeligtord");
}
</script>

</head><body>

<form>

<input type="hidden" name="jsok" value="afvis">

</form>

</body></html>



og så validere via php post håndteringen om
$_POST['jsok']=="hemmeligtord";
ellers så fejl med at javascript skal være aktiveret...
aktiver javascript og opdater siden ...

- men det er som sagt simpel validering ...
Nielle's slog bare fejl da alle kan poste når javascript
var deaktiveret og det er det hos spam robotter normalt ...
- Denne er så modsat så javascript kræves
for at php godkender submit delen ...
Avatar billede mclemens Nybegynder
13. september 2006 - 20:21 #6
D.v.s.:


<script type="text/javascript">
if(window.addEventListener)window.addEventListener("load", function(){wload();}, false);
else if(window.attachEvent)window.attachEvent("onload", function(){wload();});

function wload(){
  document.getElementsByName("jsok")[0].setAttribute("value","hemmeligtord");
}
</script>


<?PHP
$db = mysql_connect("xxx", "xxxx", "xxxxx");
mysql_select_db("lokalbrugsenthdk", $db);

if($tjek == xxx)
{

if($_POST['jsok']=="hemmeligtord"){

$besked = str_replace("\n", "<br>", $besked);
$dato_array = getdate();
$dato = $dato_array["mday"] . "/" .
$dato_array["mon"] . "-" . $dato_array["year"];
mysql_query("INSERT INTO gbog (navn, email, dato, besked) VALUES ('$navn', '$email', '$dato', '$besked')");

} else echo"Javascript skulle have været aktiveret.<br>Aktiver javascript, opdater siden med f.eks F5 og skriv igen";

}
?>

<CENTER>
<form method="post" action=<? echo
$PHP_SELF; ?>>

Bemærk Javascript kræves.<br>
Aktiver før du skriver.

<input type=hidden name=skriv value=1>
<p align=left>
<font face=verdana, arial, helvetica color=black size=2><b>Hvad er navnet på vores uddeler?</b><BR>
<SELECT name="tjek">
<option value="">vælg</option>
<option value="1">Gerda Petersen</option>
<option value="2">Arne Hansen</option>
<option value="3">Peter Skov</option>
<option value="4">Jytte Jensen</option>
<option value="5">Alice Rasmussen</option>
<option value="6">Mogens Hansen</option>
<option value="7">Tove Larsen</option>
<option value="8">Henning Mogensen</option>
<option value="9">Kurt Jensen</option>
<option value="10">Gudrun Svendsen</option>
</select><BR>
<font face=verdana, arial, helvetica color=black size=2><b>Navn:</b><br><input type=text name=navn><br>
<font face=verdana, arial, helvetica color=black size=2><b>Email:</b><br><input type=text name=email><br>
<textarea style="font-weight:bold;" onClick='this.value=""' name=besked cols=30 rows=5>Indtast din hilsen her!</TEXTAREA><br>


<input type="hidden" name="jsok" value="afvis">


<input type="submit" value="Send" STYLE="font-family: verdana; font-size: 10px; color: white; background-color: gray;"> <input type="RESET" value="Fortryd" STYLE="font-family: verdana, arial, helvetica; font-size: 10px; color: white; background-color: gray;">
</form>
Avatar billede mclemens Nybegynder
13. september 2006 - 20:22 #7
Men, 13/09-2006 18:14:00 er mere avanceret
da spam robotter ikke ser endnu :o)

(har heller ikke hørt om nogen der kører javascript
- men det er vel hårdere at progrmmere noget der ser
end noget der kun skal køre javascript :) )
Avatar billede apocalyptica_apo Nybegynder
13. september 2006 - 20:28 #8
Hvorfor ikke..

<SCRIPT language="JavaScript">
function submitform()
{
  document.gbform.action = '<? echo $PHP_SELF; ?>';
  document.gbform.submit();
  return false;
}
</SCRIPT>
<form name="gbform" method="post" action="nospam.php" onsubmit="submitform();">
<input type="hidden" name="skriv" value="1">
<p align=left>
<font face="verdana, arial, helvetica" color="black" size="2"><b>Hvad er navnet på vores uddeler?</b><BR>
<SELECT name="tjek">
<option value="">vælg</option>
<option value="1">Gerda Petersen</option>
<option value="2">Arne Hansen</option>
<option value="3">Peter Skov</option>
<option value="4">Jytte Jensen</option>
<option value="5">Alice Rasmussen</option>
<option value="6">Mogens Hansen</option>
<option value="7">Tove Larsen</option>
<option value="8">Henning Mogensen</option>
<option value="9">Kurt Jensen</option>
<option value="10">Gudrun Svendsen</option>
</select><BR>
<font face=verdana, arial, helvetica color=black size=2><b>Navn:</b><br><input type=text name=navn><br>
<font face=verdana, arial, helvetica color=black size=2><b>Email:</b><br><input type=text name=email><br>
<textarea style="font-weight:bold;" onClick='this.value=""' name=besked cols=30 rows=5>Indtast din hilsen her!</TEXTAREA><br>
<input type="submit" value="Send" STYLE="font-family: verdana; font-size: 10px; color: white; background-color: gray;"> <input type="RESET" value="Fortryd" STYLE="font-family: verdana, arial, helvetica; font-size: 10px; color: white; background-color: gray;">
</form>

Så skal du bare lave en nospam.php hvor i du fortæller man skal have javascript slået til for at skrive i bogen.
Avatar billede cskott Nybegynder
13. september 2006 - 20:38 #9
Ok. Jeg prøver lige at kører med dit forslag et par dage apocalyptica_apo. Så må vi se hvad der sker.
Avatar billede mclemens Nybegynder
13. september 2006 - 20:46 #10
13/09-2006 20:28:39 , Fordi det ikke virker ... I den du kastede der kan man ikke poste med javascript (return:false;) ... Og derudover hvis du lavede det så man ikke kunne måle på et felt som i 13/09-2006 20:21:19 på dem serverside kode så kan man ikke se om folk havde javascript aktiveret (javascript aktiveret = 99,?% sikkert ikke en spambot)...

... Hvis du så laver det om så man kun kan submitte hvis man regner et felt rigtigt ud som i Nielle's eksempel så er løsningen også hullet ... et felt der sættes til en specifik værdi via. js er måden at lave den simple js validering ...

- Lægger lige et svar til om et par dage ...
Avatar billede mclemens Nybegynder
13. september 2006 - 20:48 #11
Hmm, analyserede lidt for hurtigt det virker ikke fordi:
function submitform()
{
  document.gbform.action = '<? echo $PHP_SELF; ?>';
  document.gbform.submit(); // Når du starter submit afsendes formularen så formularen bliver submittet ...
  return false; // denne her har ingen formål
}

... Du lavede samme fejl som Nielle, uden javascript så kan
alle poste - og spambotter kører uden javascript...
Avatar billede mclemens Nybegynder
13. september 2006 - 20:50 #12
- d.v.s. return false; eller andet javascript blokerer
ikke en submit når javascript er deaktiveret...
Avatar billede cskott Nybegynder
13. september 2006 - 20:55 #13
Æhh.. Jeg er lige faldet af vognen..hehe
Jeg har sat det her ind..
Er det godt eller dårligt?

<script type="text/javascript">
if(window.addEventListener)window.addEventListener("load", function(){wload();}, false);
else if(window.attachEvent)window.attachEvent("onload", function(){wload();});

function wload(){
  document.getElementsByName("jsok")[0].setAttribute("value","hemmeligtord");
}
</script>


<?PHP
$db = mysql_connect("xxx", "xxx", "xxx");
mysql_select_db("xxx", $db);

if($tjek == xx)
{

if($_POST['jsok']=="hemmeligtord"){

$besked = str_replace("\n", "<br>", $besked);
$dato_array = getdate();
$dato = $dato_array["mday"] . "/" .
$dato_array["mon"] . "-" . $dato_array["year"];
mysql_query("INSERT INTO gbog (navn, email, dato, besked) VALUES ('$navn', '$email', '$dato', '$besked')");

} else echo"Javascript skulle have været aktiveret.<br>Aktiver javascript, opdater siden med f.eks F5 og skriv igen";

}
?>

<CENTER>
<SCRIPT language="JavaScript">
function submitform()
{
  document.gbform.action = '<? echo $PHP_SELF; ?>';
  document.gbform.submit();
  return false;
}
</SCRIPT>
<form name="gbform" method="post" action="nospam.php" onsubmit="submitform();">
<input type="hidden" name="skriv" value="1">
<p align=left>
<font face="verdana, arial, helvetica" color="black" size="2"><b>Hvad er navnet på vores uddeler?</b><BR>
<SELECT name="tjek">
<option value="">vælg</option>
<option value="1">Gerda Petersen</option>
<option value="2">Arne Hansen</option>
<option value="3">Peter Skov</option>
<option value="4">Jytte Jensen</option>
<option value="5">Alice Rasmussen</option>
<option value="6">Mogens Hansen</option>
<option value="7">Tove Larsen</option>
<option value="8">Henning Mogensen</option>
<option value="9">Kurt Jensen</option>
<option value="10">Gudrun Svendsen</option>
</select><BR>
<font face=verdana, arial, helvetica color=black size=2><b>Navn:</b><br><input type=text name=navn><br>
<font face=verdana, arial, helvetica color=black size=2><b>Email:</b><br><input type=text name=email><br>
<textarea style="font-weight:bold;" onClick='this.value=""' name=besked cols=30 rows=5>Indtast din hilsen her!</TEXTAREA><br>
<input type="submit" value="Send" STYLE="font-family: verdana; font-size: 10px; color: white; background-color: gray;"> <input type="RESET" value="Fortryd" STYLE="font-family: verdana, arial, helvetica; font-size: 10px; color: white; background-color: gray;">
</form>
Avatar billede mclemens Nybegynder
13. september 2006 - 20:57 #14
Hmm, to sekunder ...

<SCRIPT language="JavaScript">
function submitform()
{
  document.gbform.action = '<? echo $PHP_SELF; ?>';
  document.gbform.submit();
  return false;
}
</SCRIPT>

- ved at lave den dims med action løses problemet også ... så apocalyptica_apo har ret, vi kan godt lave den simplere ... (så vi undgår det input felt ... to sekunder ...)
Avatar billede apocalyptica_apo Nybegynder
13. september 2006 - 21:01 #15
mclemens >> Nej flot mester, men da jeg testede det i min browser så nåede den at submitte før den blev ændret af javascriptet, så derfor. And next time mind your own code.
Avatar billede mclemens Nybegynder
13. september 2006 - 21:01 #16
Der er 3 muligheder...

1. den i 13/09-2006 18:14:00 (mest effektiv)
2. den jeg lavede i 13/09-2006 20:21:19
3. den apocalyptica_apo lavede i 13/09-2006 20:28:39

... dog bør script sektionen nok se sådan her ud:
<SCRIPT language="JavaScript">
function submitform()
{
  document.gbform.setAttribute('action','<? echo $PHP_SELF; ?>');
  return true;
}
</SCRIPT>

... Jeg fangede ikke den med action ændringen ...

- Hvis du vælger apocalyptica_apo's anbefaler jeg at du har en fil der hedder
nospam.php hvor du har et link til gæstebogen med en tekst om at javascript var krævet og det skal aktiveres (af hensyn til dem der ikke har javascript aktiveret)
Avatar billede mclemens Nybegynder
13. september 2006 - 21:05 #17
[ And next time mind your own code. ] Javel - jeg syntes bare at du kastede svaret så hurtigt selvom den jeg havde lavet i 13/09-2006 20:21:19 burde have løst problemet ...
Det var alt ... Undskyld at jeg kommenterer kodninger på et åbent forum ... du kommenterede jo også min til dels med at [ Hvorfor ikke.. ... og resten af kildekoden]

... Hvis ordene Hvorfor ikke.. betyder at jeg
skal blande mig uden om så beklager jeg ...
Avatar billede mclemens Nybegynder
13. september 2006 - 21:07 #18
cskott, Du skal bruge en af de tre i 13/09-2006 21:01:43
... alle tre bør løse problemstillingen lige godt :o)
1'eren er dog den mest effektive ...
Avatar billede cskott Nybegynder
13. september 2006 - 21:07 #19
Jeg har lavet den der fil nospam.php med teksten Javascript skal være aktiveret for at skrive i gæstebogen. Er det ok eller skal der stå mere i den fil?
Og den popper også op hvis js er slået fra..
Avatar billede mclemens Nybegynder
13. september 2006 - 21:08 #20
[ men da jeg testede det i min browser så nåede den at submitte før den blev ændret af javascriptet, så derfor. ] Jeg formoder at rettelsen til apocalyptica_apo's kode i 21:01:43 løser den del med for hurtig submit inden ... men jeg checker lige op på den ...
Avatar billede mclemens Nybegynder
13. september 2006 - 21:12 #21
Hmm, hvis

<SCRIPT language="JavaScript">
function submitform()
{
  document.gbform.setAttribute('action','<? echo $PHP_SELF; ?>');
  return true;
}
</SCRIPT>

ikke hjælper på at man når til echo $PHP_SELF; istedet for nospam.php kan du prøve:

<SCRIPT language="JavaScript">
function submitform()
{
  document.gbform.setAttribute('action','<? echo $PHP_SELF; ?>');
  setTimeout("document.gbform.submit();",100);
  return false;
}
</SCRIPT>

... Men har ikke lige testet ...


[ Er det ok eller skal der stå mere i den fil? ]
Hvis det ikke virker uden js og det virker med js så er den i vinkel ;)
Avatar billede mclemens Nybegynder
13. september 2006 - 21:13 #22
Afvis lige mit svar, du valgte den med nospam.php :)
Avatar billede mclemens Nybegynder
13. september 2006 - 21:13 #23
Damper over i javascript samt dhtml forummet , hej ;)
Avatar billede cskott Nybegynder
13. september 2006 - 21:17 #24
Jeg har lige tjekket en ekstra gang javascript skal være slået til for at skrive i bogen også selvom man svare rigtigt..

Så den er vel i vinkel.. oder was...:-)
Avatar billede mclemens Nybegynder
13. september 2006 - 21:18 #25
Jeps :)
Avatar billede cskott Nybegynder
13. september 2006 - 21:20 #26
Det er sgu kanon! :-)
Så må vi se hvor længe det holder..
Avatar billede apocalyptica_apo Nybegynder
13. september 2006 - 21:20 #27
mclemens >> du gør det mere komplekst end det behøver at være.
Hvorfor submitte noget der er i princippet det samme som en andens løsning og derefter insistere hvilken løsning man skal bruge.
Avatar billede mclemens Nybegynder
13. september 2006 - 21:23 #28
[ Hvorfor submitte noget der er i princippet det samme som en andens løsning og derefter insistere hvilken løsning man skal bruge. ] Den må du hellere forklare... Kan ikke se at 13/09-2006 20:21:19 er magen til noget af det tidligere - så det med "i princippet det samme" forstår jeg ikke...
Avatar billede mclemens Nybegynder
13. september 2006 - 21:25 #29
Kan heller ikke se min er kompleks?
[ du gør det mere komplekst end det behøver at være. ]
Avatar billede mclemens Nybegynder
13. september 2006 - 21:29 #30
^ - Jeg er derimod fri for at have en nospam.php fil ...
Avatar billede apocalyptica_apo Nybegynder
13. september 2006 - 21:31 #31
Desuden
mclemens >> "Hvorfor ikke" var en strø tanke.
"Men har ikke lige testet" hvorfor tester du ikke din kode først? I stedet for, skal man måske til at lave en lang tråd fordi man ikke har testet sin kode..
cskott >> jeg håber det holder ellers du nok nødtil at lave captcha eller lign.
Avatar billede apocalyptica_apo Nybegynder
13. september 2006 - 21:37 #32
mclemens >> Jamen tilykke. tsk
Avatar billede cskott Nybegynder
13. september 2006 - 21:40 #33
Jeg takker for hjælpen begge to..
Avatar billede mclemens Nybegynder
13. september 2006 - 21:49 #34
Jeg siger velbekom,
og mange tak for point :)
Avatar billede apocalyptica_apo Nybegynder
13. september 2006 - 22:28 #35
Så lidt cskott.
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