常見web掃描漏洞修復即網站服務器加固項

名稱:X-Frame-Options Header未配置

漏洞描述:X-Frame-Options HTTP響應頭可以指示瀏覽器是否允許當前網頁在“frame”或“iframe”標籤中顯示,以此使網站內容不被其他站點引用和免於點擊劫持攻擊.
修復方法:設置X-Frame-Options頭,三個可選值:1、DENY:無論如何不在框架中顯示;2、SAMEORIGIN:僅在同源域名下的框架中顯示;3、ALLOW-FROM uri:僅在指定域名下的框架中顯示
具體操作方法:

//X-Frame-Options 設置
    Apache :
    引入mod_header模塊,配置 Header always append X-Frame-Options SAMEORIGIN
    
    Nginx  :
    add_header X-Frame-Options SAMEORIGIN;

名稱:Apache http server 版本信息泄露

漏洞描述:可以獲取遠程apache http服務器的版本號
修復方法:隱藏Apache版本號以及重新編譯Apache
具體操作方法:

//server版本信息泄露
    Apache:
    1)、隱藏版本號:
    ServerTokens Prod    
    ServerSignature off  
    隱藏版本號的缺點是在http的響應頭中還是可以看到server頭裏顯示的web服務的類型。
    2)、在apache源碼包中的include/ap_release.h中找到如下信息,將BaseProduct中的名稱改變,若將洗面的version號改變,則可以不在配置文件中設置隱藏版本,起到迷惑作用。
    #define AP_SERVER_BASEVENDOR "Apache Software Foundation"  
    #define AP_SERVER_BASEPROJECT "Apache HTTP Server"  
    #define AP_SERVER_BASEPRODUCT "Apache"  
  
    #define AP_SERVER_MAJORVERSION_NUMBER 2  
    #define AP_SERVER_MINORVERSION_NUMBER 4  
    #define AP_SERVER_PATCHLEVEL_NUMBER   32  
    #define AP_SERVER_DEVBUILD_BOOLEAN    0 
    
   Nginx:
   隱藏版本信息:
   nginx.conf http段中加入 server_tokens off;
   重新編譯:
    1、修改源文件 src/http/ngx_http_header_filter_module.c 
       static u_char ngx_http_server_string[] = "Server: nginx" CRLF;  
       static u_char ngx_http_server_full_string[] = "Server: " NGINX_VER CRLF;    
    2、修改源文件:src/core/nginx.h 
       #define nginx_version      1013003  
       #define NGINX_VERSION      "1.13.3"  
       #define NGINX_VER          "nginx/" NGINX_VERSION  
  
       #ifdef NGX_BUILD  
       #define NGINX_VER_BUILD    NGINX_VER " (" NGX_BUILD ")"  
       #else  
       #define NGINX_VER_BUILD    NGINX_VER  
       #endif  
          
       #define NGINX_VAR          "NGINX"      
       重新編譯安裝

名稱:http響應頭未使用x-xss-protection進行XSS過濾

參考鏈接:https://www.freebuf.com/articles/web/138769.html
漏洞描述:如果瀏覽器檢測到了含有惡意代碼的輸入被呈現在HTML文檔中,那麼這段呈現的惡意代碼要麼被刪除,要麼被轉義,惡意代碼不會被正常的渲染出來,當然了,瀏覽器是否要攔截這段惡意代碼取決於瀏覽器的XSS防護設置。
至於怎麼設置瀏覽器的XSS防護機制,其實很簡單,只要在HTTP響應報文的頭部增加一個X-XSS-Protection 字段,明確地告訴瀏覽器XSS filter/auditor該如何工作。 X-XSS-Protection 的字段有三個可選配置值:
0:表示關閉瀏覽器的XSS防護機制
1:刪除檢測到的惡意代碼, 如果響應報文中沒有看到X-XSS-Protection 字段,那麼瀏覽器就認爲X-XSS-Protection配置爲1,這是瀏覽器的默認設置
1; mode=block:如果檢測到惡意代碼,在不渲染惡意代碼
注意:設置爲1是默認選項,此選項默認設置擴大了攻擊面, 比如攻擊者可以利用這個默認設置選擇性的刪除頁面中某些腳本,且會引入新的漏洞,容易被繞過
設置爲1;mode=block 也會導致產生新的漏洞,但相對較小,一般建議設置此項
修復方法:通過web服務器,指定響應頭中設置X-XSS-protection:1;mode=block;來告訴瀏覽器該如何進行防護XSS攻擊

—具體操作方法:

Apache:Header set X-XSS-Protection "1; mode=block"
Nginx: add_header X-XSS-Protection '1; mode=block';

名稱:http響應頭x-content-options

漏洞描述:未設置此響應頭,可以導致不符合MIME類型的文件類型的響應
修復方法:通過設置"X-Content-Type-Options: nosniff"響應標頭,對 script 和 styleSheet 在執行是通過MIME 類型來過濾掉不安全的文件,需要寫的頁面指定的MIME類型必須正確且符合規範,例如:text/javascript
具體操作方法:

Apache:Header set X-Content-Type-Options nosniff
Nginx: add_header X-Content-Type-Options 'nosniff'; 

名稱:未禁用不安全的HTTP方法

漏洞描述:
修復方法:禁用不安全的http方法,如:option、trace、delete
具體操作方法:

//禁用不安全的HTTP請求方法
Apache:
通用方法:
1)、使用limit禁止,或者使用limitExcept允許可以被使用的方法
        <LimitExcept GET POST HEAD>
            Allow from all
        </Limit>
        ...
        ...
2)、使用rewrite重寫規則
        LoadModule  rewrite_module  ***/modules/mod_rewrite.so
        RewriteEngine On
        RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK|OPTIONS)
        RewriteRule .* - [F]
        版本大於2.3以上的可以使用如下方法放行允許的http請求方法:
        啓用mod_allowmethods模塊
        <Location "/">
        AllowMethods GET POST HEAD
        </Location>
Nginx禁用辦法:
        server段中加入如下判斷,即可禁用除get、post、head以外的方法:
        if ($request_method !~* GET|POST|HEAD) {
            return 403;
        }
Tomcat 禁用方式:修改web.xml
        <security-constraint>
           <web-resource-collection>
              <web-resource-name>fortune</web-resource-name>
              <url-pattern>/*</url-pattern>
              <http-method>PUT</http-method>
              <http-method>DELETE</http-method>
              <http-method>HEAD</http-method>
              <http-method>OPTIONS</http-method>
              <http-method>TRACE</http-method>
           </web-resource-collection>
           <auth-constraint></auth-constraint>
        </security-constraint>
        <login-config>
           <auth-method>BASIC</auth-method>
        </login-config>    
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章