字节跳动一面
自我介绍
项目
登录的时候怎么保证安全性
高配版的方法,就是用户每次登录时,由服务端生成一个随机密钥对,将公钥返回给前端,私钥保存到服务器,并设置该密钥对的有效期为30分钟(有效时间大家随意),用户登录的时候,要求前端对用户的明文密码进行公钥加密后传给后端,然后后端用私钥对密码进行解密,然后与数据库保存的密码进行匹配,登录成功之后,服务器立即清除这个密钥对。这样即使攻击者拦截到了加密后的密码,并用这个加密后的密码再次伪造登录,也无法成功。
实现过程:
https://blog.csdn.net/weixin_42023666/article/details/89706659
https://blog.csdn.net/weixin_42023666/article/details/96338723
在项目中,Session是怎么用的,怎么实现的
1 |
|
客户端浏览器访问服务器的时候,服务器把客户端信息以某种形式记录在服务器上。这就是Session。客户端浏览器再次访问时只需要从该Session中查找该客户的状态就可以了。
用户登录成功之后,将用户的id存储到Session中。可以在浏览器关闭之前,随时获取用户的id,如果关闭浏览器,则需要重新登录
在过滤器中使用到了session:用户访问页面的时候,判断Session中是否存在用户id,如果存在则证明用户已经登录可以访问页面,如果不存在,则进行过滤拦截。
退出登录的时候,将该用户的id从session中删除。
禁用员工的账号的时候,通过获取session中员工的账号进行更新,
3个线程abc,怎么交替输出
sql的一个简单查询语句,具体到innodb中怎么执行的,具体实现
事务的ACID特性中,持久化是怎么保证的
隔离性是什么,怎么实现的
redis怎么处理多线程
io多路复用是怎么实现的
虚拟内存是什么,为什么要用
sql(有姓名和分数,求前2到5名的分数)
很简单,但当时没写出来。。。
1 |
|
算法题(全排列)
字节跳动一面
http://example.com/2022/11/10/字节跳动一面/