安全なウェブサイトの作り方 | 情報セキュリティ | IPA 独立行政法人 情報処理推進機構
グローバルナビゲーションへジャンプ
コンテンツへジャンプ
フッターへジャンプ
情報セキュリティ
トップページ
情報セキュリティ
脆弱性対策情報
安全なウェブサイトの作り方
安全なウェブサイトの作り方
最終更新日:2021年3月31日
独立行政法人 情報処理推進機構
セキュリティセンター
「安全なウェブサイトの作り方」は、IPAが届出(*1)を受けた脆弱性関連情報を基に、届出件数の多かった脆弱性や攻撃による影響度が大きい脆弱性を取り上げ、ウェブサイト開発者や運営者が適切なセキュリティを考慮したウェブサイトを作成するための資料です。
「安全なウェブサイトの作り方」改訂第7版の内容
第1章では、「ウェブアプリケーションのセキュリティ実装」として、SQLインジェクション 、OSコマンド・インジェクション やクロスサイト・スクリプティング 等11種類の脆弱性を取り上げ、それぞれの脆弱性で発生しうる脅威や特に注意が必要なウェブサイトの特徴等を解説し、脆弱性の原因そのものをなくす根本的な解決策、攻撃による影響の低減を期待できる対策を示しています。
第2章では、「ウェブサイトの安全性向上のための取り組み」として、ウェブサーバの運用に関する対策やウェブサイトにおけるパスワードの取扱いに関する対策等7つの項目を取り上げ、主に運用面からウェブサイト全体の安全性を向上させるための方策を示しています。
第3章では、「失敗例」として、第1章で取り上げた脆弱性の中から8種類を取り上げ、ウェブアプリケーションに脆弱性を作り込んでしまった際のソースコード、その解説、修正例を示しています。
巻末には、ウェブアプリケーションのセキュリティ実装の実施状況を確認するためのチェックリストも付属しています。
別冊:「安全なSQLの呼び出し方」 の内容
第1章では、「安全なウェブサイトの作り方」との関連を記載しています。
第2章では、SQLインジェクションが発生する原因を説明しています。
第3章では、アプリケーションがSQL文を組み立てる方法について説明しています。
第4章では、安全なSQL呼び出しのためには何が必要かを説明しています。
第5章では、5種類のプログラミング言語とデータベースの組み合わせ(JavaとOracle、PHPとPostgreSQL、PerlとMySQL、JavaとMySQL、ASP.NETとSQL Server)を取り上げ、SQLインジェクション攻撃に対して安全な実装方法を調査し、安全なソースコードの書き方を解説しています。
付録では、文字コードに関する問題など、特定のデータベースに関する情報をまとめています。
別冊:「ウェブ健康診断仕様」の内容
「ウェブ健康診断仕様」には、危険度の高い脆弱性など13の診断項目について、検出パターンと、それに対応した脆弱性有無の判定基準が記載されています。
ただし、「ウェブ健康診断仕様」の診断は、検査パターンを絞り込んだ診断ですので、脆弱性が検出されなかった場合でも、安全宣言には繋がりません。診断の結果を確認した後は、より詳細な診断を受けたり、「安全なウェブサイトの作り方」を参考に対策を実装することなどを推奨します。
資料のダウンロード
「安全なウェブサイトの作り方」
日本語版(2021年3月31日改訂第7版第4刷公開)
新版(改訂第7版)
・安全なウェブサイトの作り方 (全115ページ)(PDF:2.2 MB)
・セキュリティ実装 チェックリスト(Excel:18 KB)
旧版(改訂第6版)
・安全なウェブサイトの作り方 (全106ページ)(PDF:2.5 MB)
・セキュリティ実装 チェックリスト(Excel:40 KB)
英語版(2011年12月26日改訂第5版公開)
How to Secure Your Web Site(110pages)(PDF:2.7 MB)
別冊:「安全なSQLの呼び出し方」
日本語版(2010年3月18日公開)
安全なSQLの呼び出し方(全40ページ) (PDF:714 KB)
英語版(2010年9月21日公開)
How to Use SQL Calls to Secure Your Web Site(43pages)(PDF:863 KB)
別冊:「ウェブ健康診断仕様」
日本語版(2012年12月26日公開)
ウェブ健康診断仕様(全30ページ)(PDF:771 KB)
ウェブアプリケーションのセキュリティ実装(第1章の抜粋)
「安全なウェブサイトの作り方」第1章では、ウェブアプリケーションのセキュリティ実装として、下記の脆弱性を取り上げ、発生しうる脅威、注意が必要なサイト、根本的解決および保険的対策を示しています。下記に第1章を脆弱性ごとに抜粋した内容を掲載しています。
1.1 SQLインジェクション
1.2 OSコマンド・インジェクション
1.3 パス名パラメータの未チェック/ディレクトリ・トラバーサル
1.4 セッション管理の不備
1.5 クロスサイト・スクリプティング
1.6 CSRF(クロスサイト・リクエスト・フォージェリ)
1.7 HTTPヘッダ・インジェクション
1.8 メールヘッダ・インジェクション
1.9 クリックジャッキング
1.10 バッファオーバーフロー
1.11 アクセス制御や認可制御の欠落
なお、項番については、脆弱性の深刻度や攻撃による影響、届出状況を考慮して割り当てており、対策の優先順位を示すものではありません。優先順位は運営するウェブサイトの状況に合わせてご検討ください。
参考情報
「安全なウェブサイトの作り方 改訂第7版」を公開」を追加 (2015年3月12日追記)
「安全なウェブサイトの作り方」に別冊「ウェブ健康診断仕様」を追加 (2012年12月26日追記)
「安全なウェブサイトの作り方 改訂第5版」を公開 (2011年4月6日追記)
How to Secure Your Web Site 4th Edition Released (2010年6月7日追記)
「安全なSQLの呼び出し方」を公開 (2010年3月18日追記)
「安全なウェブサイトの作り方 改訂第4版」を公開 (2010年1月20日追記)
「安全なウェブサイトの作り方 改訂第3版」の英語版を公開 (2008年6月11日追記)
How to Secure Your Web Site 3rd Edition Released(2008年6月11日追記)
脆弱性対策の普及啓発資料やツールの新着情報一覧
普及啓発資料のご案内
謝辞
本資料の作成には次の方々にもご協力いただきました。
NECシステムテクノロジー(株)
(独)産業技術総合研究所 情報セキュリティ研究センター
日本電気(株)
(株)日立製作所
富士通(株)
(株)ラック
脚注
(*1)
IPAセキュリティセンターでは、経済産業省の告示に基づき、脆弱性情報に関する届出を受け付けています。「脆弱性関連情報の届出」を参照下さい。
(*2)
ウェブアプリケーションと利用者の間で交わされる通信を検査し、攻撃などの不正な通信を自動的に遮断するソフトウェア、もしくはハードウェアです。
お問い合わせ先
本件に関するお問い合わせ先
IPA セキュリティセンター
TEL
03-5978-7527
FAX
03-5978-7552 E-mail
E-mail
報道関係からのお問い合わせ先
IPA 戦略企画部 広報戦略グループ
TEL
03-5978-7503
FAX
03-5978-7510
E-mail
更新履歴
2021年3月31日
全体的なリンクの見直し、および修正。改訂第7版第4刷に更新。
2020年7月22日
「ウェブアプリケーションのセキュリティ実装(第1章の抜粋)」を掲載。
2017年10月6日
問い合わせ先を修正。
2016年1月27日
誤植を修正。改訂第7版第3刷に更新。
2015年3月26日
誤植を修正。改訂第7版第2刷に更新。
2015年3月16日
更新内容の差分確認のため、改訂第6版を再掲載。
2015年3月12日
改訂第7版を掲載。
2012年12月26日
改訂第6版及び別冊:「ウェブ健康診断仕様」を掲載。
2011年12月26日
改訂第5版の英語版を掲載。
2011年4月6日
改訂第5版を掲載。2012年3月30日第2刷に更新。
JP