action kullanmama
veri göndermede action kullanmiyorum aynı sayfada veri gönderimi yapıyorum ama htmlspecialchars() fonkisyonunu ihmal etmiyorum buna rağmen bir sorun çıkarmı?
Sanırım aynı sayfaya post etmenin sakıncılarını merak ediyorsun.
Öncelikle şöyle başlayayım. Formdan gelen verileri aynı sayfaya göndermen ekstra güvenlik sorunu yaratmaz. Genel olarak formlarda kullanman gereken önlemleri alman yeterlidir. Peki bunlar nedir;
- CsrfToken => Sitemize girmeden bize sahte veriler göndermeye çalışanları durdurur.
- Zararlı kodlardan arındırmak. (Örnek 0.1)
- Form butonuna basılıp basılmadığını kontrol etmek (Örnek 0.2)
- Başındaki ve sonundaki boşlukları silmek (Örnek 0.3)
[Önrek 0.1]
<?php
$csrfToken = md5(uniqid());
$_SESSION['csrfToken'] = $csrfToken;
?>
<form action="" method="post">
<input name="text1" type="text">
<input name="text2" type="text">
<input name="csrfToken" value="<?= $csrfToken ?>" type="text" hidden>
<button>gönder</button>
</form>
if ($_SESSION['csrfToken'] == $csrfToken) {
//
}
[örnek 0.2]
$_POST = array_map(function($post){
return htmlspecialchars($post);
},$_POST);
[Örnek 0.3]
<form action="" method="post">
<input name="text1" type="text">
<input name="text2" type="text">
<button name="button">gönder</button>
</form>
if ($_POST['button']) {
//
}
[Örnek 0.4]
$name = trim($_POST['name']);