v2.5.2
Giriş yap

action kullanmama

dadasbaba
492 defa görüntülendi

veri göndermede action kullanmiyorum aynı sayfada veri gönderimi yapıyorum ama htmlspecialchars() fonkisyonunu ihmal etmiyorum buna rağmen bir sorun çıkarmı?

Cevap yaz
Cevaplar (3)
venloress
1283 gün önce

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']);
qplot
1283 gün önce

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

fatihozpolat
1283 gün önce

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.