使用新技术时的安全问题

Gav*_*vin 17 .net asp.net security asp.net-mvc

您是否发现当您使用新技术时,您无法确定您的代码中存在哪些安全漏洞?

我已经使用ASP.Net Web Forms大约5年了,我相信我的代码至少足够安全,可以阻止大多数已知的攻击.回首我的很多早期的代码,我不知不觉留下的空白了很多安全领域尤其是查询字符串和视图状态的,但我觉得随着时间的推移我学会了什么的漏洞都存在,并确保我没有再犯同样的错误.

但是我最近在ASP.Net MVC中开始了一个新项目,我真的不知道我要打开哪些安全漏洞.仅仅这个原因几乎让我不顾一切.我现在正在疯狂地读它,但我确信我没有学到足够的东西来使它像Web Forms一样安全.你们做了什么来确保你不让自己受到攻击?

编辑:将Bounty视为好奇,看看是否还有其他意见

小智 13

这是一个非常困难的问题,可能没有很好的答案.但是,在使用新技术时,您可以采取一些措施来增加保护自己安全的可能性.

  1. 请记住以下几点:有三种类型的漏洞.那些是独一无二的你正在使用(如Ruby on Rails的公共控制器问题)的框架下,那些是唯一的应用程序,你构建类型(例如Web应用程序不必担心XSS),和那些是唯一的应用程序特别是.
  2. 确定您使用的新技术如何减轻应用程序类型的安全漏洞.例如,ASP.Net MVC如何缓解XSS?它如何缓解SQL注入?如果文档中没有答案,那么请弄清楚如何解决这些常见的漏洞类别.此外,暂停,因为如果框架没有缓解这些问题,那么框架开发人员可能没有优先考虑安全性,也可能没有编写非常强大的框架.
  3. 弄清楚为什么需要安全性以及您要保护的内容.例如:在查看敏感数据之前,您的应用程序是否需要授权?如果是,请确定框架为授权提供的功能.
  4. 在文档中查找安全性部分.通常已知问题已记录在案,但人们非常关注如何解决他们的问题,而他们并不寻求解决问题.
  5. 防御性地编码,并了解用户输入的使用方式.慷慨地定义什么是用户输入.例如,querystring或post字段很明显,但在许多MVC框架中,URL指示运行的代码(例如,参见Ruby Routes漏洞).非常了解数据的处理方式
  6. 压力测试您的业务逻辑并找出它可能被滥用的方式.

简而言之:仔细处理用户输入,阅读现有文档,确定所需的安全性,并弄清楚框架如何减轻常见的漏洞类别.意识到安全是一个优先事项,关注是战斗的50%.