ASP.NET安全问题--创建安全的Web应用程序

把一个问题说清楚,是要有前提的,也要大家有一些通过的词汇,就像大家谈OO,就知道谈的面向对象,以及面向对象的一些特征;懂设计模式的,一听到"观察者",就立马知道什么意思。

一.下面看看安全的一些概念:

首先,我们来看看什么是安全性?

我们常常提起“实现安全性”“创建安全的系统”。所以安全性一般是定义很多,如:安全性就是保证系统可以完全按照我们想要的方式运行;安全性就是防止以我们不希望的方式运行系统...定义很多,但是不知道大家有没有发现,我们理解的安全的定义很狭窄的。怎么说?我们一般认为安全就是这样的:采取一定的措施(主要是编程代码的措施)处理程序运行时的意外,或者防止意外发生。但是安全的问题不仅仅只是代码的问题,所以在安全编程方面,我们要考虑的更多。

什么是安全

我们不能保证一个系统绝对的安全,不可能做到100%的安全。安全的定义的受到很多的限制,首先我们来看看一个例子。

我们都用过银行的ATM机,如果有人捡到了我们的卡想要盗取我们的钱,那么他只有猜我们的密码。如果密码的长度只有一位数,那么捡卡人第一次猜对的概率就是1/10,他只要十次就可以盗取我们的钱(假设可以不限次数的猜),那么系统的安全行很差;如果密码是2位,那么密码就有100中可能,那么捡卡人第一次才对的几率就是1/100,第二次就是1/99,第三次1/98...系统的安全行也很差.

如果把密码的尝试限制在3次,如果密码为2位数,那么密码被猜出的几率就大大的减小了:

第一次猜中的几率就是1/100

第二次猜中(第一次没有中)的几率就是(99/100) * (1/99)=0.01

第三次猜中(前两次不中)的几率就是(99/100)*(98/99)*(1/98)=0.01

三次之内猜中的几率就是:0.01+1.01+0.01=0.03

所以,当我们限制了尝试的次数的时候,系统就比之前安全了一些,但是系统还并不是很安全,只能说比之前稍微的好了点,但是风险依然很大。

为了使得系统更加的安全,就要减小系统的密码被猜出的可能行,我们可以从两个方面着手:

1.使得密码尝试的次数减小,如用户只能输入一次密码;

2.加大密码的位数,如6位。这样密码被猜出的几率就更加的小了,风险也小了很多,系统的安全行就又提高了。所以,我们常说安全不安全的,都只是一个相对的概念。说了这么多,就是要说一点:不要把安全看死了,安全不安全要看我们的环境。

在谈后面的话题之前,让我们来共享一些术语:

脆弱性是系统的一个特征,它可能会使得应用系统不安全按照我们预想的方式运行。一般表示系统不好的特征。

威胁就是指利用错人性破环系统安全的可能行。

利用就是利用脆弱行的方法。

总结一句话就是:脆弱行导致了威胁,利用则实现了威胁,简言之,攻击。

二、Web应用中的安全问题

首先我们就看看对Web的攻击。攻击有很多种的,其中一部分可以使用ASP.NET代码进行防范的,但是其他的攻击方式还是可以产生破坏的,如直接攻击服务器。下面就来看典型的例子。

我们之前说过,攻击就是利用系统的脆弱性以实现一定的威胁。攻击的结果也很多,如:

未经授权的访问--用户获取了更多的权限,从而可以将应用程序用于其他的途径,如果获取了网站的管理员的密码,散布政治言论。

代码执行--在目标系统上运行恶意代码,而且还会导致其他的威胁,如木马。

拒绝服务--合法用户被禁止访问应用程序

信息失窃--机密的信息被盗取

破坏信息--信息遭到修改。如,站点被涂改,发布攻击性的消息和政治言论。

下面我们就来看看常见的一些脆弱性,以及对它们的利用,以及引起的威胁。

时间: 2024-10-29 01:04:37

ASP.NET安全问题--创建安全的Web应用程序的相关文章

如何使用NetBeans IDE创建简单的Web应用程序

本文档将向您介绍有关使用 NetBeans IDE 开发 Web 应用程序的基础知识.它将演示如何创建简单的 Web 应用程序,如何将该应用程序部署到服务器,以及如何在浏览器中查看该应用程序的表现形式.该应用程序采用一个 JavaServer Pages (JSP) 页来要求您输入自己的姓名.然后,使用 JavaBeans 组件在 HTTP 会话期间保留该姓名,并检索该姓名以输出到第二个 JSP 页上. 要学习本教程,您需要具备以下软件和资源. 软件或资源 要求的版本 NetBeans IDE

在ASP.NET中创建安全的web站点

asp.net|web|安全|创建|站点 首先,介绍一下web.config文件. <?xml version="1.0" encoding="utf-8" ?> <configuration> <system.web> <!-- 动态调试编译 设置 compilation debug="true" 以将调试符号(.pdb 信息) 插入到编译页中.因为这将创建执行起来 较慢的大文件,所以应该只在调试时将该

在ASP.NET中创建安全的web站点(配置)

asp.net|web|安全|创建|站点 以前用ASP,PHP,JSP编写网站代码的时候,站点安全性总是一件头疼的事情,虽然我们编写了用户登录,注册,验证页面,但是效果总是不理想.有时候我们不得不用大量的session变量来存放相关信息,处处设防.而在.NET环境下,这个问题处理起来就非常容易了.关键是要充分理解web.config文件.首先,介绍一下web.config文件. <?xml version="1.0" encoding="utf-8" ?>

MVC 5 第一章 创建MVC 5 web应用程序_实用技巧

1. MVC 5 应用程序环境配置(参考本人机器配置)     Win7 x64 Enterprise     Visual Studio Express 2013 for Web or Visual Studio 2013 2. 创建一个简单的MVC 5应用程序    启动VS2013(以Administrator权限,防止权限访问错误) 点击File->New->Project创建Web Project 选择Web项目模板,点击ASP.NET Web Application,输入项目名称及

NetBeans IDE 6.8/6.9教程-使用MySQL数据库创建简单的Web应用程序

本文档描述了如何创建用于连接 MySQL 数据库服务器的简单 Web 应用程序.还讲述了 Web 开发中的 一些基本概念和技术,例如 JavaServer Pages (JSP).JavaServer Pages 标准标记库 (JavaServer Pages Standard Tag Library, JSTL).Java 数据库连接 (Java Database Connectivity, JDBC) API 和 两层的客户端-服务器体系结构.本教程是为对 Web 开发有基本了解并且期望使用

c#+asp.net+mapxtreme 2005在运行web示例程序时怎么总是出现“COM+ 激活失败”这样的错误是怎么回事啊,高手指点啊!!!

问题描述 c#+asp.net+mapxtreme2005在运行web示例程序时怎么总是出现"COM+激活失败"这样的错误是怎么回事啊,高手指点啊!!!

在windows上使用asp.net core创建 Razor 页面 Web 应用

安装以下组件: .NET Core 2.0.0 SDK 或更高版本. 已安装 ASP.NET 和 Web 开发工作负载的 Visual Studio 2017 15.3 版或更高版本. 1.添加数据模型 在解决方案资源管理器中,右键单击"RazorPagesMovie"项目 >"添加" > "新建文件夹". 将文件夹命名为"Models". 右键单击"Models"文件夹. 选择"添加

在ASP中利用COM组件开发Web应用程序

web|程序|组件开发 如果你是一名Active Server Page (ASP) 开发者,相信你可能经常使用COM对象来创建ASP页面.甚至在你使用中都忽略了他就是COM对象.比如:ADO.只个调用率最高的组件已让你的页面扩展了无限的功能.然而ASP本身是解释型脚本,在功能上不足COM强大.作为拥有快速开发,易用性强,支持COM的VB自然的作为了ASP中开发COM的首要工具.下面的示范和描述中,通过Visual Basic 语言在告诉大家如何写COM及COM对象模型的使用,相信会让你有所收获

创建移动Web应用程序

介绍 现今移动设备已成为我们生活中的一部分,我们当中的许多人已离不开它们.当这些移动设备连接到Internet时,移动设备的力量将无穷无尽.我们可以在任何时间地点给用户发送数据.典型的移动应用程序是在服务器上使用WML, WMLScript和WBMP开发的. 对于动态WML应用程序,开发者可以使用ASP, JSP, PHP等等.移动设备包括蜂窝电话.寻呼机.掌中浏览器.袖珍PC和车载PC.这些设备中少数支持WML,少数支持HTML,更少数支持同时支持WML和HTML.如果你想确保你的应用程序能在