2011-10-17 104 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文件包含您的标记,因此通常可以公开发布和公开发布。