Avatar billede m_bold Praktikant
04. januar 2008 - 08:12 Der er 11 kommentarer og
1 løsning

Sikre en form mod hacking

Hej.

Jeg har brug for at sikre en kommentar-form mod hacking og spamming, så der ikke kommer alle mulige poster, der ikke giver mening.

Jeg vil ikke beskytte siden med et password. Og om muligt vil jeg gerne undgå at have sådan et billede, hvor man skal skrive indholdet af billedet, men hvis det er eneste mulighed, så vil jeg gerne høre om, hvordan man får fat på den slags billeder uden at skulle lave dem selv?

Siden er skrevet i PHP, hvis det hjælper.

På forhånd tak.
Avatar billede showsource Seniormester
04. januar 2008 - 08:41 #1
Så ville det nok være php kategorien som er den rette, men

http://www.phpbegynder.dk/artikler.php?id=26&page=1

og med GD

http://www.eksperten.dk/artikler/1019
Avatar billede bufferzone Praktikant
04. januar 2008 - 09:50 #2
denne artikel kunne måske også give dig lidt. Er dog noget generel i forhold til dit spørgsmål

http://www.eksperten.dk/artikler/908
Avatar billede m_bold Praktikant
04. januar 2008 - 15:58 #3
showsource --> godt og hurtigt svar. Tror jeg bruger versionen uden GD. Smid et svar :-)
Avatar billede showsource Seniormester
05. januar 2008 - 14:06 #4
Ingen point til mig, ellers tak.
Avatar billede m_bold Praktikant
05. januar 2008 - 14:13 #5
ok, tak for hjælpen, så
Avatar billede m_bold Praktikant
06. januar 2008 - 13:23 #6
Hej igen. Nu er jeg begyndt at lege med http://www.phpbegynder.dk/artikler.php?id=26&page=1 og synes i virkeligheden at noget af det er overflødigt. Fx bruges der session, hvilket jeg ikke kan se grunden til.

Når en spambot post på en alm. form, hvordan gør den så det. Er det umuligt for den at simulere et 'tryk' på submit-knappen, som jo er det der beskyttes imod her?
Avatar billede showsource Seniormester
07. januar 2008 - 00:22 #7
Ved hver load af siden, laves et nyt navn til et hiddenfelt.
Det navn skal gemmes til brug for tjek ved POST, derfor sessions.
Man kan evt. bruge cookies, DB, men uanset hvad, skal navnet gemmes til brug for tjek ved POST ( eller GET )

1. Siden loades, der laves et navn til et hiddenfelt
2. Der postes, tjek at der er et felt med det navn som blev lavet ved load af siden.
3. Feltet findes, tjek at værdien er tom, hvilket den kun er ved klik eller enter.

Evt. kan man bruge en button i stedet for submit, og så ved onclick/onkeydown bruge this.form.submit() for at submitte formen med javascript.

Ideen er at man skal sidde foran skærmen for at poste til formularen.

Hvordan en spamrobot er bygget op, aner jeg ikke, men bufferzone har sikkert et godt bud! ;O)
Avatar billede showsource Seniormester
07. januar 2008 - 00:23 #8
+ 1. Ved reload af siden, bliver et nyt navn jo lavet !
Avatar billede m_bold Praktikant
07. januar 2008 - 08:24 #9
Grunden til at jeg spørger ind til sessions er, at jeg ikke kan få det til at virke ordenligt.

Betingelsen isset($_SESSION[$hide]) på linje 12 bliver ikke opfyldt, og umiddelbart må det vil være på grund af linje 9: unset($_SESSION[$hide]);

Jeg forstår ikke helt hvorfor linje 9 skal være netop lige der... Den gør jo, at vi sletter værdien i sessionen.
Avatar billede showsource Seniormester
07. januar 2008 - 09:56 #10
eehehhee, flyt lige den linie ned under if POST .........

..........
Avatar billede m_bold Praktikant
07. januar 2008 - 17:03 #11
Hehe. Ja nu fungerer det perfekt. Tusind tak for hjælpen.
Avatar billede showsource Seniormester
08. januar 2008 - 10:23 #12
Ja, det er fandme pinligt.........
Og unset() er for så vidt ikke nødvendig.....
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