美文网首页
字节跳动安全开发实习生2019-04-09一面总结

字节跳动安全开发实习生2019-04-09一面总结

作者: Pig_deng饲养员 | 来源:发表于2019-04-09 20:39 被阅读0次

    字节跳动安全开发实习生一面:

    面试采用线上视频方式,下载zoom的谷歌插件,点击网页链接进去即可。
    在面试前要准备好面试环境,保证麦克风和视频清晰,光线良好。

    面试总结:

    比自己面试之前的预期感觉要好,问题基本是一半对一半不会的水平,总体感觉下来就是自己的基础功不扎实,需要在牢靠一些,不能总是当时看当时会,面试时就忘,面试官判断你会不会就是看你面试时的表现的。
    面试官基本会从小问题入手,一步一步引导,字节跳动的面试官小哥哥人比较好,不会的地方会耐心的引导你深入问题。自己的水平还是很差,仍需努力。
    一定要注重简历上的内容,面试官会从简历上挑选内容细问,不会的不要写上去。

    面试问题:

    1. 首先自我介绍,要练的熟练些,不要磕磕绊绊,有点紧张。
    2. 从经历里面挑选一个你自己认为分量很重的项目详细说一下:

    讲述了自己在腾讯的实习经历,面试官问了一下某个具体的细节,流畅的回答,OK√

    3. 输入网址后,点击回车键,详细说一下打开网址的整个实现流程:

    考察计算机网络的能力,刚开始有点懵,不知道怎么回答,只说了http和tcp/udp,在面试官的引导下详细说了计算机网络每一层的具体逻辑和任务。
    网上有相关的详细的解答:
    从电流闭合讲起的详细流程 --> 对应的github链接
    具体流程: 按下按键后

    • 键盘闭合,产生电流,操作系统产生中断,发往应用程序
    • 浏览器解析URL:通过解析了解协议和请求的内容
    • 判断输入是否合法: 判断输入的是url还是域名还是关键字,判断输入是否合法
    • DNS查询:DNS查询本地cache或者向DNS服务器发送查询请求,请求目标主机的ip地址
    • ARP过程:查询MAC地址
    • 套接字:使用套接字建立连接,即tcp/udp连接,tcp三次握手
    • http协议:发送http包,进行http请求,http回答
    • 浏览器解析,渲染:得到请求的资源后。浏览器进行解析和渲染
    • 连接拆除,tcp/udp连接清楚,tcp四次握手
    4. 详细讲一下ARP的工作原理,目标主机在同一个局域网和不在同一个局域网的差别

    这里的基础知识已经不记得了,要补一下,主要考察的是ARP发送的是ICMP查询包,以及具体的过程。

    5. HTTPS协议的详细流程是什么:

    不会,要补一下http和https的知识。
    https是http+ssl

    6. SSL的创建过程是什么:

    还是不会。。。

    7. 堆栈的问题:堆和栈是什么数据结构,汇编语言中如何分配和使用堆栈的内存的,堆和栈的增长方向分别是什么?

    一直没理解堆和栈的区别,只会栈。
    网上的文章:
    堆和栈的区别
    大致总结:
    栈:编译时就由编译器定下的固定的连续的内存区域,大约2M容量,存储程序中的变量、返回地址等内容,由程序分配和释放,每个栈内存是四个字节大小。是向低地址扩展的数据结构。
    堆:由程序员手动进行分配和释放的不连续的操作系统的空闲内存区域。由一个链表管理,大部分通过程序员使用malloc函数进行分配,通过链表查找空闲内存进行分配。是向高地址扩展的数据结构。容易产生内存碎片。

    8. 堆栈缓冲区溢出原理以及区别:

    大致讲了strcmp()函数的缓冲区溢出原理,堆栈的缓冲区溢出区别不是很了解。
    网上博文:
    缓冲区溢出原理

    9. 逆向调试方面的内容:如何进行调试,思路是什么:

    先使用动态调试器,找到要分析和调试的内容,然后使用静态分析工具对程序进行静态分析。
    面试官提到了使用hook,但是刚接触,没有使用过网上的工具,但是提到了自己写的hook小工具。

    10. python知识,知道装饰器么?

    讲述装饰器的使用

    11. Python,闭包的使用注意事项是什么,闭包是值引用还是命名引用

    不会

    12. 对树的每一层进行搜索应该用什么搜索方法,使用python的哪一中数据结构实现二叉树,如何实现?

    考的是广度优先搜索和深度优先搜索,对每一层搜索应该是广度优先搜索。
    用Python实现数据结构,实在是不会呀,编程还是太弱了,要加强练习,要用Python把每一个数据结构都练一遍!!!面试官提供了两个选项,用栈还是用队列,应该是队列叭。。思路就没有了。。下来要写一下。

    13. linux内容:如何查看当前网络连接状态,进程状态,管道使用

    linux还是只熟悉基础的命令,管道、网络、进程等还没有学习到,要继续学习。
    stasps

    要看的内容:

    1. 计算机网络基础,要巩固!!!!
    2. http协议,https协议,原理
    3. 使用编程语言实现常见的数据结构(c\python)
    4. 缓冲区溢出等基础原理

    相关文章

      网友评论

          本文标题:字节跳动安全开发实习生2019-04-09一面总结

          本文链接:https://www.haomeiwen.com/subject/eqgiiqtx.html