浏览器插件实现国税网自动登录,以及解决浏览器记住密码会自动填充表单无法修改的问题

news2024/11/23 9:09:12

公司的做账系统,用户在系统里设置保存了国税网的账号密码以后,下次点击进入国税网,能够直接进入国税系统。

之前的解决方案是pupptteer模拟登录一遍拿到cookie等登录凭证后,保存到数据库,然后插件请求接口拿到cookie,直接写入浏览器,但是国税网登录新版改版,单单设置cookie很多功能会失效。所以直接想使用插件实现自动登录,类似pupptteer模拟用户登录。

1.点击进入国税网,把用户信息放在登录网址后面带过去

2.在插件里截取用户信息,并判断是否需要执行自动登录

3.获取对应的输入框,将用户信息赋值进去,但这时候会发现,虽然输入框有值,点击登录还是会提示填写,这是因为新版页面是vue写的,单单赋值是不会绑定到对应的变量上的,需要在赋值完以后触发一下input事件

4.需要模拟用户滑动滑块,最后模拟点击登录按钮

btn = document.querySelector(".handler");
		mousedown = document.createEvent("MouseEvents");
		rect = btn.getBoundingClientRect();
		x = rect.x || rect.left;
		y = rect.y || rect.top;
		w = document
			.querySelector(".drag")
			.getBoundingClientRect().width;
		// 点击滑块
		mousedown.initMouseEvent(
			"mousedown",
			true,
			true,
			window,
			0,
			x,
			y,
			x,
			y,
			false,
			false,
			false,
			false,
			0,
			null
		);
		btn.dispatchEvent(mousedown);
		dx = 0;
		dy = 0;
		// 滑动滑块
		intervaltimer = setInterval(function () {
			var mousemove = document.createEvent("MouseEvents");
			var _x = x + dx + 200;
			var _y = y + dy;
			mousemove.initMouseEvent(
				"mousemove",
				true,
				true,
				window,
				0,
				_x,
				_y,
				_x,
				_y,
				false,
				false,
				false,
				false,
				0,
				null
			);
			btn.dispatchEvent(mousemove);
			if (_x - x >= w) {
				clearInterval(intervaltimer);
				var mouseup = document.createEvent("MouseEvents");
				mouseup.initMouseEvent(
					"mouseup",
					true,
					true,
					window,
					0,
					_x,
					_y,
					_x,
					_y,
					false,
					false,
					false,
					false,
					0,
					null
				);
				btn.dispatchEvent(mouseup);
				setTimeout(function () {
					$(".loginCls").click();
					load.hide();
				}, 300);
			} else {
				dx +=
					parseInt(Math.random() * (300 - 200) + 200) / 23;
				dy += parseInt(Math.random() * 10 - 3);
			}
		}, 30);

 5.这个时候已经可以正常模拟登录了,但是当点击第二次时,出现新的问题

问题1:第二次换个账号进去的时候,上个账号的登录凭证还在,会直接进入上个账号的系统

解决方法:每次先清除对应的登录凭证

问题2:浏览器如果用户启用了记住密码功能,下次进入会默认填充一个,而且是直接覆盖在输入框上,导致代码无法直接操作输入框(如赋值点击等任何操作)

百度之后说给输入框加上autocomplete=“off”和autocomplete=“new-password”可以解决,但f12发现输入框已经有这两个属性。所有这个方法对国产浏览器无效,测试发现有这两个属性的话,谷歌浏览器的表现是会在输入框下面有保存过的密码可供选择,而不是直接覆盖,所以应该是国产浏览器直接无视了这些属性。

另一种说法是,给输入框加上readonly属性,这样便不会自动覆盖填充,然后用户focus的时候再取消readonly即可。但是现在页面是别人的,不像自己写的代码可以初始这样做。并不好实现。

思路:一进入页面便以极短的时间间隔循环去给输入框加上这个属性直到加上为止,在浏览器赋值之前看能不能加上。

测试结果:可行

至此,问题解决

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1187439.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

柴油发电机负载测试的方法

柴油发电机负载测试是检查发电机组性能的重要环节,通过模拟实际工作负载,检测发电机组在不同负载下的运行情况,以确保其安全可靠地为用电设备提供电力。以下是柴油发电机负载测试的方法: 1. 准备工作:在进行负载测试之…

黔院长 | 黄帝内经:脏气法时论!

自然界有四季,四季更替影响万物的轮回。人体脏腑功能和气机运行与时间变化也有显著的影响。古人结合五脏之气,取四时五行的生克规律作为救治疾病的法则,对至今中医养生有重要参考作用! 五行,即木、火、土、金、水&…

C#Web文件上传的几种方式

1.第一种上传方式,基本通用于.net所有的框架 [HttpPost][Route("Common/uploadFile1")]public string uploads(){HttpContextBase context (HttpContextBase)Request.Properties["MS_HttpContext"];//获取传统contextHttpRequestBase request context.Re…

springbootMysql文华学院青年志愿者服务预约系统97973-计算机毕业设计项目选题推荐(附源码)

摘 要 随着社会的发展,社会的各行各业都在利用信息化时代的优势。计算机的优势和普及使得各种信息系统的开发成为必需。 文华学院青年志愿者服务预约系统,主要的模块包括管理员:后台首页、轮播图、通知公告管理、资源管理(新闻资…

人工智能-卷积神经网络(LeNet)

为了能够应用softmax回归和多层感知机,我们首先将每个大小为\(28\times28\)的图像展平为一个784维的固定长度的一维向量,然后用全连接层对其进行处理。 而现在,我们已经掌握了卷积层的处理方法,我们可以在图像中保留空间结构。 同…

数据分析:小红书新兴场景洞察,捕捉消费新势力

导语 飞盘、骑行,露营…如今,户外运动日渐被人们所喜爱。近年来,继飞盘和骑行后,一项新潮的户外运动越来越受到年轻人的欢迎,路亚钓鱼,越来越多年轻人在入坑钓鱼。 图 | 小红书 图 | 小红书 什么是“路亚…

11.(vue3.x+vite)组件间通信方式之ref与$parent、$children

前端技术社区总目录(订阅之前请先查看该博客) 示例效果 注: (1)ref 加在标签(div等)上,是拿到dom 对象 (2)ref加上组件上,拿到的是组件的引用 (3)让父组件获取子组件的数据或者方法需要通过defineExpose对外暴露,另外让父组件获取子组件的数据或者方法需要通过d…

查看监控提示码流已加密,请切换至本地配置页面设置密钥后重启预览

环境: 硬盘录像机DS-8632N-I16 谷歌浏览器 问题描述: 查看监控提示码流已加密,请切换至本地配置页面设置密钥后重启预览 解决方案: 1.进入系统-安全管理-安全服务,关闭启用码流加密,保存 2.进入网络-高级配置-平…

AI:73-结合语法知识的神经机器翻译研究

🚀 本文选自专栏:AI领域专栏 从基础到实践,深入了解算法、案例和最新趋势。无论你是初学者还是经验丰富的数据科学家,通过案例和项目实践,掌握核心概念和实用技能。每篇案例都包含代码实例,详细讲解供大家学习。 📌📌📌在这个漫长的过程,中途遇到了不少问题,但是…

Docker - 安装

Docker安装 Docker的基本组成 镜像(image): ​ Docker镜像就好比是一个模板,可以通过这个模板来创建容器服务,tomcat镜像 -> run -> tomcat01容器(提供服务器),通过这个镜像可以创建多个…

【VUE+ elementUI 实现动态表头渲染】

VUE elementUI 实现动态表头渲染 1、定义 columns(表头数据) 和 dataList(表格数据) data() {return {loading: false,dataList: [{ name: 张三, sex: 男, age: 18 },{ name: 林琳, sex: 女, age: 20 },{ name: 王五, sex: 男, …

安卓开发实例:高德地图

想要在app里面显示高德地图,遇到了很多问题,开始想显示百度地图的,个人感觉不喜欢百度地图,跟高德地图有缘,所以就弄个高德地图。 当然你可以直接看开发文档啊,慢走不送,谢谢。 https://lbs.ama…

记一次前后端分离项目跨域导致的set-cookie失效问题解决方案

起因公司项目使用了springsecurity的基础登录进行认证授权,而基础登录使用的是sessioncookie的形式,项目前后端分离,前端调接口的时候就会出现,登陆后点击其他页面,提示未登录跳转登录页的情况,排查了一下问…

小程序开发平台源码系统 各种类型小程序任由选择 带完整的搭建教程

近年来随着微信、支付宝等平台对小程序的大力推广和支持下应运而生的。小程序作为一种轻量级的应用程序,为用户提供了无需下载安装、即用即走的便捷体验,因此得到了广大用户的喜爱和青睐。所以今天罗峰来给大家介绍一款小程序开发平台源码系统&#xff0…

Qt 子窗口不设置parent时,如何随主窗口关闭

遇到个情况,new一个子窗口的时候,如果指定了parent,那在最小化这个子窗口时这个子窗口并不是在缩小到任务栏,而是在任务栏的左上角。像这种: 并且,点击主窗口之后,子窗口也始终显示在主窗口之前…

开源论道 源聚一堂@COSCon

自2015年以来,开源高峰论坛一直是中国开源年会中的传统亮点项目。本次在COSCon23 大会期间的高峰圆桌会,于2023年10月29日在成都高新区的菁蓉汇召开。 本次高峰圆桌上,我们特别邀请了20 位来自企业,基金会和社区的专家和领袖参加讨…

OpenAI震撼技术圈!0代码构建Assistants API,技术原理探秘

👉导读 OpenAI 发布会带来了全新的开发方式——Assistants API,这背后基于的正是你可能闻所未闻的 AI Agent 智能体技术。本篇文章将为你全面解析 AI Agent 的概念、技术框架与应用场景。长文干货,先码再看! 👉目录 1 …

lsky Pci-go nas个人图床搭建

①安装PicGo 应用 http://192.168.50.249:18189/api/v1 上传电脑需要有node 和 npm环境,官网下载最新安装板node后,自动会配置npm环境。 ②安装 Lsky-Uploader 获取token: http://www.metools.info/code/post278.html 服务器域名为 Lsky p…

【Python自学笔记】python os.getcwd文件目录找不对

写小组项目的时候需要按照路径读入数据表,数据库和图片列表显示到html,按ChatGPT的答案写了python os.getcwd(),结果迁移到同组同学的电脑上总是报错。 经过一番查询,在CSDN上发现一个完美解决问题的好帖,特此存下链接…

UserAgent使用隧道HTTP代码示例

首先,我们需要安装一个Perl模块来处理HTTP请求,然后,我们需要配置代理信息,如proxy_host和proxy_port。接下来,我们可以使用正则表达式来解析网页内容并提取我们需要的信息。最后,我们可以将这些信息存储到…