چک کردن شرط در درخواست ajax

پرسیده شده
فعالیت 1280 روز پیش
دیده شده 469 بار
1

سلام

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);
                }
            });
        });

 

فایل پیوست

2
حذف شده

سلام

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

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

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

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

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

فایل پیوست

لقمان آوند

توسط

لقمان آوند

13 آبان 99