PHP作為當(dāng)下主流的腳本語(yǔ)言,在各大互聯(lián)網(wǎng)公司都能看到它的身影。很多人評(píng)價(jià)PHP是安全高效的Web編程語(yǔ)言,其實(shí)我要說(shuō)的是,PHP的安全性并不高!如果在項(xiàng)目開(kāi)發(fā)時(shí)不去做必要的安全優(yōu)化,那項(xiàng)目上線后很容易被注入攻擊。那該如何避免呢?
對(duì)用戶提交的數(shù)據(jù)務(wù)必做過(guò)濾及轉(zhuǎn)義處理對(duì)于Web開(kāi)發(fā)而言,我們務(wù)必要清楚的知道,用戶提交過(guò)來(lái)的數(shù)據(jù)是不能保證是否合法的,所以需要對(duì)用戶提交的數(shù)據(jù)做一些過(guò)濾(過(guò)濾掉敏感詞,如:select 、' 這類SQL構(gòu)造詞匯),同時(shí)用戶提交的數(shù)據(jù)中可能會(huì)帶一些惡意的JS或CSS代碼,同樣需要做轉(zhuǎn)義處理,防止在前端渲染頁(yè)面時(shí)執(zhí)行這些JS或CSS。
代碼中嚴(yán)禁采用SQL拼接的方式構(gòu)造SQL語(yǔ)句很多初級(jí)PHPer在寫SQL時(shí)喜歡采用字符串拼接的方式來(lái)構(gòu)造SQL,殊不知這樣會(huì)導(dǎo)致SQL注入,嚴(yán)謹(jǐn)作法應(yīng)該是使用SQL預(yù)編譯(參數(shù)綁定)的方式來(lái)傳遞參數(shù),防止通過(guò)構(gòu)造字符串的方式來(lái)進(jìn)行SQL注入。
PHP配置文件安全配置PHP配置文件中有許多關(guān)于安全方面的配置,比如說(shuō):magic_quotes_gpc ,這個(gè)配置開(kāi)啟后會(huì)分析用戶提交的數(shù)據(jù)(POST、GET、Cookie),如果這些數(shù)據(jù)中含有特殊字符(如:?jiǎn)我?hào)、雙引號(hào)、反斜線等)則會(huì)進(jìn)行自動(dòng)轉(zhuǎn)義。
如果沒(méi)有開(kāi)啟這個(gè)配置,那我們對(duì)于用戶提交過(guò)來(lái)的POST、GET、Cookie數(shù)據(jù)需要手動(dòng)調(diào)用addslashes函數(shù)來(lái)轉(zhuǎn)義。
以上就是我的觀點(diǎn),對(duì)于這個(gè)問(wèn)題大家是怎么看待的呢?歡迎在下方評(píng)論區(qū)交流 ~ 我是科技領(lǐng)域創(chuàng)作者,十年互聯(lián)網(wǎng)從業(yè)經(jīng)驗(yàn),歡迎關(guān)注我了解更多科技知識(shí)!