科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件开发安全的ASP.NET应用程序

开发安全的ASP.NET应用程序

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

 在鉴别完之后,ASP.NET将校验调用是否被授权用以访问请求的资源来执行操作。在这种情况下,通过比较访问资源的控制列表(ACL)调用的标记来执行校验。

作者:中国IT实验室 来源:IT专家网 2008年4月10日

关键字: 程序 应用 asp net Windows

  • 评论
  • 分享微博
  • 分享邮件
Web应用程序会遭到几种类型的攻击,其破坏效果会因程序本身的不同而不同。因此,安全性是与程序的用法和用户与其功能交互的方式密切相关的。那么,应该如何来设计和编码ASP.NET应用程序呢?

  从应用程序的角度来看,安全性通常指对用户的鉴别以及对系统资源授予访问权限。ASP.NET提供了许多鉴别和授权机制,它们与IIS、。NET Framework以及操作系统底层的安全服务是相连的。

  当一个客户端发出一个Web请求时,将发生下列顺序的鉴别和授权事件:

  1.IIS鉴别

  2.ASP.NET鉴别

  3.ASP.NET授权

  鉴别用户

  如果页面是可以被察看的,而请求来自一个非受限的IP地址,IIS将通过预定义的鉴别机制来对调用请求进行鉴别。首先IIS确保请求来自一个可信任的IP地址。如果不是,请求将以HTTP错误403.6而被拒绝。第二个措施是检查被请求的资源是否可以被读或被浏览。如果不是,请求将以HTTP错误403.2而被拒绝。然后IIS尝试使用Intergrated、Digest或Basic方法来鉴别这个调用。如果用到了Windows的Intergrated方法,Kerberos或NTLM将被使用。如果请求通过了这一关,就轮到ASP.NET出场了。

  ASP.NET支持三种类型的鉴别方法:Windows、Forms和Passport.如果ASP.NET被配置为Windows鉴别,则它不需要其它的步骤,而是直接承认任何从IIS传来的安全标记。如果ASP.NET被配置为Forms鉴别,将使用一个HTML表单提示用户输入信任资料。通过用户ID和密码在存储的合法用户列表中查寻。应用程序可以任意选择最合适的存储机制,包括SQL Server数据库或Active Directory服务。最后如果ASP.NET被配置为Passport鉴别,用户将被转入一个Passport Web站点并由Passprot服务来鉴别。

  第四中类型的鉴别是None,这意味着ASP.NET并不执行自己的鉴别而是完全依靠已经由IIS执行的鉴别。在这种情况下,匿名用户可以连接进来,而访问资源使用的是ASP.NET账户。将ASP.NET鉴别模式设定为None并不妨碍程序实现自己的鉴别层。

  在Web.config文件中通过使用区段来选择ASP.NET的鉴别机制。默认的鉴别模式是Windows.

  授权

  当然,鉴别只是意味着用户被确认为是其本身。下一步是确认用户拥有足够的权限来访问请求的资源。

  在鉴别完之后,ASP.NET将校验调用是否被授权用以访问请求的资源来执行操作。一对HTTP模块提供了这项服务:UrlAuthorizationModule和FileAuthorizationModule.前者确保Web.config文件中区段中的授权规则完全实现。后者在使用Windows鉴别时来检查调用是否有足够的访问许可来访问请求的资源。在这种情况下,通过比较访问资源的控制列表(ACL)调用的标记来执行校验。在处理过程中,也可以用。NET roles来改变调用者的权限以便使用某个资源。

  授权规则由两部分独立的信息组成,它们定义了哪些是允许的那些事禁止的。在区段内,标记定义了允许的用户、任务和操作。相反,在标记中包含了不被允许的用户、任务和操作。

  你也许注意到鉴别模式只能在machine.config文件或在程序层的Web.config文件中设置,子目录继承了程序的鉴别模式。但是,授权设置可以在每个子目录的Web.config文件中设置。换句话说,授权比鉴别支持更细。

  基于角色的安全

  如果你需要鉴别用户,你同样需要为他们建立个性化的页面。这里有两大的选择:一是实现一个个人资料系统,为每个用户存储配置信息;二是定义一些角色,把用户映射到这些角色上。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章