如果用户手动输入不该进入的网址怎么办?

我才jayspaceship 2015-05-28 12:44:44
以前呢,我都是在页面的头部判断SESSION的值,判断是否登录了或者身份对不对,对的话就继续,不对就退回到登录界面。

有些页面是用URL传值的,比如某些信息的修改页面,代码里面get这个url传来的id值,然后判断数据库里存在该记录,并且身份对了就可以修改了。不行的话就提示用户不要随意修改url的值。

但是这个方法我觉得好蠢,而且当页面限制条件多了,会非常的麻烦,前一页判断了后一页还要判断。




求教大神们有没有什么办法,更加方便的办法呢?

我想到的是,或者有没有办法可以判断该页面是由前一页点击而来的,还是用户手动输入网址而来的,如果是手动输入的就弹出提示。但是又不知道该怎么实现。求高人指点!

...全文
599 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
baidu_23389247 2015-06-04
  • 打赏
  • 举报
回复
<?php if($_SESSION['last_page']==$_SERVER['HTTP_REFERER']){ $_SESSION['last_page']==$_SERVER['HTTP_REFERER']; //继续页面处理 } else{ // 出错处理 }
我才jayspaceship 2015-06-03
  • 打赏
  • 举报
回复
引用 1 楼 lijpwsw 的回复:
一个是根据session判断用户身份 另外一个是发现用户输入的url不存在就直接404 没啥特别难的啊 【或者有没有办法可以判断该页面是由前一页点击而来的】 这个可以通过http_referer判断,不过这个是可以伪造的 用户手动输入的url如果是合法的,其实和正常跳转没啥区别的 只是http_referer没有而已
http_referer可以伪造,所以判断这个不是很科学,是这个意思吗?
JPF1024 2015-06-03
  • 打赏
  • 举报
回复
引用 11 楼 u011987346 的回复:
[quote=引用 2 楼 dcxy0 的回复:] 建议的是,大部分url都走后台跳转,这样就完全杜绝你说的这个情况了。
URL走后台跳转是什么意思?[/quote] 像Spring里面的action一样,如果符合权限要求就跳转,不然就不跳转。
我才jayspaceship 2015-06-03
  • 打赏
  • 举报
回复
引用 2 楼 dcxy0 的回复:
建议的是,大部分url都走后台跳转,这样就完全杜绝你说的这个情况了。
URL走后台跳转是什么意思?
青鬆下的坚躯 2015-06-02
  • 打赏
  • 举报
回复
[或者有没有办法可以判断该页面是由前一页点击而来的] 在显示“前一页”的时候(应该是一个form表单吧),php可以生成一个token(session里存一份),然后作为隐藏input放到form里,提交的时候验证token,不一样就不是前一页提交的。
  • 打赏
  • 举报
回复
引用 8 楼 junior5 的回复:

<?php

if($_SESSION['last_page']==$_SERVER['HTTP_REFERER']){
$_SESSION['last_page']==$_SERVER['HTTP_REFERER'];
//继续页面处理
}
else{
// 出错处理
}





可以参考下


<?php

if($_SESSION['last_page']==$_SERVER['HTTP_REFERER']){
$_SESSION['last_page']=$_SERVER['HTTP_REFERER'];
//继续页面处理
}
else{
// 出错处理
}



[/code]
  • 打赏
  • 举报
回复

<?php

if($_SESSION['last_page']==$_SERVER['HTTP_REFERER']){
$_SESSION['last_page']==$_SERVER['HTTP_REFERER'];
//继续页面处理
}
else{
// 出错处理
}





可以参考下
bear63 2015-05-31
  • 打赏
  • 举报
回复
引用 楼主 u011987346 的回复:
以前呢,我都是在页面的头部判断SESSION的值,判断是否登录了或者身份对不对,对的话就继续,不对就退回到登录界面。 有些页面是用URL传值的,比如某些信息的修改页面,代码里面get这个url传来的id值,然后判断数据库里存在该记录,并且身份对了就可以修改了。不行的话就提示用户不要随意修改url的值。 但是这个方法我觉得好蠢,而且当页面限制条件多了,会非常的麻烦,前一页判断了后一页还要判断。 求教大神们有没有什么办法,更加方便的办法呢? 我想到的是,或者有没有办法可以判断该页面是由前一页点击而来的,还是用户手动输入网址而来的,如果是手动输入的就弹出提示。但是又不知道该怎么实现。求高人指点!
我也是用这样的方法啊,感觉不错,容易使用,方便。 适合自己就好了。 把所有需要判断的的做一个php页面,用 include 它不就行了?这样就不用一个一个去设置了。
傲雪星枫 2015-05-30
  • 打赏
  • 举报
回复
有些页面是用URL传值的,比如某些信息的修改页面,代码里面get这个url传来的id值,然后判断数据库里存在该记录,并且身份对了就可以修改了。不行的话就提示用户不要随意修改url的值。 这个方法很正常,也很好。而且是必须要判断的。
Suckor 2015-05-29
  • 打赏
  • 举报
回复
url传值都是不可信的,所以传参的有效性判断是必须的, 【或者有没有办法可以判断该页面是由前一页点击而来的】 这个想法有些不可学,当你的url是有效的 难道你还不允许访问么?
盜令玊 2015-05-29
  • 打赏
  • 举报
回复
请参阅面向对象中的继承
connect_ 2015-05-29
  • 打赏
  • 举报
回复
get 不可信啊
JPF1024 2015-05-28
  • 打赏
  • 举报
回复
建议的是,大部分url都走后台跳转,这样就完全杜绝你说的这个情况了。
lijpwsw 2015-05-28
  • 打赏
  • 举报
回复
一个是根据session判断用户身份 另外一个是发现用户输入的url不存在就直接404 没啥特别难的啊 【或者有没有办法可以判断该页面是由前一页点击而来的】 这个可以通过http_referer判断,不过这个是可以伪造的 用户手动输入的url如果是合法的,其实和正常跳转没啥区别的 只是http_referer没有而已

21,895

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧