BaÅŸka Yerden Gelen Veriyi Engellemek
Makale - PHP
Yazar ugokhan   
Salı, 18 Eylül 2007 10:52

Form işlemleri sırasında en sık karşılaşılan problemlerden biri, hazırlamış olduğunuz formun bir benzerinin hazırlanması ve aynı değişkenlerin sizin web sitenize yollanmasıdır. Böylece formdan gelen verileri işleyecek olan kontrol dosyanız bunu sizin sitenizden geldi zannedip işlemine devam eder. Fakat bunu engellemek için basit bir yöntem vardır.

Bir form yapısı kurduk ve ve a.php üzerindeki form doldurulduğunda işlenmek için b.php'ye gidiyor. Fakat b.php'ye başka sayfalardan da veri yollamak isteyenler var. Buraya sadece a.php'den gelen verilerin gelmesini istiyoruz. a.php dışından gelinirse bunu nasıl anlarım ve nasıl engellerim?

1. Yöntem:

b.php dosyasının başına aşağıdaki kodlar eklenir.

  1. $expected_ref = "a.php";
  2. if($_SERVER['HTTP_REFERER'] != $expected_ref) exit();

2. Yöntem:

Oturum kontrolü yaptırılır.

Örnek a.php dosyası şöyle olsun.

  1. <?php
  2. $_SESSION['this_id'] = session_id();
  3. ?>
  4. <form method="post" action="b.php">
  5. <input type="text" name="param1"><br>
  6. <input type="hidden" name="form_id" value="<?=$_SESSION['this_id']?>">
  7. <input type="submit" value="Submit">
  8. </form>

b.php dosyasının başına şu kodlar eklenir.

  1. <?php
  2. if($_SESSION['this_id']!=$_POST['form_id']) exit();
  3. ?>

 

Yorum ekle

TCK'ya aykırı, yasadışı ve genel ahlaka aykırı yazılar ile konu dışında yazılar, istekler, spam ve reklam amaçlı mesajlar yazılması YASAKTIR. Bu tür yazılar görüldüğü anda tarafımdan silinecektir. Herhangi bir uygunsuzluğun olduğunu düşündüğünüz yazılar için lütfen bana eposta yoluyla haber veriniz.


Güvenlik kodu
Yenile