نکتۀ سادۀ امنیتی در برنامه نویسی وب: اعتبارسنجی سمت کاربر
سلام
بدون مقدمه: هیچ چیزی به اسم client-side validation یا اعتبارسنجی سمت کاربر وجود نداره! ممکنه بعضی از سایت ها برای این کار (اعتبارسنجی سمت کاربر) از جاوا اسکریپت و … استفاده کنند و بهانۀ اون ها هم کاهش بار سرور یا زیبایی و کاربری سریعتر و آسانتر باشه اما مسئله اینه که این کار به راحتی قابل دور زدن و Bypassـه و کاربر ممکنه داده های مخرب را به سرور ارسال کند.
نکته اینجاست که جاواسکریپت سمت کاربر اجرا می شه و بالاخره این کاربره (یا سیستم عاملشه) که داره دیتا رو به سرور شما ارسال میکنه و بنابراین به راحتی می تونه با نرم افزارهای ساده این داده ها رو tamper یا دستکاری کنه.
نهایت کاری که میشه انجام داد اینه که…
سلام
بدون مقدمه: هیچ چیزی به اسم client-side validation یا اعتبارسنجی سمت کاربر وجود نداره! ممکنه بعضی از سایت ها برای این کار (اعتبارسنجی سمت کاربر) از جاوا اسکریپت و … استفاده کنند و بهانۀ اون ها هم کاهش بار سرور یا زیبایی و کاربری سریعتر و آسانتر باشه اما مسئله اینه که این کار به راحتی قابل دور زدن و Bypassـه و کاربر ممکنه داده های مخرب را به سرور ارسال کند.
نکته اینجاست که جاواسکریپت سمت کاربر اجرا می شه و بالاخره این کاربره (یا سیستم عاملشه) که داره دیتا رو به سرور شما ارسال میکنه و بنابراین به راحتی می تونه با نرم افزارهای ساده این داده ها رو tamper یا دستکاری کنه.
نهایت کاری که میشه انجام داد اینه که در وهلۀ اول داده ها را با استفاده از جاوااسکریپت و در سمت کاربر اعتبارسنجی کنیم و در صورت صحت به سرور بفرستیم و یک بار هم در آن جا اعتبارسنجی بشه. در این حالت در صورتی که کاربر قصد خرابکاری و تغییر در کدها را نداشته باشد در مرحلۀ دوم (اعتبار سنجی در سرور) داده ها تماماً بدون مشکل پاس می شوند چون یکبار با جاوااسکریپت بررسی شده اند.
اینجوری هم از بار و ترافیک سرور کم کردیم و هم امنیت سایت به خطر نمی افته.
این مطلب هم برای نوشتن فرم ها و هم برای گرفتن URLها یا داده های POST و GET کاربرد داره. مواظب باش که امنیت سایتت رو به خطر نندازی
هر سوالی داشتی خوشحال میشم ایمیل بزنی.
نویسنده: تمدن
دیدگاه خود را ثبت کنید
تمایل دارید در گفتگو شرکت کنید؟نظری بدهید!