程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> 學習PHP精粹,編寫高效PHP代碼之安全性

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

編輯:關於PHP編程

一、過濾輸入、避免輸出

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

1、利用ctype進行驗證

ctype:http://php.net/ctype

2、利用PCRE(Perl兼容的正則表達式)進行驗證

PCRE:http://php.net/pcre

二、跨站腳本

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

<form action="<?php echo $_SERVER['PHP_SELF'];?>">
    <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應用程序和論壇的許多潛在攻擊載體的相關信息和實用練習。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved