1. 程式人生 > >addslashes,htmlspecialchars,htmlentities轉換或者轉義php特殊字元防止xss攻擊以及sql注入

addslashes,htmlspecialchars,htmlentities轉換或者轉義php特殊字元防止xss攻擊以及sql注入

一、轉義或者轉換的目的

    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程式碼讓別人指導,