درخواست های ارتباط
جستجو
لیست دوستان من
صندوق پیام
همه را دیدم
  • در حال دریافت لیست پیام ها
صندوق پیام
رویدادها
همه را دیدم
  • در حال دریافت لیست رویدادها
همه رویدادهای من
تخفیف های وب سایت
همه تخفیف ها

عضویت در

کانال تلگرام

توسینسو

اطلاعات مطلب
مدرس/نویسنده
فرهاد مهریاری
امتیاز: 11849
رتبه:54
0
20
43
390
مدرس برنامه نویسی تحت وب و فتوشاپ توسعه دهنده ی سیستم های cross platform آشنا به تدوین کلیپ و تیزر های تبلیغاتی || خیلی زیاد برنامه نویسی دوست دارم و ابتدای ورود من به حوزه فناوری اطلاعات با نرم افزار فتوشاپ و طراحی از سن 14 سالگی :) شروع شد که بعد از اون کم کم برنامه نویسی رو شروع کردم خیلی زیاد هم دوست دارم. پروفایل کاربر
تاریخ 31 ماه قبل
نظرات 0
بازدیدها 555
به نام خدا

با سلام خدمت دوستان عزیز
شروعی با :)
در این مقاله قصدمون بررسی چند نکته مهم و ضروری جهت افزایش ضریب امنیتی وب سایت هست.
و اولین نکته یا مقد این که ما ضریب امنیتی 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 امنیت وب
دوره مجموعه کل دوره
مطالب مرتبط

در حال دریافت اطلاعات

نظرات
هیچ نظری ارسال نشده است

    برای ارسال نظر ابتدا به سایت وارد شوید