Dreamweaver 限制访问的BUG

    一、步骤叙述:

    1、数据库文件mysite.mdb,其中两个表:admininfo(表示管理员的记录表)和memberinfo(普通用户的记录表)

    2、普通用户登陆页 login.asp ,添加服务器行为时候,选择基于用户名和密码的访问。即表示产生了 Session("MM_Username") (其值即为当前正确登陆的用户名)。因为此时为选择访问级别,所以代表访问级别的 Session("MM_UserAuthorization") = ""

    3、普通用户登陆成功页 personal.asp,服务器行为“限制对页访问”同样设置为用户名和密码的访问。实质是判断Session,即可实现“限制对页的访问”。

    以上2→3均能正常,接着就开始出现问题了。

    4、管理员登陆页 adminlogin.asp ,添加服务器行为时候,选择基于用户名、密码和访问级别的访问(当然这要求admininfo表中必须具有表示访问级别的字段)。生成Session("MM_Username") (其值即为当前正确登陆的管理员名),同时生成表示访问级别的Session("MM_UserAuthorization") = CStr(MM_rsUser.FIElds.Item(MM_fldUserAuthorization)。Value)

    5、管理员登陆正确页 admin.asp,很显然,服务器行为“限制对页访问”必须选择“用户名、密码和访问权限的访问”,级别的定义值即是admininfo表中表示访问级别字段的值。同样也能实现“限制对页的访问”。

    二、BUG来了

    1、普通用户登陆。

    2、正确登陆。

    3、将URL地址直接切换为“admin.asp”的地址。

    4、完全可访问。

    注:在admin.asp提取Session("MM_UserAuthorization") 是为空值,而当从adminlogin.asp正确登陆到adming.asp提取Session("MM_UserAuthorization") 值为数据库表中相应字段的值

    得出结论:代表权限的访问级别没有起效。Session("MM_UserAuthorization") 针对同一站点同一数据库不同表时——形同虚设!

    三、原理分析

    在管理员登陆成功页中,有如下代码是用来进行“限制对页访问的”

    '' *** Restrict Access To Page: Grant or deny access to this page MM_authorizedUsers="administrator" MM_authFailedURL="adminlogin.asp" MM_grantAccess=false If Session("MM_Username") <> "" Then If (false Or CStr(Session("MM_UserAuthorization"))="") Or _(InStr(1,MM_authorizedUsers,Session("MM_UserAuthorization"))>=1) Then MM_grantAccess = true End If

    If Session("MM_Username") <> "" Then

    如果表示用户的Session不为空,即可MM_grantAccess = true,当然,其中还有嵌套IF.

    If (false Or CStr(Session("MM_UserAuthorization"))="") Or (InStr(1,MM_authorizedUsers,Session("MM_UserAuthorization"))>=1) Then

    因为MM_authorizedUsers="administrator",这里的"administrator"是级别的定义值,即是admininfo表中表示访问级别字段的值

    所以,其只能限制admininfo表其他的访问级别(非administrator)的管理员的访问,而对于普通会员而言,

时间: 2024-09-19 20:32:10

Dreamweaver 限制访问的BUG的相关文章

Dreamweaver中限制访问的BUG

一.步骤叙述: 1.数据库文件mysite.mdb,其中两个表:admininfo(表示管理员的记录表)和memberinfo(普通用户的记录表) 2.普通用户登陆页 login.asp ,添加服务器行为时候,选择基于用户名和密码的访问.即表示产生了 Session("MM_Username") (其值即为当前正确登陆的用户名).因为此时为选择访问级别,所以代表访问级别的 Session("MM_UserAuthorization") = ""

magento1.4 -- 预编译(Compilation)开启后后台插件管理不能访问的bug

预编译(Compilation)功能在1.3时代就已经存在于Magento系统中,开启后能大幅提高Magento系统的运行速度.在1.4以前这个功能一直是beta版,到1.4终于把beta这个词去掉了,也就意味着这个功能已经成熟,但是经过我反复测试,在新安装完的干净系统中开启预编译(Compilation)后,后台插件管理(Magento Connect Manager)不能访问,报错信息如下: Fatal error: main() [function.require]: Failed ope

连续2周多次Hang,只因应用大量跨节点访问RAC数据库!

 一.故障现象某客户核心系统数据库工作日生产时间发现会话积压,存在大量异常等待事件,部分节点所有联机日志组全部处于Active状态,无法完成数据库检查点,数据库实例处于Hang住的状态.   第二周几乎相同时间发生同样的问题,但由于第一次已经提出预案,所以问题影响得到控制,同时采集到更多分析信息,最终彻底解决了该问题.   环境介绍: IBM Power8 E880 AIX 7.1  Oracle  4-nodes RAC(11.2.0.3.15)    二.故障预案第一次故障发生后,提出以下预

UNIX/Linux C 程序员需要掌握的七种武器

我是一名普通的软件工程师,不是什么技术大牛.这篇文章所提到的"七种武器"只是我这些年工作经验的一点体会和感悟,如果有错误的地方,还请大家指正. (一)C语言 作为一名C程序员,熟练掌握C语言是最基本的一项技能.关于如何学好C语言,以及C语言话题的讨论,网上有很多经典的文章,我就不一一列举了.在这里,我只想谈一点我个人的体会:刚毕业时,我来到一家比较大的软件公司工作,而公司的工作模式是每个人只负责一个小模块.这样工作两年后,我自认为我的C语言水平已经很高了.后来,我来到现在这家公司.由于

【开源App】Easyinstall for Android

项目开源地址:https://github.com/Ocean0227/easyinstall-android 一.EasyInstall 需求收集: 需求背景 需求内容 优先级 备注 当前进度 增加可以下载历史包的功能,不仅局限于下载最新包,还可以提供最新包之前2个历史包的下载功能. P0 已完成100% 提bug时时需要图片,手机截屏再传到电脑步骤繁琐.费时. 增加在APP上提bug的功能,直接将图片从手机传到bug提交页. P1 通过在手机上调用外部浏览器访问提bug页面,可以实现在APP

c++内存管理学习纲要

本系列文章,主要是学习c++内存管理这一块的学习笔记. 时间:6.7-21 之下以技术内幕的开头语,带入到学习C++内存管理的技术中吧: 内存管理是C++最令人切齿痛恨的问题,也是C++最有争议的问题,因此要想成为C++高手,内存管理一关是必须要过的! 笔记汇总: 1.C++内存管理学习笔记(1) 2.C++内存管理学习笔记(2) 3.C++内存管理学习笔记(3) 4.C++内存管理学习笔记(4) 5.C++内存管理学习笔记(5) 6.C++内存管理学习笔记(6) 7.C++内存管理学习笔记(7

从PayPal漏洞奖励计划页面 发现服务器远程代码执行漏洞 然而故事并没有结束

维卡斯的安全研究员夏尔马利用一个无限制的文件上传漏洞,在PayPal服务器上远程执行代码,也意味着他发现了一个远程代码执行漏洞. 专家从PayPal漏洞奖励计划页面 发现了服务器的漏洞 该专家正在利用Burp软件访问PayPal bug 赏金页的时候, 打开页面 http://paypal.com/bugbounty/跳出如下的响应页面. 专家将他的分析集中在 "内容安全策略:" 响应报头中提到的 paypal 域列表中, 特别是 "https://*. paypalcorp

开源SNS框架 ThinkOX 1.3.0 正式发布

经过一个月来的开发,ThinkOX终于迎来了1.3.0版.本次更新修复了1.2.0遗留的一些不稳定的因素,着重修正了核心tp框架升级为3.2.2之后的一些问题,包括后台部分页面无法访问的bug.将中国城市级联改为3级(此项改进可以解决省市区级联无法安装的问题). 群组升级到了高级版本,增加了动态和邀请好友功能,因为同事不小心打入了开源版,所以开源版中也有高级版的群组. 比较重要的调整是完善了后台补丁功能,优化了补丁机制,实现了补丁的分离,基于此,又实现了部分模块的安装和卸载(数据库部分),可以卸

SQL Server不存在或访问被拒绝 Windows里的一个bug

sql server 经常会出现如下错误:---------------------------SQL Server 企业管理器---------------------------由于如下所示的连接错误,SQL Server 注册失败.还要注册吗? SQL Server 不存在或访问被拒绝ConnectionOpen (Connect())--------------------------- 情况如下:A机子为sql server 2000     sp4