首页 > 笔经面经 > 腾讯前端实习一面面经

腾讯前端实习一面面经

头像
Jieunsi
编辑于 2021-05-07 18:10:49 APP内打开
赞 3 | 收藏 48 | 回复3 | 浏览3778

前言 (平台:面呗,时长:1h10min)

面试大部分问题都是围绕项目展开,很少直接叫你背诵八股文。
如果遇到不会的面试官会先给提示,甚至会回答你不会的部分,总的来说面试体验相当好。


  1. 自我介绍

  2. 项目中有挑战性的地方

  3. 登录功能怎么实现

    使用token

  4. token存在哪里

    放在sessionStorage里

  5. 每次发起请求都会携带token吗

  6. 怎么做到关掉页面后还能维持登录状态

    由于我把token放在了sessionStorage里,所以每次关闭网站都要再次登录,面试官就问我有什么办法可以维持登录状态

  7. 说一下XSS和CSRF

    XSS全称cross-site scripting(跨站点脚本),是一种代码注入攻击,是当前 web 应用中最危险和最普遍的漏洞之一。攻击者向网页中注入恶意脚本,当用户浏览网页时,脚本就会执行,进而影响用户**,比如关不完的网站、盗取用户的 cookie 信息从而伪装成用户去操作,危害数据安全。
    CSRF 跨站请求伪造(英语:Cross-site request forgery),是一种挟制用户在当前已登录的 Web 应用程序上执行非本意的操作的攻击方法。如: 攻击者诱导受害者进入第三方网站,在第三方网站中,向被攻击网站发送跨站请求。利用受害者在被攻击网站已经获取的注册凭证,绕过后台的用户验证,达到冒充用户对被攻击的网站执行某项操作的目的。

  8. 怎么防范
    XSS

    将重要的cookie标记为http only, ,浏览器将禁止页面的 JavaScript 访问带有 HttpOly 属性的 Cookie
    HttpOnly 主要是为了解决 XSS 之后的 Cookie 劫持,使用 HttpOnly 有助于缓解 XSS 攻击,防止被窃取敏感的 Cookie信息,本质上不是 为了解决 XSS。
    消毒

    • 在输入输出时对数据进行转义,比如<转义成<,这样脚本就运行不了了
    • 录入数据设置白名单,比如javaWeb项目设置过滤器过滤特殊字符
    • 前端页面限制用户输入数据类型,比如用户输入完年龄后验证输入内容只能是数字
    • 过滤JS事件的标签,比如onclick、load等

    CSRF

    • token;token 验证的 CSRF 防御机制是公认最合适的方案。但若网站同时存在 XSS 漏洞的时候,这个方法也是空谈
    • 验证码;强制用户必须与应用进行交互,才能完成最终请求。此种方式能很好的遏制 csrf,但是用户体验比较差
    • Referer check;请求来源限制,此种方法成本最低,但是并不能保证 100% 有效,因为服务器并不是什么时候都能取到 Referer,而且低版本的浏览器存在伪造 Referer 的风险
  9. 登录之后,每次请求一定会携带cookie吗

  10. 发起请求时怎么知道携带哪个cookie,怎么匹配cookie

  11. 有了解过withCredentials属性吗

  12. 互斥登录怎么实现

  13. 单点登录呢

  14. 打包资源怎么优化

    按需加载页面组件

  15. 对于首屏就必须要加载的包,有什么优化手段

    使用http缓存必须使用的包,下次请求时从缓存读取

  16. http缓存有了解过吗

  17. 如果我有一个资源一个月内能满足我的需求,我想一直用,怎么设置http缓存

  18. expires的单位是

  19. If-Modified-Since、If-Match是根据什么进行判断

  20. 怎么生成ETAG

  21. 生成ETAG的算法了解过吗

  22. computed原理了解吗

  23. 如果要你实现computed的特性(缓存、响应),你会怎么做

    当时答的使用Object.defineProperty设置某个属性的getter和setter来实现响应

  24. Vue-router大概的原理讲一下

  1. 有做过其他方面项目的优化吗(加载、请求速度、资源大小、操作流畅度...)

  2. JS隐式类型转换

    判断 [] == ''
    !![]
    为什么结果是这样

  3. http代码301和302的区别

  4. 他们请求上有什么区别吗

  5. 事件循环

  6. 讲一下宏任务和微任务

  7. 了解过哪些js的模块化方案吗

  8. 详细说说common.js?(因为挺常用的)

  9. 说下AMD,CMD的区别

  10. 算法:1000w个数的无序数组,找中位数,要求时间复杂度

    快排思想

  11. 反问

  12. 结束后发了三道题,要求半小时完成。

    第一题是LeetCode剑指28
    第二题是防抖
    第三题是面试算法题


5月7日更新

中午约二面时间,回来增加一部分面经的答案。
希望二面顺利

更多模拟面试

3条回帖

回帖
加载中...
话题 回帖

相关热帖

笔经面经近期热帖

历年真题 真题热练榜 24小时
技术(软件)/信息技术类
查看全部

近期精华帖

热门推荐