19. oktober 2002 - 16:39Der 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.
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 < og >.
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);
ø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 =)
Synes godt om
Ny brugerNybegynder
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.