IMANAZADI
چهارشنبه 01 اردیبهشت 1395, 11: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 تبدیل کنه و سپس ارسال کنه
آیا باید تمام کلید ها رو در سمت سرور چک کرد ؟؟؟؟(طریقه چک کردن پیشنهادیتون رو بگید)
دوستان فرض کنید یک صفحه داریم شامل یکسری ورودی
که ورودی های توسط کاربر به صفحه اضافه میشن(توسط جاوا اسکریپت و بدون ارسال فرم )
آیتم ها به شکل زیر در صفحه اضافه میشه
<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 تبدیل کنه و سپس ارسال کنه
آیا باید تمام کلید ها رو در سمت سرور چک کرد ؟؟؟؟(طریقه چک کردن پیشنهادیتون رو بگید)