日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

htmlspecialchars() 函数过滤XSS的问题

發布時間:2025/3/8 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 htmlspecialchars() 函数过滤XSS的问题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?htmlspecialchars()函數的功能如下:

?

htmlspecialchars() 函數把預定義的字符轉換為 HTML 實體。

預定義的字符是:

  • & (和號)成為 &
  • " (雙引號)成為 "
  • ' (單引號)成為 '
  • < (小于)成為 <
  • > (大于)成為 >
它的語法如下: htmlspecialchars(string,flags,character-set,double_encode)

? ? 其中第二個參數flags需要重要注意,很多開發者就是因為沒有注意到這個參數導致使用htmlspecialchars()函數過濾XSS時被繞過。因為flags參數對于引號的編碼如下:

?

可用的引號類型:

  • ENT_COMPAT - 默認。僅編碼雙引號。
  • ENT_QUOTES - 編碼雙引號和單引號。
  • ENT_NOQUOTES - 不編碼任何引號。
默認是只編碼雙引號的!默認只編碼雙引號!默認只編碼雙引號……重要的事情說三遍!!! 于是看下面的代碼:    <?php $name = $_GET["name"]; $name = htmlspecialchars($name); ?> <input type='text' value='<?php echo $name?>'>

  

輕松繞過: 加上ENT_QUOTES參數:
   <?php $name = $_GET["name"]; $name = htmlspecialchars($name, ENT_QUOTES); ?> <input type='text' value='<?php echo $name?>'>

  

? ? ? ? 發現無法繞過了: 查看源代碼:

單引號已經被轉換了。

轉載于:https://www.cnblogs.com/JeromeZ/p/8452819.html

總結

以上是生活随笔為你收集整理的htmlspecialchars() 函数过滤XSS的问题的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。