1. Chrome爬取插件怎么避免敏感性检测?
2. 有没有反编译过安卓软件,具体要怎么实现?
3. 有没有遇到过重复请求的问题,我说一个场景,你看看该怎么处理?
3.1 有针对某个订单的改价,假设商家第一次改价误操作设为0元,此时已经发起请求A,但还未响应或者响应超时,此时商家再次发起第二个请求B将订单设为x元,第二个请求顺利响应。但此时由于客户端的重试机制,重复发送A请求。此时你该怎么处理?
答:
有遇到过,有三个方案可供选择:
- 前端处理
前端请求一次过后按钮置为灰色,除非修改参数,否则不允许重复点击。- 网关处理
网关拦截,利用API网关设置拦截规则,防止重复请求提交。- 后端处理
方案一:
把请求参数(JSON)按KEY做升序排序,排序后拼成一个字符串,并对这个字符串做一个MD5的摘要,存进redis里,过期时间设置为1000ms,也即是1000ms内的重复参数的请求认为是重复请求,重复请求仅响应一次。
方案二:
第一步,后端做好请求日志,
第二步,mysql给数据加上version,并在返回给详情的时候加上version
第三步,前端发起请求时自动给version+1,当我判断版本号大于数据库中的版本号时,我才更新。
方案三:(以前公司使用的方案)
第一步:客户端打开时强制向服务器获取当前时间
第二步:发起修改请求时自带时间戳,服务器只响应时间差在1000ms以内的请求,过期请求直接返回,“您的请求时间已超时”
4. 有没有用过分布式锁?具体怎么实现?
5. 有没有用过IP池,如果要用ip池伪造请求,该怎么做?
答:
- 伪造user-agent
- 通过x-forwarded-for:ip来伪造ip
- 使用ip代理
3.1 使用动态拨号的方法改变ip
3.2 使用代理ip,网上有许多维护中的代理池,有些需要付费,也有免费的但是不太稳定。
3.3 使用Tor代理服务器
3.4 使用openvpn 改变ip
6. 你常用的linux服务器装的是哪个版本的系统,有没有关注过Centos7和Centos8的停止维护时间?
答:
CentOS7将于2024年6月30日停止维护,Centos8已于2022年01月01日停止维护。当然了生产环境考虑到安全因素建议采用debian替换。