簡體   English   中英

PHP - 安全什么是最好的方法?

[英]PHP - Security what is best way?

保護使用PHP從外部攻擊開發的Intranet網站的最佳方法是什么?

這是一個驚人的發人深省的問題,我很驚訝你沒有得到更好的答案。

摘要

你要為面向外部的應用程序做的一切,然后是一些。

思考過程

如果我理解正確,那么你是問這少數的開發商都在問自己一個問題。 大多數公司的防守都很差,一旦攻擊者進入,他就進入了。顯然你想把它提升到一個水平。

那么,我們在考慮什么樣的攻擊?
如果我是攻擊者並且我正在攻擊您的Intranet應用程序,那么我必須以某種方式訪問​​您的網絡。 這可能不像聽起來那么困難 - 我可能會嘗試使用魚叉式網頁釣魚(將電子郵件定位到您組織中的個人,包含惡意軟件附件或指向安裝惡意軟件的網站的鏈接)以在內部計算機上安裝木馬。

一旦我完成了這個(並控制了內部PC),我會嘗試所有相同的攻擊,我會嘗試對任何互聯網應用程序。

然而,這不是故事的結局。 我有更多選擇:如果我有一個用戶的PC,那么我可以使用鍵盤記錄器來收集用戶名和密碼,以及查看所有電子郵件中的姓名和電話號碼。
有了這些,我可以直接登錄您的應用程序。 我甚至可以學習管理員用戶名/密碼。 即使我沒有,一個名單和電話號碼列表以及對公司術語的感覺給了我一個體面的機會,讓我在公司內部進行更廣泛的訪問。

建議

  • 首先,在所有技術解決方案之前: 培訓您的安全用戶

保護Web應用程序的常見答案:

  • 使用多重身份驗證
    • 例如用戶名/密碼和某種偽隨機數小工具。
  • 消除所有輸入。
    • 防止跨站點腳本和SQL注入。
  • 使用SSL(也稱為HTTPS)。
    • 這是一個痛苦的設置(編輯:實際上這正在改善),但它提供了更好的安全性。
  • 堅持“職責分離”和“最低權利”的原則
    • 換句話說,通過確保所有用戶只擁有完成工作所需的權限(以及其他任何人的工作),您可以確保他們具有絕對最低的傷害能力。

如果它在內部網絡上,為什么甚至可以從外部訪問應用程序? 防火牆規則至少應該到位。

最好的方法? 禁用直接外部訪問!

如果員工需要使用它(比如外聯網風格的站點),你應該讓他們進入VPN。通過VPN,你有更多的身份驗證選項,其中大多數都比從Internet上訪問內部網服務器更安全。

另一個選項,這僅在數據是公共安全的情況下才有效,即安排內部網服務器數據送到外部可訪問的另一台服務器。 我說推,因為你真的不希望這台服務器有權訪問你的網絡。 讓您的網絡服務器完成工作。

保護它的最佳方法是什么? 請勿將其連接到網絡。 讓您的用戶通過單一控制台進入受保護的房間,運行Mosaic。

哦,你想要它易於使用?

  1. 始終驗證可能來自不受信任來源的每個輸入。
  2. 不要相信任何數據源。
  3. 存儲密碼時, 始終存儲密碼的加密哈希值。
  4. 存儲密碼時, 切勿直接存儲密碼。
  5. 切勿收集或存儲您實際不需要的任何數據。
  6. 永遠不要讓自己被誘惑添加額外的鈴聲和口哨聲。
  7. 閱讀Bruce Schneier撰寫的有關安全性和加密的所有內容。

如果你忘記了這些簡單的規則,你可以發現你的應用程序在所有報紙的頭版上主演,就像雅虎郵件一樣。

如果可能的話,我會回復@Oli並支持VPN方法。 但是,如果由於任何原因您需要比此更多的任意訪問,則應使用SSL來保護任何身份驗證。 除了密碼驗證/ IP地址驗證之外,將SSL與客戶端證書一起使用也是非常值得的。

您只能允許從php應用程序本身訪問內部IP。 也不要忽視通常的安全性和最佳實踐。 輸入驗證和輸出編碼(僅限白名單),帶有散列密碼的用戶帳戶等。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM