セキュアプログラミング

更新日:

用語解説

入力、認証、認可、出力、エラー、メモリ、秘密情報などを安全に扱い、攻撃に悪用される欠陥を設計・実装段階から作り込まないための原則と実践です。

■ 試験で押さえるポイント

  • 全ての外部入力を信頼せず、型・長さ・範囲・形式を検証し、利用先の文脈に合う出力エンコーディングを行います。

  • SQLはプレースホルダ、OS命令は安全なAPIを使い、文字列連結によるコードとデータの混在を避けます。

  • サーバ側で認証・認可を要求ごとに確認し、最小権限、秘密情報の安全な保管、詳細エラーの非公開を徹底します。

  • コードレビュー、静的・動的解析、依存関係検査、ファジング、脅威分析を開発工程へ組み込み、修正後も再検証します。

■ 過去問での着眼点

入力検証だけでなく、文脈別エスケープ、パラメータ化、認可、エラー処理、依存関係まで含むことを押さえます。

例: 商品IDを数値として検証し、SQLへ束縛し、検索結果はHTML用にエンコードし、利用者の閲覧権限を別途確認します。

音声で聞く

同じ分野の用語