面试
一面
- 自我介绍
balabala 介绍项目
- OAuth2.0 认证授权过程
讲了下用户第一次使用的时候绑定用户信息作为认证源,获取 code,获取 access token,通过 access token 获取 openid ,refresh token 如何保存刷新 access token
- sql 注入及如何防范
低权限的 sql 账户,存储过程,参数化 sql,检查 --
,1=1
等关键词
- xss csrf 介绍和如何防范
xss(跨站脚本攻击):代码里对用户输入的地方和变量都需要仔细检查长度和对 <
, >
, ;
,’
等字符做过滤(转义字符)
csrf(跨站点请求伪造):没想起来是什么。。
- 如何保证高可用
DNS Nginx 负载均衡,分库分表(按地域等),主从库,redis(就说了知道。。没用过)
- 印象最深的项目
就说了从需求、设计、开发、测试都参与的。介绍下细节和困难,如何实现的
- 项目中有什么不足
版本管理不是很好,就说准备看看 gitflow,应该有 CI
二面
- 自我介绍
balabala 介绍项目
- 数据结构怎么样,问道基础题,42 亿 QQ 号给你 4G 内存 O(1) 时间查询,设计数据结构
很慌没想出来,感觉应该用 bitmap
- 如何监控用户操作,发现用户操作异常( 60s 都提交失败)
没做过。。就说只有异常日志,操作日志,感觉应该每隔一段时间请求一次,服务端没收到就表明出现了异常
- 用了什么策略保证项目的结构
抽象工厂,AOP,IOC 代理,MVC 观察者,三层架构,前后端分离