Avatar billede iphase Nybegynder
19. oktober 2002 - 16:39 Der er 2 kommentarer og
1 løsning

Sikker tagwall

hey..

Jeg har lavet et tagwall script som bare tilføjer form data direkte til databasen, og så læser det igen.
Men det gør jo at man kan lave fyha ting.
Hvordan sikrer jeg mig bedst at der ikke bliver afviklet kode? alt skal bare skrives som tekst. også når jeg poster det. skal de ikke kunne lave noget smart i selva formen så den bryder ud af sql sætningen når dataen fra variablen sendes  til databasen (håber i er med på hvad jeg mener).
Sagen er det skal være sikkert og det skal bare være plain text.
Avatar billede teaspoon Nybegynder
19. oktober 2002 - 17:24 #1
Teksten som du henter ud af databasen kan du køre funktionen htmlentities() på. Den laver tegn som < og > om til deres html kode, i dette tilfælde &lt; og &gt;.

Det som du sætter ind i databasen, er som regel allerede beskyttet med phps automatiske quote funktion, kaldet magic quotes.

det er dog også en funktion som hedder mysql_escape_string(), som også kan bruges til formålet, og givetvis er mere sikker.
Så du kan gøre noget i retning af:

if (get_magic_quotes_gpc()) $str = stripslashes($str);
$str = mysql_escape_string($str);
Avatar billede iphase Nybegynder
20. oktober 2002 - 14:42 #2
Jeg kigger på det tak :)
Avatar billede iphase Nybegynder
20. oktober 2002 - 14:49 #3
øhhm.. lige en ting.. jeg har brugt følgende:
$str = $row[msg];
if (get_magic_quotes_gpc()) $str = stripslashes($str);
$str = mysql_escape_string($str);
echo "<i>$str</i>";

men den viser stadig de <img> tags jeg har tastet ind i en tag på tagwallen. er det meningen?
skulle den ikke også ligesom htmlentities() fjerne alt "kode" fra $str ?
eller beskytter den bare mod misbrug, som php kode? og sql commandoer? for i så fald er det jo også fint nok =)
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