**1. addslashes

**addslashes对SQL语句中的特殊字符进行转义操作,包蕴(‘State of Qatar, (“卡塔尔, (State of Qatar,
(NUL卡塔尔五个字符,此函数在DBMS未有谐和的转义函数时候使用,可是只要DBMS有友好的转义函数,那么推荐使用原装函数,比方MySQL有mysql_real_escape_string函数用来转义SQL。
注意在PHP5.3在此以前,magic_quotes_gpc是暗中认可开启的,其重大是在$GET, $POST,
$董事长KIE上实行addslashes操作,所以无需在那几个变量上海重机厂新调用addslashes,不然会double
escaping的。不过magic_quotes_gpc在PHP5.3就曾经被舍弃,从PHP5.4早先就早就被移除了,要是利用PHP最新版本能够不要顾忌那几个标题。stripslashes为addslashes的unescape函数。

**2. htmlspecialchars

**htmlspecialchars把HTML中的多少个特殊字符转义成HTML
Entity(格式:&xxxx;卡塔尔格局,蕴含(&State of Qatar,(‘卡塔尔国,(“卡塔尔(قطر‎,(<卡塔尔(قطر‎,(>卡塔尔(قطر‎四个字符。

& (AND) => &
” (双引号) => ” (当ENT_NOQUOTES未有设置的时候卡塔尔
‘ (单引号) => ‘ (当ENT_QUOTES设置)
< (小于号) => <
> (大于号) => >  
htmlspecialchars能够用来过滤$GET,$POST,$总首席营业官KIE数据,防范XSS。注意htmlspecialchars函数只是把认为有安全隐患的HTML字符举行转义,假若想要把HTML全数能够转义的字符都开展转义的话请使用htmlentities。htmlspecialchars_decode为htmlspecialchars的decode函数。

3. htmlentities
htmlentities把HTML中能够转义的剧情转义成HTML
Entity。html_entity_decode为htmlentities的decode函数。

4. mysql_real_escape_string
mysql_real_escape_string会调用MySQL的库函数mysql_real_escape_string,对(x00),
(n), (r), (), (‘),
(x1a卡塔尔实行转义,即在前头增添反斜杠(State of Qatar,防卫SQL注入。注意你没有须要在读取数据库数据的时候调用stripslashes来进展unescape,因为那一个反斜杠是在数据库实行SQL的时候拉长的,当把多少写入到数据库的时候反斜杠会被移除,所以写入到数据库的原委就是本来数据,并不会在前面多了反斜杠。

**5. strip_tags

**strip_tags会过滤掉NUL,HTML和PHP的价签。

**6. 结语

**PHP自带的平安函数并不能够完全防止XSS,推荐使用HTML Purifier

相关文章