2012-07-21 118 views
3

我在網站上正與託管公司,PHP與MySQL。Web安全:從哪裏開始

我所熟悉的SQL注入和XXS,我知道如何代碼,以便這些不會發生。不過,我仍然計劃測試網站的漏洞。

現在,我有點新的Web開發,我知道有很多對網站的安全性閱讀。

  1. 還有什麼其他的攻擊在那裏它們通常在 網站以及使用PHP和MySQL的Web服務器使用
  2. 如何防範這些攻擊?
  3. 即使我的代碼是完美的,我需要什麼來尋找託管公司的網絡 服務器配置這可能使Web服務器易受攻擊?
+1

這可能是一個太寬泛的問題,需要在這裏回答。但是:請參閱[OWASP的一套備忘單](https://www.owasp.org/index.php/Cheat_Sheets)。好東西。 – 2012-07-21 05:40:52

+0

填充oracle攻擊,如果您正在對服務器上的用戶提供的數據進行任何類型的解密。定時攻擊。 HTTPS的流量分析(它泄漏頁面/圖像/腳本大小和加載時間,一個)。 – 2012-07-21 06:24:36

+0

我最喜歡的問題之一,我贊成和近距離投票。 – 2012-07-21 07:07:32

回答

2

東西是好的要牢記:

查找到PDO數據庫的目的,而不是mysqlmysqli。 (PDO是一種簡化不同類型數據庫之間差異的包裝,但也大大簡化了安全性)。

PDO的準備語句都使建築物查詢100倍更容易,使他們幾乎SQL注入,防只要你總是編制報表(這是愚蠢的,易於使用PDO以及) 。

這是嚴重的價值15分鐘,學習如何在任的其他兩個MySQL選項使用PDO。

雖然這可能會使您的數據安全性不受影響,但它並不能保護您免受可能存儲在數據庫中以便稍後提供給用戶的數據。

在這方面:

  1. 驗證從用戶那裏獲得的一切 - 一切從表單輸入GET/POST值
  2. 逃脫你寫信給用戶的頁面HTML
  3. 從未一切需要用戶輸入原樣,選擇類,等等(例如:include $_GET["page"];

JavaScript的 - 我的寶貝:

  1. 瞭解閉包和模塊/命名空間的模式。
  2. 使用它們,你寫的每一個大的應用程序(尤其是任何需要任何用戶信息收集,等等)
  3. 明白,你不能阻止用戶運行任何東西,他們希望在您的網站,很容易作爲開放的開發控制檯和粘貼的東西。
  4. 與#3的理解,學習如何使用#1和#2,防止跑#3用戶訪問的用戶提供給您的任何數據(或者你保存有關用戶)

一般,保存cookies和URL字符串中的用戶信息,並儘可能將其保留在JS關閉,POST請求中,然後儘可能保留在用戶的會話中,服務器端。

0

一個很好的閱讀資源是OWASP,它有一個龐大的維基風格網站,裏面充滿了關於網絡安全的信息。這可能會非常沉重,因爲那裏有很多,但它是保存在書籤中的非常好的資源。

另一個您可能會覺得有用的網站是PHP The Right Way,它旨在幫助您更安全地編寫PHP代碼並使用最佳做法。這個網站還是相當新的,但已經有一些很好的提示。

我對你的代碼的建議:你可以做的一件最好的事情就是使用一個體面的PHP框架,而不是編寫原始的PHP代碼。

所有優秀的框架都有庫,可以幫助您避免危險的編碼實踐。例如,他們都有數據庫抽象層,不僅使數據庫工作更容易,而且更安全。如果你遵循你正在使用的框架的指導原則,你將會保護自己免受許多最嚴重的危險。當然,你仍然需要知道要注意什麼,但這會有很大幫助。

我對使用框架的建議是Symphony或CakePHP,但其他人也有很多。

希望有所幫助。