💻 آخرین فرصت یادگیری برنامه‌نویسی با آفر ویژه قبل از افزایش قیمت در ۵ آذر ماه (🎁 به همراه یک هدیه ارزشمند )
۰ ثانیه
۰ دقیقه
۰ ساعت
۱ هاجر اسدالله پور
چک کردن شرط در درخواست 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);
                }
            });
        });

 

سلام

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

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

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

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

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

بهترین پاسخ
لقمان آوند ۱۳ آبان ۱۳۹۹، ۰۸:۰۵