【 PHP 】PHP8に入門してみた 223日目 PHPの基本 ( 高度 セキュリティ )

PHP8技術者認定初級試験 が始まるようなので 試験に向けて (できるだけ)勉強しようと思います! 使用する書籍は独習PHP 第4版(山田 祥寛)|翔泳社の本 (shoeisha.co.jp) となります。

高度

セキュリティ

クロスサイトスクリプティングを防ぐには

PHPでクロスサイトスクリプティング(XSS)を防ぐには以下のような対策が挙げられます。

    1. HTMLエスケープ
      入力されたデータをHTMLエスケープして、不正なスクリプトが実行されないようにする方法です。具体的には、以下のような関数を使用します。

      1. htmlspecialchars(): HTML特殊文字をエスケープする関数
      2. htmlentities(): HTMLエンティティをエスケープする関数
        echo htmlspecialchars($_POST['input']);
    2. 入力値のバリデーション
      入力されたデータが正しい形式かどうかをチェックして、不正なデータが送信されないようにする方法です。

      1. filter_var(): フィルターによるデータのバリデーションを行う関数
      2. preg_match(): 正規表現によるパターンマッチングを行う関数
        if (filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) {
            // 正しい形式のメールアドレスが入力された場合の処理
        }
        

      メモ

      フレームワークを使えばカバーできる?

      フレームワークには多くの場合セキュリティに関するベストプラクティスが組み込まれており、
      開発者がセキュリティ対策について意識しなくても一定程度のセキュリティを確保することができます。
      楽でいいですよね。

      例えば、一般的なWebアプリケーションフレームワークであるLaravelは、セッションハイジャックやクロスサイトスクリプティングなどの攻撃に対する保護機能が組み込まれています。また、Symfonyフレームワークも同様に、セキュリティに関する機能が組み込まれています。

      しかし、フレームワークを使用することで完全にセキュリティリスクから解放されるわけではありません。
      フレームワークはあくまでも開発者が適切なセキュリティ対策を実施するための支援ツールであるため、
      開発者がフレームワークを正しく使用しなければ、セキュリティリスクが残る可能性があります。
      フレームワークを使用する場合でも、開発者はセキュリティに関する知識を身につけ、適切なセキュリティ対策を実施することが重要!

      PHPPHP

      Posted by raika@blog