辰宝IWZ 2023-09-21 08:49 采纳率: 100%
浏览 17
已结题

android webview绕过登录界面直接登录问题

在原生android SDK中,我使用WebView展示网页
如果我在webview中直接load学校教务系统的登录页面,那么登录之后一切功能正常。
我想要实现免登陆,就是在android中储存账号和密码,在进去应用时便直接登录,我通过httpclient构造请求获取了sessionid,通过cookiemanager的setcookie方法携带sessionid请求个人信息主页,这次请求能显示正常的内容,代表此次登录成功了,但是,如果我reload或者访问教务系统中的功能时,会出现设备在其他地方登录的提示。经过分析之后,是因为我的sessionid在第一次登录之后被莫名改动了。
我的setcookie方法只在oncreate的时候调用,

比较玄学的是,在我的网络比较差的时候,功能正常运行的概率越大。我用浏览器对教务系统进行多次实验,发现当退出登录时教务系统会修改客户端的sessionid,sessionid过期时间为会话结束时。教务系统使用的是jsp

我不知道android webview什么时候算是会话结束,请问出现的问题是什么,如何解决

  • 写回答

6条回答 默认 最新

  • ㅤㅤㅤㅤ388 2023-09-21 09:35
    关注

    你遇到的问题可能与教务系统的安全性策略有关。当你尝试使用存储的Session ID 进行免登陆时,系统可能会检测到Session ID 发生了变化,这可能导致在后续操作中出现“设备在其他地方登录”的提示。
    一些教务系统为了防止Session劫持等安全问题,会采取措施来确保每个会话都是唯一的,并在特定条件下自动终止会话。这也解释了你在网络较差时功能正常运行的概率较高,因为网络延迟可能导致服务器难以检测到会话的变化。
    所以,你需要仔细观察一下这个token,cookie,以及会话session的组成成分,同时,要想完成抓包,可以试试fiddler,这个是比较专业的,你可以抓到登录的接口,自己去尝试写一个自动登录,同时注意一下,抓包需要再同一网络,还需要进行一系列配置,详情百度

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(5条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 9月21日
  • 已采纳回答 9月21日
  • 赞助了问题酬金15元 9月21日
  • 修改了问题 9月21日
  • 展开全部

悬赏问题

  • ¥15 35114 SVAC视频验签的问题
  • ¥15 impedancepy
  • ¥15 在虚拟机环境下完成以下,要求截图!
  • ¥15 求往届大挑得奖作品(ppt…)
  • ¥15 如何在vue.config.js中读取到public文件夹下window.APP_CONFIG.API_BASE_URL的值
  • ¥50 浦育平台scratch图形化编程
  • ¥20 求这个的原理图 只要原理图
  • ¥15 vue2项目中,如何配置环境,可以在打完包之后修改请求的服务器地址
  • ¥20 微信的店铺小程序如何修改背景图
  • ¥15 UE5.1局部变量对蓝图不可见