Ana sayfa PHP PHP ile HTML form’ una başka bir domain ‘den gelen post isteğini...

PHP ile HTML form’ una başka bir domain ‘den gelen post isteğini önlemek

20
0
yararlı php kodları
yararlı php kodları

Bir HTML form’ una başka bir domain ‘den gelen post isteğini önlemek için HTTP_REFERRER veya cookie’ ler kullanılsada en iyi yaklaşım hidden(gizli) input etiketi içinde SHA1(), SHA256() veya Bcrypt ile veritabanında saklanmış bir salt değerini session id veya kullanıcı IP adresi ile birlikte kullanmaktır.

Note: salt en az 20 karakterden oluşmalıdır.

<?PHP
if(isset($_POST)){
    //veritabanı bağlantısı
    $salt = $mysqli ->query("SELECT salt FROM tablo LIMIT 1");
    $sessionid= session_id();
    $ipadres = $_SERVER['REMOTE_ADDR'];
    $gizlietiket = SHA1($salt + $ipadres + $sessionid); // Eğer PHP sürümünüz SHA246 veya Bcrypt'i destekliyorsa SHA1 yerine onlarıda kullanabilirsiniz.
 
    if($gizlietiket == $_POST['gizlietiket']){
         echo 'Sitemizden post yapıldı';
    } else {
        echo 'Alan adı farklı. Başka bir siteden post yapıldı';
    }
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Bilgisayar.me</title>
</head>
<body>
<?PHP
//veritabanı bağlantısı
$salt = $mysqli ->query("SELECT salt FROM tablo LIMIT 1");
$sessionid= session_id();
$ipadres = $_SERVER['REMOTE_ADDR'];
$gizlietiket = SHA1($salt + $ipadres + $sessionid); // Eğer PHP sürümünüz SHA246 veya Bcrypt'i destekliyorsa SHA1 yerine kullanabilirsiniz.
?>
<form id="form1" name="form1" method="post" action="?">
  <input type="hidden" name="gizlietiket" id="gizlietiket" value="<?PHP echo $gizlietiket?>"/>
  İsim <input  type="text" name="isim"/>
  Adres <input  type="text" name="adres"/><br />
<input name="" type="submit" value="Gönder"/>
</form>
</body>
</html>

BİR CEVAP BIRAK

Please enter your comment!
Please enter your name here