Ik vraag me al een tijd af of ik wel alles goed beveiligd heb.
Ik gebruik PDO misschien wel op de verkeerde manier.
Hoe doe je zorgen dat er altijd wordt voorkomen dat er SQL injections mogelijk zijn?
Dus dit doe ik:
$pdo // Pdo object
$sql = "UPDATE news SET title = '".$_POST['title']."' WHERE id = '1'";
$pdo->exec($sql);
Vroeger toen de mysql_ functies nog werden gebruikt, wist je eigenlijk precies wanneer je de data escaped/veilig maakt. Je ziet het dan ook meteen in de code (mysql_real_escape_string())
Maar nu met PDO zijn er zoveel manieren om 1 simpele query te doen, dat alles ingewikkelder is geworden vind ik.
Ik heb mijn "huiswerk" gedaan op google, maar kon alleen maar vage dingen vinden als:
Use the quote function of PDO to make data safe, but this is not sufficient to prevent SQL injections.
Of:
Use prepared statements, but escape the data for extra safety
Wat is nu de juiste manier? Moet ik gewoon altijd prepared statements gebruiken? Ik twijfel over prepared statements, omdat je dan nergens zelf een functie kunt zetten om de input veilig te maken. En ik weet niet wat PDO met de input doet, dit zou ik graag willen weten.
Dus hoe kan ik bovenstaand stukje code het aller veiligst maken?