2011-10-17 75 views
3

問:發佈選項

我想問如果在Web應用程序發佈過程中發佈我的服務器上的.cs.aspx文件視爲一種不好的做法,可能會導致安全違規或不?

因爲有時我必須這樣做,因爲報告文件沒有發佈或者css文件無法正常工作。


當使用這些的每個選項:

  • 運行該應用程序只需要文件。

  • 所有項目文件。

  • 源項目文件夾

回答

3

這可能是一個誤用原理,但我總是想到principle of least privilege。由是,我的意思是:

  • 做我的用戶需要看到任意代碼文件(適用情況下,這兩個「所有項目文件和‘源項目文件夾中的所有文件’
  • 做我的用戶需要看到任意?在我的項目文件夾中的文件,但不包括在我的項目(適用「源項目文件夾中的所有文件」下)?

如果這些問題的答案是否定的,那麼我發佈使用只需要文件運行此應用程序。

我曾經犯過使用「源項目文件夾中的所有文件」發佈網站的錯誤,因爲我需要從我使用的插件部署一堆.css和.js文件,但不知道如何快速將這些文件包含在我的Web項目中。但是,只要我看到我的所有源代碼都顯示在我的生產文件夾中,我就立即將發佈選項切換回「僅需運行此應用程序的文件」,並部署刪除目標文件夾中的所有文件。然後,我環顧四周,想辦法將所有文件包含在不在我的項目中的文件夾中,因此我一直很開心。

說實話,即使我的用戶需要查看某種類型的代碼,我也會考慮在我發佈任何網站上的.cs文件副本之前編寫一個quine。人們有不同的對互聯網安全的意見,但我常常想起這句話從基因斯帕福德的:

唯一真正安全的系統是一個斷電,鑄混凝土塊和密封在鉛襯房間裏有武裝警衛 - 即使如此,我仍然懷疑。

如果環顧這裏,您會發現用戶試圖安全地加密/解密連接字符串,將數據安全地存儲在其程序(或數據庫)中的各種問題,並嘗試盡力讓任何人 - 即使是他們最信任的用戶 - 也無法獲得他們不應該擁有的訪問權限。

由於惡意用戶試圖訪問服務器上的文件的可能性不大,我可以告訴你,惡意用戶訪問我的服務器上的文件要困難得多,因爲這些文件不會我的服務器上不存在

+0

@Downvoter,這個答案有什麼問題? – jwiscarson 2011-11-29 15:33:01

2

所有文件確保你的IIS設置意味着.cs文件沒有公開提供。這應該與任何敏感或非公開的文件類型相同,例如.config

.aspx文件包含您的標記,因此通常可以公開發布和公開發布。