浅谈ASP.NET MVC应用程序的安全性

所属分类: 网络编程 / ASP.NET 阅读数: 2007
收藏 0 赞 0 分享

前言:保护Web应用程序的安全性看起来时间苦差事,这件必须要做的工作并不能带来太多的乐趣,但是为了回避尴尬的安全漏洞问题,程序的安全性通常还是不得不做的。

1.ASP.NET Web Forms开发人员

   (1)因为ASP.NET MVC不像ASP.NET Web Forms那样提供了很多自动保护机制来保护页面不受恶意用户的攻击,所以阅读本博客来了解这方面的问题,更明确的说法是:ASP.NET Web Forms致力于使应用程序免受攻击。例如:

    1)服务器组件对显示的值和特性进行HTML编码,以帮助阻止XSS攻击。

    2)加密和验证试图状态,从而帮助阻止篡改提交的表单。

    3)请求验证(%@page validaterequest=”true”%)截获看起来是恶意的数据并提出警告(这是MVC框架默认开启的保护)。

    4)事件验证帮助组织注入攻击和提交无效值。

   (2)转向ASP.NET MVC意味着这些问题的处理将落到程序员的肩上—对于某些人来说可能会引起恐慌,而对另一些人来说可能是一件好事。

   (3)如果认为框架”就应该处理这种事情”的话,那么确实有一种框架可以处理这一类事情,而且处理的很好,它就是asp.net web forms。然而,其代价就是失去了对asp.net web froms引入的抽象层次的一些控制。

   (4)ASP.NET MVC提供了对标记更多的控制,这意味着程序员要承担更多的责任,要明确的是,ASP.NET MVC提供了许多内置的保护机制(例如:默认利用HTML的辅助方法和Razor语法进行HTML编码以及请求验证等功能特性)。

2.ASP.NET MVC开发人员

   (1)对于存在安全风险的应用程序,主要的借口是开发人员缺乏足够的信息或者理解,我们想要改变这一局面,但是我们也意识到人无完人,总会有疏忽的时候。鉴于此,请记住下面的锦囊妙计。

    1)永远都不要相信用户提供的任何数据

    2)每当渲染作为用户输入而引入的数据时,请对其进行HTML编码(如果数据作为特性值显示,就应对其进行HTML特性编码)

    3)考虑好网站的那些部分允许匿名访问,那些部分要求认证访问。

    4)不要试图自己净化用户的HTML输入—否则将遭遇失败。

    5)在不需要通过客户端脚本访问cookie时,使用HTTP-only cookie。

    6)强烈建议使用AntiXss库(www.codeplex.com/AntiXSS)。

   (2)同时,应用程序的构建基于这样一个假设,即只有特定的用户才能执行某些操作,其他用户则不能执行这些操作。


  注解:后面将陆续介绍如何使用ASP.NET MVC中的安全特性来执行向授权这样的应用功能,然后介绍如何处理常见的安全威胁。

更多精彩内容其他人还在看

.NET Core源码解析配置文件及依赖注入

这篇文章我们设计了一些复杂的概念,因为要对ASP.NET Core的启动及运行原理、配置文件的加载过程进行分析,依赖注入,控制反转等概念的讲解等
收藏 0 赞 0 分享

.NET Corek中Git的常用命令及实战演练

这篇文章将通过故事的形式从Git的历史谈起,并讲述Git的强大之处。然后通过实战演练教你如何在Github以及码云上托管我们的代码并进行代码的版本控制
收藏 0 赞 0 分享

Asp.Net Core WebAPI使用Swagger时API隐藏和分组详解

这篇文章主要给大家介绍了关于Asp.Net Core WebAPI使用Swagger时API隐藏和分组的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Asp.Net Core具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
收藏 0 赞 0 分享

如何利用FluentMigrator实现数据库迁移

这篇文章主要给大家介绍了关于如何利用FluentMigrator实现数据库迁移的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
收藏 0 赞 0 分享

ASP.NET Core利用Jaeger实现分布式追踪详解

这篇文章主要给大家介绍了关于ASP.NET Core利用Jaeger实现分布式追踪的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用ASP.NET Core具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
收藏 0 赞 0 分享

浅谈从ASP.NET Core2.2到3.0你可能会遇到这些问题

这篇文章主要介绍了ASP.NET Core2.2到3.0可能会遇到的问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
收藏 0 赞 0 分享

详解.net core webapi 前后端开发分离后的配置和部署

这篇文章主要介绍了.net core webapi 前后端开发分离后的配置和部署,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
收藏 0 赞 0 分享

详解ASP.Net Core 中如何借助CSRedis实现一个安全高效的分布式锁

这篇文章主要介绍了ASP.Net Core 中如何借助CSRedis实现一个安全高效的分布式锁,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
收藏 0 赞 0 分享

.net 4.5部署到docker容器的完整步骤

这篇文章主要给大家介绍了关于.net 4.5部署到docker容器的完整步骤,文中通过示例代码介绍的非常详细,对大家学习或者使用.net4.5具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
收藏 0 赞 0 分享

.net core并发下线程安全问题详解

这篇文章主要给大家介绍了关于.net core并发下线程安全问题的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用.net core具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
收藏 0 赞 0 分享
查看更多