網(wǎng)站開發(fā)包含上線嗎網(wǎng)絡(luò)營銷的六大功能
1.?mysql_real_escape_string()
?????? 這個(gè)函數(shù)對于在PHP中防止SQL注入攻擊很有幫助,它對特殊的字符,像單引號和雙引號,加上了“反斜杠”,確保用戶的輸入在用它去查詢以前已經(jīng)是安全的了。但你要注意你是在連接著數(shù)據(jù)庫的情況下使用這個(gè)函數(shù)。
?????? 但現(xiàn)在mysql_real_escape_string()這個(gè)函數(shù)基本不用了,所有新的應(yīng)用開發(fā)都應(yīng)該使用像PDO這樣的庫對數(shù)據(jù)庫進(jìn)行操作,也就是說,我們可以使用現(xiàn)成的語句防止SQL注入攻擊。
2.?addslashes()
?????? 這個(gè)函數(shù)和上面的mysql_real_escape_string()很相似。但要注意當(dāng)設(shè)置文件php.ini中的magic_quotes_gpc的值為“on”時(shí),不要使用這個(gè)函數(shù)。默認(rèn)情況下,?magic_quotes_gpc?為?on,對所有的?GET、POST?和?COOKIE?數(shù)據(jù)自動運(yùn)行?addslashes()。不要對已經(jīng)被?magic_quotes_gpc?轉(zhuǎn)義過的字符串使用?addslashes(),因?yàn)檫@樣會導(dǎo)致雙層轉(zhuǎn)義。你可以通過PHP中g(shù)et_magic_quotes_gpc()函數(shù)檢查這個(gè)變量的值。
3.?htmlentities()
?????? 這個(gè)函數(shù)對過濾用戶輸入數(shù)據(jù)非常有用,它可以把字符轉(zhuǎn)換為?HTML?實(shí)體。比如,當(dāng)用戶輸入字符“<”時(shí),就會被該函數(shù)轉(zhuǎn)化為HTML實(shí)體<,因此防止了XSS和SQL注入攻擊。
4.?htmlspecialchars()
?????? HTML中的一些字符有著特殊的含義,如果要體現(xiàn)這樣的含義,就要被轉(zhuǎn)換為HTML實(shí)體,這個(gè)函數(shù)會返回轉(zhuǎn)換后的字符串,比如,‘&’amp會轉(zhuǎn)為‘&’。
5.?strip_tags()
?????? 這個(gè)函數(shù)可以去除字符串中所有的HTML,JavaScript和PHP標(biāo)簽,當(dāng)然你也可以通過設(shè)置該函數(shù)的第二個(gè)參數(shù),讓一些特定的標(biāo)簽出現(xiàn)。
6.?md5()
?????? 一些開發(fā)者存儲的密碼非常簡單,這從安全的角度上看是不好的,md5()函數(shù)可以產(chǎn)生給定字符串的32個(gè)字符的md5散列,而且這個(gè)過程不可逆,即你不能從md5()的結(jié)果得到原始字符串。
?
7.?sha1()
?????? 這個(gè)函數(shù)和上面的md5()相似,但是它使用了不同的算法,產(chǎn)生的是40個(gè)字符的SHA-1散列(md5產(chǎn)生的是32個(gè)字符的散列)。
8.?intval()
?????? 不要笑,我知道這不是一個(gè)和安全相關(guān)的函數(shù),它是在將變量轉(zhuǎn)成整數(shù)類型。但是,你可以用這個(gè)函數(shù)讓你的PHP代碼更安全,特別是當(dāng)你在解析id,年齡這樣的數(shù)據(jù)時(shí)。
9.eval()
該函數(shù)把字符串當(dāng)做php代碼來計(jì)算,并且字符串必須是合法的php代碼,要以分號結(jié)尾。
10.shell_exec ()
通過shell 環(huán)境執(zhí)行命令,并且將完整的輸出以字符串的方式返回。值得一提的是,這個(gè)函數(shù)跟執(zhí)行操作符(反引號``)具有等同效力。
11.proc_open
()
proc_open()
?是一個(gè) PHP 函數(shù),用于在 PHP 中執(zhí)行外部程序。它允許你通過一個(gè)管道與執(zhí)行的程序進(jìn)行通信,并獲取程序的輸出。
12.ini_set
()
ini_set()
?是 PHP 中的一個(gè)函數(shù),用于在運(yùn)行時(shí)設(shè)置配置選項(xiàng)的值。這些配置選項(xiàng)通常是在 PHP 的配置文件?php.ini
?中設(shè)置的,但使用?ini_set()
?可以在腳本執(zhí)行期間動態(tài)地更改這些設(shè)置。