2012-02-13 95 views
1

比方說,我有哪裏PHP的安全信息?

  • PHP 5.3安裝
  • 每個輸出是htmlspecialchars()版網站。
  • PDO和準備語句是與數據庫
  • error_reporting()交互的唯一方式是關閉
  • 每個請求被傳遞到index.php(前端控制器),並且沒有直接文件訪問被允許除了經由index.php的.htaccess
  • 每個輸入是正確轉義(爲什麼要我?我用準備好的語句,怎麼可能一個用戶輸入惹我的代碼嗎?)
  • 沒有使用evil()

它被認爲是安全的嗎?還有哪些其他事情可以解決以提高安全性?你怎麼能攻擊它?破解它? PHP /服務器端可以提高安全性?

+0

你發現現實世界中的漏洞writeups不要提及任何阻止會話劫持/固定或CSRF的內容。 - 或者「破解它」是否意味着訪問機器/數據庫,而不是簡單地升級權限或未經授權訪問用戶帳戶? – Leigh 2012-02-13 13:44:56

+0

@Leigh,「黑客攻擊」我的意思是因爲我寫了我的應用程序而發生的一切不好的事情。 – Shoe 2012-02-13 16:07:38

回答

4

查看本頁:PHP Security Guide。大多數攻擊都有記錄。如果在執行這些安全檢查之後,您仍然被黑客入侵,那麼該問題很可能不是來自您的PHP應用程序。

順便說一句,正如@Jacco所說,我鏈接的文章有一些錯誤的內容。

  1. 使用準備語句而不是mysql_real_escape_string(),但您已經這樣做了。
  2. 關於鹽析,按照這個答案,而不是:https://stackoverflow.com/a/401684/851498
  3. 最後,檢查[「型」(文件上傳)是不安全的,因爲惡意用戶可以修改這個值。相反,看到這個鏈接的建議解決方案:http://www.acunetix.com/websitesecurity/upload-forms-threat.htm
+1

然後是[OWASP開發指南](http://code.google.com/p/owasp-development-guide/wiki/Introduction) - 充滿了好主意,但是很難實現它們。 – Leigh 2012-02-13 13:50:40

+0

Outch。我不認爲我會用這個工作:)(好吧,除非我工作在高度敏感的數據上) – 2012-02-13 13:53:05

+0

@FlorianMargaine這就是安全問題:大多數開發人員都不知道安全性到底有多重要,直到發生什麼事情。 – Gumbo 2012-02-13 14:06:04

0

安全是任何產品的一個主要問題,它不能被某個手指計數的政策來實現,但是它們是重要的代碼,所以處處覺得負面的可能性,反對他們來阻止他們。

其他的事情你必須做

  1. 存儲敏感數據加密甲在DB
  2. 乾淨XSS每個用戶輸入數據
2

我記得當我開始的Web開發,我看了配發關於清理數據,爲具體查詢創建許多mysql用戶以及一部分權限等。

它讓你處於安全帶代碼而不是操作系統。

如果使用telnet連接到控制檯或使用ftp進行身份驗證,那麼這有什麼用?

我想我應該切入點。我認爲現代開源技術如php mysql等已經構建了許多安全功能,這給我一種錯誤的安全感。

與使用暴力攻擊對控制檯進行黑客攻擊相比,通過這些技術可以實現的破壞可以忽略不計。如果我是你,我會擔心更多關於如何設置適當的防火牆,並且只允許端口80或最少的端口。如果啓用控制檯訪問,我只會讓你的桌面IP ...等

,並確保如果你發送一個密碼,它是通過SSL加密

1

沒有絕對的安全保證,你可以將以下內容添加到上述答案中:

  • 如果允許上傳文件,請確保您進行啞劇檢查;
  • 確保公衆無法將無限量的文件上傳到 過載並最終終止您的服務器;
  • 如果您擁有服務器,請確保您的站點沒有其他弱門,您可以花費數百萬美元讓您的站點對任何類型的攻擊毫無防備,但是如果有人通過另一個託管在同一服務器上的網站訪問它,你運氣不好;
  • 使用像acunetix,skipfish這樣的漏洞掃描程序;
  • 如果您擁有服務器,請確保您的服務器上運行的軟件版本(PHP/Apache/MySQL)保持最新。訂閱以獲取供應商的更新;
  • 如果預算允許,您可以向某人發放獎金,以便在代碼的DEV版本中找到安全漏洞;
  • 使用的產品類似如下:https://www.cloudflare.com/features-security
0

需要注意的是「安全」是一個基於上下文的術語是很重要的。它很大程度上取決於您的需求,並且有些公司(我正在尋找Google)甚至根本不考慮安裝PHP。

如果你在一家大公司工作,我會推薦僱用專業人士的服務。我從一位朋友那裏聽說,這家公司爲所有大公司做sec檢查,這可能是因爲他們是分發卡利Linux操作系統。

https://www.offensive-security.com/offensive-security-solutions/penetration-testing-services/

0

可以有多個其他一些問題,如會話問題,敏感信息的枚舉,授權和認證問題,以及更多。傳統的安全編碼準則無法解決業務邏輯旁路等問題。但是,看看PHP Security Cheat SheetOWASP PHP Security Project對於理解安全問題的全貌很有幫助。