Avatar billede xenoxsis Nybegynder
08. juni 2006 - 13:57 Der er 15 kommentarer og
1 løsning

Sikkerhed med simpel gæstebog

Jeg har lavet en gæstebog der desværre er blevet inficeret med pornosider af diverse art. Det vil jeg meget gerne beskytte mig imod, hvordan kan jeg gøre det? Jeg tænkte på et af de billeder hvor der var en kombination af tal man skulle skrive ind, men ved ikke hvordan de laves.
Desuden skriver de sider også ind i gæstebogen som HTML, hvordan kan jeg fjerne brugen af HTML i en formular med PHP?
Avatar billede iss Novice
08. juni 2006 - 13:59 #1
Der findes en nem måde, lav en kode på din side man skal skrive, f.eks tre bogstaver, som man så skal skrive rigtigt (normalt laves det i grafik og hedder CAPTCHA).

Hvad angår din HTML, så kan det gøres på flere måder, nemmeste er at kører den igennem
Avatar billede iss Novice
08. juni 2006 - 14:03 #2
htmlspecialchars som så gør du lige som ser html koden, at den så ikke bliver udført...

Sorry for to indlæg, glemte jeg ikke havde en windows tast på denne maskine...
Avatar billede coderdk Praktikant
08. juni 2006 - 15:03 #3
htmlspecialchars for at skrive tegnene eller strip_tags for at fjerne dem helt...

Du kan bruge en CAPTCHA-klasse som denne: http://www.nogajski.de/horst/php/captcha/
Avatar billede xenoxsis Nybegynder
08. juni 2006 - 23:06 #4
Det burde ikke være nødvendigt med en meget simpel gæstebog, hvordan kunne man gøre det med htmlspecialchars?
Avatar billede iss Novice
08. juni 2006 - 23:10 #5
Der hvor du udskriver smide du lige htmlspecialchars() om den variabel du udskriver.
Avatar billede xenoxsis Nybegynder
08. juni 2006 - 23:27 #6
Tak - Men igen - er der alternativ til CAPTCHA
Avatar billede iss Novice
08. juni 2006 - 23:33 #7
Men igen??? Du har da ikke efterspurgt alternativ til CAPTCHA, htmlspecialchars har intet med det at gøre, den fjerner bare det "farlige" i HTML...

Jeg kan kun komme på en måde, lave en tidskode som hidden, hvis man skriver hurtigere end x sekunder skal indlæget afvises.
Avatar billede iss Novice
08. juni 2006 - 23:33 #8
Ps den er ikke 100% sikker, men den vil nok fjerne en del.
Avatar billede coderdk Praktikant
09. juni 2006 - 00:21 #9
man kunne også forestille sig et meget simpelt javascript (det er normalt ikke rigtige browsere der laver det spam):

<script type="text/javascript">
var okSub = 0;
function valForm()
{
    return ( okSub == 1 );
}
</script>

og i dit <form> tag:

<form method="post" action="dit_script.php" onsubmit="return valForm()">

I stedet for din <input type="submit" så lav:

<input type="button" onclick="okSub=1;this.form.submit()">

Det er *ikke* testet :)
Avatar billede coderdk Praktikant
09. juni 2006 - 00:22 #10
Hmm nej glem det - jeg er for træt :P
Avatar billede iss Novice
09. juni 2006 - 00:23 #11
Ja, som du siger... det er ikke browsere:D
Avatar billede iss Novice
09. juni 2006 - 00:25 #12
Men den kunne msåke bruges... hvis man laver et js der lægger to tal sammen givet af PHP som så kender resultatet af de to, og er de ikke det sammen så tage ikke imod...
Avatar billede coderdk Praktikant
09. juni 2006 - 00:34 #13
Ja, det var min mening... Måske:

<script type="text/javascript">
function valForm()
{
    document.getElementById("chk").value = "hejsa";
    return true;
}
</script>

og i <form> tag'et:

g i dit <form> tag:

<form method="post" action="dit_script.php" onsubmit="return valForm()">

samt et hidden field:

<input type="hidden" name="chk" id="chk" value="">

Og bare en alm. submit-knap. Du skal så i dit modtagescript checke at $_POST['chk'] == 'hejsa'
Avatar billede xenoxsis Nybegynder
06. august 2006 - 16:54 #14
Jeg takker - hvis i vil have point, så kom med et "svar"
Avatar billede iss Novice
06. august 2006 - 18:12 #15
Nej, tak...
Avatar billede coderdk Praktikant
06. august 2006 - 18:44 #16
Hvis du har brugt mit, ellers ikke :)
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