增加「請求響應優化」按鈕
出於平台安全性考量,管理系統的「安全防護」包含多個安全功能開關:Cookie 增強、HSTS 設定、檔案上傳校驗、腳本呼叫公式限制、Security Headers、請求響應優化、Token認證增強。如下圖所示:
「Cookie 增強」按鈕預設關閉。點選開啓時對當前協定進行檢查:
檢查到當前伺服器協定為 HTTPS 時,Cookie 增強可正常開啓。
檢查到當前伺服器協定為 HTTP 時,彈窗提示:檢查到當前伺服器協定為HTTP,未能成功啟用。請應答伺服器開啓HTTPS後重試,並開啓失敗。
如下圖所示:
HSTS是一種網際網絡安全機制,全稱叫HTTP Strict Transport Security,即安全傳輸協定。 它告訴瀏覽器只能透過HTTPS存取當前資源,而不是HTTP。
「HSTS 設定」按鈕預設關閉。伺服器開啓 HTTPS 後方可開啓該按鈕,開啓後將禁止 HTTP 存取,IE11 以下瀏覽器暫不支援此設定。
若當前伺服器協定為 HTTP,開啓該按鈕後,提示:檢查到當前伺服器協定為HTTP,未能成功啟用,請應答伺服器開啓HTTPS 後重試。如下圖所示:
注:HSTS 設定暫不考慮自簽章憑證。
「HSTS 設定」按鈕開啓後增加一個「header」:Strict-Transport-Security:,預設值為max-age=31536000; includeSubdomains
超級管理者可透過「fine_conf_entity視覺化配置插件」修改「header」的值。
注:修改 FineDB 資料庫表欄位值的方法請參考 FineDB 常用表欄位修改 。
max-age=
此規則也適用於該網站的所有子域名
預載入HSTS
「檔案上傳校驗」按鈕預設開啓,開啓後對填報及平台外觀配置中上傳檔案的後綴和大小進行校驗。
上傳超出限制大小的圖片,會彈出提示框:為使顯示效果較佳,請選擇尺寸不小於 1024*768,大小不超過20M的圖片,支援 PNG、JPG 格式。
上傳超出限制的檔案,會彈出提示框:檔案過大,上限為 xxx KB
jpg , jpeg , gif , bmp , png , pdf , doc , docx , ppt , pptx , xls , xlsx , zip
例如 a.txt 改為 a.jpg 後上傳
檔案上傳校驗開啓後,允許上傳白名單中的檔案型別包括:jpg , jpeg , gif , bmp , png , pdf , doc , docx , ppt , pptx , xls , xlsx , zip。
超級管理者可透過「fine_conf_entity視覺化配置插件」修改檔案上傳校驗型別。
JS 中FR.remoteEvaluate和FR.remoteEvaluateAsync這兩個API的頻率較高,但這兩個API也存在巨大的安全風險,可能會導致攻擊者實現對資料庫的增刪改查等操作,其風險等級相當於遠端執行。所以 FineReport9.0 和 FineReport10.0 都新增了「腳本呼叫公式限制」這一功能。
當使用者使用了FR.remoteEvaluate和FR.remoteEvaluateAsync這兩個API,如果使用者開啓了腳本呼叫公式限制開關,則效果預覽時彈出提示框資訊:此呼叫存在安全風險,如需使用請在安全管理中修改腳本呼叫公式限制。
注:如果使用者沒有相應使用場景,建議不要隨便關閉該功能,關閉會有上述漏洞的風險。
管理者登入數據決策系統,點選「管理系統>安全管理>安全防護」,即可開啓「腳本呼叫公式限制」,如下圖所示:
安全頭系列設定,開啓後將給請求頭附加 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)
1)功能簡介
CSP內容安全策略,類似於白名單,透過在CSP中配置白名單,來告訴瀏覽器或者用戶端,哪些東西是被授權執行的,哪些東西是被禁止的。
實現方式就是網站向瀏覽器發一個CSP頭部,來實現告訴瀏覽器以上資訊,這樣就算攻擊者發現了網站的漏洞,也沒有辦法寫攻擊腳本,因為攻擊腳本不在白名單中。
HTTP 響應頭Content-Security-Policy允許地點管理者控制使用者代理能夠為指定的頁面載入哪些資源。除了少數例外情況,設定的政策主要涉及指定伺服器的源和腳本結束點。這將幫助防止跨站腳本攻擊。
2)設定方法
開啓後,請求頭部預設增加Content-Security-Policy:object-src 'self'設定。
超級管理者可透過「fine_conf_entity視覺化配置插件」修改策略。
object-src
限制
且僅允許與當前來源(而不是其子域)匹配
XSS是一類攻擊過程的統稱,是攻擊者發現網站漏洞寫的攻擊過程的統稱。這些過程通常是JS,也可以是Java,flash,html等。攻擊成功可以實現:更高的權限,私密的對話,cookie等。
HTTP X-XSS-Protection 響應頭是 Internet Explorer,Chrome 和 Safari 的一個特性,當檢查到跨站腳本攻擊 (XSS (en-US))時,瀏覽器將停止載入頁面。
開啓後,請求頭部預設增加X-XSS-Protection:1; mode=block設定。
X-XSS-Protection: 0
禁止XSS過濾
X-XSS-Protection: 1
如果檢查到跨站腳本攻擊,瀏覽器將清除頁面,刪除不安全的部分
X-XSS-Protection: 1; mode=block
如果檢查到攻擊,瀏覽器將不會清除頁面,而是阻止頁面載入
1; report=
範例:1; report=xss.php
X-XSS-Protection: 1; report=xss.php
如果檢查到跨站腳本攻擊,瀏覽器將清除頁面,並使用CSP xss.php的功能傳送違規報表
點選劫持(ClickJacking)是一種視覺上的欺騙手段。
攻擊者使用一個透明的iframe,改寫在一個網頁上,然後誘使使用者在該頁面上進行操作,此時使用者將在不知情的情況下點選透明的iframe頁面。
攻擊者使用一張圖片改寫在網頁,遮擋網頁原有位置的含義。
The X-Frame-Options HTTP 響應頭是用來給瀏覽器 指示允許一個頁面 可否在
注:如果使用跨域 iframe 的方式嵌入報表,出現無法存取的情況,請關閉 Security Headers 進階設定中的「點選劫持攻擊防護」按鈕。
開啓後,請求頭部預設增加X-Frame-Options:SAMEORIGIN設定。
X-Frame-Options: deny
X-Frame-Options: sameorigin
allow-from uri
範例:allow-from https://example.com/
X-Frame-Options: allow-from https://example.com/
MIME是一種標準,多用途網際網絡郵件擴展。它表明了文檔、檔案或各種位元組的性質和格式。
X-Content-Type-Options HTTP 訊息頭相當於一個提示標籤,被伺服器用來提示用戶端一定要遵循在 Content-Type 標頭中對 MIME 型別 的設定,而不能對其進行修改。這就禁用了用戶端的 MIME 型別嗅探行為。
注:單點登入時若報跨域的問題,請關閉 Security Headers 進階設定中的「內容嗅探攻擊防護」按鈕。
開啓後,請求頭部預設增加X-Content-Type-Options:nosniff設定。
1)請求型別是"style" 但是 MIME 型別不是 "text/css"
2)請求型別是"script" 但是 MIME 型別不是 JavaScript MIME 型別
瀏覽器快取禁用包含三個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 還沒有出來。
開啓後,請求頭部預設增加Cache-Control:no-cache、Pragma:no-cache&Expires:0設定。
注:瀏覽器快取禁用 Header Cache-Control 的值
Cache-control: no-cache
Cache-control: max-age=3600
WebSecurityConfig.cacheControlExpiresHeader
注:瀏覽器快取禁用 Header Expires 的值
注:瀏覽器快取禁用 Header Pragma 的值
Pragma: no-cache
強制要求快取伺服器在傳回快取的版本之前將請求提交到源頭伺服器進行驗證
「請求響應優化」按鈕預設關閉。
請求響應優化按鈕關閉時,顯示詳細堆疊資訊。
請求響應優化按鈕開啓時,所有堆疊資訊統一轉為簡單的錯誤資訊提示:請求錯誤,如需查看詳細錯誤資訊請至安全管理頁面進行設定。
「Token認證增強」按鈕預設關閉。
Token對應的狀態伺服器中的登入資訊會儲存IP。開啓「Token認證增強」按鈕後,伺服器增加IP校驗:
IP相同則自動放行。
IP不同則識別為新的用戶端,自動跳轉到登入頁,需要重新登入。