PDA

View Full Version : چگونگی چک کردن json در سرور



IMANAZADI
چهارشنبه 01 اردیبهشت 1395, 10:40 صبح
سلام
دوستان فرض کنید یک صفحه داریم شامل یکسری ورودی
که ورودی های توسط کاربر به صفحه اضافه میشن(توسط جاوا اسکریپت و بدون ارسال فرم )
آیتم ها به شکل زیر در صفحه اضافه میشه






<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 تبدیل کنه و سپس ارسال کنه


آیا باید تمام کلید ها رو در سمت سرور چک کرد ؟؟؟؟(طریقه چک کردن پیشنهادیتون رو بگید)

IMANAZADI
پنج شنبه 02 اردیبهشت 1395, 12:12 عصر
کسی از دوستان نیست راهنمایی کنه

Unique
جمعه 03 اردیبهشت 1395, 04:53 صبح
حالا سوالم اینه اگر یک کاربر خرابکار بیاد و فرمت json ارسالی رو بهم بریزه و ارسال کنه چکار باید کرد ؟؟؟؟
به طور کلی هیچوقت نباید به طلاعات ارسالی از سمت کاربر اعتماد کرد و باید بررسیش کرد.


(طریقه چک کردن پیشنهادیتون رو بگید)
برای خوندن که حلقه میگذرای چک کن ببین کلید ها وجود داشته باشن و اگه همه چیز درست بود پردازشت را انجام بده !