java web系统防越权,就是可以直接在地址栏输入打开没有授权的页面。或者一个网站的所有链接如何爬取,并保存跳转的关系

发布于 2021-12-03 16:02:49 字数 429 浏览 766 评论 7

大家好,我说一下问题和我的想法。 这是运行5年的系统了,只兼容IE,几乎不能通过重构来实现,所以写个过滤器filter应该是最简单的方案。 因为数据库只描了菜单界面(通过菜单打开的界面)的权限,所以可以直接判断。剩余的权限界面(通过按钮打开的界面)没有描权限,所以现在资源只能解决一部分问题。 我开始想各种办法来实现剩下的,最开始想的是判断referer,如果没有就是通过地址栏打开的,但是测试一下发现js的函数window.open打开的界面都没有referer,这个方案不行。 我想的另一个方案就是把整个系统爬一遍,找到权限界面对应的菜单界面进行权限判断。 所以我想问的有三点 1.这种爬虫怎么写,因为系统中的跳转都是通过按钮实现的不是通过链接,我没有接触过爬虫的编写(只干过用httpclient下载百度所有的首页图片),网上也没有找到很合适的。 2.有什么更好的方法来实现这种防越权吗? 3.有什么方便的办法让所有通过按钮的请求都带referer也行

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(7

掩饰不了的爱 2021-12-04 16:28:31

我们也有权限表,只是菜单界面的,剩下7300个权限界面(通过按钮打开的界面)没有权限,手动干工作量有点大啊,所以我想用爬虫,自动化的从头跑一遍,找到权限界面对应的菜单界面,有了这个对应关系,就能通过菜单界面的权限进行判断

清风夜微凉 2021-12-04 16:27:43

或者有更好的办法进行判断

月牙弯弯 2021-12-04 16:26:20

引用来自“吹尽狂沙”的评论

我是java web初学者,不知道方法是否合适。我用过设置session的方法,把用户名通过session在页面之间传递并检测,如果检测不到用户名就跳转到登录页面

离去的眼神 2021-12-04 15:45:27

系统已经运行了5年,光菜单界面就有2703个,所有的JSP页面将近1万个,所以

后知后觉 2021-12-04 13:03:10

对啊, filter能满足啊。

当然也不是所有地址都需要拦截吧, 就算所有的都需要拦截,也没多少吧。

如果原有权限(菜单权限)和地址有某种关系就更好了。

用一个全局缓存字典存需要验证的权限和用户的权限对比就好了。

输什么也不输骨气 2021-12-04 13:01:37

谢谢你的回答,登录校验我们已经实现了,现在是更复杂的权限校验,现在如果用户已经登录了,只要输入地址就能打开没有授权的界面,例如分公司的人能打开总公司才能打开的界面

毁梦 2021-12-04 10:50:11

我是java web初学者,不知道方法是否合适。我用过设置session的方法,把用户名通过session在页面之间传递并检测,如果检测不到用户名就跳转到登录页面

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文