サポート > Wagby Developer Network(R6) > IPA「安全なウェブサイトの作り方 改訂第5版」対応一覧表

ここではIPA(独立行政法人情報処理推進機構)による「安全なウェブサイトの作り方 改訂第5版」に照らし合わせた説明を行います。

セキュリティ実装対応表

脆弱性の種類 対策の性質 項目 バージョン 備考
SQLインジェクション 根本的解決 SQL文の組み立ては全てプレースホルダで実装する。 R5/R6
根本的解決 SQL文の構成を文字列連結により行う場合は、アプリケーションの変数をSQL文のリテラルとして正しく構成する。 R5/R6
保険的対策 エラーメッセージをそのままブラウザに表示しない。 R5/R6
保険的対策 データベースアカウントに適切な権限を与える。 - RDBインストール後、お客様にてデータベースアカウントを用意します。その際、同アカウントしか利用できない論理データベースを作成してください。
OSコマンド・インジェクション 根本的解決 シェルを起動できる言語機能の利用を避ける。 - Wagbyは「ジョブスケジュール」機能で、任意のコマンドを実行できます。このジョブスケジュールはシステム管理者が設定します。よって利用者が任意のOSコマンドを実行できることはありません。システム管理者は任意のコマンドを設定可能ですが、これは管理上、必要だという場合には実行できるべきというポリシーに基づいています。
保険的対策 シェルを起動できる言語機能を利用する場合は、その引数を構成する全ての変数に対してチェックを行い、あらかじめ許可した処理のみを実行する。 - (同上)
パス名パラメータの未チェック/ディレクトリ・トラバーサル 根本的解決 外部からのパラメータでウェブサーバ内のファイル名を直接指定する実装を避ける。 R5/R6
根本的解決 ファイルを開く際は、固定のディレクトリを指定し、かつファイル名にディレクトリ名が含まれないようにする。 R5/R6
保険的対策 Webサーバ内のファイルへのアクセス権限の設定を正しく管理する。 - Webサーバへのアクセス権の設定はWagbyの管理対象範囲外となります。インストール作業時に、お客様のサーバ管理ポリシーに基づいて設定を行ってください。
保険的対策 ファイル名のチェックを行う。 R6.5u6 お客様の運用ポリシーで、ファイル名入力チェックルールを指定することができます。
セッション管理の不備 根本的解決 セッションIDを推測が困難なものにする。 R5/R6
根本的解決 セッションIDをURLパラメータに格納しない。 R5/R6 PCからの利用ではそのとおりですが、携帯電話からの利用時は(クッキーが利用できないため)セッションIDをURLパラメータに格納しています。これは携帯電話というインフラを利用する上での制約となります。
根本的解決 HTTPS通信で利用するCookieにはsecure属性を加える。 R5/R6
根本的解決 ログイン成功後に、新しくセッションを開始する。 R5/R6
根本的解決 ログイン成功後に、既存のセッションIDとは別に秘密情報を発行し、ページの遷移ごとにその値を確認する。 R5/R6
保険的対策 セッションIDを固定値にしない。 R5/R6
保険的対策 セッションIDをCookieにセットする場合、有効期限の設定に注意する。 R5/R6
クロスサイト・スクリプティング 根本的解決 ウェブページに出力する全ての要素に対して、エスケープ処理を施す。 R5/R6
根本的解決 URLを出力するときは、「http://」や 「https://」で始まるURLのみを許可する。 R5/R6 Wagby では mailto, file も許可しています。
根本的解決 <script>...</script> 要素の内容を動的に生成しない。 - 必要に応じて自動生成しています。ただし生成内容は把握しており、セキュリティ攻撃に関わるようなコード生成は行っていません。
根本的解決 スタイルシートを任意のサイトから取り込めるようにしない。 R5/R6
保険的対策 入力値の内容チェックを行う。 R5/R6
根本的解決 入力されたHTMLテキストから構文解析木を作成し、スクリプトを含まない必要な要素のみを抽出する。 R6.4 リッチテキストエリアにて本機能を適用。
保険的対策 入力されたHTMLテキストから、スクリプトに該当する文字列を排除する。 R5/R6
根本的解決 HTTPレスポンスヘッダのContent-Typeフィールドに文字コード(charset)の指定を行う。 R5/R6
保険的対策 Cookie情報の漏えい対策として、TRACEメソッドを無効化する。 R5/R6
保険的対策 Cookie情報の漏えい対策として、発行するCookieにHttpOnly属性を加える。 R6.8
CSRF(クロスサイト・リクエスト・フォージェリ) 根本的解決 処理を実行するページを POST メソッドでアクセスするようにし、その「hidden パラメータ」に秘密情報が挿入されるよう、前のページを自動生成して、実行ページではその値が正しい場合のみ処理を実行する。 R5/R6
保険的対策 重要な操作を行った際に、その旨を登録済みのメールアドレスに自動送信する。 R5/R6 Wagbyのメール送信機能を利用することで対応可能。
HTTPヘッダ・インジェクション 根本的解決 ヘッダの出力を直接行わず、ウェブアプリケーションの実行環境や言語に用意されているヘッダ出力用APIを使用する。 R5/R6
保険的対策 外部からの入力の全てについて、改行コードを削除する。 R5/R6 WagbyではHTTPヘッダを外部から入力することはできないようになっています。
メールヘッダ・インジェクション 根本的解決 ウェブアプリケーションの実行環境や言語に用意されているメール送信用APIを使用する R5/R6
根本的解決 HTMLで宛先を指定しない。 - メールテンプレート機能により、しかるべき権限をもった管理者によって宛先を指定することができます。これは運用でカバーするという方針で対応できます。
保険的対策 外部からの入力の全てについて、改行コードを削除する。 R6.6u12
アクセス制御や認可制御の欠落 根本的解決 アクセス制御機能による防御措置が必要とされるウェブサイトには、パスワード等の秘密情報の入力を必要とする認証機能を設ける。 R5/R6 Wagbyでは認可されていないコンテンツへのアクセスは最初からできないように実装されています。
根本的解決 認証機能に加えて認可制御の処理を実装し、ログイン中の利用者が他人になりすましてアクセスできないようにする。 R5/R6