论我一个小白是如何发现某个比赛网站注册的bug

前言

在2023年上半年,我参加了中国机器人及人工智能大赛,我们的作品是四足仿生机器人,省赛我们很容易就拿到了省级一等奖(当然这和队伍不多有关系),但是我从接触机器人到比赛也就4天时间,对机器人了解的并不是特别多。在进入国赛初赛,我们花费了大量时间研究比赛和机器人,最终在初赛中大放异彩,进入了国赛决赛的准备工作(只有两天时间),我们加班加点做了个简单模型,由于决赛测试时间只有一天,我们去的比较迟,直到晚上9点才找到机器人,测试场地和我们的备赛场地差别很大,我有点慌,没有进行完整的测试,就草草结束了。也就是说我们的测试时间只有比赛的短短15分钟,起初以为是20分钟。比赛中意外很多,我们的设备(机器人)有个很奇怪的问题,就是在使用网线连接,进行局域网通信,特别慢(连接时间长),也许是地域问题吧,在海南测试期间,我们只花了一秒就连接好了,但是第二天连接又特别慢,所以比赛期间我也不敢过于冒险,只能简单测试,尽量拿到最多的分,剩余时间进行调试(如果花费大量时间调试的话,网线一断,连接得好长时间,对我是很不利的)。最终成绩也一般般,当然最开心的是,剩余时间可以去海南其他地方玩耍啦。这次比赛对我有点遗憾啦。

不知道为什么,我一个计算机专业的特别喜欢机器人,以至于后来的电子科技的投环比赛的那一跳,是真的激起了我对机器人的那种"火",哈哈哈,还有那个小车比赛跑的很快,特别好奇那个算法是双边计算还是单边还是什么呢。算了,不多说了,开始正题吧

起因

昨天晚上看机器人比赛,发现2023中国机器人大赛暨RoboCup比赛开始了,好几个省赛已经比赛结束了,不过作者的省份不太行啦,但还是想参加比赛,就去了报名窗口,一路填写信息,后来在提交注册的那一步总是提示电话格式不正确。

图片中的信息是错误的,这是为什么呢,无论是位数还是开头都是正确的啊,尝试了座机电话,甚至在电话前面加+86和空格等一系列操作,都是错误的。这个让患有强迫症的我一晚上没有睡好。不得不说我是一个很愚蠢的家伙,我居然忘记自己是程序员了,于是我打开了F12

查找问题

打开F12,找到电话窗口对应的标签元素,找到id

然后在源代码中找到js文件夹,下面的register.js文件夹找到那个检验手机号的函数,发现它是这样的

js 复制代码
//验证手机号
function isPhoneNo(phone) { 
var pattern = /^1[34578]\d{9}$/; 
return pattern.test(phone); 
}

正则表达式有问题,第一位匹配了 1 ,第二位匹配【34578】,但是现在手机号已经有了,6和9,因为我的手机号正好第二位是9,所以一直匹配错误。

解决问题

正确的匹配规则应该是

js 复制代码
var pattern = /1([38][0-9]|14[579]|5[^4]|16[6]|7[1-35-8]|9[189])\d{8}$/; 
//这是最合理的匹配规则

至此,原因找到了,我也给主办方反馈了这个问题。进入报名系统的我,发现的参加省赛和专项赛才可以参加国赛,我们省目前任何消息也没有,唉。真羡慕打机器人比赛的那些娃娃。

总结

发现这个问题,得益于在大一了解过一段html,但是js语言不是特别会,正则表达式应该都是通用的吧,基本函数也知道如何找到。

相关推荐
子兮曰1 天前
jev-ultrafast 深度解析:7 秒订机票的浏览器 Agent 是如何炼成的
前端·后端·agent
子兮曰1 天前
Jev 爆发一周:7 秒 Agent 背后的 System One 生态与三场争议
前端·后端·ai编程
前端小万1 天前
写公众号赚了 3000 块后,我做了一款叫 "一键成稿" 的软件
前端·微信小程序
爱勇宝1 天前
ZCode 开源 24 小时:一份没有历史的账本,回答不了"有没有偷代码"
前端·后端·chatglm (智谱)
三十而立洋1 天前
Cookie 详解:从产生到安全,一次讲透
前端·javascript
卡布鲁1 天前
把一个 Vite + Vue3 应用塞进 qiankun (React + Umi3) 主站:十个坑的复盘
前端·javascript·react.js
汉堡大王95271 天前
Jev:不是聊天机器人, 而是一个智能 if 语句
前端·人工智能·后端
梦想很大很大1 天前
从运行事实到回归证据:Workrun 的 Telemetry 与 Evaluation 实践
前端·人工智能·后端
计算机魔术师1 天前
Meta Muse agent 接入 Shopify 的 Shop Pay 实现代理式购物
前端
沙蒿同学1 天前
我用 Go 搭了一条 AI Agent 流水线:从 1 张商品图到一整套淘宝详情页
前端·javascript·后端