2010-09-14 133 views
1

作爲一種安全措施,我想隱藏我用我的服務器上的技術堆棧。什麼是有效的方法來做到這一點?我想過隱藏後端技術堆棧

1)使用mod_rewrite或重寫模塊隱藏任何頁面的擴展名如.PHP或.ASPX
2)關閉所有的錯誤報告

1b)中使用mod_rewrite擔任目的的誤導性的擴展,像掩飾一個PHP頁面的aspx
2B)拋出誤導性的錯誤去與1B),使我的PHP頁面顯示ASP樣的錯誤。

+2

,我認爲你的努力會使用你必須創建擺在首位更安全的應用程序的工具可能會更好一些。 – 2010-09-14 02:53:13

回答

1
  1. 不顯示準確頁面擴展
  2. 不要使用標準的錯誤頁面
  3. 確保Web服務器和應用層(ASP.NET,PHP等)隱藏自己在瀏覽器標題存在)
  4. 如果你的錯誤頁面做任何事情的動態,假設這個能以某種方式失敗,並有一組靜態的HTML頁面,你可以成爲不屬於Web服務器默認的
  5. 確保我們所有的技術堆棧被配置爲不在任何服務的錯誤頁面上顯示堆棧跟蹤本地服務器以外的機器。如果由於某種原因,所有的自定義錯誤都失敗了,那麼用戶可能會看到技術堆棧,但他們不會有一個窗口進入底層代碼
0

您可以將僞造的Server:和/或X-Powered-By標頭添加到響應中,假裝它是由不同的服務器生成的。 (或者,Server: My Unhackable Server

2

這是一個不可能完成的任務。您將不得不修改整個堆棧,在這種情況下,您將創建新的有問題的版本,您現在必須與供應商的版本保持同步。

沒有辦法做到這一點,沒有讓你的網站減少安全。

你可以做跛腳的東西移去X供電-通過,或者如果它使用類似ASP或PHP具有已知的一個改變會話生成方案。事實是,它不會阻止任何人誰實際上想要知道你正在運行的。

對於基本的例子(它去深度超過此),某些Web服務器會接受任何頭,所以我可以說GET LOLOLOL HTTP/1.1,它仍然可以工作。有些堆棧會保持會話活躍,有些則不會。您還可以看到有哪些功能堆棧上,因爲有剛在網絡上這麼多,有沒有辦法在地球上的任何棧支持完全相同的一組。

+2

它不一定非常完美。我只是希望它不會在代碼中引入太多問題,就可以達到最佳效果。 – Bimmy 2010-09-14 03:12:10