Forguncy 10 オンラインヘルプ
アプリの運用 / サーバーへのアプリの発行 / セキュリティに関する推奨事項
このトピックで
    セキュリティに関する推奨事項
    このトピックで

    Forguncyはセキュリティに関係するいくつかの設定や機能を有しています。以下の推奨事項を確認し、作成するアプリケーションの運用環境や利用形態に合わせて、適切な設定や実装を行ってください。

    注意: 本ページに記載されている推奨事項を実施することが、お客様が作成したアプリケーションのセキュリティを保証するものではないことに注意してください。お客様が作成したForguncyアプリケーションのセキュリティについては、お客様ご自身の責任の下、診断・確認する必要があります。

    Administratorユーザーのパスワード変更

    Forguncy Serverには、既定でAdministratorというユーザーアカウントが存在しており、ユーザーアカウント管理等のサーバー側の設定に対するすべての権限(Administratorロール)が付与されています。Administratorユーザーのパスワードは、既定で「123456」が設定されているため、ユーザーに記載されている方法で、強度の高い別のパスワードに必ず変更してください。

    Administratorユーザーの無効化

    サーバー管理ポータルではAdministratorユーザーを無効化することが出来ます。ただし、Administratorロールを持つユーザーをすべて無効化した場合、通常の操作では復旧が出来ません。

    サーバー管理ポータルからAdministratorユーザーを無効化するとき、他にAdministratorロールを持つユーザーがいない場合、この操作はエラーとなります。ただし、このチェックはサーバー管理ポータル上の操作でのみ行われるため、Excelファイルからユーザー情報をインポートする場合など、特定の操作でAdministratorロールを持つユーザーをすべて無効化することは可能である点に注意してください。

    アップロードファイルの拡張子制限

    [添付ファイル]型セル、および[画像アップロード]型セルを使用している場合、アップロードファイルの拡張子制限を有効にし、必要最低限の拡張子のみを許可するように設定してください。

    匿名ユーザーからのデータベースアクセスの無効化

    ForguncyはJavaScriptによるプログラミングコードからデータベースアクセスが可能なAPIを提供しています。既定の設定では、ユーザーがログインしているかどうかに関わらず、これらのAPIを呼び出してデータベースアクセスを行うことが可能です。アプリケーション設定に存在する[匿名ユーザーからのデータベースアクセスを禁止する]チェックオプションを有効化することで、ページ表示やAPI呼び出しによるすべてのデータベースアクセスが発生する場合に、ログイン(ユーザー認証)を必須とすることができます。

    特に、パブリックなインターネットからアクセス可能なアプリケーションの場合、この設定を有効化することを強くお勧めします。

    匿名ユーザーからの添付ファイルへのアクセスの無効化

    デフォルトでは、添付ファイルへのアクセスはユーザーがログインしているかどうかに関わらず許可されています。 グローバル設定のAllowAnonymousAccessAttachmentを「false」に設定することで、添付ファイルへの匿名アクセスを無効化します。

    特に、パブリックなインターネットからアクセス可能なアプリケーションの場合、この設定を無効化することを強くお勧めします。

    匿名ユーザーからのユーザーの画像(アイコン)へのアクセスの無効化

    デフォルトでは、ユーザーの画像(アイコン)へのアクセスはユーザーがログインしているかどうかに関わらず許可されています。 グローバル設定のAllowAnonymousAccessUserAvatarを「false」に設定することで、ユーザーの画像(アイコン)への匿名アクセスを無効に設定します。

    特に、パブリックなインターネットからアクセス可能なアプリケーションの場合、この設定を無効化することを強くお勧めします。

    データアクセス権限

    どのページにどのユーザーがアクセス可能(ページを表示可能)かどうかは、リソース権限に記載されている方法で制御することが可能です。しかし、この権限設定によりページを表示することができないからといって、そのページで表示しているデータを閲覧・編集できないわけではありません。データベース上のデータを閲覧・編集する方法は、そのような機能を持ったページを表示する以外にも、JavaScriptコードからのAPIを使用する方法が存在します。そのため、特定のユーザーに特定のデータを閲覧・編集させたくない場合には、ページに対する表示権限を設定するだけでは不十分です。データアクセス権限に記載されている方法で、データベースに対して必要な権限設定を行ってください。

    特に、パブリックなインターネットからアクセス可能なアプリケーションの場合、この設定を有効化することを強くお勧めします。

    通信の暗号化

    Forguncyで作成したアプリケーションは、既定ではHTTPプロトコルによってサーバーと通信を行います。しかし、HTTP通信の場合はサーバーと送受信するデータが暗号化されていないため、通信を傍受された場合にその内容が漏洩してしまうことになります。このような通信傍受による被害を防ぐためには、SSL/TLSプロトコルによって通信の暗号化を行うHTTPSを使用する必要があります。アプリケーションのHTTPS通信対応に記載されている方法で、SSLサーバ証明書をインストールしてください。なお、SSLサーバー証明書は、認証局から購入するのが一般的な取得方法となります。

    特に、パブリックなインターネットからアクセス可能なアプリケーションの場合、この設定を有効化することを強くお勧めします。

    「AllowUrlReferrer」の設定

    既定の設定では、Forguncy Serverはリクエストの送信元を制限していません。たとえば、Forguncyアプリケーション以外のアプリケーションと連携するような場合、Forguncyアプリケーションのドメイン以外からのリクエストを受け付ける必要があります。しかし、Forguncy Serverに対するPOSTリクエストの送信元を限定することで、クロスサイト・リクエストフォージェリ(CSRF)攻撃によるリスクを軽減できます。セキュリティに記載されている方法で、「AllowUrlReferrer」の設定を行ってください。

    たとえば、Forguncyアプリケーションを運用しているドメインが「www.example.com」であった場合、「<AllowUrlReferrer>https://www.example.com*</AllowUrlReferrer>」といった値を設定することで「www.example.com」ドメインからのPOSTリクエストのみを受け付けるようになります(ただし、Refererが偽装されている場合はこの限りではありません)。「*(アスタリスク)」はワイルドカード文字となっているため、その扱いに注意してください。たとえば「<AllowUrlReferrer>https://*.example.com</AllowUrlReferrer>」という値を設定してしまった場合、「https://www.forguncy.com/?query=www.example.com」などのような送信元からのPOSTリクエストが許可されてしまいます。

    特に、パブリックなインターネットからアクセス可能なアプリケーションの場合、この設定を適切に行うことを強くお勧めします。

    「XFrameOptions」の設定

    既定の設定では、Forguncyアプリケーションのページは、他のWebページ内に<frame>、<iframe>、<embed>、<object>のいずれかの要素を使って表示させる(埋め込む)ことが可能です。しかし、セキュリティに記載されている方法で、「XFrameOptions」の設定を行うことで、HTTP応答ヘッダーに「X-Frame-Options」が追加され、他のWebページ上への表示を拒否できます。たとえば「<XFrameOptions>deny</XFrameOptions>」という設定値は、すべてのWebページへの埋め込み表示を禁止します。このような設定を行うことで、クリックジャッキング攻撃によるリスクを軽減できます。

    特に、パブリックなインターネットからアクセス可能なアプリケーションの場合、この設定を適切に行うことを強くお勧めします。

    自動ログアウト設定

    ユーザーがログイン画面で[ログインしたままにする]チェックオプションをチェックした場合、Webページを閉じる、もしくはWebブラウザーを終了させる操作を行っても、ログイン状態は保持されます。既定では永続的にログイン状態が保持される動作となるため、一定時間経過した際に自動ログアウトする設定とすることでセキュリティを高めることが期待できます。

    Forguncyアプリケーションの設定

    同時接続数の確認方法に記載されている「有効(クライアントのログイン状態と接続の両方を自動切断する)」を設定する。

    サーバー管理ポータルの設定

    セキュリティに記載されている「サーバー管理ポータルの自動ログアウト設定」を有効にする。

    パスワードポリシーの設定

    パスワードポリシーを適切に設定することで、ユーザーが推測されやすいパスワードを設定してしまうことを防ぎ、第三者による不正アクセスのリスクを軽減できます。アカウントセキュリティに記載されている内容を基に、適切なパスワードポリシーを設定してください。

    二要素認証の使用

    二要素認証を使用することで、ユーザー名とパスワードのほかに認証アプリを使用した認証コードがログイン時に必要となるため、認証のセキュリティを強化できます。詳細についてはアカウントセキュリティを参照してください。

    JavaScript APIによるメール送信の無効化

    Forguncyが提供するSendMailメソッドは認証なしで実行が可能であるため、インターネット上に公開されているForguncyアプリケーションの場合にはその機能を無効化する必要があります。詳細についてはアプリケーション設定を参照してください。

    ユーザー入力による本文の設定・変更が可能なメール送信

    Forguncyのメール送信機能において、送信するメール本文、もしくは本文の一部を、セル参照などを使用してWebページ上からの入力を可能としているアプリケーションの場合、HTML形式ではなくテキスト形式での送信とする必要があります。インターネット上に公開するアプリケーションの場合、このような設定、実装を必ず行ってください。

    アップロードファイルの拡張子制限

    ファイルのアップロードが許可される拡張子は既定で、.png、.jpeg、.jpg、.bmp、.gif、.ico のみです。そのほかにアップロードを許可する拡張子がある場合は設定に追加できます。

    スクリプトの読み込みや実行の制限

    Content-Security-Policy HTTPヘッダーを適切に設定し、Webブラウザーが実行可能なスクリプトの有効ソースを指定することでクロスサイトスクリプティングによる攻撃のリスクを軽減させることができます。詳細については高度な設定を参照してください。

    「アップロードボディサイズ最大値」、「リクエストボディサイズ最大値」の設定

    最大値を設定することで、悪意のあるユーザーからのサイズの大きなファイルやリクエストを防ぐことができ、サーバーリソース不足(CPUやメモリなど)の回避につながります。サービス運用にも関わる値になるため、適切な設定を行ってください。詳細については高度な設定を参照してください。

    リッチテキストエディター型セルの「Strictモード」

    Strictモードに設定することで、HTMLリッチテキストエディターにおけるコンテンツの入出力の安全性が確保され、潜在的な攻撃を防ぐことができます。詳細についてはリッチテキストエディター型セルを参照してください。

    証明書の登録

    一部のサーバーサイドコマンドやAndroid版モバイルアプリケーションでは証明書の登録が必要になります。証明書は認証局から発行されたCA証明書の使用を推奨しておりますが、サーバーサイドコマンドでは自己証明書の使用が可能です。詳細についてはAndroid版モバイルアプリケーション自己証明書の設定手順を参照してください。