🔥 با کمک هوش مصنوعی در کمتر از 6 ماه فول‌استک شوید ...
۰ ثانیه
۰ دقیقه
۰ ساعت
۱ ثابت فولادوند
چک کردن شرط در درخواست ajax
اسفندیار ساعی حل شده توسط اسفندیار ساعی

سلام

if(is_null($_POST['data']) or !is_numeric($_POST['data'])){
    echo 'invalid location';
    die();
}

 

این شرط چرا چک می‌شود؟ چون زمانی که درخواست ajax به صفحه status toggle.php ارسال می‌شود قطعا مقدار [ $_POST['data' ست شده است. چون با کلیک روی button ، حتما id ست می‌شود.

$('.statusToggle').click(function(){
            const locid=$(this).attr('data-loc');
            $.ajax({
                url:'process/statusToggle.php' ,
                method:'POST',
                data:{data:locid},
                success:function(response){
                alert(response);
                }
            });
        });

 

سلام

باید همه احتمالات ممکن رو در نظر بگیرید.

- مثلا به خاطر اختلال در دریافت اطلاعات لوکیشین (مثل عدم دسترسی به خاطر تحریم) دیتا به درستی ست نشده باشه.

- یه حالت دیگه اینه که یه هکر یا حمله کننده اطلاعات فیک (که فرمت اشتباهی داره) رو با ابزارهای ارسال ریکوئست بفرسته ...

سناریوهای دیگه هم محتمل هست.

یادتون نره تحت هیچ شرایطی نباید به دیتایی که از سمت کلاینت میاد مطمئن بشید و همواره باید اعتبارسنجی کنید. این یکی از مهمترین نکته‌های امنیتی هست ...

بهترین پاسخ
اسفندیار ساعی ۱۳ آبان ۱۳۹۹، ۰۸:۰۵