2014-04-30 60 views
3

我在我的樹枝模板 中使用/ bundles /路徑圖像,例如,資產使用/ bundles/path是否存在任何安全風險?

<link href="{{ asset('bundles/acmedemo/css/contact.css') }}" rel="stylesheet" /> 
<img src="{{ asset('bundles/acmedemo/images/image.jpg') }}"> 
<img src="/bundles/acmedemo/images/image.jpg"> 

沒有任何安全風險這一點,在那裏用戶可能後來才知道IM使用symfony的FW和利用的東西,或者用戶可以瞭解我的包名稱,這誰知道這可能會導致,或者用戶可能能夠熱鏈接我知道可以通過服務器設置更正的文件,但是在混淆和安全性方面是否存在這樣做的問題?

請注意,即時通訊開發一個企業網站的基礎上這個FW,即時信息綁定到不公開,等等,它不像它的開源軟件包或任何東西。

+1

「到用戶可能然後使用IM知道symfony fw,並利用某些東西「---有這樣的機會,沒錯。 – zerkms

+0

請記住,只有您的資產文件可通過'web'文件夾(通過'assetic:dump'複製/鏈接)。 PHP腳本和配置文件不是。 – Phil

回答

7

不錯的問題。

理論上,它不應該。 Symfony 應該是必須足夠安全,因此,知道您使用Symfony和/或您運行的確切版本,黑客仍然無法損害您的應用程序。 (假設你已經正確配置了所有東西,包括你的網絡服務器等)。

但是,實際上在你的代碼或某些供應商的代碼中總會存在漏洞的可能性。通過隱藏您使用的框架,您可能確實希望讓潛在的攻擊者輕鬆一點,以便即使應用程序中存在漏洞,攻擊者也不會知道您正在使用該特定而不是首先嚐試所有可能性。

關於此主題的一篇有趣的文章是Hide your Web stack。它主要提供了以下提示,不僅混淆使用的Symfony,而且PHP和Apache(或者你使用任何網絡服務器)的:

  • (Symfony的)一些明顯的步驟,如更換默認的Symfony圖標,不在生產中部署app_dev.phpconfig.php,並創建自定義錯誤頁面。
  • (Symfony)重命名app.php或將Web服務器配置爲在有人試圖直接訪問app.php時返回404,因爲該文件的名稱將表示使用Symfony。
  • (Symfony)從非默認位置處爲您的資產提供服務,因爲/bundles/etc是Symfony的特點。例如,在安裝資產時使用app/console assets:install path,用自定義位置替換path
  • (Symfony)請勿部署Symfony附帶的默認公共資產,例如調試欄使用的樣式表和圖像。它們在生產中沒有用處,並且因爲它們的歷史在GitHub處公開可見,所以它們可用於確定您正在使用的Symfony的版本。
  • (PHP)更改默認cookie名稱以混淆使用PHP。
  • (PHP)禁用額外的HTTP標頭,可以使用PHP(例如X-Powered-By)。這可以通過在php.ini中添加expose_php = off來完成。
  • (Web服務器)至於PHP,請禁用額外的HTTP標頭來宣傳您的Web服務器的名稱和版本。

你甚至可能要更進一步,不僅通過隱藏應用程序的細節,而是掩飾它作爲別的東西。例如,您可以將PHP僞裝成另一種腳本語言,希望攻擊者可以嘗試使用該語言的某些特定漏洞,並在嘗試幾次失敗後放棄。但是,你應該小心,只有當你確信沒有意外的副作用時才這樣做。另外,不要忘記,如果你的實際的軟件,你就掩飾它作爲軟件從同樣的漏洞受苦,你回到開始的地方......

相關問題