セキュリティに関する推奨事項

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

warning
..\..\Media\pict-warning.png

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

 

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

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

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

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

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

ForguncyはJavaScriptによるプログラミングコードからデータベースアクセスが可能な Web API を提供しています。既定の設定では、ユーザーがログインしているかどうかに関わらず、これらのWeb APIを呼び出してデータベースアクセスを行うことが可能です。 アプリケーションのセキュリティを設定する に記載されている方法で、ページ表示やWeb API呼び出しによるすべてのデータベースアクセスが発生する場合に、ログイン(ユーザー認証)を必須とすることができます。

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

データレベルのアクセス制御

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

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

通信の暗号化

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

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

「AllowUrlReferrer」の設定

既定の設定では、Forguncy Serverはリクエストの送信元を制限していません。たとえば、Forguncyアプリケーション以外のアプリケーションと連携するような場合、Forguncyアプリケーションのドメイン以外からのリクエストを受け付ける必要があります。しかし、Forguncy Serverに対するPOSTリクエストの送信元を限定することで、クロスサイト・リクエストフォージェリ(CSRF)攻撃によるリスクを軽減できます。 HTTPリクエストのPOSTメソッドを制限する に記載されている方法で、「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>のいずれかの要素を使って表示させる(埋め込む)ことが可能です。しかし、 HTTP応答ヘッダーにX-Frame-Optionsを設定する に記載されている方法で、「XFrameOptions」の設定を行うことで、HTTP応答ヘッダーに「X-Frame-Options」が追加され、他のWebページ上への表示を拒否できます。たとえば「<XFrameOptions>deny</XFrameOptions>」という設定値は、すべてのWebページへの埋め込み表示を禁止します。このような設定を行うことで、クリックジャッキング攻撃によるリスクを軽減できます。

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

アプリケーションのURLパスの設定

Forguncyの一部の機能は、クライアントのWebブラウザーからアプリケーションのURLパスを受け取って動作するようになっています。悪意のある者(攻撃者)がこの仕組みを利用することで、本来のForguncyアプリケーションとは異なるURLを指定させることが可能です。アプリケーションのURLパスを設定する に記載されている方法でURLパスを設定することで、アプリケーションのURLは固定化され、サーバー側で指定されたURLパスを使用するようになります。

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