浏览器原理面试题 前端「前端面试进阶之浏览器原理」( 三 )


5. 什么是中间人攻击?如何防范中间人攻击?
中间? (Man-in-the-middle attack, MITM) 是指攻击者与通讯的两端分别创建独?的联系, 并交换其所收到的数据, 使通讯的两端认为他们正在通过?个私密的连接与对?直接对话, 但事实上整个会话都被攻击者完全控制 。在中间?攻击中,攻击者可以拦截通讯双?的通话并插?新的内容 。
攻击过程如下:
客户端发送请求到服务端 , 请求被中间?截获
服务器向客户端发送公钥
中间?截获公钥 , 保留在???上 。然后???成?个伪造的公钥 , 发给客户端
客户端收到伪造的公钥后,?成加密hash值发给服务器
中间?获得加密hash值 , ???的私钥解密获得真秘钥,同时?成假的加密hash值,发给服务器
服务器?私钥解密获得假密钥,然后加密数据传输给客户端
6. 有哪些可能引起前端安全的问题**?**
跨站脚本 (Cross-Site Scripting, XSS): ?种代码注??式, 为了与 CSS 区分所以被称作 XSS 。早期常?于?络论坛, 起因是?站没有对?户的输?进?严格的限制, 使得攻击者可以将脚本上传到帖?让其他?浏览到有恶意脚本的??, 其注??式很简单包括但不限于 JavaScript / CSS / Flash 等;
iframe的滥?: iframe中的内容是由第三?来提供的,默认情况下他们不受控制,他们可以在iframe中运?JavaScirpt脚本、Flash插件、弹出对话框等等,这可能会破坏前端?户体验;
跨站点请求伪造(Cross-Site Request Forgeries , CSRF): 指攻击者通过设置好的陷阱,强制对已完成认证的?户进??预期的个?信息或设定信息等某些状态更新,属于被动攻击
恶意第三?库: ?论是后端服务器应?还是前端应?开发,绝?多数时候都是在借助开发框架和各种类库进?快速开发,?旦第三?库被植?恶意代码很容易引起安全问题 。
7. 网络劫持有哪几种,如何防范?
?络劫持分为两种:
(1)dns****劫持: (输?京东被强制跳转到淘宝这就属于dns劫持)
DNS强制解析: 通过修改运营商的本地DNS记录,来引导?户流量到缓存服务器
302跳转的?式: 通过监控?络出?的流量,分析判断哪些内容是可以进?劫持处理的,再对劫持的内存发起302跳转的回复,引导?户获取内容
(2)HTTP****劫持: (访问?歌但是?直有贪玩蓝?的?告),由于http明?传输,运营商会修改你的http响应内容(即加?告)
DNS劫持由于涉嫌违法,已经被监管起来,现在很少会有DNS劫持,?http劫持依然?常盛?,最有效的办法就是全站HTTPS , 将HTTP加密,这使得运营商?法获取明?,就?法劫持你的响应内容 。
二、进程与线程
1. 进程与线程的概念
从本质上说,进程和线程都是 CPU 工作时间片的一个描述:
进程描述了 cpu 在运行指令及加载和保存上下文所需的时间,放在应用上来说就代表了一个程序 。
线程是进程中的更小单位 , 描述了执行一段指令所需的时间 。
进程是资源分配的最小单位,线程是CPU调度的最小单位 。
一个进程就是一个程序的运行实例 。详细解释就是,启动一个程序的时候,操作系统会为该程序创建一块内存,用来存放代码、运行中的数据和一个执行任务的主线程,我们把这样的一个运行环境叫进程 。进程是运行在虚拟内存上的 , 虚拟内存是用来解决用户对硬件资源的无限需求和有限的硬件资源之间的矛盾的 。从操作系统角度来看,虚拟内存即交换文件;从处理器角度看 , 虚拟内存即虚拟地址空间 。
如果程序很多时,内存可能会不够 , 操作系统为每个进程提供一套独立的虚拟地址空间 , 从而使得同一块物理内存在不同的进程中可以对应到不同或相同的虚拟地址,变相的增加了程序可以使用的内存 。