Welkom, Gast. Je bent niet ingelogd.

htmlspecialchars() / htmlentities()

Badeendje
Pompehdompehdom
moderator
Geplaatst op: 16 Feb 2007, 23:05
PimpCoins: 0
💸+
Bewerken Quote

Heey,

ik heb dan het verschil gelezen op php.net van de functies htmlspecialchars() en htmlentities(), Alleen maken ze verder eigenlijk verschil uit in kwaliteit als beveiliging tegen sql injections?

Syncie
Geplaatst op: 16 Feb 2007, 23:22
PimpCoins: 0
💸+
Bewerken Quote

Nja ik gebruik altijd

1
htmlspecialchars($string, ENT_QUOTES);

MAAR: htmlspecialchars en htmlentities hebben beide NIETS te maken met SQL injections.

SQL injections voorkom je door

1
mysql_real_escape_string(string, server connection);

Tuneboy
Geplaatst op: 17 Feb 2007, 00:50
PimpCoins: 0
💸+
Bewerken Quote

Syncie schreef:

Nja ik gebruik altijd [...]


Toch met addslashes?

Tildo
Geplaatst op: 17 Feb 2007, 08:23
PimpCoins: 0
💸+
Bewerken Quote

Dat is toch omdat anders ' die dingen raar gingen doen in de tabel?en ophalen met stripslashes

[Laatst bewerkt door Tildo op zaterdag 17 februari 2007, om 08:24]
Saven
admin
Geplaatst op: 17 Feb 2007, 09:50
PimpCoins: 0
💸+
Bewerken Quote

Tildo schreef:

Dat is toch omdat anders ' die dingen raar gingen doen in de tabel?en ophalen met stripslashes

Ja klopt, maar dat beveilgd dus ook dat je de query aan zou kunnen passen en een kwaadwillende query uitvoert. dus dat je niet jezelf admin kan maken ofzo

Badeendje
Pompehdompehdom
moderator
Geplaatst op: 17 Feb 2007, 15:08
PimpCoins: 0
💸+
Bewerken Quote

dus @syncie, bijv. bij mijn vm systeem, gebruik ik dit dan:

1
2
$rij = mysql_fetch_assoc($sql);
          sql_query("INSERT `vms` SET `naar`='".htmlspecialchars(addslashes($rij['user']))."', `datum`='".time()."', `bericht`='".htmlspecialchars(addslashes($_POST['bericht'])."'"));

Waar moet ik er dan ingooien met dat mysql_real_escape_string(...); om sql injetions te voorkomen ?
Aangezien ik altijd dacht dat met een htmlspecialchars() dat dan hetgene wat je in de database pleurt ook met INSTERT INTO erin pleurt letterlijk, en die niet gaat uitvoeren ?

Lennard
?
Geplaatst op: 17 Feb 2007, 16:05
PimpCoins: 0
💸+
Bewerken Quote

Verschil was volgens mij alleen dat htmlentities() é, ó, ò, ä, enzo omzet naar de juiste html dinges (é, ó, ò, ä denk ), htmlspecialchars() doet dat niet en laat die gewoon zo.

@ Badteendt:

1
2
$rij = mysql_fetch_assoc($sql); 
          sql_query("INSERT `vms` SET `naar`='".htmlspecialchars(mysql_real_escape_string($rij['user']))."', `datum`='".time()."', `bericht`='".htmlspecialchars(mysql_real_escape_string($_POST['bericht'])."'"));

Maar je moet je data altijd zo "puur" mogelijk in de DB stouwen, dus niet nu htmlspecialchars() / htmlentities() doen, maar pas als je het eruit haalt.

Badeendje
Pompehdompehdom
moderator
Geplaatst op: 17 Feb 2007, 17:14
PimpCoins: 0
💸+
Bewerken Quote

ok dank, ik ben meteen eens erder gaan kijken naar sql injection vookoming, [url]http://www.phphulp.nl/php/tutorials/3/444/1010/[/url] Dat je ook addslashes kan gebruiken. Zit daar dan wel verschil in in gebruik ?

[Laatst bewerkt door Badeendje op zaterdag 17 februari 2007, om 17:14]
Syncie
Geplaatst op: 17 Feb 2007, 17:52
PimpCoins: 0
💸+
Bewerken Quote

Overgestapt naar htmlentities

Ja, er zit zeker verschil tussen mysql_real_escape_string en addslashes(), mysql_real_escape_string is nog veiliger.

Badeendje
Pompehdompehdom
moderator
Geplaatst op: 17 Feb 2007, 18:03
PimpCoins: 0
💸+
Bewerken Quote

Syncie schreef:

Overgestapt naar htmlentities

Ja, er zit zeker verschil tussen mysql_real_escape_string en addslashes(), mysql_real_escape_string is nog veiliger.

dus ik moet nu gewoon ff met dreamweaver zoeken anar addslashes,en kiezen voor replace met mysql_real_escape_string
?

En raad je ook aan om htmlspecialchars te vervangen door htmlentities ? of dat niet ?

[Laatst bewerkt door Badeendje op zaterdag 17 februari 2007, om 18:07]
BlackWhizz
Je moeder
Geplaatst op: 18 Feb 2007, 11:41
PimpCoins: 0
💸+
Bewerken Quote

Dat ook, en dan htmlentities($var,ENT_QUOTES); omdat je dan ook ' veranderd in html waardoor XSS helemaal onmogelijk is.

DJVG

Geplaatst op: 18 Feb 2007, 12:17
PimpCoins: 0
💸+
Bewerken Quote

btw, waarom gooi je al die shit al in je database...doe dat dan als het UIT de database haalt....dit vind ik nooit zo fijn omdat je er dan niks meer mee kan..

Badeendje
Pompehdompehdom
moderator
Geplaatst op: 18 Feb 2007, 12:59
PimpCoins: 0
💸+
Bewerken Quote

DJVG schreef:

btw, waarom gooi je al die shit al in je database...doe dat dan als het UIT de database haalt....dit vind ik nooit zo fijn omdat je er dan niks meer mee kan..

de htmlentities gebruik ik ook niet bij het erin pleuren, daar gebruik ik nu dan alleen de mysql_real_escape_string , en bij het eruithalen gebruik ik pas de htmlentities.

Lennard
?
Geplaatst op: 18 Feb 2007, 13:39
PimpCoins: 0
💸+
Bewerken Quote

Badeendje schreef:

[...]

dus ik moet nu gewoon ff met dreamweaver zoeken anar addslashes,en kiezen voor replace met mysql_real_escape_string
?

En raad je ook aan om htmlspecialchars te vervangen door htmlentities ? of dat niet ?


Jup.

mysql_real_escape_string() houdt rekening met het karaktertype zegmaar, addslashes() (en mysql_escape_string() niet).

@ BlackWhizz: Wat is een ' dan in HTML?

📫

Nieuw privébericht

🔥

Registreren


Login