浏览网站时,有的时候,会告诉你,无权进入一些页面。例如:一些技术性的论坛,刚进去的时候,只能看看贴子,并且只能在一定的区域看,不能 发贴等。做电子商务时,电子商务的后台是一个比较大的系统,不同的人进去会看到不同的页面,如果能看到同一个页面,也许允许的操作也不一样,这些机制是怎 么实现的呢。下面就个人愚见分析几种情况 一,简单session控制 实现原理和方法: 用户登录后台,输入用户名和密码,对用户的用户名和密码进行验证,验证通过后,可以把用户的一些基本信息放到session里面当用户访问后台的其他页面时,去判断一下session是否存在,并且没有过期。不过,后台管理员权限一样,没有区分 1,后台页面共用的基本类,我们可以在基本类的里加以判断,或者在基本类外面在extends一层,加以判断,去check一下session。 2,直接重写一个check_login.php每个后台页面都包涵这个页面,通过这个页面加以判断,check一下session。 二,菜单控制…
April 29, 2015
解决URL出现%E2%80%8E(Zero-Width Space)
当URL出现%E2%80%8E
就代表你的URL里面有包含一个ZERO-WIDTH SPACE (ZWSP)
这个是肉眼无法发现的空白,有时候你会觉得明明已经按下→
了,却怎么游标还在原地,没有移动到下一个字元去
这种时候就代表这两个字元中间有一个ZWSP的存在
ZWSP一般情况是打不出来的,但是如果你是透过WORD等等的文件编辑器复制贴上的
就很有可能含有ZWSP,一般情况下ZWSP并不影响阅读
但是当它变成URL的一部分,就会变成%E2%80%8E
,使你的URL错误
这都还算是好发现且好解决的
要是当他要拿来当hash的值做验证,如同下面这样
if(sha1($password)!== sha1($_POST['password'])){ // no permission }
就会发现密码看起来一样,可是却怎么也过不了的鬼打墙…
查起来很痛苦的…
可以透过下面的程式码过滤掉
// remove zero width space $value = str_replace("xe2x80x8b", '', $value); $value = str_replace("xe2x80x8c", '', $value); $value = str_replace("xe2x80x8d", '', $value);
参考资料: