امنیت وب

به نام خدا

با سلام خدمت دوستان عزیز

شروعی با :)

در این مقاله قصدمون بررسی چند نکته مهم و ضروری جهت افزایش ضریب امنیتی وب سایت هست.

و اولین نکته یا مقد این که ما ضریب امنیتی 100% نداریم ، هر کسی هم این ادعا رو داشته باشه بدونید که فقط در حد ادعاست

به دو دلیل :

1- به نظر ضخصی من توی برنامه نویسی ، یه حد مشخصی نداریم که هر کسی به اون مقدار معین از دانش رسید ادعا داشته باشه هر حفی که من بزنم دست و هر کدی که من بنویسم در هر شرایط صحیح و امن هست ، چرا که همه چیز در حال پیشرفت و بروزرسانی هست.

2- امنیت یک وبسایت تنها وابسته به کد های برنامه نویسی ما نیست ! سرور ی که ما تهیه می کنیم در این امنیت دخیل هست ، کاربری که از برنامه ما استفاده می کنه هم دخیل هست به همین جهت ممکن هست وب سایت ما هر چند از لحاظ امنیت خیلی مطمئن باشه ولی به دلیل سهل انگاری کاربر ، از طریق روشی مثل دسکتاپ فیشینگ یا مهندسی اجتماعی وب سایت مورد حمله قرار بگیره.


خب بریم سراغ نکات اصلی :

نکته اول SESSION

در برنامه زمانی که اطلاعات مهمی در session ذخیره میشه بهتر هست که از sessionregenerateid استفاده کنیم که این امر برنامه ما رو در مقابل حملات session hijacking ایمن میکنه

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

و منظورمون از این جمله که گفتیم زمانی که اطلاعات مهمی در session ذخیره میشه ، وقتی هست که مثلا کاربر ورود می کنه و مواردی از این قبیل

نکته ی دوم CAPTCHA

ما توی برنامه یا همون وب سایتمون از فرم هایی استفاده می کنیم که نیاز هست توسط کاربر پر بشه ، مثل فرم ورود کاربران که آدرسی که اطلاعات فرم به اون ارسال میشه قابل رویت برای همه هست (حتی اگه برنامه نویس کد های جاوا اسکریپت و کد گذاری بکنه یا از آجاکس استفاده کنه یا هر نوع پنهان کاره دیگه ای باز میشه از طریق developer tools از تب network آدرس و اطلاعات ارسالی رو دید ) با استفاده از حمله brute force از طریق کد به اون آدرسی که فرم ما ارسال میشه ، در هر لحظه تعداد خیلی زیادی درخواست ارسال میشه که توسط این میشه در صورت آگاهی به نام کاربری ، رمز عبور رو پیدا کرد که روشش هم خیلی ساده هست چون نام کاربری رو میدونیم مکررا درخواست رو با اون نام کاربری و پسورد هایی که تولید می کنیم ارسال می کنیم در یکی از حالات پاسخ دریافتی از سرور با بقیه متفاوت هست که پسورد ارسالی در اون حالت همون رمز عبوری هست که ما دنبالش بودیم خب حالا برای اینکه از این امر جلوگیری بکنیم استفاده از captcha ها هست که به زبان ساده همون تصاویری که ما متن داخل اون رو در کادری مینویسیم

آموزش ساخت captcha در php

نکته ی سوم پسورد دو مرحله ای

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

برای شروع ما دو رمز عبور برای کاربر در نظر میگیریم در فرم ورود کاربر رمز اول رو با نام کاربری وارد می کنه در صورت صحیح بودن یک session مبنی بر صحیح بودن رمز اول ایجاد میشه و سپس کاربر به یک صفحه دیگری هدایت میشه که اون صفحه زمانی معتبر هست که session صحت رمز اول مقدار دهی و مقدارش true باشه

همچنین صفحه ای که قرار هست کاربر رمز دوم رو وارد بکنه با استفاده از یک تایمر حدودا 30 ثانیه ای در صورت وارد نکردن رمز دوم توسط کاربر اون session صحت رمز عبور اول رو غیر فعال میکنه و کاربر رو هدایت میکنه به فرم ورود اول .

و نهایتا پس از وارد کردن رمز عبور دوم در صورت صحیح بودن کاربر به صفحه کاربری خود هدایت میشه

نکته ی چهارم MySQL procedure

روش معمولی که در فرم ورود ها برای بررسی صحت نام کاربری و رمز عبور استفاده میشه این هست که کاربر پس از تکمیل اطلاعات در صفحه ای که اطلاعات به اون ارسال شده با استفاده از دستور select اطلاعات کاربران رو از پایگاه داده میگیرند و در آرایه ای با مقادیر وارد شده توسط کاربر مقایسه می کنند که در این حالت اطلاعات کاربران از پایگاه داده منتقل میشه به اون کدی که احراز هویت رو انجام میده خب این چندان خوب به نظر نمیرسه کار بهتری که میشه کرد استفاده از procedure هست که به طریق اون ما در پایگاه داده توابعی رو تعریف می کنیم ، برای این مورد هم ما یک تابعی رو در mysql تعریف می کنیم و دو پارامتر ورودی یعنی نام کاربری و رمز عبور رو برای اون در نظر میگیریم و داخل همون تابع احراز هویت رو انجام میدیم که در این حالت هیچ گاه اطلاعات کاربری مثل نام کاربری و رمز عبور ها از پایگاه داده خارج نمیشه

امیدوارم مفید واقع شده باشه

در پناه حق موفق باشید و امیدوار


نویسنده : فرهاد مهریاری

منبع : انجمن تخصصی فناوری اطلاعات ایران

هرگونه نشر و کپی برداری بدون ذکر منبع و نام نویسنده دارای اشکال اخلاقی می باشد.

#افزایش_ضریب_امنیتی #امنیت_وب_سایت #فرم_ورود_امن #حملات_وب_سایت #وب_سایت_ایمن
عنوان
1 برنامه نویسی تحت وب بخش اول - مقدمه و مفاهیم رایگان
2 برنامه نویسی تحت وب بخش اول معرفی html رایگان
3 برنامه نویسی تحت وب بخش اول معرفی Javascript رایگان
4 امنیت وب رایگان
زمان و قیمت کل 0″ 0
0 نظر

هیچ نظری ارسال نشده است! اولین نظر برای این مطلب را شما ارسال کنید...

نظر شما
برای ارسال نظر باید وارد شوید.
از سرتاسر توسینسو
تنظیمات حریم خصوصی
تائید صرفنظر
×

تو می تونی بهترین نتیجه رو تضمینی با بهترین های ایران بدست بیاری ، پس مقایسه کن و بعد خرید کن : فقط توی جشنواره تابستانه می تونی امروز ارزونتر از فردا خرید کنی ....