• 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
چگونگی چک کردن json در سرور
#1
سلام
دوستان فرض کنید یک صفحه داریم شامل یکسری ورودی
که ورودی های توسط کاربر به صفحه اضافه میشن(توسط جاوا اسکریپت و بدون ارسال فرم )
آیتم ها به شکل زیر در صفحه اضافه میشه

کد:
<div class="row">
<input type="hidden" name="mat[]" value="monitor">
<input type="hidden" name="mat_flag[]" value="true">
<input type="hidden" name="mat_type[]" value="lg">
<input type="hidden" name="mat_tag[]" value="A00B8">
<input type="hidden" name="mat_QTY[]" value="3">
</div>

<div class="row">
<input type="hidden" name="mat[]" value="monitor">
<input type="hidden" name="mat_flag[]" value="false">
<input type="hidden" name="mat_type[]" value="lg">
<input type="hidden" name="mat_tag[]" value="CD028">
<input type="hidden" name="mat_QTY[]" value="5">
</div>

<div class="row">
<input type="hidden" name="mat[]" value="cpu">
<input type="hidden" name="mat_flag[]" value="false">
<input type="hidden" name="mat_type[]" value="corei5">
<input type="hidden" name="mat_tag[]" value="DF980">
<input type="hidden" name="mat_QTY[]" value="7">
</div>

<div class="row">
<input type="hidden" name="mat[]" value="cpu">
<input type="hidden" name="mat_flag[]" value="false">
<input type="hidden" name="mat_type[]" value="corei3">
<input type="hidden" name="mat_tag[]" value="GH580">
<input type="hidden" name="mat_QTY[]" value="2">
</div>

<div class="row">
<input type="hidden" name="mat[]" value="ram">
<input type="hidden" name="mat_flag[]" value="true">
<input type="hidden" name="mat_type[]" value="ddr3">
<input type="hidden" name="mat_tag[]" value="RO180">
<input type="hidden" name="mat_QTY[]" value="9">
</div>

<div class="row">
<input type="hidden" name="mat[]" value="ram">
<input type="hidden" name="mat_flag[]" value="true">
<input type="hidden" name="mat_type[]" value="ddr5">
<input type="hidden" name="mat_tag[]" value="WQ280">
<input type="hidden" name="mat_QTY[]" value="4">
</div>

و پس از تکمیل نهایی با فشردن کلید باتن تمامی اطلاعات به صورت json در اومد و توسط آژاکس به سرور ارسال میشن



کد:
{ monitor : [
{'mat_flag': true , 'mat_type' : 'lg' , 'mat_tag' : 'A00B8' , 'mat_QTY' : 3 } ,
{'mat_flag': false , 'mat_type' : 'lg' , 'mat_tag' : 'CD028' , 'mat_QTY' : 5 }
] ,
cpu : [
{'mat_flag': false , 'mat_type' : 'corei5' , 'mat_tag' : 'DF980' , 'mat_QTY' : 7 } ,
{'mat_flag': false , 'mat_type' : 'corei3' , 'mat_tag' : 'GH580' , 'mat_QTY' : 2 }
],
ram : [
{'mat_flag': false , 'mat_type' : 'ddr3' , 'mat_tag' : 'GH580' , 'mat_QTY' : 4 } ,
{'mat_flag': false , 'mat_type' : 'ddr5' , 'mat_tag' : 'WQ280' , 'mat_QTY' : 9 }
]
}


در سمت سرور پارامتر json ، دیکد میشه (json_decode()) و به آرایه تبدیل میشه

حالا سوالم اینه اگر یک کاربر خرابکار بیاد و فرمت json ارسالی رو بهم بریزه و ارسال کنه چکار باید کرد ؟؟؟؟
مثلا بیاد کلید mat_tag رو به mat_del تبدیل کنه و سپس ارسال کنه

آیا باید تمام کلید ها رو در سمت سرور چک کرد ؟؟؟؟(طریقه چک کردن پیشنهادیتون رو بگید)
  پاسخ
تشکر شده توسط :
#2
نقل قول: آیا باید تمام کلید ها رو در سمت سرور چک کرد ؟؟؟؟(طریقه چک کردن پیشنهادیتون رو بگید)
بله ، لیست سفید بذار
کلید هایی که اجازه دارن رو فقط اجازه بده بیاد
مقدارشم پالایش کن که یوقت مشکلی برات ایجاد نکنه
  پاسخ
تشکر شده توسط :
#3
(۱۳۹۵ اردیبهشت ۰۱, ۰۶:۲۳ ب.ظ)Reza نوشته:
نقل قول: آیا باید تمام کلید ها رو در سمت سرور چک کرد ؟؟؟؟(طریقه چک کردن پیشنهادیتون رو بگید)
بله ، لیست سفید بذار
کلید هایی که اجازه دارن رو فقط اجازه بده بیاد
مقدارشم پالایش کن که یوقت مشکلی برات ایجاد نکنه

میشه لطفا بیشتر توضیح بدی
  پاسخ
تشکر شده توسط :
#4
کد پی‌اچ‌پی:
$white_list = array('mat_flag','mat_type','mat','mat_tag','mat_QTY');

$post = array();
foreach(
$white_list as $key)
    
$post[$key] = strip_tags($_POST[$key]);
    
    
print_r($post); 
  پاسخ
تشکر شده توسط :


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان