/
  • سیاست امنیتی برای المانهای داخل فرم

  • ارسال پاسخ   امتیاز موضوع:
    • 0 رأی - میانگین امیتازات: 0
    • 1
    • 2
    • 3
    • 4
    • 5

    حالت موضوعی | حالت خطی سیاست امنیتی برای المانهای داخل فرم
    نویسنده پیام
    ImanAzadi آفلاین
    عضو
    ***

    ارسال‌ها: 246
    تاریخ عضویت: ۱۳۹۲ اسفند ۲
    اعتبار: 0
    تشکرها : 36
    ( 9 تشکر در 9 ارسال )
    ارسال: #1
    سیاست امنیتی برای المانهای داخل فرم
    با سلام
    دوستان یه بحثی بدجوری رو مخم هست

    فرض کنید ما یک فرم داریم که شامل چند تکس باکس و چند کمبوباکس هست

    زمانی که صفحه لود میشه کمبوباکس ها از سمت سرور پر میشن و دیتا میگیرن ، این دیتا هم از جداول دیتابیس مربوطه خونده میشه و مهم هستن

    تکس باکس ها که مقداری رو از کاربر میگیره و بحثی نداره ولی واسه کمبوباکس ها چکار میشه کرد

    مثلا دیتای کمبوباکس زیر از جدول کالا خونده میشه و مقدار value در واقع کد id هر محصول (کالا) هست
    کد:
    <select name="codekala" id="codekala">
    <option value="1">kala1</option>
    <option value="2">kala2</option>
    <option value="3">kala3</option>
    <option value="4">kala4</option>
    </select>

    از نظر امنیت این شیوه فکر کنم خیلی مشکل داره

    چون هم کاربر به راحتی میتونه از سیاست کار خبردار بشه و کد کالا ها رو به راحتی تشخیص بده
    همین اینکه به راحتی میتونه کد کالاها رو تغییر بده و کالایی رو که اصلا در لیست نیست با توجه به شناخت کد کالا از قبل اونو ایجاد کنه
    یا یک کد کالا که اصلا در دیتابیس وجود نداره رو ایجاد کنه

    اینایی که گفتم منظمورم سمت کاربر هست با استفاده از راست کلیک و گزینه inspect element هست

    بنظرتون ایده ای اصولی برای همچین پیاده سازیهایی به چه صورت هست ؟؟؟؟
    (آخرین ویرایش در این ارسال: ۱۳۹۵ تير ۱۹ ۰۴:۴۸ عصر، توسط ImanAzadi.)
    ۱۳۹۵ تير ۱۹ ۰۴:۴۶ عصر
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط :
    webnevesht آفلاین
    محمدرضا سلطانی
    ***

    ارسال‌ها: 972
    تاریخ عضویت: ۱۳۹۰ آذر ۲۵
    اعتبار: 22
    تشکرها : 384
    ( 702 تشکر در 427 ارسال )
    ارسال: #2
    RE: سیاست امنیتی برای المانهای داخل فرم
    بحث اعتبارسنجی به همین موضوع برمیگرده دیگه که شما صرفا اعتماد نکنی به فرمی که طراحی کردی و داده هایی که دریافت میکنی رو اعتبار سنجی کنی که آیا همچین چیزی اصلا وجود داره یا نه بطور مثال.Blush
    __________________________________________________________________________
    بنده طعم ايمان را نمي چشد، تا اينكه دريابد آنچه اتفاق نيفتاده است نمي شد كه اتفاق بيفتد؛و آنچه شده و اتفاق افتاده است,نمي شد كه نشود و اتفاق نيفتد....حضرت علي(ع)
    ۱۳۹۵ تير ۲۰ ۰۱:۱۲ صبح
    یافتن ارسال‌ها WWW پاسخ با نقل قول
     تشکر شده توسط :
    ImanAzadi آفلاین
    عضو
    ***

    ارسال‌ها: 246
    تاریخ عضویت: ۱۳۹۲ اسفند ۲
    اعتبار: 0
    تشکرها : 36
    ( 9 تشکر در 9 ارسال )
    ارسال: #3
    RE: سیاست امنیتی برای المانهای داخل فرم
    ببنید آره اعتبارسنجی وجود داره ولی اعتبارسنجی فقط میاد پارامترهای ارسالی تمیز میکنه

    فقط میتونه تعیین کنه که پارامتر ارسالی عدد هست یا خیر
    یا ایمیل معتبر هست یا خیر و .....

    ولی اگر کاربر بیاد و یک کد عددی ارسال کنه که اصلا جزو کد کالاهای در دیتابیس نیست چی میشه !!!
    انوقت اعتبارسنجی بهش گیر نمیده چون پارامتر واقعا عدد هست و از نظر validate بودن مشکلی نداره


    منطق خیلی از سایت ها رو دیدم که فیلدهای این چنینی را hidden و value اون را بصورت کد درمیارن ، بنظرتون این ایده کارساز هست ؟؟؟
    (آخرین ویرایش در این ارسال: ۱۳۹۵ تير ۲۰ ۰۷:۱۲ صبح، توسط ImanAzadi.)
    ۱۳۹۵ تير ۲۰ ۰۶:۵۶ صبح
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط :
    kiarash_kcm آفلاین
    عضو
    ***

    ارسال‌ها: 159
    تاریخ عضویت: ۱۳۹۲ بهمن ۷
    اعتبار: 5
    تشکرها : 12
    ( 48 تشکر در 41 ارسال )
    ارسال: #4
    RE: سیاست امنیتی برای المانهای داخل فرم
    (۱۳۹۵ تير ۲۰ ۰۶:۵۶ صبح)ImanAzadi نوشته شده توسط:  ببنید آره اعتبارسنجی وجود داره ولی اعتبارسنجی فقط میاد پارامترهای ارسالی تمیز میکنه

    فقط میتونه تعیین کنه که پارامتر ارسالی عدد هست یا خیر
    یا ایمیل معتبر هست یا خیر و .....

    ولی اگر کاربر بیاد و یک کد عددی ارسال کنه که اصلا جزو کد کالاهای در دیتابیس نیست چی میشه !!!
    انوقت اعتبارسنجی بهش گیر نمیده چون پارامتر واقعا عدد هست و از نظر validate بودن مشکلی نداره


    منطق خیلی از سایت ها رو دیدم که فیلدهای این چنینی را hidden و value اون را بصورت کد درمیارن ، بنظرتون این ایده کارساز هست ؟؟؟

    خوب شما زمانی که داری اطلاعات کاربر رو چک میکنی یه بررسی هم بکن که کد کالایی که داره وارد میکنه اصلا تو جدولت هست یا نه ... اعتبار سنجی یه کلمه کلی هستش شما هر چیزی رو میتونی کنترل کنی ...
    یه کار دیگه هم میتونی انجام بدی برای محکم کاری که تو برخی از روش ها جواب نمیده اما یه مقدار امن میکنه (البته اگه دوستان نظری دارن بگن حتما ) اونم اینکه تو فرمت Seesion_id رو بگیری و پاس بدی صفحه بعد اگه با صفحه دوم یکی بود حالا اعتبار سنجی فرمت رو شروع کنی ...
    __________________________________________________________________________
    [تصویر:  iranphp.jpg]
    ۱۳۹۵ تير ۲۰ ۰۹:۲۳ صبح
    یافتن ارسال‌ها WWW پاسخ با نقل قول
     تشکر شده توسط :
    ImanAzadi آفلاین
    عضو
    ***

    ارسال‌ها: 246
    تاریخ عضویت: ۱۳۹۲ اسفند ۲
    اعتبار: 0
    تشکرها : 36
    ( 9 تشکر در 9 ارسال )
    ارسال: #5
    RE: سیاست امنیتی برای المانهای داخل فرم
    نقل قول: خوب شما زمانی که داری اطلاعات کاربر رو چک میکنی یه بررسی هم بکن که کد کالایی که داره وارد میکنه اصلا تو جدولت هست یا نه

    من کجا صحبت از چک کردن اطلاعات کاربر کردم ؟؟!!!

    بعد گفتم پست اول فقط واسه اینکه منظورم رو برسونم مثال زدم
    فرم اصلی چندین کمبوباکس داره که هر کدوم رو از یک جدول میخونه برای چک کردن هر کدوم هم باید یه کوئری یزنم مقادیر جدول هاشو بخونم بعد با مقدار ارسالی چک کنم که این مستلزم کد نویسی زیاد هست

    نقل قول: اعتبار سنجی یه کلمه کلی هستش شما هر چیزی رو میتونی کنترل کنی ...

    دوست عزیز فکر کنم خودت یکم مطالعه کنی بد نیست بحث اعتبارسنجی فقط واسه تمیز کردن ورودی هاست که مثلا ورودی خالی نباشه یا عدد صحیح باشه یا ایمیل وارد شده فرمتش صحیح باشه و ....

    یه بحث داریم به نام اعتبارسنجی (validation) یه بحث داریم data verification که صحت ورودی ها رو با دیتابیس چک میکنه

    نقل قول: یه کار دیگه هم میتونی انجام بدی برای محکم کاری که تو برخی از روش ها جواب نمیده اما یه مقدار امن میکنه (البته اگه دوستان نظری دارن بگن حتما ) اونم اینکه تو فرمت Seesion_id رو بگیری و پاس بدی صفحه بعد اگه با صفحه دوم یکی بود حالا اعتبار سنجی فرمت رو شروع کنی ...

    منظورتون پاس بدیم صفحه بعد چیه ؟؟؟ ما اینجا فقط یک فرم داریم و بعد مقادیر واسه سرور ارسال میشه
    به هر حال نفهمیدم منظورت چی بود
    ولی این چیزی هم که شما میگید خودش مشکل داره چون اکثرا برای مباحث امنیتی بعد از لود صفحه session_id رو دوباره ایجاد میکنن => session_regenerate_id


    Dodgy
    (آخرین ویرایش در این ارسال: ۱۳۹۵ تير ۲۰ ۰۳:۳۴ عصر، توسط ImanAzadi.)
    ۱۳۹۵ تير ۲۰ ۰۳:۳۴ عصر
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط :
    webnevesht آفلاین
    محمدرضا سلطانی
    ***

    ارسال‌ها: 972
    تاریخ عضویت: ۱۳۹۰ آذر ۲۵
    اعتبار: 22
    تشکرها : 384
    ( 702 تشکر در 427 ارسال )
    ارسال: #6
    RE: سیاست امنیتی برای المانهای داخل فرم
    بهرحال شما باید چک کنین که آیا داده ورودی معتبر هست و توی دیتابیستون وجود داره یا نه. روی روش چک کردنش باید فکر کنین. ولی وقتی چک نکنین چه جوری اصلا تشخیص میدین که این محصول رو دارین توی سایت ؟ حتی با فرض اینکه کاربر اطلاعات رو تغییر نده.
    __________________________________________________________________________
    بنده طعم ايمان را نمي چشد، تا اينكه دريابد آنچه اتفاق نيفتاده است نمي شد كه اتفاق بيفتد؛و آنچه شده و اتفاق افتاده است,نمي شد كه نشود و اتفاق نيفتد....حضرت علي(ع)
    ۱۳۹۵ تير ۲۰ ۰۶:۲۴ عصر
    یافتن ارسال‌ها WWW پاسخ با نقل قول
     تشکر شده توسط :
    kasbookar آفلاین
    **(فرشاد انگوتی)**
    ****

    ارسال‌ها: 525
    تاریخ عضویت: ۱۳۹۳ دي ۲۳
    اعتبار: 17
    تشکرها : 258
    ( 169 تشکر در 128 ارسال )
    ارسال: #7
    RE: سیاست امنیتی برای المانهای داخل فرم
    نقل قول: مثلا دیتای کمبوباکس زیر از جدول کالا خونده میشه و مقدار value در واقع کد id هر محصول (کالا) هست
    خب اینکار که ای دی رو از دیتابیس بخونیم برای مراحل بعدی امری طبیعی هست حالا شما فقط یک را داری سمت کاربر که وقتی inspect element رو کاربر زد نتونه ای دی مورد نظر رو ببینه
    کد کردن مقدار ای دی هست تا کاربر نتونه ببینه برای این کار هم اگه زیاد روی این مسئله حساس هستید از یه چیز قوی استفاده کنید
    از اونطرف هم وقتی ای دی رو ارسال کردید اول دکد کنید بعد از دیتابیس آمار بگیرید که این ای دی درست هست یانه و ...
    سمت کاربر غیر این راهی نداری فک کنم
    __________________________________________________________________________

    (آخرین ویرایش در این ارسال: ۱۳۹۵ تير ۲۰ ۰۷:۳۷ عصر، توسط kasbookar.)
    ۱۳۹۵ تير ۲۰ ۰۷:۳۱ عصر
    یافتن ارسال‌ها WWW پاسخ با نقل قول
     تشکر شده توسط :
    kiarash_kcm آفلاین
    عضو
    ***

    ارسال‌ها: 159
    تاریخ عضویت: ۱۳۹۲ بهمن ۷
    اعتبار: 5
    تشکرها : 12
    ( 48 تشکر در 41 ارسال )
    ارسال: #8
    RE: سیاست امنیتی برای المانهای داخل فرم
    نقل قول: دوست عزیز فکر کنم خودت یکم مطالعه کنی بد نیست بحث اعتبارسنجی فقط واسه تمیز کردن ورودی هاست که مثلا ورودی خالی نباشه یا عدد صحیح باشه یا ایمیل وارد شده فرمتش صحیح باشه و ....

    یه بحث داریم به نام اعتبارسنجی (validation) یه بحث داریم data verification که صحت ورودی ها رو با دیتابیس چک میکنه

    دوست خوبم ممنون از راهنمایی تون چشم مطالعه هم میکنم اما صحبت شما کمی بازی با کلمات هستش شاید هم به خاطر این موضوع باشه که من ایران نیستم و کلماتی که در ایران استفاده میشه بی خبرم ... اما من اعتبار سنجی رو اینجوری برای خودم معنی کردم که هر زمان اطلاعاتی قرار باشه وارد database بشه باید و باید و باید صحت اون چک بشه ... این میتونه اطلاعاتی باشه که کاربر میده یا اطلاعاتی که شما به کاربر نمایش میدی و اون ممکن تغییر بده ... در هر صورت اگر اشتباه منظور خودم رو رسودنم باید من رو ببخشین.
    __________________________________________________________________________
    [تصویر:  iranphp.jpg]
    ۱۳۹۵ تير ۲۱ ۰۸:۰۹ صبح
    یافتن ارسال‌ها WWW پاسخ با نقل قول
     تشکر شده توسط :
    ImanAzadi آفلاین
    عضو
    ***

    ارسال‌ها: 246
    تاریخ عضویت: ۱۳۹۲ اسفند ۲
    اعتبار: 0
    تشکرها : 36
    ( 9 تشکر در 9 ارسال )
    ارسال: #9
    RE: سیاست امنیتی برای المانهای داخل فرم
    نقل قول: دوست خوبم ممنون از راهنمایی تون چشم مطالعه هم میکنم اما صحبت شما کمی بازی با کلمات هستش شاید هم به خاطر این موضوع باشه که من ایران نیستم و کلماتی که در ایران استفاده میشه بی خبرم ... اما من اعتبار سنجی رو اینجوری برای خودم معنی کردم که هر زمان اطلاعاتی قرار باشه وارد database بشه باید و باید و باید صحت اون چک بشه ... این میتونه اطلاعاتی باشه که کاربر میده یا اطلاعاتی که شما به کاربر نمایش میدی و اون ممکن تغییر بده ... در هر صورت اگر اشتباه منظور خودم رو رسودنم باید من رو ببخشین.


    دوست گرامی هر جا هستی سرت سلامت و موفق باشی
    ولی بازی با کلمات و این بحثی که ما داشتیم خیلی فرق میکنه ، اعتبارسنجی و data verification دو اصطلاح جدا از هم هستند اگر غیر از این بود حرف شما درست بود ولی من بازی با کلمات نکردم
    آره بعضی وقتها ورودی ها که از کاربر میاد فقط باید اعتبار سنجی بشه و وارد دیتابیس بشه ولی بعضی وقتها ورودی ها از یک لیست محدود که از جدولی خوندیم و برای کاربر نشون دادیم توسط کاربر انتخاب میشه که اون مقادیر هم باید اعتبارسنجی بشن هم باید data verification
    مثال
    فرض کنید یک فرم دارید که تو این فرم یک لیست کشویی (کمبوباکس یا همون select) داریم ( لیست کشور محل اقامت) که از جدول کشور در دیتابیس خونده میشه و برای کاربر نمایش داده میشه و کاربر رو محدود میکنه که فقط یکی از آیتم ها رو انتخاب کنه

    کاربر بعد از انتخاب کشور در اصل id کشور رو از جدول مربوطه انتخاب کرده و این id موقعه ارسال باید هم اعتبارسنجی بشه که ورودی آیا عدد صحیح هست یا خیر و هم چک بشه آیا اصلا این آی دی در جدول کشورها وجود داره یا نه که به اصلاح میگن data verification
    (آخرین ویرایش در این ارسال: ۱۳۹۵ تير ۲۷ ۰۷:۴۱ صبح، توسط ImanAzadi.)
    ۱۳۹۵ تير ۲۲ ۰۶:۴۸ صبح
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط :
    « قدیمی تر | تازه‌ تر »

    ارسال پاسخ
    پرش به انجمن:


    کاربرانِ درحال بازدید از این موضوع: 1 مهمان
    IranPHP.org | تماس با ما | بازگشت به بالا | بازگشت به محتوا | بایگانی | پیوند سایتی RSS