Dag
Ik ben een website aan het maken en op die website komen ook een contactformulier, een login en een search mogelijkheid. Ik heb inmiddels heel veel over de beveiliging daarvan gelezen maar ik vind het lastig om een beetje recente informatie te krijgen omdat sommige posts inmiddels behoorlijk gedateerd zijn.
Ik voer gebruikersgegevens (verkregen met POST) in de MySQL database in met prepared statements. Ik laat info die verkregen is door een of andere input alleen naar scherm schrijven via htmlspecialchars zoals hieronder staat. (in de code staan niet alle regels maar ik heb de mijns inziens belangrijke hieronder neergezet)
het invoegen van user input in database:
het uitprinten van in database opgeslagen user input;
zover ik weet, ben ik hiermee beveiligd tegen de meest voor de hand liggende SQL injections en XXS. Maar.... ik weet er te weinig van. Is de site nog vulnerable ergens voor?
groetjes, Anjo
Ik ben een website aan het maken en op die website komen ook een contactformulier, een login en een search mogelijkheid. Ik heb inmiddels heel veel over de beveiliging daarvan gelezen maar ik vind het lastig om een beetje recente informatie te krijgen omdat sommige posts inmiddels behoorlijk gedateerd zijn.
Ik voer gebruikersgegevens (verkregen met POST) in de MySQL database in met prepared statements. Ik laat info die verkregen is door een of andere input alleen naar scherm schrijven via htmlspecialchars zoals hieronder staat. (in de code staan niet alle regels maar ik heb de mijns inziens belangrijke hieronder neergezet)
het invoegen van user input in database:
Code:
$sql = "INSERT INTO news_items (title, summary, image, text, newsdatetime) VALUES (?, ?, ?, ?, ?)";
/*...*/
$title = $_POST['title']; /* geen escaping hier want prepared statement */
/*...*/
mysqli_stmt_bind_param($stmt, "sssss", $title, $summary, $text, $image, $newsdatetime);
/*---*/
mysqli_stmt_execute($stmt);
het uitprinten van in database opgeslagen user input;
Code:
/*...*/
while ($row = mysqli_fetch_array($result)) {
$titles[] = $row['title'];
/*...*/
foreach ($titles as $title):
echo htmlspecialchars($title, ENT_QUOTES, 'UTF-8');
echo "<br>";
endforeach;
zover ik weet, ben ik hiermee beveiligd tegen de meest voor de hand liggende SQL injections en XXS. Maar.... ik weet er te weinig van. Is de site nog vulnerable ergens voor?
groetjes, Anjo