htmlspecialchars() 函数过滤XSS的问题
生活随笔
收集整理的這篇文章主要介紹了
htmlspecialchars() 函数过滤XSS的问题
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
?htmlspecialchars()函數(shù)的功能如下:
?
htmlspecialchars() 函數(shù)把預(yù)定義的字符轉(zhuǎn)換為 HTML 實體。
預(yù)定義的字符是:
- & (和號)成為 &
- " (雙引號)成為 "
- ' (單引號)成為 '
- < (小于)成為 <
- > (大于)成為 >
? ? 其中第二個參數(shù)flags需要重要注意,很多開發(fā)者就是因為沒有注意到這個參數(shù)導(dǎo)致使用htmlspecialchars()函數(shù)過濾XSS時被繞過。因為flags參數(shù)對于引號的編碼如下:
?
可用的引號類型:
- ENT_COMPAT - 默認(rèn)。僅編碼雙引號。
- ENT_QUOTES - 編碼雙引號和單引號。
- ENT_NOQUOTES - 不編碼任何引號。
輕松繞過: 加上ENT_QUOTES參數(shù):
<?php $name = $_GET["name"]; $name = htmlspecialchars($name, ENT_QUOTES); ?> <input type='text' value='<?php echo $name?>'>
? ? ? ? 發(fā)現(xiàn)無法繞過了: 查看源代碼:
單引號已經(jīng)被轉(zhuǎn)換了。
轉(zhuǎn)載于:https://www.cnblogs.com/JeromeZ/p/8452819.html
總結(jié)
以上是生活随笔為你收集整理的htmlspecialchars() 函数过滤XSS的问题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ORACLE中创建如何创建表,并设置结构
- 下一篇: Windows 7 资源管理器搜索Cha