یوشا

دست نوشته ها و تجربیات شخصی

یوشا

دست نوشته ها و تجربیات شخصی

شهید دکتر مصطفی چمران: می گویند تقوا از تخصص لازمتر است، آنرا می پذیرم، اما می گویم آنکس که تخصص ندارد و کاری را می پذیرد بی تقواست!

طبقه بندی موضوعی
تبلیغات
Blog.ir بلاگ، رسانه متخصصین و اهل قلم، استفاده آسان از امکانات وبلاگ نویسی حرفه‌ای، در محیطی نوین، امن و پایدار bayanbox.ir صندوق بیان - تجربه‌ای متفاوت در نشر و نگهداری فایل‌ها، ۳ گیگا بایت فضای پیشرفته رایگان Bayan.ir - بیان، پیشرو در فناوری‌های فضای مجازی ایران

مقالات مرتبط:

#2 - نکاتی برای افزایش امنیت وبسایت

 

 

1- مکانیزم و شیوه کار پروتوکل HTTP رو کامل فرا بگیرید.

 

2- همیشه کتابخانه ها و فریم ورکهای استفاده شده در وب اپلیکیشن رو بروز نگه دارید.

 

3- جهت جلوگیری از click-jacking مقدار هدر X-Frame-Options رو DENY قرار بدید:

Apache httpd.conf:

Header always append X-Frame-Options DENY


Apache .htaccess:

Header append X-FRAME-OPTIONS "DENY"


Nginx:

add_header X-Frame-Options "DENY";


PHP:

header('X-Frame-Options: DENY');

 

4- بصورت هفتگی یا ماهیانه کل سایت رو توسط نرم افزارها و سایتهای اسکنر امنیتی چک کنید:

https://observatory.mozilla.org

https://securityheaders.com

https://urlvoid.com

https://virustotal.com
https://immuniweb.com/websec
https://detectify.com
http://amn.bayan.ir
https://ssllabs.com/ssltest/index.html

http://isithacked.com
https://app.upguard.com/webscan
https://app.webinspector.com/online_scan
https://suip.biz/?act=sqlmap
https://pentest-tools.com/home
https://sitecheck.sucuri.net
https://quttera.com
https://siteguarding.com

https://transparencyreport.google.com/safe-browsing/search

 

5- داده های ورودی توسط کاربر را بدقت بررسی، برش و فیلترسازی کنید!

 

6- برای اپلیکیشن، قابلیت debug mode درست کنید تا در مواقع لزوم بتونید فعالیت های اپلیکیشن رو مانیتور و خطازدایی کنید.

7- از تخصیص دسترسی نوع 666 یا 777 به فایلها/دایرکتوری ها خودداری کنید!

 

8- برای کاهش مصرف پهنای باند و افزایش سرعت سایت، حتاالمکان با استفاده از CSS طرح بصری ایجاد کنید نه با تصاویر.

 

9- همیشه log های اپلیکیشن رو قبل از ثبت یا ذخیره کردن فیلترسازی کنید.

 

10- همیشه دامین خریداری کرده رو قفل/Lock کنید. ("Registrar lock" یا "Client Transfer Prohibited")

 

11- رمزهای ورود به بخش های مختلف سایت رو(FTP, Database, SSH, Admin...) طولانی و پیچیده انتخاب کنید. مثل: !bP8Zj&GeK3@[Jv&fXby4#^&3=fGS*X73$cr52

برای اینکار میتونید از نرم افزارهای password generator هم استفاده کنید.

 

12- بصورت روزانه، هفتگی یا ماهیانه از داده ها پشتیبان(backup) گیری کنید.

 

13- بروزترین، فعالترین و ایمن ترین ارائه دهنده ی هاست وب رو برای سایتتون انتخاب کنید.

 

14- همیشه محتویات کوکی رو قبل از set و بعد از get کردن فیلترسازی کنید!

 

15- حتاالمکان برای هر اپلیکیشن یک دیتابیس جداگانه درنظر بگیرید.

 

16- با تنظیم صحیح وبسرور و همچنین قرار دادن یک فایل (خالی) index.html و default.html در همه دایرکتوری های وب اپلیکیشن، از directory listing جلوگیری کنید.

Apache HTTPD:

Options All -Indexes

 

17- حتاالمکان سرور دیتابیس رو از سرور وب اپلیکیشن جدا کنید و در یک هاست دیگری قرار بدید.

 

18- با تنظیم صحیح وبسرور و کدنویسی، دسترسی به فایلها و دایرکتوری های حساس رو ممنوع کنید.

 

19- همیشه تصاویر اپلیکیشن رو فشرده و optimize کنید تا از حجمشون کاسته بشه:

https://github.com/imagemin/imagemin-cli

https://imageoptim.com/versions

https://pngquant.org

https://pmt.sourceforge.io/pngcrush/

https://lcdf.org/gifsicle

https://github.com/svg/svgo

https://trimage.org

http://optipng.sourceforge.net

https://images.guide

http://avtonomer.net/content/view/332/42/

 

20- همیشه از کتابخانه ها و فریم ورک های بروز، پایدار و ایمن در اپلیکیشن استفاده کنید.

 

21- از نصب theme و plugin های متفرقه در وب اپلیکیشن خودداری کنید!

 

22- هرگز نسخه‌های قدیمی نرم افزار یا فایلهای backup رو بر روی سرور Production نگهداری نکنید.

 

23- اکانت‌های پیش فرض در دیتابیس(MySQL, OracleDb, MsSQL...) رو حذف کنید.

 

24- همیشه اطلاعات version اپلیکیشن، دیتابیس، سیستم و وبسرور رو از دید کاربران مخفی کنید:

Apache HTTPD:

ServerSignature Off
ServerTokens Prod


PHP:

header('X-Powered-By:');


php.ini:

expose_php = Off

 

25- همیشه صحت پسوند، نوع، سایز و محتوای فایل آپلود شده توسط کاربر رو بررسی کنید و سپس به محلی دیگر با پسوندی متفاوت منتقل کنید.

درصورتیکه فایل مربوطه عکس هست، بهتره اونرو مجدد create کنید. همچنین با استفاده از API سایتهایی مثل virustotal.com میتونید از سلامت فایل اطمینان حاصل کنید.

 

26- درصورتیکه از referrer استفاده های معمول می کنید، مقدار متاتگ referrer رو no-referrer-when-downgrade قرار بدید:

HTML metatag:

<meta name="referrer" content="no-referrer-when-downgrade">


Apache httpd.conf:

Header set Referrer-Policy "no-referrer-when-downgrade"


Nginx:

add_header Referrer-Policy no-referrer-when-downgrade;

 

27- همیشه از prepared statement ها برای عملیات روی دیتابیس و دیتابیس اپلیکیشن ها استفاده کنید تا آسیب پذیری در مقابل حملات SQL Injection رو به حداقل برسونید. (PDO, JDBC, ADO.Net...)

 

28- همیشه validation ورودی ها و داده های کاربر رو در هر دو سمت Client و Server انجام بدید.

 

29- درصورتیکه از قابلیت share کردن response استفاده نمی کنید و یا وب اپلیکیشن CDN پیاده سازی نمی کنید، مقدار Access-Control-Allow-Origin رو روی دامنه سایت خودتون تنظیم کنید:

HTML:

<meta http-equiv="Access-Control-Allow-Origin" content="http://domain/"/>


Apache HTTPD:

Header set Access-Control-Allow-Origin "http://domain/"


PHP:

header('Access-Control-Allow-Origin: http://domain/');

 

30- قوانین CSS رو در صفحات بررسی کنید و از استاندارد های CSS و CSS2 و CSS3 بهره بگیرید تا با باگهای UI مواجه نشید.

 

31- از پیچاندن و مبهم کردن بیش از حد URL ها خودداری کنید. (پیچیدگی =! امنیت)

 

32- از نوشتن نام فایلها و دایرکتوری های مهم و حساس در داخل فایل robots.txt خودداری کنید!

 

33- هرگز رمزعبور رو بصورت متن ساده(plain text) ذخیره نکنید، ابتدا اونرو hash و سپس ذخیره کنید!

 

34- جهت جلوگیری از content sniffing، مقدار هدر X-Content-Type-Options رو nosniff قرار بدید:

Apache httpd.conf:

Header set X-Content-Type-Options nosniff, nosniff

PHP:

header('X-Content-Type-Options: nosniff, nosniff');


Nginx:

add_header X-Content-Type-Options nosniff, nosniff;

 

35- حتاالمکان شماره پورت پیشفرض سرویس SSH, Database, FTP... رو تغییر بدید.

 

36- اخبار و تازه های حوزه نرم افزار و امنیت سایبری رو دنبال کنید تا بروز باشید!

 

37- هرگز در محیط Production، اپلیکیشن رو توسعه ندید!

محیط Production = سرور واقعی

 

38- تنها زمانی از اکانت root یا admin استفاده کنید که بهش واقاً نیاز دارید.

 

39- ترافیک های عادی سایت رو Log و اونرو بطور منظم بررسی و تحلیل کنید.

 

40- بخش مدیریتی وب اپلیکیشن رو با محدودیت های مبتنی بر IP امن‌تر کنید.

 
۹۸/۰۷/۱۸

نظرات (۱)

۰۸ مهر ۹۹ ، ۱۳:۲۸ جمال حسینی

خیلی ممنونم بابت اینهمه اطلاعات مفیدی که بی منت در اختیارمون گذاشتید

کاربران بیان میتوانند بدون نیاز به تأیید، نظرات خود را ارسال کنند.
اگر قبلا در بیان ثبت نام کرده اید لطفا ابتدا وارد شوید، در غیر این صورت می توانید ثبت نام کنید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">