对于部分仅运用前端逻辑验证数据合规性的网页,如何绕开验证逻辑,是本文的写作目的。本文将以日期验证为例,说明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,保存成功后,文件边上会出现一个紫色的点:
此时就可以编辑文件内代码了,切记修改后须手动保存。
在删除逻辑判断并保存文件后,刷新网页,此时,任何时间都可装填。:
类似方法还可举一反三:
如:
根据前端验证逻辑,申请出校时间间隔不能超过一天。
修改逻辑后,任何时间都可装填:
尝试提交表单: