Avatar billede dennism Nybegynder
23. juni 2003 - 18:04 Der er 6 kommentarer og
1 løsning

PHP: input-boks

Når man har en input-boks af typen text, bliver ' ændret til \'! Hvad er meningen/fordelen ved dette?
Avatar billede Slettet bruger
23. juni 2003 - 18:14 #1
Det er et sikkerhedsspørgsmål....
Forestil dig at $_POST['pass'] har værdien:
' or user='brugernavn
<?php
$pass = $_POST['pass'];
$user = $_POST['user'];
$sql = "SELECT * FROM users where pass='$pass' AND user='$user'";
mysql_query($sql);
?>
$sql vil så se sådan her ud uden \:
SELECT * FROM users where pass='' or user='brugernavn' AND user='brugernavn'
$sql vil så se sådan her ud med \:
SELECT * FROM users where pass='\' or user=\'brugernavn' AND user='brugernavn'

Håber du kan se ideen!?

I princippet kan jeg komme op med meget ondere eksempler hvor hele databaser koruperes!

Det kaldes magic quotes og kan slåes til og fra i PHP.ini filen!
I det tilfælde bruger man stripslashes() og addslashes() i stedet for!
Avatar billede dennism Nybegynder
24. juni 2003 - 10:45 #2
Vil det sige, at du synes jeg skal lade mine input-bokser være som de er, og også uden at bruge stripslashes?
Avatar billede Slettet bruger
24. juni 2003 - 11:30 #3
Det kommer helt an på situationen!

Skal indholdet skrives til en database (MySQL eller lignende) så undgå at fjerne slashesne.

Skal indholdet vises igen (f.eks. på grund af en fejl...) så fjern slashene.

Generelt skal _ALT_ indhold i value="" konverteres til entyties:
" => &quot;
' => &#39;
< > => &lt; &gt;

htmlspecialchars()
Avatar billede dennism Nybegynder
24. juni 2003 - 22:51 #4
Hvad er fordelen ved at ændre dem til det?
Avatar billede Slettet bruger
25. juni 2003 - 01:53 #5
Prøv at se forskellen:
<input type="text" value="&quot;">
<input type="text" value="\"">
Avatar billede dennism Nybegynder
25. juni 2003 - 10:19 #6
Normalt gør jeg bare:

<input type="text" value="<?=$row[text]?>">
<TEXTAREA name=text2><?PHP echo stripslashes($_POST[text2]); ?></TEXTAREA>

Hvordan skal disse så være istedet, for at være så sikre som mulig?
Avatar billede Slettet bruger
26. juni 2003 - 01:45 #7
<TEXTAREA name=text2><?PHP echo htmlentities(stripslashes($_POST[text2]);)?></TEXTAREA>
<---- kan ikke gøres bedre! :P
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