當前為5.1版本文檔,更多實例內容將在最新幫助文檔中展現,點選跳轉至 最新版幫助文檔

安全防護

1. 概述

1.1 版本

FineBI 版本 JAR新增功能
5.12020-08-04增加「HSTS設定」按鈕

增加「請求響應優化」按鈕

5.1.15-增加「Token認證增強」按鈕

1.2 功能簡介

出於平台安全性考量,管理系統的「安全防護」包含多個安全功能開關:Cookie 增強、HSTS 設定、檔案上傳校驗、腳本呼叫公式限制、Security Headers、請求響應優化、Token認證增強。如下圖所示:

2. Cookie增強

「Cookie 增強」按鈕預設關閉。點選開啓時對當前協定進行檢查:

  • 檢查到當前伺服器協定為 HTTPS 時,Cookie 增強可正常開啓。

  • 檢查到當前伺服器協定為 HTTP 時,彈窗提示:檢查到當前伺服器協定為HTTP,未能成功啟用。請應答伺服器開啓HTTPS後重試,並開啓失敗。

如下圖所示:

3. HSTS設定

3.1 功能說明

HSTS是一種網際網絡安全機制,全稱叫HTTP Strict Transport Security,即安全傳輸協定。 它告訴瀏覽器只能透過HTTPS存取當前資源,而不是HTTP。

「HSTS 設定」按鈕預設關閉。伺服器開啓 HTTPS 後方可開啓該按鈕,開啓後將禁止 HTTP 存取,IE11 以下瀏覽器暫不支援此設定。

若當前伺服器協定為 HTTP,開啓該按鈕後,提示:檢查到當前伺服器協定為HTTP,未能成功啟用,請應答伺服器開啓HTTPS 後重試。如下圖所示:

注:HSTS 設定暫不考慮自簽章憑證。

3.2 設定方法

「HSTS 設定」按鈕開啓後增加一個「header」:Strict-Transport-Security:,預設值為max-age=31536000; includeSubdomains

超級管理者可透過「fine_conf_entity視覺化配置插件」修改「header」的值。

注:修改 FineDB 資料庫表欄位值的方法請參考 FineDB 常用表欄位修改 。


配置項
配置值配置範例含義
WebSecurityConfig.hstsHeader

max-age=

max-age=31536000
設定在瀏覽器收到這個請求後的31536000秒的時間內凡是存取這個域名下的請求都使用HTTPS請求
max-age=max-age=31536000; includeSubdomains設定在瀏覽器收到這個請求後的31536000秒的時間內凡是存取這個域名下的請求都使用HTTPS請求

此規則也適用於該網站的所有子域名

max-age=max-age=31536000; preload設定在瀏覽器收到這個請求後的31536000秒的時間內凡是存取這個域名下的請求都使用HTTPS請求

預載入HSTS


4. 檔案上傳校驗

4.1 功能說明

「檔案上傳校驗」按鈕預設開啓,開啓後對填報及平台外觀配置中上傳檔案的後綴和大小進行校驗。

判斷條件具體設定
判斷上傳的檔案大小數據決策系統>外觀配置中,禁止上傳超過 20M 的圖片,防止過程掛死。

上傳超出限制大小的圖片,會彈出提示框:為使顯示效果較佳,請選擇尺寸不小於 1024*768,大小不超過20M的圖片,支援 PNG、JPG 格式。

檔案元件可自行設定檔案的大小限制,超過限制則無法上傳。

上傳超出限制的檔案,會彈出提示框:檔案過大,上限為 xxx KB

判斷上傳的檔案型別預設支援上傳的檔案型別包括:

jpg , jpeg , gif , bmp , png , pdf , doc , docx , ppt , pptx , xls , xlsx , zip

判斷上傳的檔案二進制頭透過校驗檔案二進制頭,禁止上傳後綴與實際不符合的檔案

例如 a.txt 改為 a.jpg 後上傳

4.2 修改支援上傳的檔案型別

檔案上傳校驗開啓後,允許上傳白名單中的檔案型別包括:jpg , jpeg , gif , bmp , png , pdf , doc , docx , ppt , pptx , xls , xlsx , zip

超級管理者可透過「fine_conf_entity視覺化配置插件」修改檔案上傳校驗型別。

注:修改 FineDB 資料庫表欄位值的方法請參考 FineDB 常用表欄位修改 。

配置項規則
WebSecurityConfig.fileInspectorType0後綴不在白名單內放行,否則校驗頭匹配才放行
1預設值,後綴在白名單且頭匹配的才放行
2後綴不在黑名單內放行

5. 腳本呼叫公式限制

5.1 功能說明

JS 中FR.remoteEvaluateFR.remoteEvaluateAsync這兩個API的頻率較高,但這兩個API也存在巨大的安全風險,可能會導致攻擊者實現對資料庫的增刪改查等操作,其風險等級相當於遠端執行。所以 FineReport9.0 和 FineReport10.0 都新增了「腳本呼叫公式限制」這一功能。

當使用者使用了FR.remoteEvaluateFR.remoteEvaluateAsync這兩個API,如果使用者開啓了腳本呼叫公式限制開關,則效果預覽時彈出提示框資訊:此呼叫存在安全風險,如需使用請在安全管理中修改腳本呼叫公式限制

注:如果使用者沒有相應使用場景,建議不要隨便關閉該功能,關閉會有上述漏洞的風險。

5.2 設定方法

管理者登入數據決策系統,點選「管理系統>安全管理>安全防護」,即可開啓「腳本呼叫公式限制」,如下圖所示:

6. Security Headers

安全頭系列設定,開啓後將給請求頭附加 HTTP Security Headers 屬性,阻止漏洞攻擊。

點選進階設定展開進階防護子功能開關共五個,如下圖所示:

注:當 Security Headers 功能開啓時預設子功能全部開啓,Security Headers 關閉時預設全部關閉,同時不允許開啓進階防護功能。


預設開啓的具體設定如下所示:

res.addHeader("X-Content-Type-Options", "nosniff");
res.addHeader("X-XSS-Protection", "1; mode=block");
res.addHeader("X-Frame-Options", "SAMEORIGIN");
res.addHeader("Content-Security-Policy", "object-src 'self'");
res.addHeader("Cache-Control", "no-cache");
res.addHeader("Pragma", "no-cache");
res.addDateHeader("Expires", 0)

6.1 CSP內容安全策略

1)功能簡介

CSP內容安全策略,類似於白名單,透過在CSP中配置白名單,來告訴瀏覽器或者用戶端,哪些東西是被授權執行的,哪些東西是被禁止的。

實現方式就是網站向瀏覽器發一個CSP頭部,來實現告訴瀏覽器以上資訊,這樣就算攻擊者發現了網站的漏洞,也沒有辦法寫攻擊腳本,因為攻擊腳本不在白名單中。

HTTP 響應頭Content-Security-Policy允許地點管理者控制使用者代理能夠為指定的頁面載入哪些資源。除了少數例外情況,設定的政策主要涉及指定伺服器的源和腳本結束點。這將幫助防止跨站腳本攻擊。

2)設定方法

開啓後,請求頭部預設增加Content-Security-Policy:object-src 'self'設定。

超級管理者可透過「fine_conf_entity視覺化配置插件」修改策略。

注:修改 FineDB 資料庫表欄位值的方法請參考 FineDB 常用表欄位修改 。

配置項配置值配置範例语法含義
WebSecurityConfig.contentSecurityPolicyHeader

object-src

object-src 'self'Content-Security-Policy: 

限制

且僅允許與當前來源(而不是其子域)匹配

object-srcobject-src uri

限制

default-srcdefault-src https:禁用不安全的行內/動態執行, 只允許透過 https載入這些資源 (images, fonts, scripts, etc.)

6.2 XSS攻擊防護

1)功能簡介

XSS是一類攻擊過程的統稱,是攻擊者發現網站漏洞寫的攻擊過程的統稱。這些過程通常是JS,也可以是Java,flash,html等。攻擊成功可以實現:更高的權限,私密的對話,cookie等。

HTTP X-XSS-Protection 響應頭是 Internet Explorer,Chrome 和 Safari 的一個特性,當檢查到跨站腳本攻擊 (XSS (en-US))時,瀏覽器將停止載入頁面。

2)設定方法

開啓後,請求頭部預設增加X-XSS-Protection:1; mode=block設定。

超級管理者可透過「fine_conf_entity視覺化配置插件」修改策略。

注:修改 FineDB 資料庫表欄位值的方法請參考 FineDB 常用表欄位修改 。

配置項配置值文法含義
WebSecurityConfig.xssProtectionHeader0

X-XSS-Protection: 0

禁止XSS過濾

1

X-XSS-Protection: 1

啟用XSS過濾

如果檢查到跨站腳本攻擊,瀏覽器將清除頁面,刪除不安全的部分

1; mode=block

X-XSS-Protection: 1; mode=block

啟用XSS過濾

如果檢查到攻擊,瀏覽器將不會清除頁面,而是阻止頁面載入

1; report=

範例:1; report=xss.php

X-XSS-Protection: 1; report=xss.php

啟用XSS過濾

如果檢查到跨站腳本攻擊,瀏覽器將清除頁面,並使用CSP xss.php的功能傳送違規報表

6.3 點選劫持攻擊防護

1)功能簡介

點選劫持(ClickJacking)是一種視覺上的欺騙手段。

  • 攻擊者使用一個透明的iframe,改寫在一個網頁上,然後誘使使用者在該頁面上進行操作,此時使用者將在不知情的情況下點選透明的iframe頁面。

  • 攻擊者使用一張圖片改寫在網頁,遮擋網頁原有位置的含義。

The X-Frame-Options HTTP 響應頭是用來給瀏覽器 指示允許一個頁面 可否在 

注:如果使用跨域 iframe 的方式嵌入報表,出現無法存取的情況,請關閉 Security Headers 進階設定中的「點選劫持攻擊防護」按鈕。

2)設定方法

開啓後,請求頭部預設增加X-Frame-Options:SAMEORIGIN設定。

超級管理者可透過「fine_conf_entity視覺化配置插件」修改策略。

注:修改 FineDB 資料庫表欄位值的方法請參考 FineDB 常用表欄位修改 。

配置項配置值文法含義
WebSecurityConfig.frameOptionsHeaderdeny

X-Frame-Options: deny

瀏覽器會拒絕當前頁面載入任何frame頁面
sameorigin

X-Frame-Options: sameorigin

表示該頁面可以在相同域名頁面的 frame 中展示

allow-from uri

範例:allow-from https://example.com/

X-Frame-Options: allow-from https://example.com/

表示該頁面可以在指定來源(https://example.com/)的 frame 中展示

6.4 內容嗅探攻擊防護

1)功能簡介

MIME是一種標準,多用途網際網絡郵件擴展。它表明了文檔、檔案或各種位元組的性質和格式。

X-Content-Type-Options HTTP 訊息頭相當於一個提示標籤,被伺服器用來提示用戶端一定要遵循在 Content-Type 標頭中對  MIME 型別 的設定,而不能對其進行修改。這就禁用了用戶端的 MIME 型別嗅探行為。

注:單點登入時若報跨域的問題,請關閉 Security Headers 進階設定中的「內容嗅探攻擊防護」按鈕。

2)設定方法

開啓後,請求頭部預設增加X-Content-Type-Options:nosniff設定。

超級管理者可透過「fine_conf_entity視覺化配置插件」修改策略。

注:修改 FineDB 資料庫表欄位值的方法請參考 FineDB 常用表欄位修改 。

配置項配置值文法含義
WebSecurityConfig.contentTypeOptionsHeadernosniffX-Content-Type-Options: nosniff下面兩種情況的請求將被阻止:

1)請求型別是"style" 但是 MIME 型別不是 "text/css"

2)請求型別是"script" 但是 MIME 型別不是  JavaScript MIME 型別

6.5 瀏覽器快取禁用

1)功能簡介

瀏覽器快取禁用包含三個ID

  • Cache-Control 通用訊息頭欄位,被用於在http請求和響應中,透過指定指令來實現快取機制。快取指令是單向的,這意味着在請求中設定的指令,不一定被包含在響應中。

  • Expires 響應頭包含日期/時間, 即在此時候之後,響應過期。無效的日期,比如 0, 代表着過去的日期,即該資源已經過期。如果在Cache-Control響應頭設定了 "max-age" 或者 "s-max-age" 指令,那麼 Expires 頭會被忽略。

  • Pragma 是一個在 HTTP/1.0 中規定的通用標頭,這個標頭的效果依賴於不同的實現,所以在“請求-響應”鏈中可能會有不同的效果。它用來向後相容只支援 HTTP/1.0 協定的快取伺服器,那時候 HTTP/1.1 協定中的 Cache-Control 還沒有出來。

2)設定方法

開啓後,請求頭部預設增加Cache-Control:no-cache、Pragma:no-cache&Expires:0設定。

超級管理者可透過「fine_conf_entity視覺化配置插件」修改策略。

注:修改 FineDB 資料庫表欄位值的方法請參考 FineDB 常用表欄位修改 。

配置項配置值配置範例文法含義
WebSecurityConfig.cacheControlHeader

注:瀏覽器快取禁用 Header Cache-Control 的值

no-cacheno-cache

Cache-control: no-cache

在發佈快取複本之前,強制要求快取把請求提交給原始伺服器進行驗證(協商快取驗證)
max-age=max-age=3600

Cache-control: max-age=3600


設定快取儲存的最大週期,超過這個時間快取被認為過期(單位秒)

WebSecurityConfig.cacheControlExpiresHeader

注:瀏覽器快取禁用 Header Expires 的值

00Expires:代表着過去的日期,即該資源已經過期

Wed, 21 Oct 2015 07:28:00 GMT在Wed, 21 Oct 2015 07:28:00 GMT日期後,響應過期
WebSecurityConfig.cacheControlPragmaHeader

注:瀏覽器快取禁用 Header Pragma 的值

no-cacheno-cache

Pragma: no-cache

與 Cache-Control: no-cache 效果一致

強制要求快取伺服器在傳回快取的版本之前將請求提交到源頭伺服器進行驗證

7. 請求響應優化

「請求響應優化」按鈕預設關閉。

請求響應優化按鈕關閉時,顯示詳細堆疊資訊。

請求響應優化按鈕開啓時,所有堆疊資訊統一轉為簡單的錯誤資訊提示:請求錯誤,如需查看詳細錯誤資訊請至安全管理頁面進行設定。



8. Token認證增強

「Token認證增強」按鈕預設關閉。

Token對應的狀態伺服器中的登入資訊會儲存IP。開啓「Token認證增強」按鈕後,伺服器增加IP校驗:

  • IP相同則自動放行。

  • IP不同則識別為新的用戶端,自動跳轉到登入頁,需要重新登入。

附件列表


主題: 数据分析进阶
已經是第一篇
已經是最後一篇
  • 有幫助
  • 沒幫助
  • 只是瀏覽
  • 评价文档,奖励 1 ~ 100 随机 F 豆!