• 23-09-2018, 17:33:42
    #1
    Merhaba ufak çaplı bir panel çalışmam var ama aşağıda resimde görüldüğü gibi bir sorunum var Chrome consolede kırmızı renkte işaretlediğim yerdeki disabled'i silip value kısmını değiştirince seçenek açılıp post'ladığımızda değişen veri geliyor bunu nasıl engelleyebilirim ?

  • 23-09-2018, 17:42:59
    #2
    Gold üye
    post sayfasında güncelleme yapmanız gerekiyor.
  • 23-09-2018, 17:52:58
    #3
    base64 gibi çift taraflı şifreleme ile encode edip value kısmına yazdırabilirsin , form post olduğundada geri decode edersin decodeye göre is_numeric ile sadece numaramı diye kontrol ettirirsin
  • 23-09-2018, 18:15:11
    #4
    En basit çözümlerden biri olan sabit değerleri bir diziye atmak ve post ettiğiniz sayfada gelen değerin dizide olup olmadığını kontrol ettirmektir. Farklı çözümler olabilir, şifrelemede bunlardan biri.
  • 23-09-2018, 18:57:49
    #5
    instads adlı üyeden alıntı: mesajı görüntüle
    post sayfasında güncelleme yapmanız gerekiyor.
    OnurTasci adlı üyeden alıntı: mesajı görüntüle
    base64 gibi çift taraflı şifreleme ile encode edip value kısmına yazdırabilirsin , form post olduğundada geri decode edersin decodeye göre is_numeric ile sadece numaramı diye kontrol ettirirsin
    strawz adlı üyeden alıntı: mesajı görüntüle
    En basit çözümlerden biri olan sabit değerleri bir diziye atmak ve post ettiğiniz sayfada gelen değerin dizide olup olmadığını kontrol ettirmektir. Farklı çözümler olabilir, şifrelemede bunlardan biri.
    Teşekkürler değerli yorumlarınız için şifreleme ve sabit değerleri dizinleyerek hallettim .
  • 25-09-2018, 16:15:20
    #6
    Şifreleme yaptım ama örnek veriyorum 750.000 kredi'nin value'sini 50.000 kredinin valuesine yazınca postladığımda 750.000 kredi postlanıyor bunu nasıl engelleyebilirim. Value değiştirilse bile postladığımda 50.000 kredinin valuesini nasıl çekebilirim ?

  • 25-09-2018, 18:04:27
    #7
    Tam olarak söylemek istediğinizi anlamadım ama client güvenilir değildir, tüm önlemleri server tarafında almanız gerekir.

    Örneğin optionslar server tarafında elinizde olmalı aşağıdaki gibi bir diziyi döngü ile selectboxa aktarın postda gelen veriyi dizi ile karşılaştırın. Dizideki değer varsa fakat disable true ise işlem yapmayın hata döndürün.

    $optioans = array(
        array("value" => 50000, "text" => "50.000 Kredi", "disable" => false),
        array("value" => 75000, "text" => "75.000 Kredi", "disable" => true)
    );




    Bu diziyi ister iki sayfayada koyun ister her iki sayfayada include edilen başka bir sayfada tanımlayın.
    $options = array(
        array("value" => 50000, "text" => "50.000 Kredi", "disable" => false),
        array("value" => 75000, "text" => "75.000 Kredi", "disable" => true),
        array("value" => 100000, "text" => "100.000 Kredi", "disable" => false),
        array("value" => 150000, "text" => "150.000 Kredi", "disable" => false)
    );
    form.php
    <form method="post">
        <select name="test">
        <?php
        foreach ($options as $option){
            echo "<option value='{$option['value']}'", $option['disable']?' disabled':'',">{$option['text']}</option>";
        }
        ?>
        </select>
        <input type="submit">
    </form>
    post.php
    if(!empty($_POST)) {
        if (is_valid_options($options, $_POST['test'])) {
            //true dönerse form doğru post edilmişse ilgili değişkene atayıp kaydedebilirsiniz
            $test = $_POST['test'];
            echo $test;
        } else {
            //false dönerse form değiştirilmiş demektir hata mesajı verir kayıt işlemi yapmazsınız
            echo 'hata oluştu';
        }
    }
    
    function is_valid_options($options, $value)
    {
        foreach ($options as $optioan) {
            if($optioan['value'] == $value && $optioan['disable'] === false){
                return true;
            }
        }
        return false;
    }
  • 25-09-2018, 21:07:54
    #8
    Çok teşekkür ederim yardımın için.
  • 26-09-2018, 09:30:06
    #9
    ztk
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Şöyle düşünelim,
    diyelim herşey normal, adam 50bin kredi gönderecek, bunun bir ücreti bedeli var diyelim. 50bin i seçti gönderdi. Ücretini düştünüz.
    Sonra akıllının biri 50 bin kredilik optionu seçti gönderdi ama valuesini 750bin yaptı. Sanıyor ki 50bin kredinin ücretine aldım. Ama siz arka tarafta baktınız ki 750bin gelmiş, o zaman 750bin liralık ücret yansıtırsınız.
    Yani seçenekler arasında değişiklik yapmasının bir önemi yok. isterse hepsini 750bin yapsın. Zaten 50bin ve 750bin seçme hakkına sahip yani yerlerini değiştirmesi birşey ifade etmiyor.

    Ama seçenekler arasında olmayan 647bin olarak değiştirdi. O zaman bu seçenek yoktur diye hata dönersiniz. Yani valueler ile oynamasının hiçbir etkisi olamaz. 50bin i 750bin yaptıysa 750bin seçme hakkı da zaten varsa bu bir problem değildir. Bu işle uğraşan kişinin boşuna zaman kaybıdır sadece. Şifreleme yapmanıza da gerek yok yani. Sizin arka tarafta yapmanız gereken, gelen verinin karşılığı ne ise onunla işlem yapmaktır. Yani id olsaydı diyelim, 1,2,3,4,5 idlerini gönderiyor olsaydı, size 3 geldiğinde siz bakardınız hmmm bu 75bin kredi demek. o zaman bunun ücretini düşeyim. adam 2 ile 3 ü değiştirdiyse size gelen 2 olur. o zaman 2 ye göre işlem yaparsınız. 6 gelirse de hata dönersiniz. Yani hepsinin bir karşılığı olduğu sürece isterse optionları checkbox a çevirsin öyle göndersin. Sizi hiç alakadar etmez.