Adamsandwich blog

Aim to be a Pokémon Master.

面试

一面

  1. 自我介绍
    balabala 介绍项目
  2. OAuth2.0 认证授权过程
    讲了下用户第一次使用的时候绑定用户信息作为认证源,获取 code,获取 access token,通过 access token 获取 openid ,refresh token 如何保存刷新 access token
  3. sql 注入及如何防范
    低权限的 sql 账户,存储过程,参数化 sql,检查 --1=1 等关键词
  4. xss csrf 介绍和如何防范
    xss(跨站脚本攻击):代码里对用户输入的地方和变量都需要仔细检查长度和对 < , > , ; , 等字符做过滤(转义字符)
    csrf(跨站点请求伪造):没想起来是什么。。
  5. 如何保证高可用
    DNS Nginx 负载均衡,分库分表(按地域等),主从库,redis(就说了知道。。没用过)
  6. 印象最深的项目
    就说了从需求、设计、开发、测试都参与的。介绍下细节和困难,如何实现的
  7. 项目中有什么不足
    版本管理不是很好,就说准备看看 gitflow,应该有 CI

二面

  1. 自我介绍
    balabala 介绍项目
  2. 数据结构怎么样,问道基础题,42 亿 QQ 号给你 4G 内存 O(1) 时间查询,设计数据结构
    很慌没想出来,感觉应该用 bitmap
  3. 如何监控用户操作,发现用户操作异常( 60s 都提交失败)
    没做过。。就说只有异常日志,操作日志,感觉应该每隔一段时间请求一次,服务端没收到就表明出现了异常
  4. 用了什么策略保证项目的结构
    抽象工厂,AOP,IOC 代理,MVC 观察者,三层架构,前后端分离