Projelerimizi Daha Dinamik Tasarlayabilmek İçin Ajax Kullanabiliyoruz. Peki Kullandığımız POST İşlemini Nasıl Daha Güvenli Hale Getirebiliriz Buyrun Birlikte İnceleyelim.
Küçük bir örnek üzerinde açıklamak isterim. Bunun için 3 input ve 1 buton kullanacağım.
HTML Tarafındaki Yapımız:
JavaScript Tarafındaki Yapımız:
Burada iki türlü kullanım gösterdim hangisini kullanacağınız farketmez , lakin form verileriniz çok fazla olursa her birini tek tek yazmak zahmetli gelebilir o yüzden serialize yapıp göndermeniz pratiklik açısından daha iyi olur.
index veya login Sayfasına oturum açma işlemi başarılı olduğu zamanki duruma aşağıdaki kodu ilave etmelisiniz.
SistemAyarlari.php Adında yapılandırma ayarlarımızın bulunduğu bir dosya oluşturalım , İçerisine ilave olarak aşağıdaki kodları ekleyebilirsiniz.
Test.php Dosyasının içine aşağıdaki kodları yazabilirsiniz.
Kodları tek tek açıklama gereği duymuyorum , zaten else durumlarındaki açıklamalar yeterli bilgiyi veriyor diye düşünüyorum.
Eksiğim veya hatam varsa lütfen yorumlarda belirtiniz.
Umarım Faydalı Olur.
Küçük bir örnek üzerinde açıklamak isterim. Bunun için 3 input ve 1 buton kullanacağım.
HTML Tarafındaki Yapımız:
Kod:
<form id="Form1">
<input id="Deger1" name="Deger1" />
<input id="Deger2" name="Deger2"/>
<input id="Deger3" name="Deger3"/>
<button id="Gonder">Gönder</button>
</form>
JavaScript Tarafındaki Yapımız:
Kod:
<script>
$("#Gonder").click(function () {
/*
//*****************************************
if ($(Form1.Deger1).val() == "") {
alert("Lütfen Değer 1 Boş Bırakmayınız");
return;
}
if ($(Form1.Deger2).val() == "") {
alert("Lütfen Değer 2 Boş Bırakmayınız");
return;
}
if ($(Form1.Deger3).val() == "") {
alert("Lütfen Değer 3 Boş Bırakmayınız");
return;
}
var FormPost = $("#Form1").serialize();
var DataPost=FormPost + "&&Islem=Kayit";
*/
//*****************************************
//veya
//*****************************************
var PostDegeri1=$("#Deger1").val();
var PostDegeri2=$("#Deger2").val();
var PostDegeri3=$("#Deger3").val();
if (PostDegeri1 == "") {
alert("Lütfen Değer 1 Boş Bırakmayınız");
return;
}
if (PostDegeri2 == "") {
alert("Lütfen Değer 2 Boş Bırakmayınız");
return;
}
if (PostDegeri3 == "") {
alert("Lütfen Değer 3 Boş Bırakmayınız");
return;
}
var DataPost={Deger1:PostDegeri1,Deger2:PostDegeri2,Deger3:PostDegeri3,Islem:"Kayit"};
//*****************************************
$.ajax(
{
url: "Test.php",
type: "POST",
data: DataPost,
success: function (Sonuc) {
console.log(Sonuc);
try{
Sonuc=JSON.parse(Sonuc);
var Basarisiz = Sonuc.Basarisiz;
var Basarili = Sonuc.Basarili;
if (Basarili) {
alert(Basarili);
//İstenilen Başarılı Mesaj Geldiğinde Yapılacak İşlemler
} else if(Basarisiz){
alert(Basarisiz);
//İstenilen Başarısız Mesaj Geldiğinde Yapılacak İşlemler
}else{
console.log(Sonuc);
//Başarılı veya Başarısız Mesaj Geldiğinde Yapılacak İşlemler
}
}catch (e){
console.log(e+" Hata Oluştu..");
}
},
error: function (Sonuc) {
console.log(Sonuc);
//POST İşlemi Başarısız Olduğunda Yapılacak İşlemler
}
});
});
</script>
Burada iki türlü kullanım gösterdim hangisini kullanacağınız farketmez , lakin form verileriniz çok fazla olursa her birini tek tek yazmak zahmetli gelebilir o yüzden serialize yapıp göndermeniz pratiklik açısından daha iyi olur.
index veya login Sayfasına oturum açma işlemi başarılı olduğu zamanki duruma aşağıdaki kodu ilave etmelisiniz.
Kod:
$_SESSION['Token'] = md5($_SERVER['HTTP_USER_AGENT']. "mtlive".$_SERVER['PHPSESSID']);
//Oturum Açılırken Kaydı Yapılmalı(login başarılı olduğunda)
SistemAyarlari.php Adında yapılandırma ayarlarımızın bulunduğu bir dosya oluşturalım , İçerisine ilave olarak aşağıdaki kodları ekleyebilirsiniz.
Kod:
$ServerName = "kanlibicakli.com";
//Buradaki Değişken Hangi Domain içinde Çalışıyorsanız Onu Yazmalısınız, Böylece Dışarıdan Gelen POST İşlemlerini Engellenebilir.
$Token = md5($_SERVER['HTTP_USER_AGENT']. "mtlive".$_SERVER['PHPSESSID']);
//SistemAyarlari.php İçine İlave Edilmeli
Test.php Dosyasının içine aşağıdaki kodları yazabilirsiniz.
Kod:
session_start();
$SonucArray = [];
$UserID = $_SESSION['UserID'];
$KayitliToken = $_SESSION['Token'];
if (empty($UserID)) {
header('********: /index.php');
} else {
require_once 'SistemAyarlari.php';
if ($KayitliToken == $Token) {
if (is_numeric($UserID)) {
if ($_POST) {
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
if (!empty($_SERVER['HTTP_X_REQUESTED_WITH'])) {
if (strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {
if (isset($_SERVER['HTTP_REFERER'])) {
if ($ServerName == $_SERVER['SERVER_NAME']) {
$Islem = $_POST['Islem'];
if ($Islem == "Kayit") {
$Deger1 = $_POST["Deger1"];
$Deger2 = $_POST["Deger2"];
$Deger3 = $_POST["Deger3"];
//Gerekli İşlemlerimizi Yapıyoruz
//Örnek Sonuç Üretelim
if (1 === 1) {
$SonucArray["Basarili"] = "İşlem Başarılı..!";
} else {
$SonucArray["Basarisiz"] = "İşlem Başarısız..!";
}
} else {
$SonucArray["Basarisiz"] = "İşlem Değişkeni Kayit a Eşit Değil..!";
}
} else {
$SonucArray["Basarisiz"] = "Sunucu Adı Doğru Değil..!";
}
} else {
$SonucArray["Basarisiz"] = "Yönlendiren Sayfa Yok..!";
}
} else {
$SonucArray["Basarisiz"] = "Gelen İstek Ajax Değeri Değil..!";
}
} else {
$SonucArray["Basarisiz"] = "Kullanılabilir Bir İstek Yok..!";
}
} else {
$SonucArray["Basarisiz"] = "İstek Metodu POST Değil..!";
}
} else {
$SonucArray["Basarisiz"] = "Sayfaya Gönderilen POST Mevcut Değil..!";
}
} else {
$SonucArray["Basarisiz"] = "Kullanıcı Oturumu Numara Değil";
}
}else{
$SonucArray["Basarisiz"] = "Doğru Güvenlik Kontrolüne Sahip Değilsiniz..!";
}
print_r(json_encode($SonucArray));
}
Kodları tek tek açıklama gereği duymuyorum , zaten else durumlarındaki açıklamalar yeterli bilgiyi veriyor diye düşünüyorum.
Eksiğim veya hatam varsa lütfen yorumlarda belirtiniz.
Umarım Faydalı Olur.
Son düzenleme:




