麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁(yè) > 網(wǎng)站 > 建站經(jīng)驗(yàn) > 正文

對(duì)PHP安全有幫助的一些函數(shù)

2024-04-25 20:36:02
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

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

在PHP 中有許多方便的函數(shù)可以幫助你免于類(lèi)似于 SQL注入,XSS攻擊。現(xiàn)在讓我們來(lái)看一下這些能夠給你的項(xiàng)目增加安全性的函數(shù)吧。但是,請(qǐng)注意,這里只是一些常用的函數(shù)的列表,也許他們并不全面,但是我相信他們都是對(duì)你的項(xiàng)目是非常有幫助的。

mysql_real_escape_string( string sqlQuery ) :

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

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

/x00,/n,/r,/,’,”,/x1a

在執(zhí)行sql語(yǔ)句之前,對(duì)要將執(zhí)行的sql query 使用該函數(shù)處理,會(huì)將一些危 險(xiǎn)扼殺在搖籃中。

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

addslashes() :

在將一些數(shù)據(jù)插入到數(shù)據(jù)庫(kù)中時(shí),這個(gè)函數(shù)會(huì)非常有用,它可以在單引號(hào)前加上反斜杠,使得數(shù)據(jù)在插入時(shí)不會(huì)出現(xiàn)錯(cuò)誤。但是它的使用與php.ini 中的一項(xiàng)設(shè)置有關(guān)系 — magic_quotes_gpc

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

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

2. 對(duì)于PHP magic_quotes_gpc=off 的情況

必須使用addslashes()對(duì)輸入數(shù)據(jù)進(jìn)行處理,但并不需要使用stripslashes()格式化輸出,因?yàn)閍ddslashes()并未將反斜杠一起寫(xiě)入數(shù)據(jù)庫(kù),只是幫助mysql完成了sql語(yǔ)句的執(zhí)行。

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

htmlentities() :

一個(gè)非常有用的用來(lái)處理輸出的函數(shù)。它用來(lái)將一些可能導(dǎo)致XXS攻擊的字符轉(zhuǎn)化為html實(shí)體,這些字符在瀏覽器顯示的時(shí)候是正常的,但是當(dāng)你查看它的源代碼時(shí),實(shí)際上這些特殊字符必不會(huì)是他顯示的那樣,例如

輸出:

John & ‘Adams’

源碼:

John & 'Adams';

輸出:

<>

源碼:

&lt;&gt;gt;

編碼這些符號(hào),有效地避免了XSS 攻擊。

htmlspecialchars()

和上面的函數(shù)是一樣的,但是它更常用一些,因?yàn)?htmlentities() 是將所有的有在html 標(biāo)準(zhǔn)中定義了的字符轉(zhuǎn)換成他們對(duì)應(yīng)的html實(shí)體,這樣會(huì)是你的輸出缺乏易讀性(html 實(shí)體列表 http://www.w3school.com.cn/tags/html_ref_entities.html)。所以呢,使用 htmlspecialchars() 只是將一些 預(yù)定義的字符(就是會(huì)導(dǎo)致出現(xiàn)問(wèn)題的)轉(zhuǎn)換為html實(shí)體。例如:

& (和號(hào)) 成為 &

” (雙引號(hào)) 成為 ”

‘ (單引號(hào)) 成為 ‘

< (小于) 成為 <

> (大于) 成為

所以,在一些項(xiàng)目中,我還是常常使用 htmlspecialchars() 來(lái)處理html 的輸出的。他在安全這一方面做得更具體一些。

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

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

String 代表輸入的字符串,allow 代表 不刪除的標(biāo)簽,你可以通過(guò) allow 來(lái)自定義過(guò)需要濾掉的標(biāo)簽

md5() :

一個(gè)將字符串轉(zhuǎn)換為一個(gè)32位的哈希值的函數(shù)(不能逆向解密),任何一個(gè)字符串都能通過(guò)這個(gè)函數(shù)獲得一個(gè)唯一的32位字符串。但是,現(xiàn)在使用這個(gè)函數(shù)時(shí),需要注意有一些數(shù)據(jù)庫(kù)記錄了大量的md5 值,通過(guò)暴力枚舉的方式來(lái)破解你的密碼,所以在使用的時(shí)候,你可以先將你的原字符串加一層密,然后再使用md5()哈希,會(huì)獲得更好的效果。

sha1() :

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

intval() :

也許你認(rèn)為這個(gè)函數(shù)不是一個(gè) security function。但是它在某些情況下可以很好地保護(hù)你的code。對(duì)從用戶收集到的一些數(shù)據(jù)例如 ID,password,username處理,也許可以消除一些安全隱患,畢竟這里是重災(zāi)區(qū)。

 

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 91看片片| 日本成年免费网站 | 曰韩黄色片| www.理论片 | 91看片王| 中文字幕综合在线观看 | 成人午夜在线播放 | 九九黄色| 国产一级αv片免费观看 | 毛片a片免费看 | 成人一级视频在线观看 | 欧洲黄视频 | 国产乱淫av | 国产精品一区自拍 | 欧美大逼网 | 久久美女免费视频 | 综合毛片| 欧美日韩一区,二区,三区,久久精品 | 精品一区免费 | 久久久www成人免费精品 | 欧美日韩国产成人在线 | 一区在线看| 精品久久久久久综合日本 | 精品一区二区6 | 一级在线观看视频 | 久久国产精品一区 | 欧美成人精品一区二区三区 | 国产中出在线观看 | 欧美精品国产综合久久 | 欧美成人午夜影院 | 91久久久久久久久久久久久久 | 本色视频aaaaaa一级网站 | 毛片免费视频在线观看 | 羞羞视频一区 | 一级做人爱c黑人影片 | 黄色免费在线视频网站 | 成人性生活视频 | 国产精品自拍99 | 成人国产免费观看 | 国产精品999在线 | 女人解衣喂奶电影 |