對PHP安全相關(guān)的函數(shù)

????在PHP 中有許多方便的函數(shù)可以幫助你免于類似于 SQL注入沸毁,XSS攻擊》逅瑁現(xiàn)在讓我們來看一下這些能夠給你的項目增加安全性的函數(shù)吧。但是息尺,請注意携兵,這里只是一些常用的函數(shù)的列表,也許他們并不全面搂誉,但是我相信他們都是對你的項目是非常有幫助的徐紧。

????安全一直是一個在編程語言中非常值得去關(guān)注的方面。在任何一種成熟的編程語言中都有合適的辦法來保證程序的安全性炭懊,在現(xiàn)代的 WEB 開發(fā)中并级,我們常常需要去處理用戶的輸入。(那么這時候凛虽,問題就來了)有一句編程格言是:千萬不要相信用戶輸入的安全性死遭。所以呢,今天就介紹一些在PHP 中最常用的為你的代碼提供安全保護的方法凯旋。

mysql_real_escape_string( string ?sqlQuery )?:

●轉(zhuǎn)義 SQL 語句中使用的字符串中的特殊字符,并考慮到連接的當前字符集钉迷。一個非常有用的函數(shù)至非,可以有效地避免 SQL 注入。


以下字符會被轉(zhuǎn)換:


糠聪, 荒椭, ,舰蟆,’趣惠,”,


在執(zhí)行sql語句之前身害,對要將執(zhí)行的sql query 使用該函數(shù)處理味悄,會將一些危 險扼殺在搖籃中。


但是現(xiàn)在一般在較為成熟的項目中塌鸯,一般比較推薦使用類似 PDO 這樣的數(shù)據(jù)庫持久層來處理所有的數(shù)據(jù)庫操作侍瑟。他們代表著更為先進的數(shù)據(jù)庫操作處理技術(shù),在安全性,數(shù)據(jù)讀寫的速度上逗比那些古老的 mysql_* api 強大了不少涨颜。

addslashes() :

在將一些數(shù)據(jù)插入到數(shù)據(jù)庫中時费韭,這個函數(shù)會非常有用,它可以在單引號前加上反斜杠庭瑰,使得數(shù)據(jù)在插入時不會出現(xiàn)錯誤星持。但是它的使用與php.ini 中的一項設(shè)置有關(guān)系 — ?magic_quotes_gpc


1. 對于PHP magic_quotes_gpc=on的情況, 我們可以不對輸入和輸出數(shù)據(jù)庫的字符串數(shù)據(jù)作addslashes()和stripslashes()的操作,數(shù)據(jù)也會正常顯示弹灭。


如果此時你對輸入的數(shù)據(jù)作了addslashes()處理督暂,那么在輸出的時候就必須使用stripslashes()去掉多余的反斜杠。


2. 對于PHP magic_quotes_gpc=off 的情況


必須使用addslashes()對輸入數(shù)據(jù)進行處理鲤屡,但并不需要使用stripslashes()格式化輸出损痰,因為addslashes()并未將反斜杠一起寫入數(shù)據(jù)庫,只是幫助mysql完成了sql語句的執(zhí)行酒来。


【stripslashes() :刪除由 addslashes() 函數(shù)添加的反斜杠卢未。】

htmlentities() :

一個非常有用的用來處理輸出的函數(shù)堰汉。它用來將一些可能導致XXS攻擊的字符轉(zhuǎn)化為html實體辽社,這些字符在瀏覽器顯示的時候是正常的,但是當你查看它的源代碼時翘鸭,實際上這些特殊字符必不會是他顯示的那樣滴铅,例如


輸出:


John & ‘Adams’


源碼:


John & 'Adams';


輸出:


<>


源碼:


&lt;&gt;gt;


編碼這些符號,有效地避免了XSS 攻擊就乓。

htmlspecialchars():

和上面的函數(shù)是一樣的汉匙,但是它更常用一些,因為 htmlentities() 是將所有的有在html 標準中定義了的字符轉(zhuǎn)換成他們對應的html實體生蚁,這樣會是你的輸出缺乏易讀性(html 實體列表 http://www.w3school.com.cn/tags/html_ref_entities.html)噩翠。所以呢,使用 htmlspecialchars() 只是將一些 預定義的字符(就是會導致出現(xiàn)問題的)轉(zhuǎn)換為html實體邦投。例如:


& (和號) 成為 &

” (雙引號) 成為 ”

‘ (單引號) 成為 ‘

< (小于) 成為 <

> (大于) 成為 >

所以伤锚,在一些項目中,我還是常常使用 htmlspecialchars() 來處理html 的輸出的志衣。他在安全這一方面做得更具體一些屯援。


strip_tags(): ?一般在輸出時使用,將HTML念脯、XML 以及 PHP 的標簽剝?nèi)ァ?/p>


函數(shù)原型:strip_tags(string,allow)


String 代表輸入的字符串狞洋,allow 代表 不刪除的標簽,你可以通過 allow 來自定義過需要濾掉的標簽

md5() :

一個將字符串轉(zhuǎn)換為一個32位的哈希值的函數(shù)(不能逆向解密)和二,任何一個字符串都能通過這個函數(shù)獲得一個唯一的32位字符串徘铝。但是,現(xiàn)在使用這個函數(shù)時,需要注意有一些數(shù)據(jù)庫記錄了大量的md5 值惕它,通過暴力枚舉的方式來破解你的密碼怕午,所以在使用的時候,你可以先將你的原字符串加一層密淹魄,然后再使用md5()哈希郁惜,會獲得更好的效果。

sha1() :

和md5() 和相似的一個函數(shù)甲锡,但是他使用不同的算法生成一個 40個字符的字符串兆蕉。可以在項目中考慮使用

intval() :

也許你認為這個函數(shù)不是一個 security function缤沦。但是它在某些情況下可以很好地保護你的code虎韵。對從用戶收集到的一些數(shù)據(jù)例如 ID,password缸废,username處理包蓝,也許可以消除一些安全隱患,畢竟這里是重災區(qū)企量。


?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末测萎,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子届巩,更是在濱河造成了極大的恐慌硅瞧,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,941評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件恕汇,死亡現(xiàn)場離奇詭異腕唧,居然都是意外死亡,警方通過查閱死者的電腦和手機瘾英,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,397評論 3 395
  • 文/潘曉璐 我一進店門四苇,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人方咆,你說我怎么就攤上這事◇凹埽” “怎么了瓣赂?”我有些...
    開封第一講書人閱讀 165,345評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長片拍。 經(jīng)常有香客問我煌集,道長,這世上最難降的妖魔是什么捌省? 我笑而不...
    開封第一講書人閱讀 58,851評論 1 295
  • 正文 為了忘掉前任苫纤,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘卷拘。我一直安慰自己喊废,他們只是感情好,可當我...
    茶點故事閱讀 67,868評論 6 392
  • 文/花漫 我一把揭開白布栗弟。 她就那樣靜靜地躺著污筷,像睡著了一般。 火紅的嫁衣襯著肌膚如雪乍赫。 梳的紋絲不亂的頭發(fā)上瓣蛀,一...
    開封第一講書人閱讀 51,688評論 1 305
  • 那天,我揣著相機與錄音雷厂,去河邊找鬼惋增。 笑死,一個胖子當著我的面吹牛改鲫,可吹牛的內(nèi)容都是我干的诈皿。 我是一名探鬼主播,決...
    沈念sama閱讀 40,414評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼钩杰,長吁一口氣:“原來是場噩夢啊……” “哼纫塌!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起讲弄,我...
    開封第一講書人閱讀 39,319評論 0 276
  • 序言:老撾萬榮一對情侶失蹤措左,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后避除,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體怎披,經(jīng)...
    沈念sama閱讀 45,775評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年瓶摆,在試婚紗的時候發(fā)現(xiàn)自己被綠了凉逛。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,096評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡群井,死狀恐怖状飞,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情书斜,我是刑警寧澤诬辈,帶...
    沈念sama閱讀 35,789評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站荐吉,受9級特大地震影響焙糟,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜样屠,卻給世界環(huán)境...
    茶點故事閱讀 41,437評論 3 331
  • 文/蒙蒙 一穿撮、第九天 我趴在偏房一處隱蔽的房頂上張望缺脉。 院中可真熱鬧,春花似錦悦穿、人聲如沸攻礼。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,993評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽秘蛔。三九已至,卻和暖如春傍衡,著一層夾襖步出監(jiān)牢的瞬間深员,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,107評論 1 271
  • 我被黑心中介騙來泰國打工蛙埂, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留倦畅,地道東北人。 一個月前我還...
    沈念sama閱讀 48,308評論 3 372
  • 正文 我出身青樓绣的,卻偏偏與公主長得像叠赐,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子屡江,可洞房花燭夜當晚...
    茶點故事閱讀 45,037評論 2 355

推薦閱讀更多精彩內(nèi)容