首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >ASP.NET MVC安全检查表

ASP.NET MVC安全检查表
EN

Stack Overflow用户
提问于 2010-02-02 20:20:54
回答 4查看 3.2K关注 0票数 20

有大量关于安全性设计和开发的优秀论文(甚至还有一大堆关于安全性的文章),但它们似乎都集中在你应该做什么( what you do )上。

然而,我所追求的是一份像黑客一样思考的清单。这是一个简单的操作列表,一旦你完成了开发,你就应该完成这些操作,以确保解决方案的安全性。

(更新:我最感兴趣的是黑盒检查列表-“转到页面,尝试这个和那个”之类的事情,但白盒检查列表可能也会感兴趣。)

这是我到目前为止想出的一些东西:

安全黑盒清单

  • 提交不正确/恶意的数据(此处为示例?)以确保通过客户端的sanitized
  • output验证和重复上述步骤来验证输入的类型、长度、格式和范围,以确保您不仅可以使用javascript进行检查,还可以在服务器端验证
  • 输入是否已在服务器上验证类型、长度、格式和范围

<代码>H115自由格式输入是使用<代码>D18和javascript编码的自由格式输入

为了确保您约束输入并通过GET执行边界提交POST操作,为了确保“

  • ”操作被限制为适用于http://www.example.com/foo?bar=HugeAmountOfData,上传大小/格式不正确的文件(巨大文件、空文件、具有重命名扩展名的可执行文件等)以确保上载得到处理,以便从UI检查?)确保使用绝对URL作为没有正确权限的用户访问该URL,以确保通过操作/控制器对提供不存在的详细信息(如不存在的产品it、您无权访问的项目等)的URL进行明确的权限测试,确保通过HTTP returned.
  • Access敏感页时出现正确的错误(404或403等),以确保它仅通过HTTPS可用。

安全白盒检查清单

Web层。

  • 在调试模式下,中断代码,使其抛出异常,以确保其安全地失败。确保捕获异常并记录详细消息,但不要将信息泄露给客户端。
  • 如果适用,请确保MVC操作仅限于POST/GET,特定用户角色,anything 确保POST操作带有[ValidateAntiForgeryToken]属性,以防止跨站点请求伪造攻击。
  • 确保Response.Write (直接或间接)从不用于显示用户输入。
  • 确保敏感数据不会在查询字符串或表单字段中传递。
  • 确保您的安全决策不依赖HTTP头信息。

服务层。

  • 在调试模式下,中断代码,使其抛出异常,以确保其安全地失败。确保捕获异常并记录详细消息,但不要将更新数据库中的任何内容时在transaction.

中操作的信息泄露给client.

  • Ensure

数据库层。

  • 确保检索存储过程不使用SELECT *,但始终指定更新/删除存储过程在事务内操作的列的列表(通过@@TRANCOUNT等),并显式地提交/回滚它。

评论?更正?缺少步骤?

让它成为一个社区维基,你想怎么编辑就怎么编辑。

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2183890

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档