绕过前端验证逻辑——JavaScript的实时修改与热部署

对于部分仅运用前端逻辑验证数据合规性的网页,如何绕开验证逻辑,是本文的写作目的。本文将以日期验证为例,说明JavaScript的实时修改及热部署方法。

在这里插入图片描述
如上述演示页面,我们定位javascript语句:

在这里插入图片描述

getTime() 方法返回距 1970 年 1 月 1 日之间的毫秒数。——时间越靠后,毫秒数越大

分析前端验证逻辑可知,当日申请日期栏为空,需要填入新数据时,格式化处理输入时间后,提取日期,将其与当前本地机器日期比对,如若格式化处理输入日期小于当前本地机器日期,报错后清空日期栏内容。

由此不难看出,时间验证无法通过的症结在于申请日期小于了当前的机器日期。

解决方法有二:

其一,直接调整设备机器日期,即可绕过逻辑。

new Date取的是本地的时间。如果修改了本机时间的话也会影响到 new Date。如果我是开发者,我会用getResponseHeader(“date”)取服务器时间的方式来规避这一漏洞。

其二,回归本文主题,实时修改JavaScript并热部署代码。

众所周知,如若试图直接在element编辑框内修改代码,并不会在网页生效,因为chrome已经在内存里加载了这段代码,要重新加载代码只能靠刷新,然而刷新会丢失我们所作的修改,那么应该怎么做呢?

其实很简单,首先需要在source-overrides界面里面select folder for overrides,然后选择一个文件夹,并Enable Local Overrides。
在这里插入图片描述
在这里插入图片描述
其后,需要在source里面编辑javascript代码。要完成这一步首先需要在Network中定位javascript代码所在的文件夹。

在这里插入图片描述
在这里插入图片描述
按图索骥,在source里面寻找javascript代码所在文件:

在这里插入图片描述

右键文件, Save for overrides,保存成功后,文件边上会出现一个紫色的点:

在这里插入图片描述
此时就可以编辑文件内代码了,切记修改后须手动保存。
在这里插入图片描述
在删除逻辑判断并保存文件后,刷新网页,此时,任何时间都可装填。:

在这里插入图片描述

类似方法还可举一反三:

如:
在这里插入图片描述
根据前端验证逻辑,申请出校时间间隔不能超过一天。

在这里插入图片描述
修改逻辑后,任何时间都可装填:

在这里插入图片描述
在这里插入图片描述
尝试提交表单:
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/deng_xj/article/details/122240305