Diskuze: Bezpečný formulář
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
Člen
Zobrazeno 7 zpráv z 7.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
Tak IMHO je lepší vyhnout se čistému PHP a použít nějaký framework
(třeba Nette), co tohle řeší za tebe a nemusíš se ptát, jestli je to
bezpečné, pokud dodržuješ konvence.
Ale tohle se zdá být celkem bezpečné, ale samozřejmě se to dá víc
opevnit, kdybys chtěl (většina ale bude overkill)
</div>
? Nejspíš by se rozsypal layout. Je dobré ten vstup
prohnat přes htmlspecialchars()
, případně pokud chceš
akceptovat HTML, použít něco jako http://htmlpurifier.org/ , co to uklidí tak, aby ti to
nerozbilo layoutNic moc dalšího mě nenapadá, možná ještě někdo něco přidá.
takže by mohlo pomoci změnit kód takle?
<?php
if (isset($_POST["odeslat"])){
$text=htmlspecialchars($_POST['text'],ENT_QUOTES);
Db::connect();
$sql = Db::query('INSERT INTO test (text) VALUES (?)' , $text );
header("Location: index.php");
die;
}
?>
<form method="POST">
<input name="text" type="text" />
<input name="odeslat" type="submit" />
</form>
děkuji
Ano, pomohlo, ale tím samozřejmě řešíš jen jeden problém (ale ten největší)
jedná se o formulář, který se dá vyplnit pouze po přihlášení registrováného uživatele, neregistrovaní ho nevidí
Ok, tak potom je to asi OK. Jen bys měl vědět o tom, že existuje ochrana proti CSFR (dá se to použít třeba i na odkazy, není to jen o formulářích).
Zobrazeno 7 zpráv z 7.