您的位置:首页技术开发.Net 专栏 → 利用ASP.NET内置功能抵御Web攻击

利用ASP.NET内置功能抵御Web攻击

时间:2009/1/13 12:03:00来源:本站整理作者:我要评论(0)

一、ASP.NET 开发人员应当始终坚持的做法

  如果您正在阅读本文,可能就不需要再向您灌输 Web 应用程序中的安全性愈来愈重要这一事实了。您需要的可能是一些有关如何在 ASP.NET 应用程序中实现安全性的实际建议。坏消息是,没有任何开发平台 — 包括 ASP.NET在内 — 能够保证一旦采用了该平台,您就能够编写百分百安全的代码。谁要是这么说,一准在撒谎。好消息是,就 ASP.NET 来说,ASP.NET,特别是版本 1.1 和即将发行的版本 2.0,集成了一些便于使用的内置防御屏障。

  光是应用所有这些功能并不足以保护 Web 应用程序,使其免受任何可能和可预见的攻击。但是,如果与其他防御技巧和安全策略相结合,内置的 ASP.NET 功能将可以构成一个强大的工具包,有助于确保应用程序在安全的环境中运行。

  Web 安全性是各种因素的总和,是一种范围远超单个应用程序的策略的结果,这种策略涉及数据库管理、网路配置,以及社会工程和 phishing.本文的目的在于说明 ASP.NET 开发人员为了将安全标准保持到合理的高度,所应始终坚持的做法。这也就是安全性最主要的内容:保持警惕,永不完全放松,让坏人越来越难以发起黑客攻击。

  下面我们来看看 ASP.NET 提供了哪些可以简化这项工作的功能。

  二、威胁的来源

  列表中显现出来的关键性事实有哪些?在我看来,起码有以下三点:1。无论您何时将何种用户输入插入浏览器的标记中,您都潜在地将自己暴露在了代码注入攻击(任何 SQL 注入和 XSS 变种)之下。

  2。 必须以安全的方式实现数据库访问,就是说,应当为数据库使用尽可能少的权限,并通过角色来划分各个用户的职责。

  3。永远都不通过网络发送敏感数据(更别说是明文了),并且必须以安全的方式将敏感数据存储在服务器上。

  有意思的是,上面的三点分别针对的是 Web 安全性的三个不同方面,而这三个方面结合起来,才是唯一的一种生成防攻击、防篡改应用程序的合理方式。Web 安全性的各个层面可以总结如下:1。编码实践:数据验证、类型和缓冲区长度检查,防篡改措施2。数据访问策略:使用决策来保护可能最弱的帐户,使用存储过程或者至少是参数化的命令。

  3。有效的存储和管理:不将关键性数据发送到客户端,使用哈希代码来检测操作,对用户进行身份验证并保护标识,应用严格的密码策略如您所看到的,只有可以通过开发人员、架构师和管理员的共同努力,才可以产生安全的应用程序。请不要假定您能够以其他方式达到同样目的。

  编写 ASP.NET 应用程序时,您并不是独自面对黑客大军:唯一的武器是通过自己的大脑、技能和手指键入的代码行。ASP.NET 1.1 和更高版本都会施加援手,它们具有一些特定的功能,可以自动提高防御以上列出的某些威胁的屏障。下面我们对它们进行详细的检视。

三、ViewStateUserKey

  从 ASP.NET 1.1 开始引入,ViewStateUserKey 是 Page 类的一个字符串属性,只有很少数开发人员真正熟悉该属性。为什么呢?让我们看看文档中是怎么说的。

  在与当前页相关联的视图状态变量中将一个标识符分配给单个用户除了有些累赘,这个句子的意思相当清楚;但是,您能老老实实地告诉我,它说明了该属性原本的用途吗?要理解 ViewStateUserKey 的角色,您需要继续往下读,直到 Remarks 部分。

  该属性有助于防止一次单击攻击,因为它提供了附加的输入以创建防止视图状态被篡改的哈希值。换句话说,ViewStateUserKey 使得黑客使用客户端视图状态的内容来准备针对站点的恶意张贴困难了许多。可以为该属性分配任何非空的字符串,但最好是会话 ID 或用户的 ID.为了更好地理解这个属性的重要性,下面我们简短介绍一下一次单击攻击的基本知识。

  一次单击攻击包括将恶意的 HTTP 表单张贴到已知的、易受攻击的 Web 站点。之所以称为“一次单击”,是因为它通常是以受害者不经意的单击通过电子邮件发送的或者在拥挤的论坛中浏览时发现的诱惑性链接而开始的。通过点击该链接,用户无意中触发了一个远程进程,最终导致将恶意的提交到一个站点。大家都坦白些吧:您真能告诉我,您从未因为好奇而单击过 Click here to win $1,000,000 这样的链接吗?显然,并没有什么糟糕的事情发生在您身上。让我们假定的确是这样的;您能说 Web 社区中的所有其他人都幸免于难了吗?谁知道呢。

要想成功,一次单击攻击需要特定的背景条件:

  1。攻击者必须充分了解该有漏洞的站点。这是可能的,因为攻击者可以“勤奋地”研究该文件,或者他/她是一位愤怒的内部人员(例如,被解雇而又不诚实的雇员)。因此,这种攻击的后果可能是极其严重的。

  2。站点必须是使用 Cookie(如果是持续性 Cookie,效果更好)来实现单次登录,而攻击者曾经收到过有效的身份验证 cookie.3。该站点的某些用户进行了敏感的事务。

  4。攻击者必须能够访问目标页。

  前已提及,攻击包括将恶意的 HTTP 表单提交到等待表单的页。可以推知,该页将使用张贴来的数据执行某些敏感操作。可想而知,攻击者清楚地了解如何使用各个域,并可以想出一些虚假的值来达到他的目的。这通常是目标特定的攻击,而且由于它所建立的三角关系,很难追本溯源 — 即黑客诱使受害者单击

相关视频

    没有数据

相关阅读 iPhone数据迁移怎么用 iOS 12.4数据迁移功能使用教程iqoo neo和iqoo哪个好 iqoo neo和iqoo对比一览iqoo neo手机发布会直播地址 iqoo neo发布会直播网址怪物猎人世界冰原iceborne多少钱 怪物猎人世界冰原iceborne收费价如何利用共享体重秤进行公众号推广全境封锁2easy anti cheat错误解决方法Genesis激活码怎么申请 Genesis创世争霸激活码获得方法dnfSPTP改版内容介绍2019 dnfSPTP技能改版详情

文章评论
发表评论

热门文章 没有查询到任何记录。

最新文章 什么是.NET中的TDD?ASP.NET AJAX入门简介 WebMatrix入门教程VC++2008中如何调用GetOpenFileName打开文件PlaySound函数在VC++6.0中如何播放音乐及声请问VC++回调函数怎么用

人气排行 嵌入式实时操作系统VxWorks入门教程ArrayList 与 string、string[] 的转换C#遍历整个文件夹及子目录的文件代码WebMatrix入门教程asp.net判断文件或文件夹是否存在c#判断数据NULL值的方法vc++6.0怎么写Windows简单窗口代码.net解决数据导出excel时的格式问题