Hallo, allemaal is htmlspecialchar of escape voor pdo nodig? Ik wil een formulier maken dat bezoekers via front end kunnen invullen zodat in de database wordt opgeslagen.
Hallo ben, eerst wil ik je bedanken. Zelf volg ik tutorial van PDO zou ik dan de code ook bij plaatsen? Dat meer zicht geeft en dan kan je nog misschien andere adviezen geven.
Correct. Maar om de vraag te beantwoorden, je gebruikt hier prepared statements dus is escaping niet nodig. Zoals eerder gemeld moet je buiten escaping nooit andere dingen doen zoals htmlspecialchars, strip_tags oid. Ik kom die achterlijkheid veel te vaak tegen, met daarbij de vraag "waarom doet mijn query niet wat ik wil" ;-)
Eerst wil ik je bedanken. Weet je misschien waarom bovenstaande script een blanco scherm geeft en als je melding aan zet krijg je ook geen meldingen te zien. Kan dat aan hosting zitten? Zo ja, dan wil ik bovenstaande script met mysql werken maar daar krijg ik lege waarde mee verstuurd.
Laat me je eens uitleggen waar de functies voor dienen.
htmlspecialchars
Dit dient om unieke of rare karakters om te zetten HTML entiteiten. Hierdoor is het leesbaar voor de browser zonder al te veel rompslomp. Dit is tevens uiterst handig ter beveiliging van een script. Omdat het verschillende HTML tekens omzet naar normale tekens. Zo wordt een < (kleiner dan) omgezet naar < en een > (groter dan) naar een >
De aanhalingstekens worden ook gefilterd.
escaping
In de uitleg op php.net staat het volgende:
This function is used to create a legal SQL string that you can use in an SQL statement. The given string is encoded to an escaped SQL string, taking into account the current character set of the connection.
Dat houdt simpelweg in dat waardes in MySQL(i) omgezet worden naar legale karakters kijkend naar de huidige karakterset zodat de string makkelijk plaatsbaar is voor de database.
Dit alles betekend in het kort dat een escape vooral wordt gebruikt om SQL injectie tegen te gaan en een htmlspecialchars wordt gebruikt om HTML tekens te filteren om bijvoorbeeld een Cross site scripting (XSS) tegen te gaan. Daarnaast ondersteund PDO ook geen escape.
Hier nog wat leesvoer om alles beter te begrijpen.