對php安全有幫助的一些函式

2021-12-29 22:11:45 字數 2168 閱讀 9995

安全一直是乙個在程式語言中非常值得去關注的方面。在任何一種成熟的程式語言中都有合適的辦法來保證程式的安全性,在現代的web開發中,我們常常需要去處理使用者的輸入。(那麼這時候,問題就來了)有一句程式設計格言是:千萬不要相信使用者輸入的安全性。所以呢,今天就介紹一些在php中最常用的為你的**提供安全保護的方法。

在php中有許多方便的函式可以幫助你免於類似於sql注入,xss攻擊。現在讓我們來看一下這些能夠給你的專案增加安全性的函式吧。但是,請注意,這裡只是一些常用的函式的列表,也許他們並不全面,但是我相信他們都是對你的專案是非常有幫助的。

mysql_real_escape_string(stringsqlquery) :

轉義sql語句中使用的字串中的特殊字元,並考慮到連線的當前字符集。乙個非常有用的函式,可以有效地避免sql注入。

以下字元會被轉換:

x00,n,r,,』,」,x1a

在執行sql語句之前,對要將執行的sqlquery使用該函式處理,會將一些危險扼殺在搖籃中。

但是現在一般在較為成熟的專案中,一般比較推薦使用類似pdo這樣的資料庫持久層來處理所有的資料庫操作。他們代表著更為先進的資料庫操作處理技術,在安全性,資料讀寫的速度上逗比那些古老的mysql_*api強大了不少。

addslashes( ):

在將一些資料插入到資料庫中時,這個函式會非常有用,它可以在單引號前加上反斜槓,使得資料在插入時不會出現錯誤。但是它的使用與php.ini中的一項設定有關係—magic_quotes_gpc

1.對於phpmagic_quotes_gpc=on的情況,我們可以不對輸入和輸出資料庫的字串資料作addslashes()和stripslashes()的操作,資料也會正常顯示。

如果此時你對輸入的資料作了addslashes()處理,那麼在輸出的時候就必須使用stripslashes()去掉多餘的反斜槓。

2.對於phpmagic_quotes_gpc=off的情況

必須使用addslashes()對輸入資料進行處理,但並不需要使用stripslashes()格式化輸出,因為addslashes()並未將反斜槓一起寫入資料庫,只是幫助mysql完成了sql語句的執行。

【stripslashes():刪除由addslashes()函式新增的反斜槓。】

htmlentities() :

乙個非常有用的用來處理輸出的函式。它用來將一些可能導致xxs攻擊的字元轉化為html實體,這些字元在瀏覽器顯示的時候是正常的,但是當你檢視它的源**時,實際上這些特殊字元必不會是他顯示的那樣,例如

輸出:john&『adams』

原始碼:john & 'adams';輸出:

<>原始碼:

<>gt;編碼這些符號,有效地避免了xss攻擊。

htmlspecialchars() :

和上面的函式是一樣的,但是它更常用一些,因為htmlentities()是將所有的有在html標準中定義了的字元轉換成他們對應的html實體,這樣會是你的輸出缺乏易讀性(html實體列表  所以呢,使用htmlspecialchars()只是將一些預定義的字元(就是會導致出現問題的)轉換為html實體。例如:

&(和號)成為& 」(雙引號)成為」 『(單引號)成為『 (大於)成所以,在一些專案中,我還是常常使用htmlspecialchars()來處理html的輸出的。他在安全這一方面做得更具體一些。

strip_tags():一般在輸出時使用,將html、xml以及php的標籤剝去。

函式原型:strip_tags(string,allow)

string代表輸入的字串,allow代表不刪除的標籤,你可以通過allow來自定義過需要濾掉的標籤

md5() :

乙個將字串轉換為乙個32位的雜湊值的函式(不能逆向解密),任何乙個字串都能通過這個函式獲得乙個唯一的32位字串。但是,現在使用這個函式時,需要注意有一些資料庫記錄了大量的md5值,通過暴力列舉的方式來破解你的密碼,所以在使用的時候,你可以先將你的原字串加一層密,然後再使用md5()雜湊,會獲得更好的效果。

sha1() :

和md5()和相似的乙個函式,但是他使用不同的演算法生成乙個40個字元的字串。可以在專案中考慮使用

intval() :

也許你認為這個函式不是乙個securityfunction。但是它在某些情況下可以很好地保護你的code。對從使用者收集到的一些資料例如id,password,username處理,也許可以消除一些安全隱患,畢竟這裡是重災區。

對PHP安全有幫助的一些函式

安全一直是乙個在程式語言中非常值得去關注的方面。在任何一種成熟的程式語言中都有合適的辦法來保證程式的安全性,在現代的 web 開發中 安全一直是乙個在程式語言中非常值得去關注的方面。在任何一種成熟的程式語言中都有合適的辦法來保證程式的安全性,在現代的 web 開發中,我們常常需要去處理使用者的輸入。...

PHP安全的一些想法

如果你是乙個php程式設計師,那你肯定不想看到你的程式被黑客破壞,甚至你的運營人員經常抱怨,被人搞了。當然,很多時候我們都說開發用框架比較好。之前我學習框架的時候,一樣,覺得框架學習成本高,不好學,寧可自己弄幾個類庫寫寫。但是這樣的類庫,本身對於專案沒有開發10個以上的開發人員來說,你的 安全嗎?所...

php一些函式

1.show source 函式是php中的內建函式,用於返回突出顯示php語法的檔案。通過使用html標記突出顯示語法 2.strstr 函式 定義和用法 strstr 函式搜尋字串在另一字串中是否存在,如果是,返回該字串及剩餘部分,否則返回 false。注釋 該函式是二進位制安全的。注釋 該函式...