如何改进您的Web应用程序

时间:2009-05-30 06:19:14

标签: asp.net web-applications

我想做得更好,我希望向您介绍一些好处,并将其添加到Web应用程序中做得最差。

我做了很多ASP.NET应用程序,特别是在CRM应用程序中运行。在我们收到电子邮件之前,我们会忘记这件事,并且我们会忘记这件事:)

这个问题适用于商业免费的网络应用程序。以下所有想法,我将自由分享我的源代码

目前我只是有一些想法并实施了其他想法,例如:

  • 如果您将& debug = y添加到查询字符串中,我将显示一个调试窗口,其中包含所有名为
  • 的查询和过程

alt text http://www.balexandre.com/temp/WebApp_DebugInfo.png

  • 使用global.asax我向用户显示更好的错误消息,而不是原始的ASP.NET错误窗口(这是开发人员版本,用户版本没有堆栈跟踪信息)

alt text http://www.balexandre.com/temp/WebApp_errorMsg.png

  • 我使用jQuery和Web Service创建了一个简单的链接,它将显示当前版本的Web应用程序,如果是最新的。

  • 昨天我从ELMAH博客阅读了Scotts,我会尝试设置这个,以便收到一封特殊地址的电子邮件,以便改进并修复任何错误可能会发生......

你们有什么建议?什么可以考虑作为部署Web应用程序的“标准”...

2 个答案:

答案 0 :(得分:1)

我喜欢你正在做的一切,除了通过querystring参数显示所有查询信息。我建议只在dev上以调试模式提供该功能。服务器或那种性质的东西。否则可能会带来很大的安全风险。

我也在你发布的查询中看到(从底部排第三)到

结尾
where <some field> = 582

使用参数化查询而不是字符串连接是个好主意。它让你开放一系列令人讨厌的问题,比如性能下降和sql注入攻击。如果您使用参数化查询,那将会消失。

希望我为你的“标准”增加了一些价值。

祝你好运。

答案 1 :(得分:0)

“如果您将&amp; debug = y添加到查询字符串中,我将显示一个调试窗口,其中包含所有名为”

的查询和过程

现在,通常我是默默无闻地批评安全的人,但这是一个非常糟糕的主意。没有理由像这样彻底暴露你的实现。如果在生产服务器上启用了此调试选项,则最多应该记录到内部文件。

与“有用的”回溯错误消息相同。此信息仅限于某些原因。

即使版本链接也可以被视为漏洞。参见例如this Wordpress artice建议不发布您正在使用的Wordpress版本,原因是过去的漏洞众多,以及人们升级速度非常慢。