addslashes,htmlspecialchars,htmlentities轉換或者轉義php特殊字元防止xss攻擊以及sql注入
阿新 • • 發佈:2019-01-25
一、轉義或者轉換的目的
1. 轉義或者轉換字串防止sql注入
2. 轉義或者轉換字元防止html非過濾引起頁面佈局變化
3. 轉義或者轉換可以阻止javascript等指令碼的xss攻擊,避免出現類似惡意彈窗等等形式
二、函式
1. addslashes($str);
此函式轉義預定義的字元:單引號(‘),雙引號(“),反斜線(\)與NULL(NULL字元)
轉義出現在html中的單引號(‘)和雙引號(“),經過測試效果不是很好,轉義html中的特字元就使用htmlspecialchar()函式
2. htmlspecialchars($str);
此函式只轉換5個字元,和號(&),雙引號(“),單引號(‘),小於(<),大於(>),轉換為實體形式,輸出時瀏覽器會自動還原的,如果有意識的轉換回來使用htmlspecialchars_decode();
3. htmlentities();
此函式會把所有html表示都轉換為實體形式的,如果把thml實體轉換為字元使用html_lentity_decode()
三、例項
場景說明:比如想在留言板貼出一段html程式碼或者javascript程式碼讓別人指導,