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ı?
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (3)
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']);
action ile htmlspecialchars alakasız şeyler
action formun hangi sayfaya post veya get ile gönderilmesi gerektiğini belirtir ki formu aynı sayfada kullanacaksan action belırtmene gerek yok
htmlspecialchars ise zararlı html kodlarını temızler kı sadece tek basına ıse yaramaz bazı karakterlerın sekıllerını degıstırır buda sorun yaratablır
bunun yerıne buna benzer seyler arastır
https://www.php.net/manual/tr/function.htmlspecialchars.php#101592
Diyelim ki index.php de çalışıyorsun ve formu yine index.php ye göndermek istiyorsun bu durumda action parametresi yazman gerekmez.
İsteği varsayılan olarak bulunduğun adrese atar.