====== PHPセキュアコーディング標準 ====== PHPセキュアコーディング標準は[[http://php.net|PHP]]のコードをセキュアに書く(正しくコードを動作させる)ためのルールを定義しています。 このPHPセキュアコーディング標準はフレームワークを利用しないPHPのコードを対象としています。フレームワークを利用する場合、そのフレームワークに合ったセキュアコーディング標準が必要です。セキュアコーディング標準は総合的なリスク対策ではなく、個別かつ具体的なコーディングにおけるリスクとその対策を解説することが目的です。 具体的な個別のコードのリスクを知る事も重要ですが、セキュアコーディングの基本的概念を知る方がより重要です。 * [[http://blog.ohgaki.net/cert-top-10-secure-coding-standard|CERT Top 10 Secure Coding Practices]] * [[http://blog.ohgaki.net/design-by-contract-and-trust-boundary|契約による設計と信頼境界線]] OWASPの[[http://blog.ohgaki.net/owasp-secure-coding-practices-quick-reference-guide|OWASP Secure Coding Practices – Quick Reference Guide]]はチェックリスト形式でセキュアコーディング概念の基礎要素がコードに実装されているか確認できる便利なチェックリストです。 ===== 標準ルールテンプレート ===== このPHPセキュアコーディング標準はこの[[.:intro:テンプレート]]を利用する ===== ステータス ===== 現在の状態は**開発中**です。コメント/フィードバックを歓迎します。 ===== はじめに ===== - [[.:intro:謝辞]] - [[.:intro:セキュアコーディングの目的]] - [[.:intro:セキュアなコードの構造(アーキテクチャー)]] ===== ルール ===== - [[.:rule:入力]] - [[.:rule:出力]] - [[.:rule:コードの配置]] - [[.:rule:宣言と初期化]] - [[.:rule:表現]] - [[.:rule:数値型と操作]] - [[.:rule:文字列型と操作]] - [[.:rule:オブジェクト指向]] - [[.:rule:関数とメソッド]] - [[.:rule:例外とエラー]] - [[.:rule:ロック]] - [[.:rule:スレッドとプロセス]] - [[.:rule:シリアライズ]] - [[.:rule:セッション管理]] - [[.:rule:ファイルアップロード]] - [[.:rule:ファイル]] - [[.:rule:暗号]] - [[.:rule:PHP設定]] - [[.:rule:実行環境]] ===== 推奨事項 ===== - [[rec:コードの配置]] - [[rec:機能の制限]] ===== リファレンス ===== 国際情報セキュリティ標準であるISO 27000(JIS Q 27000)は日本工業標準調査会のWebサイトから標準規格を参照できます。上記のJIS検索のページから「情報セキュリティ」をキーワードとした検索でJIS Q 27000のページを検索できます。 * https://www.jisc.go.jp/app/JPS/JPSO0020.html より一般的なセキュリティ対策のチェックリストなども有用です。 * [[http://blog.ohgaki.net/owasp-secure-coding-practices-quick-reference-guide|OWASP Secure Coding Practices – Quick Reference Guide]] * [[http://blog.ohgaki.net/sans-cwe-top-25-monster-mitigation|CWE/SANS TOP 25 Most Dangerous Software Errors - Monster Mitigations]] * [[https://www.owasp.org/index.php/Category:OWASP_Top_Ten_Project|OWASP Top Ten Project]] セキュアコーディング本家のセキュアコーディング標準 * [[https://www.securecoding.cert.org/confluence/display/c/SEI+CERT+C+Coding+Standard|SEI CERT C Coding Standard]] * [[https://www.securecoding.cert.org/confluence/pages/viewpage.action?pageId=637|SEI CERT C++ Coding Standard]] * [[https://www.securecoding.cert.org/confluence/display/java/SEI+CERT+Oracle+Coding+Standard+for+Java|SEI CERT Oracle Coding Standard for Java]]