关于web应用程序安全的思考(五):一切皆URL

先总结一下web应用程序安全管控的要点﹕

1.在每次客户端请求(Request)时进行安全管控(原因和作法请参考思考2)

2.安全管控分为认证和授权(二者完全分离﹐单独实现﹐参考思考2的代码示例)

3.认证即识别请求者是谁(提取用户标识或匿名登录)(作法简单﹐一般采用Session或Cookie实现)

4.授权即判断用户是否有被请求的资源(URL)的权限(本篇解释)

5.如果没有权限就转入无权处理过程,由它视相关的情形向用户报错(如aspx和asmx的报错过程应该不 一样)。

要判断用户是否有被请求的资源的权限﹐首先就要知道用户请求的是什么资源。所以我将资源进行抽 象﹐并且称它为URL。URL预设有3种形式﹐分别是﹕

1.Request.Path,这是最基本的形式。如:a.aspx , b/b.aspx , ajax/c.ashx

2.带QueryString的Request.Path﹐这种形式增大了权限管控组件的适应性和灵活性(可参考上一篇的 例子)。如 d.aspx?kind=1 , c/e.aspx?ismanage=Y

3.只到某个目录的Request.Path﹐这种形式方便了某些权限简单的系统使用。如 f/ , g/h/

怎样建立URL呢?

对每个系统功能﹐列出实现这个功能必须要访问哪些程序。如实现”系统管理”包括manage目录下的 所有程序﹐还包括common/listuser.aspx程序﹐还包括adduser.aspx?kind=1这支程序(adduser.aspx? kind=2属于”用户管理”功能)﹐这样建立三笔URL的数据。

时间: 2024-09-10 19:41:40

关于web应用程序安全的思考(五):一切皆URL的相关文章

关于web应用程序安全的思考(二)

我想在我提出使用URL进行安全管控作为我的web应用程序安全的基础,一定有很多网友的不解,所以 就先解释一下这个问题吧. 使用URL进行权限管控的意思是: 1.在上篇中我说过,web应用程序的本质其实就是Request.所以要让您的web应用程序安全,最直接最 有效的手段就是让每一次Request都置于你的管控范围之内.这就好比您的web应用程式是一个大型游乐场 ,而您的安全模组就是这个游乐场的入口检票处.这样凡是要进行您的游乐场的人员,必须都已经通过了 您的资格认定了,在web应用程序中它们是

关于web应用程序安全的思考(一)

在关于web应用程序安全的思考(序)中我曾提到﹕web应用程序的安全不应该依赖于客户端的请求信息 . 众所周知﹐http协议是开放的﹐因此谁都能向网络上公开的web服务器发送request请求﹐要求一个 URL(Uniform Resource Locator 统一资源定位符). 所谓request﹐不过是符合http协议(即遵守http请求语法)的一大段字符串而已﹕ 下面是一个aspx的请求示例﹕ GET /FrameWorkService/TestRequest.aspx HTTP/1.1

关于web应用程序安全的思考(序)

曾经在一家公司短暂的几天工作中有过这样的经历.上班的第一天﹐同组做web的一位同事帮我开了一 个账号﹐要我上公司的管理系统看一下公司的规章制度. 百无聊赖的看完后﹐随便点了一下左边的"员工基本信息查询"菜单﹐页面的数据显示区域 显示"您无权限查看此页"﹐本想退出﹐但发现页面的查询条件输入区域存在﹐而且查询按钮只 是灰掉而已﹐在查看原始码后﹐抱着试一下的心态﹐我在浏览器的地址栏输入一句js脚本 (javascript:alert(document.all['query

关于Web应用程序安全的思考(三)

应用程序的安全管控包括管控的时机和方法两个方面﹐即在哪里或什么时候进行管控﹐和使用什么依 据进行权限管控. 在前几篇中﹐我提到在web应用程序进行安全管控的时机是在每次Request到达真正的应用程序之前进 行﹐现在在总结一下其特点﹕ 1.这种方式不会出现未管控的死角(每次请求都会进行﹐每次动作都会经过验证)﹐并且抽象出web应用 程序的本质(所有的服务器端程序都是在客户端request后)﹐这样也就可以与业务系统解耦﹐单独设计了 . 2.在每次执行前就进行权限管控应该更安全﹐因为用户在没有授权

关于web应用程序安全的思考(四):一种全新的权限管控思想

我以一个实际的小型订单管理系统为例来实现这种权限设计方案﹐也欢迎大家能提出自己的权限设计 方案来对比﹕ 某某公司在线订单管理系统的用户需求说明书﹕ 1.要求系统实现﹕下单﹐订单维护(包括修改和删除订单)﹐订单审核﹐收款﹐发货﹐各种单据的查询 和报表功能. 2.只有注册用户才可以下单 3.用户可以修改和删除他自己的未审核订单 4.管理员可以删除未审核的所有订单 5.销售经理进行订单审核﹐但只可审核其所在区域的订单﹐管理员可以审核所有区域的订单 6.财务部门可以进行订单收款确认动作 7.仓库管理者在

开发下一代的Web应用程序的五个步骤

中介交易 SEO诊断 淘宝客 云主机 技术大厅 随着网络的诞生及其重要性在90年代的提高,网络迅速改变了世界连接.沟通和 获取知识的方式.网络在对社会的各个方面产生重要的影响的同时对企业也产生了重大影响. 然而,正当企业终于适应了Web 2.0技术的时候,Web又开始向前发展了.下一代Web应用程序是以动态.互动.开放和高度灵活为特征的,不仅超越了经典的Web应用程序的功能,而且还超过了桌面应用程序的功能. 简言之,下一代Web应用程序将使我们更接近于把未来的Web当作一个操作系统.现在是企业为

Web应用程序的开发步骤

如今已进入了web2.0高速发展的互联网时代,各种互联网的Web应用程序如雨后春笋般出现.那么作为一名Web开发人员,怎样去开发一款优秀的Web应用程序呢?这个问题没有一个简单的答案,甚至那些教育机构都未必能清楚的知道.所以,像大多数在这个领域里的web开发人员一样,我们只是通过去做,去实验才学会了这些.没有人告诉我们如何去做,我们从给自己做点什么东西开始,学会如何开发web应用程序是在这个过程中的一个副产品.这是学习任何语言的一个非常有效的方法. Web应用程序与网站之间的区别 首先,我要说明

商务Web应用程序的界面设计

商务Web应用程序的界面设计 商务Web应用程序的设计常常被人们所忽视.我看到许多程序,它们既不符合商业目标,也不满足用户需求,它们有很差的用户体验,并造成了商业利润的损失.更夸张的是,有些设计师根本没有参与整个程序的开发流程,而是把全部职责都推给了开发人员. 对于擅长前端和后台技术的工程师来说,他们缺乏设计能力,很难完成这项艰巨的任务.不满意的消费者.沮丧的用户,以及失败的项目,也就自然而然地出现了. 接下来,我们将介绍"商务Web应用程序"界面设计的基础知识.一般来说,人们可以提供

用AJAX开发智能Web应用程序之基础篇

一. 什么是AJAX? 这个名字代表了异步javascript+XMLHTTPRequest,并且意味着你可以在基于浏览器的javascript和服务器之间建立套接字通讯.其实AJAX并不是一种新技术,而是已经成功地用于现代浏览器中的若干成功技术的可能性组合.所有的AJAX应用程序实现了一种"丰富的"UI--这是通过javascript操作HTML文档对象模型并且经由XMLHttpRequest实现的精确定位的数据检索来实现的.典型的示例AJAX应用程序是Google Labs(htt