最終更新日:
セキュアコーディングとは、脆弱性を作り込まないように、決まった書き方や確かめ方に沿ってプログラムを書くことです。
Webアプリケーションでは、利用者から受け取った値をそのまま使うと、SQLインジェクションやクロスサイト・スクリプティングなどの脆弱性が生まれます。セキュアコーディングでは、値を組み立てて命令に埋め込まない、画面に出す前に特別な意味を持つ文字を無害にする、権限を処理のたびに確かめる、といった決まった書き方を守ります。
IPA(情報処理推進機構)は「安全なウェブサイトの作り方」(改訂第7版)で、SQLインジェクション、OSコマンド・インジェクション、ディレクトリ・トラバーサル、CSRFなど11種類の脆弱性と、その対策を示しています。OWASP も、Webアプリケーションの代表的なリスクを OWASP Top 10 としてまとめています。
書き方の決まりを作るだけでなく、コードレビュー、自動で検査する道具、脆弱性診断を組み合わせて、作り込んだ脆弱性を見つけます。開発を委託する場合は、どの指針に沿って作るか、どの検査を行うかを要件に書いておくと、確かめやすくなります。
関連する用語
- OWASP Top 10Webアプリケーションの重大なセキュリティのリスクを、OWASP が10項目にまとめた文書です。
- SQLインジェクションWebアプリケーションの入力欄などに細工した文字列を入れ、データベースを不正に操作する攻撃です。
- クロスサイトスクリプティング(XSS)Webページに悪意のあるスクリプトを紛れ込ませ、閲覧した人のブラウザで実行させる攻撃です。
- コードレビュー書いたプログラムを、書いた人とは別の開発者が読んで確かめ、誤りや改善点を指摘することです。
- 脆弱性診断システムに脆弱性がないかを、専用の道具や技術者の手で調べることです。