Forguncyはセキュリティに関係するいくつかの設定や機能を有しています。以下の推奨事項を確認し、作成するアプリケーションの運用環境や利用形態に合わせて、適切な設定や実装を行ってください。
Forguncy Serverには、既定でAdministratorというユーザーアカウントが存在しており、ユーザーアカウント管理等のサーバー側の設定に対するすべての権限が付与されています。Administratorユーザーのパスワードは、既定で「123456」が設定されているため、ユーザーに記載されている方法で、強度の高い別のパスワードに必ず変更してください。
[添付ファイル]型セルを使用している場合、アップロードファイルの拡張子制限を有効にし、必要最低限の拡張子のみを許可するように設定してください。
ForguncyはJavaScriptによるプログラミングコードからデータベースアクセスが可能なAPIを提供しています。既定の設定では、ユーザーがログインしているかどうかに関わらず、これらのAPIを呼び出してデータベースアクセスを行うことが可能です。アプリケーション設定に存在する[匿名ユーザーからのデータベースアクセスを禁止する]チェックオプションを有効化することで、ページ表示やAPI呼び出しによるすべてのデータベースアクセスが発生する場合に、ログイン(ユーザー認証)を必須とすることができます。
特に、パブリックなインターネットからアクセス可能なアプリケーションの場合、この設定を有効化することを強くお勧めします。
どのページにどのユーザーがアクセス可能(ページを表示可能)かどうかは、ページ表示権限に記載されている方法で制御することが可能です。しかし、この権限設定によりページを表示することができないからといって、そのページで表示しているデータを閲覧・編集できないわけではありません。データベース上のデータを閲覧・編集する方法は、そのような機能を持ったページを表示する以外にも、JavaScriptコードからのAPIを使用する方法が存在します。そのため、特定のユーザーに特定のデータを閲覧・編集させたくない場合には、ページに対する表示権限を設定するだけでは不十分です。データレベルのアクセス制御に記載されている方法で、データベースに対して必要な権限設定を行ってください。
特に、パブリックなインターネットからアクセス可能なアプリケーションの場合、この設定を有効化することを強くお勧めします。
Forguncyで作成したアプリケーションは、既定ではHTTPプロトコルによってサーバーと通信を行います。しかし、HTTP通信の場合はサーバーと送受信するデータが暗号化されていないため、通信を傍受された場合にその内容が漏洩してしまうことになります。このような通信傍受による被害を防ぐためには、SSL/TLSプロトコルによって通信の暗号化を行うHTTPSを使用する必要があります。アプリケーションのHTTPS通信対応に記載されている方法で、SSLサーバ証明書をインストールしてください。なお、SSLサーバー証明書は、認証局から購入するのが一般的な取得方法となります。
特に、パブリックなインターネットからアクセス可能なアプリケーションの場合、この設定を有効化することを強くお勧めします。
既定の設定では、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リクエストが許可されてしまいます。
特に、パブリックなインターネットからアクセス可能なアプリケーションの場合、この設定を適切に行うことを強くお勧めします。
既定の設定では、Forguncyアプリケーションのページは、他のWebページ内に<frame>、<iframe>、<embed>、<object>のいずれかの要素を使って表示させる(埋め込む)ことが可能です。しかし、セキュリティに記載されている方法で、「XFrameOptions」の設定を行うことで、HTTP応答ヘッダーに「X-Frame-Options」が追加され、他のWebページ上への表示を拒否できます。たとえば「<XFrameOptions>deny</XFrameOptions>」という設定値は、すべてのWebページへの埋め込み表示を禁止します。このような設定を行うことで、クリックジャッキング攻撃によるリスクを軽減できます。
特に、パブリックなインターネットからアクセス可能なアプリケーションの場合、この設定を適切に行うことを強くお勧めします。
パスワードポリシーを適切に設定することで、ユーザーが推測されやすいパスワードを設定してしまうことを防ぎ、第三者による不正アクセスのリスクを軽減できます。アカウントセキュリティに記載されている内容を基に、適切なパスワードポリシーを設定してください。
二要素認証を使用することで、ユーザー名とパスワードのほかに認証アプリを使用した認証コードがログイン時に必要となるため、認証のセキュリティを強化できます。詳細についてはアカウントセキュリティを参照してください。
Forguncyが提供するSendMailメソッドは認証なしで実行が可能であるため、インターネット上に公開されているForguncyアプリケーションの場合にはその機能を無効化する必要があります。詳細についてはアプリケーション設定を参照してください。
Forguncyのメール送信機能において、送信するメール本文、もしくは本文の一部を、セル参照などを使用してWebページ上からの入力を可能としているアプリケーションの場合、HTML形式ではなくテキスト形式での送信とする必要があります。インターネット上に公開するアプリケーションの場合、このような設定、実装を必ず行ってください。