網站常見安全問題記錄(持續更新)

說明

初衷:

本文檔用於記錄所遇到的網站安全問題,並分類彙總,方便後期遇到相似問題,可以快速找到解決方案,提升效率,讓程序員有更多的時間去把妹,LOL...javascript

記錄規範:

  1. 標題必須清晰明瞭,方便用戶快速查找,拒絕標題黨;
  2. 問題放到正確的分類中;
  3. 記錄問題的時候先闡述問題,再列出解決方法,儘可能作到有圖有真相;
  4. 若是有對應的資料,能夠附上連接;
  5. 記錄問題提交人,方便追蹤

Apache

Cookie缺乏HttpOnly、Secure標識

漏洞提示

clipboard.png

clipboard.png

描述

httponly是微軟對cookie作的擴展,這個主要是解決用戶的cookie可能被盜用的問題。
你們都知道,當咱們去郵箱或者論壇登錄後,服務器會寫一些cookie到咱們的瀏覽器,當下次再訪問其餘頁面時,因爲瀏覽器回自動傳遞cookie,這樣就實現了一次登錄就能夠看到全部須要登錄後才能看到的內容。也就是說,實質上,全部的登錄狀態這些都是創建在cookie上的!假設咱們登錄後的cookie被人得到,那就會有暴露我的信息的危險!固然,想一想,其餘人怎麼能夠得到客戶的cookie?那必然是有不懷好意的人的程序在瀏覽器裏運行!若是是如今滿天飛的流氓軟件,那沒有辦法,httponly也不是用來解決這種狀況的,它是用來解決瀏覽器裏javascript訪問cookie的問題。試想,一個flash程序在你的瀏覽器裏運行,就能夠得到你的cookie的!php

修復方案

  • 1、修改php配置文件php.ini
session.cookie_secure = 1
session.cookie_httponly = 1


  • 2、修改網站cookie配置文件,以YNCMS爲例,修改/Application/Home/Conf/config.php,添加配置參數
'COOKIE_SECURE'    =>  true, //  cookie 啓用安全傳輸
'COOKIE_HTTPONLY'  =>  true, // httponly設置

參考資料: http://www.jb51.net/article/1...html

cgi-bin目錄問題

clipboard.png

暴力解決辦法:註釋掉對應信息java

clipboard.png

apache icons目錄問題

clipboard.png

咱們若是使用了apache服務器,當我訪問http://xxx.xxx.xxx/icons/時會自動顯示這個目錄下的因此文件列表,這行形成網站目錄信息的泄露對咱們的網站安全形成威脅,在 關閉apache自動目錄列表功能的三種方法 這篇文章中的三種方法都不能禁止自動目錄列表,你若是使用網站安全監測,會提醒你發現目錄啓用了自動目錄列表功能,因此咱們必須禁止它,通過測試,按以下步驟能夠禁止:程序員

打開目錄apache/conf/extra/下的文件httpd-autoindex.conf(位置可能有差別)
找到apache

Alias /icons/ "/xampp/apache/icons/"
 
<Directory "/xampp/apache/icons">
    Options Indexes MultiViews
    AllowOverride None
    Require all granted
</Directory>

去掉Indexes改爲windows

<Directory "/xampp/apache/icons">
    Options  MultiViews
    AllowOverride None
    Require all granted
</Directory>

重啓apache服務器!瀏覽器

暴力解決辦法就是註釋掉或者直接刪除icons目錄安全

啓用了OPTIONS方法

在網站根目錄目錄下建立.htaccess文件,內容以下,若是您已有其餘規則,請添加到第一條規則服務器

RewriteEngine On
RewriteCond %{REQUEST_METHOD} ^(OPTIONS)
RewriteRule .* - [F]

使用Apache的重寫規則來禁用Options方法和Trace方法

在Apache配置文件httpd-conf中【vhosts-conf】添加如下代碼:

  • 單獨禁用Trace方法:
RewriteEngine On
RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK)
RewriteRule .* - [F]
  • 單獨禁用Options方法:
RewriteEngine On
RewriteCond %{REQUEST_METHOD} ^(OPTIONS)
RewriteRule .* - [F]
  • 同時禁用Trace方法和Options方法
RewriteEngine On
RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK|OPTIONS)
RewriteRule .* - [F]
<VirtualHost *:80>
    DocumentRoot "D:\wwwroot"
    ServerName www.abc.com
    ServerAlias abc.com
  <Directory "D:\wwwroot">
      Options FollowSymLinks ExecCGI
      AllowOverride All
      Order allow,deny
      Allow from all
      Require all granted
      RewriteEngine on
      RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK|OPTIONS)
      RewriteRule .* - [F]
  </Directory>
</VirtualHost>

啓用了TRACE Method

同啓用了OPTIONS方法處理方法相同
RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK|OPTIONS)
或者在httpd.conf中添加配置:
TraceEnable off

X-Frame-Options頭未設置

在httpd.conf裏面增長
Header always append X-Frame-Options SAMEORIGIN

clipboard.png

錯誤頁面WEB應用服務器版本泄漏

clipboard.png
修復方法:
clipboard.png

clipboard.png

關閉目錄瀏覽權限

描述

<Directory "/var/www/html"> 
    Options Indexes FollowSymLinks 
    AllowOverride None 
    Order allow,deny 
    Allow from all 
 </Directory>

options中Indexes表示當網頁不存在的時候容許索引顯示目錄中的文件

clipboard.png

解決

將要設置的目錄對應配置參數下的Indexes刪除或者改成-Indexes(低版本可能會報錯)

<Directory "/var/www/html"> 
    Options FollowSymLinks 
    AllowOverride None 
    Order allow,deny 
    Allow from all 
 </Directory>

或者

<Directory "/var/www/html"> 
    Options -Indexes FollowSymLinks 
    AllowOverride None 
    Order allow,deny 
    Allow from all 
 </Directory>

clipboard.png

缺乏"x-content-type-options"頭

在httpd.conf裏面增長
Header always set X-Content-Type-Options nosniff

其餘

容許Flash文件與任何域HTML頁面通訊

描述

clipboard.png

解決方法

將參數AllowScriptAccess設置爲never

jQuery版本警告

clipboard.png

&#65279致使頁面空行

描述:

頁面的編碼若是是UTF-8 + BOM,會在body開頭處加入一個可見的控制符,致使頁面頭部會出現一個空白。這種編碼方式通常會在windows操做系統中出現,好比記事本編輯器,在保存一個以UTF-8編碼的文件時,會在文件開始的地方插入三個不可見的字符(0xEF 0xBB 0xBF,即BOM)。它是一串隱藏的字符,用於讓記事本等編輯器識別這個文件是否以UTF-8編碼。對於通常的文件,這樣並不會產生什麼麻煩。但對於html來講,BOM是個大麻煩。由於瀏覽器在解析html頁面時,並不會忽略BOM,因此在解析html文件時,會把BOM做爲該文件開頭正文的一部分,這串字符也將會被直接執行(在頁面中並不顯示)出來。由此形成即便頁面的 top或者padding 設置爲0,也沒法讓整個網頁緊貼瀏覽器頂部,由於在html一開頭有這3個隱藏字符!

解決辦法:

保存文件爲utf-8

建議不要用記事本打開開發文件

相關文章
相關標籤/搜索