セキュリティ保護

  • 作成者:ayuan0625
  • 編集回数:26次
  • 最終更新:FRInternational 于 2022-07-22
  • 一.概要

    1. 企業のデータを守るために、Finereportはセキュリティ管理を厳重にしています。FineReportは、脆弱性対策と主動防御の両方向からセキュリティの向上を図っています。

    2. セキュリティ保護のため、ポータルではCookie強化、HSTS設置、ファイルアップロードチェック、スクリプト数式利用制限、Setcurity Headers、リクエスト応答最適化の設定ができます。

    二.機能紹介

    1.デザイナ内蔵のポータルを例にします。

    2.デザイナを開き、[ヘルプ]-[製品デモ]を押して、ポータルに入ります。

    3.[システム]-[セキュリティ管理]からセキュリティ管理ページに入ります。

    三.セキュリティ保護

    注:既定では、Cookie強化、HSTS設置、リクエスト応答最適化がオフになっており、ファイルアップロードチェック、スクリプト数式利用制限、Setcurity Headersがオンになっています。

    1.Cookie強化

    注:サーバでhttpsを適用しなければなりません(Cookie強化のSecure属性を満たすため、https対応の時にのみCookieを配分する)。

    1.Cookie強化がオンになっていると、httpsが適用されているか確認されます。

    2.httpsが確認されていると、Cookie強化がオンとなりますが、httpの場合では「現在のサーバープロトコルがHTTPとして検出され、正常に有効化されませんでした。サーバーを確認してHTTPSを開き、もう一度お試しください。」と表示されます。下の画像の通りです。

    2. HSTS設定

    1.httpsを適用してからHSTSを設定できます。オンにすると、httpでのアクセスが禁止されます。IE11以前のブラウザに対応していません。

    2.httpのままHSTSをオンにすると、エラーメッセージが表示されます:「現在のサーバプロトコルはHTTPであると検出し、起動に失敗しました。サーバがHTTPSをオープンしているかどうかを確認してから、もう一度やり直してください。」下の画像の通りです。

    3.HSTSをオンにすると、新たに[header]:Strict-Transport-Security:が追加されます。デフォルトはmax-age=31536000; includeSubdomainsとなっています。

    4,システムの利用者は、fine_conf_entity表にWebSecurityConfig.hstsHeaderのフィールドを追加することで、[header]の数値を設定できます。

    注:現在、自己署名証明書によるHSTS設定への対応を予定しておりません。

    3.ファイルアップロードチェック

    3.1.概要

    ファイルアップロードチェックをオンにすると、書き込み、画面デザイン設定にアップロードされたファイルの拡張子と大きさを検査します。

    • ファイルのヘッダーを確認し、a.txtをa.jpgに改ざんしてアップロードするなど、拡張子を改ざんされたファイルのアップロードが禁止されます。

    • プログラムのハングアップを防ぐため、画面デザイン設定で20MB以上の画像のアップロードを禁止します(書き込みページでは、ウィジェットの設定から調整できます)。20MBを超えている場合、エラーメッセージがポップアップされます。

    3.2.セキュリティストレージ

    ファイルアップロードチェックをオンにすると、既定セキュリティストレージではホワイトリスト内のファイルのみがアップロードできます: jpg、jpeg、gif、bmp、png、pdf、doc、docx、ppt、pptx、xls、xlsx、zip。

    セキュリティストレージは、FineDBの表fine_conf_entityにおけるWebSecurityConfig.fileInspectorTypeフィールドから変更できます。既定では、WebSecurityConfig.fileInspectorType=1となっています。

    WebSecurityConfig.fileInspectorTypeフィールドの設定は、以下の表の通りです。

    Key

    Value

    Description

    WebSecurityConfig.fileInspectorType

    0

    ホワイトリストにない拡張子を許可する。ホワイトリストにある拡張子を、ヘッダーが一致していれば許可する。

    1

    拡張子がホワイトリストにあり、かつヘッダーが一致していれば許可する。

    2

    拡張子がブラックリストにない限り許可する。

    4.スクリプト数式利用制限

    4.1.概要

    JSにはSQLを実行することができるFR.remoteEvaluateFR.remoteEvaluateAsyncのインターフェースがあります。よく使われていますが、大きなリスクを伴います。

    この2つインターフェースは、平文で伝送していますので、このファンクションを使用するテンプレートがあれば、または攻撃者がこのインターフェースの存在を知っていれば、ブラウザでJSを使ってSQLを実行することができ、サーバーをコントロールする権限を取得される恐れがあります。FineReport9.0とFineReport10.0では、これを防ぐため、スクリプト数式利用制限の機能を追加しています。

    JSでFR.remoteEvaluateまたはFR.remoteEvaluateAsyncを使用している、かつインターフェースのformulaは帳票クラスの関数を実行していると、この機能が作動します。スクリプト数式利用制限をオンにすれば、テンプレートを閲覧するとき、[このコールにはリスクがあります。必要がある場合、セキュリティ管理にスクリプト数式利用制限を調整してください]とエラーメッセージが表示されます。

    注:システムの脆弱性が上がりますので、必要がない限り、この機能をオフにしないでください。必要な場合、客注をお勧めします。

    4.2.事例

    B4のセルにTestを入れます。セルに[ハイパーリンク]-[JavaScriptスクリプト]を設定します。下の画像の通りです。

    [改ページプレビュー]をクリックして[Test]を押すと、エラーメッセージが表示されます。下の画像の通りです。

    5.Security Headers

    1.Security Headersの設定です。オンにすると、リクエストヘッダーにHTTP Security Headers属性が追加され、攻撃を防ぐことができます。 

    2.詳細設定をクリックして、詳細保護設定が展開されます。下の画像の通りです。

    注:Security Headersがオンになっていると、既定では詳細設定がすべてオンになります。Security Headersをオフにすると、詳細設定がすべてオフになります。

    3.Security Headersの詳細設定について、下の表を確認してください。

    設定項目

    説明

    CSP内容安全ポリシー

    1.オンにすると、ヘッダーにContent-Security-Policy:object-src 'self’が追加されます。

    2.カスタマイズするには、fine_conf_entity表にWebSecurityConfig.contentSecurityPolicyHeaderのフィールドを追加して設定してください。

    XSS攻撃防護

    1.オンにすると、ヘッダーにX-XSS-Protection:1; mode=blockが追加されます。

    2.カスタマイズするには、fine_conf_entity表にWebSecurityConfig.xssProtectionHeaderのフィールドを追加して設定してください。

    クリックジャック攻撃防護

    1.オンにすると、ヘッダーにX-Frame-Options:SAMEORIGINが追加されます。

    2.カスタマイズするには、fine_conf_entity表にWebSecurityConfig.frameOptionsHeaderのフィールドを追加して設定してください。

    コンテンツの盗聴攻撃に対する保護

    1.オンにすると、ヘッダーにX-Frame-Options:SAMEORIGINが追加されます。

    2.カスタマイズするには、fine_conf_entity表にWebSecurityConfig.contentTypeOptionsHeaderのフィールドを追加して設定してください。

    ブラウザキャッシュ禁止

    1.オンにすると、ヘッダーにCache-Control:no-cache、Pragma:no-cache&Expires:0が追加されます。

    2.カスタマイズするには、fine_conf_entity表にWebSecurityConfig.cacheControlHeaderWebSecurityConfig.cacheControlExpiresHeaderWebSecurityConfig.cacheControlPragmaHeaderのフィールドを追加して設定してください。

    注:WebSecurityConfig.cacheControlHeader フィールドはブラウザのHeader Cache-Controlに、WebSecurityConfig.cacheControlExpiresHeaderはHeader Expiresに、WebSecurityConfig.cacheControlPragmaHeaderはHeader Pragmaに対応しています。

     

    注:

    • クロスドメインiframe方式で埋め込んだ帳票へのアクセスができなくなっていると、Security Headers[詳細設定]における[クリックジャック攻撃保護]をオフにしてください。

    • SSO(シングルサインオン)にもかかわらず、アクセスが拒否されている場合、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.リクエスト応答最適化をオンにすると、スタックトレースの明細が表示されます。

     2.これをオンにすると、スタックトレースがより簡単な形で表示されます:「リクエストエラー、詳細エラー情報を表示するためセキュリティ管理画面で設定してください



    Attachment List


    Theme: FineReport 管理ポータル
    既に最初
    既に最後
    • Helpful
    • Not helpful
    • Only read