Asp.net 发布选项

Asp.net 发布选项,asp.net,visual-studio-2008,iis,web-applications,security,Asp.net,Visual Studio 2008,Iis,Web Applications,Security,问: 我想问,在web应用程序发布过程中,在我的服务器上发布.cs和.aspx文件是否被视为一种不良做法,可能会导致安全违规 因为有时候我不得不这样做,因为报表文件没有发布或者css文件不能正常工作 何时使用这些选项中的每个选项: 只有运行此应用程序所需的文件 所有项目文件 源项目文件夹中的所有文件 确保您的IIS设置意味着.cs文件不会公开提供。对于任何敏感或非公共文件类型,如.config,这应该是相同的 .aspx文件包含您的标记,因此通常可以公开发布和服务。这可能是对这一原则的误用,

问:

我想问,在web应用程序发布过程中,在我的服务器上发布
.cs
.aspx
文件是否被视为一种不良做法,可能会导致安全违规

因为有时候我不得不这样做,因为报表文件没有发布或者css文件不能正常工作


何时使用这些选项中的每个选项:

  • 只有运行此应用程序所需的文件

  • 所有项目文件

  • 源项目文件夹中的所有文件


确保您的IIS设置意味着
.cs
文件不会公开提供。对于任何敏感或非公共文件类型,如
.config
,这应该是相同的


.aspx文件包含您的标记,因此通常可以公开发布和服务。

这可能是对这一原则的误用,但我总是想到。我的意思是:

  • 我的用户是否需要查看任何代码文件(适用于“所有项目文件”和“源项目文件夹中的所有文件”
  • 我的用户是否需要查看我的项目文件夹中的任何文件,但不包括在我的项目中(适用于“源项目文件夹中的所有文件”)
如果这些问题的答案是否定的,那么我只使用运行此应用程序所需的文件发布。

我曾经犯过一个错误,使用“源项目文件夹中的所有文件”发布网站,因为我需要从我使用的插件中部署一堆.css和.js文件,并且不知道如何快速将这些文件包括在我的web项目中

然而,当我看到我的所有源代码都显示在我的生产文件夹中时,我很快将发布选项切换回“仅运行此应用程序所需的文件”,并部署删除目标文件夹中的所有文件。然后,我环顾四周,想找到一种方法,将不在我项目中的文件夹中的所有文件都包括在内,从那以后,我就更高兴了

P.>老实说,即使我的用户需要看到某种代码,我也会考虑在发布任何网站上的.M.CS文件的拷贝之前写一篇文章。人们对互联网安全有不同的看法,但我经常想到Gene Spafford的这个例子:

唯一真正安全的系统是一个关闭电源,浇注在混凝土块中,密封在一个有武装警卫的铅制房间里的系统——即使这样,我也有我的怀疑

如果你环顾这里,你会发现各种各样的问题,用户试图安全地加密/解密连接字符串,将数据安全地存储在他们的程序(或数据库)中,或者尽最大努力阻止任何人——即使是他们最信任的用户——获得他们本不应该拥有的访问权限

恶意用户不太可能尝试访问您服务器上的文件,但我可以告诉您,恶意用户访问我服务器上的文件要困难得多,因为我的服务器上不存在这些文件