htmlspecialchars関数は何をしているのでしょうか。

ホーム 質問掲示板 サーバーサイドエンジニア PHP htmlspecialchars関数は何をしているのでしょうか。

2件の投稿を表示中 - 1 - 2件目 (全2件中)
  • #519

    htmlspecialchars関数は何をしているのでしょうか。

    PHP start

    formタグ内などで見かけるhtmlspecialchars関数について教えて下さい

    XSS攻撃の対策になるようですが、どういう仕組みですか?

    #520 返信

    エスケープします、つまりHTMLで特別な意味を持つ文字を変換します
    エスケープすることによってJavaScriptの実行を無効にします

    • <タグの開始 → &lt;
    • >タグの終了 → &gt;
    • &文字実体参照の開始 → &amp;
    • “属性値の区切り → &quot;
    • ‘属性値の区切り → &#039;

    ▼サンプルコード

    <?php
    // 危険な入力データ
    $userInput = '<script>alert("悪意のあるコード")</script>';
    
    // エスケープ前(危険)
    echo $userInput;
    // 出力: <script>alert("悪意のあるコード")</script>
    // → ブラウザでJavaScriptが実行される
    
    // エスケープ後(安全)
    echo htmlspecialchars($userInput);
    // 出力: <script>alert(&quot;悪意のあるコード&quot;)</script>
    // → ブラウザでは文字列として表示される
    ?>
2件の投稿を表示中 - 1 - 2件目 (全2件中)
返信先: htmlspecialchars関数は何をしているのでしょうか。
あなたの情報: