學習PHP精粹,編寫高效PHP代碼之安全性_PHP教程

來源:互聯網
上載者:User
一、過濾輸入、避免輸出

有時我們將短語“過濾輸入、避免輸出”縮寫為FIEO,這已成為PHP應用程式的安全真言。

1、利用ctype進行驗證

ctype:http://php.net/ctype

2、利用PCRE(Perl相容的Regex)進行驗證

PCRE:http://php.net/pcre

二、跨站指令碼

跨站指令碼通常簡稱為XSS,攻擊載體以在應用程式輸出中由使用者提供的變數所在位置為目標,但該變數沒有適當地轉義。這允許攻擊者注入他們選擇的一個用戶端指令碼作為這個變數值的一部分。下面是代碼受到這種類型攻擊的樣本:

<form action="">    <input type="submit" value="submit" />form>

線上資源:

1、http://ha.ckers.org/xss.html

2、http://shiflett.org/articles/cross-site-scripting

3、http://seancoates.com/blogs/xss-woes

三、偽造跨站指令碼

比方說,某個攻擊者想從一個流行的線上商店中得到一個昂貴的商品而不用付錢。相反,他們想讓一個毫不知情的受害者支付這筆金額。他們選擇的武器是:一個偽造的跨站請求。這種攻擊類型的目標就是讓受害者發送一個請求到某個特定的網站,從而利用受害者在該網站已經註冊的身份資訊。

線上資源:

1、http://shiflett.org/articles/cross-site-request-forgeries

2、http://shiflett.org/articles/foiling-cross-site-attacks

四、會話固定

如前所示,使用者會話是一個經常受到攻擊的目標,這種對潛在的受害者和目標網站的識別能力使得一些攻擊有機可乘。這裡有3種攻擊者獲得有效會話標示符的方法。按難度順序排列,它們分別是:

1、固定

2、捕獲

3、預測

線上資源:

1、http://shiflett.org/articles/session-fixation

2、http://phpsec.org/projects/guide/4.html#4.1

3、http://www.owasp.org/index.php/Session_fixation

五、工作階段劫持

工作階段劫持這個詞有些難懂,因為我們用它描述兩件事情:

1、導致攻擊者得以進入網站上與受害者賬戶相關聯的會話,而不管他如何擷取訪問權的任何類型的攻擊。

2、需要捕獲一個已建立的工作階段識別項,而不是通過固定技術或預測取得工作階段識別項的特定類型攻擊。

線上資源:

1、http://shiflett.org/articles/session-hijacking

2、http://shiflett.org/articles/the-truth-about-sessions

3、http://phpsec.org/projects/guide/4.html#4.2

六、SQL注入

這種類型攻擊的性質與前面所講過的“過濾輸入、避免輸出”有關。基本上,SQL注入非常類似於XSS,在XSS中,攻擊對象使得應用程式認為使用者輸入的含義超過了它所代表的資料。XSS的目的是讓那些輸入作為用戶端代碼而被執行;而SQL注入的目的是讓這些輸入被認為是一個SQL查詢,或者是查詢的一部分。

線上資源:

1、http://shiflett.org/articles/sql-injection

2、http://phpsec.org/projects/guide/3.html#3.2

七、儲存密碼

在Web應用程式能有效處理資料庫查詢中使用者輸入的情況下,攻擊者需使用更廣泛的手段訪問使用者賬戶。一般來說,其中也包括擷取受害者的訪問憑證來訪問他們的資料。

其中一個實現方法便是強行進入Web應用程式使用的資料庫伺服器。根據你使用何種資料庫、資料庫如何配置等相關資訊,攻擊者有很多的侵入方法。

線上資源:

1、http://php.net/mcrypt

2、http://www.openwall.com/phpass/

3、http://codahale.com/how-to-safely-store-a-password/

八、暴力破解攻擊

對攻擊者而言,侵入資料庫或解密加密的密碼技術門檻過高。在這種情況下,攻擊者可能嘗試使用一個指令碼,類比一個正常使用者使用瀏覽器登入到Web應用程式的HTTP請求,他們用給定使用者名稱和隨機密碼嘗試登入,直到找到正確的密碼。這種方式成為“暴力破解攻擊”。

線上資源:

1、https://www.owasp.org/index.php/Brute_force_attack

2、http://en.wikipedia.org/wiki/Brute-force_attack

九、SSL

線上資源:

1、http://arst.ch/bgm

2、http://www.owasp.org/index.php/SSL_Best_Practices

PHP安全相關資源:

1、http://www.php.net/manual/en/security.php  PHP手冊中有關於各種安全問題的章節

2、http://phpsecurity.org/  這是《Essential PHP Security》一書的相關網站

3、http://phpsec.org/projects/guide/  PHP安全協會的項目之一就是《PHP Security Guide》

4、http://www.enigmagroup.org/  該網站提供了針對Web應用程式和論壇的許多潛在攻擊載體的相關資訊和實用練習。

http://www.bkjia.com/PHPjc/780761.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/780761.htmlTechArticle一、過濾輸入、避免輸出 有時我們將短語過濾輸入、避免輸出縮寫為FIEO,這已成為PHP應用程式的安全真言。 1、利用ctype進行驗證 ctype:...

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.