Vraagje over htmlentities

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Dutch Boy

Dutch Boy

21/03/2011 23:24:46
Quote Anchor link
Beste phphulpers,

Ik had een vraagje, htmlentities gebruik ik voornamelijk tegen sql-injectie, wat ik nu doe is bij een postveld, bv. gastenboek, dan zet ik bij het toevoegen van het bericht aan de database een htmlentities ervoor, en bij het oplezen/opvragen van het bericht van de database zet ik daar ook weer de htmlentities voor..

Probleem is nu, bij het invoegen worden dus ' " etc weg gefilterd.
Dus mijn vraag is, is het veilig als ik de htmlentities bij het toevoegen weghaal en de htmlentities alleen bij het opvragen laat staan? Zodat het nog steeds anti-sqlinjectie of htmlverpesten is... ;P
 
PHP hulp

PHP hulp

22/12/2024 16:00:18
 
- SanThe -

- SanThe -

21/03/2011 23:39:55
Quote Anchor link
Dutch Boy op 21/03/2011 23:24:46:
htmlentities gebruik ik voornamelijk tegen sql-injectie


Dat doe je dan dus niet goed want daar is het niet voor.
Zie mysql_real_escape_string().
 
Dutch Boy

Dutch Boy

22/03/2011 17:45:08
Quote Anchor link
Ja dat doe ik ook, maar dat was mijn vraag niet...

Ik gebruik het zodat mensen geen html shit kunnen posten zoals <plaintext> etc.
 
Wesley PHP

Wesley PHP

22/03/2011 18:28:01
Quote Anchor link
Als je htmlentitities bij het opvragen en bij het invoeren doet, is er toch niks aan de hand?
 
Niels K

Niels K

22/03/2011 18:43:08
Quote Anchor link
Fout mensen (behalve santhe), mysql_real_escape_string moet je bij het invoeren gebruiken en htmlentities of htmlspecialchars bij het opvragen. Evt kan je nog strip_tags gebruiken.

Let ook op utf-8 encoding. Deze kan je overigens netjes als parameter aan htmlentities of htmlspecialchars toevoegen. Klik ook op de linkjes voor meer informatie.
 
Dutch Boy

Dutch Boy

22/03/2011 23:54:02
Quote Anchor link
@ Niels

Ja klopt, maar je moet dus htmlentities alleen bij uitvoeren gebruiken ? (wat ik al vermoedde, maar dee het voor de zekerheid ook bij invoegen)..

En heb het gelezen maar snap het volgende niet:

htmlentities en htmlspecialchars (er staat dat ze op elkaar lijken, maar wat is de verschil, wat kan de een wel en de ander niet etc.?)

En ik heb strip_tags ook gelezen maar snap niet echt waarom je dat bij het invoegen moet gebruiken, aangezien je al htmlentities gebruikt???

En het is mij geleerd om bij het invoegen ENT_QUOTES te gebruiken, dus dit doe ik qua gewoonte, maar ik snap nog steeds niet echt waarom het moet, aangezien je toch htmlentities gebruikt???

Graag uitleg :)
 
Pim -

Pim -

23/03/2011 00:01:46
Quote Anchor link
Strip tags vind ik niet nodig. Als iemand tags wil gebruiken, waarom niet als het veilig kan?

specialchars maakt tekst veilig in HTML door <, > en aanhalingstekens te escapen, entities zet ook vreemde tekens (eg é) om in &...;, waardoor het altijd goed wordt weergegeven. Beter en mooier is het om je encoding goed in UTF-8 te zetten, dan is entities niet nodig. Zie daarvoor hier.

Die quotes parameter laat je instellen welke aanhalingstekens moeten worden geëscaped, ENT_QUOTES is de (enige) goede keuze.
 
Niels K

Niels K

23/03/2011 17:58:35
Quote Anchor link
@Pim

Daarom zei ik ook evt :) Over UTF-8. Ja precies.
 
Dutch Boy

Dutch Boy

23/03/2011 22:52:51
Quote Anchor link
Ik lees dat sommige functies in PHP niet met UTF-8 werken...
Dus wat is nou beter htmlentities of htmlspecialchars en moet ik nou wel of geen ENT_QOUTES gebruiken (of strip_tags)...

Heb nu wel door dat htmlentities alleen bij het opvragen nodig is.. (is dat ook bij htmlspecialchars?)

Belangrijke vraag:
Moet ik nou ENT_QOUTES alleen bij het opvragen uit de db gebruiken (dus net als htmlentities) of ook bij het toevoegen ?
Gewijzigd op 23/03/2011 23:05:51 door Dutch Boy
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.