PDA

View Full Version : امنیت این جامعه مجازی (همه ی دوستان کمکم کنن: منتظر تجربیات همتون هستم)



olampiad
پنج شنبه 27 اسفند 1394, 14:48 عصر
سلام و خسته نباشید به دوستان عزیز
به این آدرس ی سری بزنید.
http://www.zncms.ir (http://www.zncms.ir/)

الآن دو ماهی میشه که دارم روی این جامعه مجازی کار میکنم بالاخره تموم شد.این جامعه مجازی در مورد صنعت سنگ هستش.
میخوام از تجربیات همه ی شما دوستان تو امنیت این پروژه کمک بگیرم.
ابتدا من بگم که چ کارایی رو برای امنیت این پروژه انجام دادم.

1- برای جلوگیری از حملات sql_injection از pdo استفاده کردم و تمام کوئری هام رو با استفاده از prepare اجرا کردم.
به نظرم برای جلوگیری از حملات sqlinjection همین قدر کافیه.
آیا راه حل دیگری به ذهنتان میرسد.

2-برای جلوگیری از حملات xss و امسال اینها از توابع زیر استفاده کردم
htmlentitis
striptags
htmlspeacialcharts
و برای امنیت بیشتر از کتاب خانه ی htmlpruf استفاده کردم.

3- برای جلوگیری از آپلود انواع شل به جای عکس از توابع gd استفاده کردم.
نام تصاویر به طور رندوم عوض میکنم و کاربر به هیچ عنوان نمیتونه بعد از آپلود تصویر نام تصویر رو حدث بزنه.
جلوی لیست دایرکتوری رو گرفتم و کاربر نمیتونه دایرکتوری هامو لیست کنه.

4-از ckeditor استفاده کردم ولی نمیشه باهاش آپلود کرد. ی خطایی میده که دقیق نمیدونم چیه؟
برای ckeditor از htmlpruf استفاده کردم.

5- برای ثبت نام و کارهایی از این قبیل از کپتا استفاده کردم.
کپتا رو خودم ساختم : ب نظرتون چطوریه؟ آیا حدث زدنش برای ربات ها آسونه یا نه؟

6- کنترل خطارو تو کل برنامه صفر کردم
7- url رو به طور کامل کنترل کردم.

بخش ثبت نام و ورود چ مشکلاتی داره؟
به نظرتون دیگه باید کجاهای پروژه رو چک کنم؟
آیا چیزی از یادم رفته که چک نکرده باشم؟
تو چنین پروژه هایی باید تمرکزم رو کجا بزارم؟
چ پیشنهاداتی برای امنیت بیشتر و بهتر دارین؟

ممنون از راهنمایی هاتون

mahdi-se
پنج شنبه 27 اسفند 1394, 15:15 عصر
یه خطا
وقتی یه بارتو صفحه ورود اشتباه وارد میکنی صفحه دو بار تکرار میشه یعنی بعد از فوتر اسلایدر و بقیه سایت دوباره میاد و میره به این صفحه http://www.zncms.ir/login/login

olampiad
پنج شنبه 27 اسفند 1394, 15:20 عصر
عالیه
ممنون بابت توجهتون
به این تصویر ی نیگا بندازین.
139634

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

olampiad
پنج شنبه 27 اسفند 1394, 15:30 عصر
برای چک امنیت این پروژه نرم افزار یا سایتی سراغ دارید که با چک پروژه ، راه های نفوذ و باگهای امنیتی رو نشون بده؟
ممنون

mahdi-se
پنج شنبه 27 اسفند 1394, 15:50 عصر
139637139635139636

olampiad
پنج شنبه 27 اسفند 1394, 16:49 عصر
درسته دوست عزیز
وقتی که کل فیلد هارو خالی میزاریم و میخوایم وارد بشیم این مشکل ب وجود میاد.
ممنون از راهنمایتون
عالیه

us1234
جمعه 28 اسفند 1394, 03:38 صبح
این لینک هیچ ارور هندل شده ای ندارد :

لینک (http://www.zncms.ir/comp/comp_about/29')

olampiad
جمعه 28 اسفند 1394, 05:39 صبح
این لینک هیچ ارور هندل شده ای ندارد :

لینک (http://www.zncms.ir/comp/comp_about/29')

بله این لینک هیچ هندلری نداره.
من باید برای ورودی که میگیرم از تابع $id=intval($id); استفاده کنم.
آیا این کار درسته؟
ممنون

rooterror
جمعه 28 اسفند 1394, 06:28 صبح
فکر میکنم یک حفره داره و امنیتش هنوز کامل نشده ، البته هیچ وقت امنیت 100 % نمیشه ولی خب میشه جلویی حملات احتمالی رو گرفت

rooterror
جمعه 28 اسفند 1394, 07:01 صبح
خب عوض شدن نام فایل به صورت رندم ، برای جلوگیری از اپلود شل هیچ فایده ای نداره

با پلاگین هایی فایرفاکس مثل http live header میشه دقیقا محل اپلود شدن و نام فایل را پیدا کرد حتی میشه بعد از اپلود عکس از طریق این افزونه فرمتش رو عوض کرد

برای مثال نفوذ گر میاد یک شل پی اچ پی رو با فرمت عکس اپلود میکنه و از طریق همین افزونه بعد از اپلود اقدام به عوض کردن فرمت به پی اچ پی میکنه

به این تایپیک یه سری بزنید

http://barnamenevis.org/showthread.php?423435-%D8%A2%D9%BE%D9%84%D9%88%D8%AF-%D8%B4%D9%84-%D9%88-%D8%AC%D9%84%D9%88%DA%AF%DB%8C%D8%B1%DB%8C-%D8%A7%D8%B2-%D8%A2%D9%86

olampiad
جمعه 28 اسفند 1394, 14:29 عصر
تشکر بابت راهنمایی ها
من پستی رو که گفتین بررسی کردم.
اساسی ترین کاری که تو این پست برای پیشگیری از آپلود شل بود اینا بودن:
1- تصاویر رو با استفاده از توابع gd آپلود کنیم.
2 - با استفاده از htacces جلوی اجرای فایل های php رو داخل فولدر های آپلود عکس بگیریم.

دوستان راه های بهتری سراغ دارین؟
ممنون از دوستان بایت راهنمایی ها

olampiad
جمعه 28 اسفند 1394, 14:51 عصر
سلام
به این صفحه ی سربزنید.
http://www.zncms.ir/login

تو این صفحه ، هم ب جای نام کاربری و هم ب جای رمز عبور این کاراکتر هارو میزارم.
' or ''='
به راحتی میتونم وارد وبسایت بشم.
از کوئریم ی اکو گرفتم
select count(id) AS count from `company` where `username`='' or ''='' and `password`='' or ''=''
کد بالا دقیقا کوئری من هستش.
حالا:
همینطور که میدونیم استفاده از pdo جلوی حملات sql injection رو میگیره ولی تو اینجا من هم از pdo استفاده کردم و هم از prepare ولی باز با حملات sql injection میشه نفوذ کرد.
آیا برای این مشکل راه حلی دارین؟
ممنون

olampiad
جمعه 28 اسفند 1394, 15:10 عصر
دوستان کسی در مورد ckeditor نظری نداره.
آیا تو پروژم از ckeditor اروری دریافت میکنید.منظورم همون حفره ی امنیتی هستش.
ممنون

pbm_soy
جمعه 28 اسفند 1394, 19:28 عصر
در همین حد که کار کردید خوب است و خیلی خوبه که از دوستان نظرخواهی میکنید هر چند که اعتقاد دارم کارهای امنیتی پروژه را کسی دیگر باید انجام دهد و برنامه نویس اصلی ابتدا از روی یک چک لیست امنیتی موارد امنیتی رعایت کند و پس از اتمام برنامه مصول امنیتی ، امنیت سیستم را بررسی کند ولی خوب چاره ای نیست ما اینجا اگه بخواهیم نون دربیاریم باید همه فن حریف باشیم!

به شما دوست عزیز پیشنهاد میدهد با ابزارها و نرم افزارهای web scanner و web vulnnerability scanner وب سایت را اسکن کنید و گزارشات آنها را به دقت مطالعه کنید.و با رعایت آنها میتوان امنیت را درحد بالا میتوانید برقرار کنید
http://www.acunetix.com/ این خوب بود ولی پولی است
در لینک زیر لیست کاملی از این نوع نرم افزارها را به همراه امتیاز بندی آنها میبینید
http://sectools.org/tag/web-scanners/
مطالعه کنید و بررسی کنید