第54回: OWASP Top 10 詳解 — セキュリティの「共通言語」で設計段階から脆弱性をふさぐ
場当たり的なセキュリティ対策では、重要な脅威を見落とすリスクがあります。OWASP Top 10はWebアプリの代表的な脆弱性をリスト化したもので、これを基準に設計段階からセキュリティを組み込めます。
Year
場当たり的なセキュリティ対策では、重要な脅威を見落とすリスクがあります。OWASP Top 10はWebアプリの代表的な脆弱性をリスト化したもので、これを基準に設計段階からセキュリティを組み込めます。
XSS(クロスサイトスクリプティング)は、ページに悪意あるスクリプトを埋め込む攻撃で、ユーザーのCookieやセッション情報を盗まれるリスクがあります。出力時のエスケープを徹底することで根本的に防御できます。
テストの実行忘れ・PHPStanのチェック漏れ——手作業での確認は必ずミスが生まれます。GitHub Actionsを使えば、コードのpushや Pull Requestをトリガーにテスト・解析を自動実行できます。
ハードコードされた認証情報がGitにコミットされると、リポジトリが公開された瞬間に漏洩します。.envファイルを使って設定値をコードから切り離すことで、環境ごとに異なる値を安全に管理できます。
PHPのバージョン違い・MySQLの設定差・拡張モジュールの有無——こうした環境差異がバグの温床になります。Dockerを使えば、コンテナで環境を定義することで、チームや本番との差異をなくせます。
ログが不足していると、エラーの再現手順が分からず原因特定に時間がかかります。Monologを使えば、ログの出力先・フォーマット・レベルを柔軟に制御でき、障害時の対応速度を大幅に上げられます。
ファイルベースのセッションは1台構成では動きますが、ロードバランサーで複数サーバーに分散すると「セッションが消える」問題が発生します。Redisをセッションストアに使うことで、高速で信頼性の高いセッション管理が実現できます。
PHPはデフォルトでリクエストごとにスクリプトを解析・コンパイルします。Opcacheを使えば、コンパイル済みのスクリプトをメモリにキャッシュして再利用でき、実行速度を大幅に改善できます。
技術的負債は時間とともに膨らみ、新機能の追加コストを増大させます。リファクタリングは動作を変えずに内部構造を改善する作業です。テストが整っていれば、安心して改善できます。
スタイルのズレは本質的な問題ではないのに、レビュー時間を消費します。PHP CS Fixerを使えば、コードスタイルをコマンド1本で自動統一でき、レビューはロジックの議論に集中できます。