【网络安全篇】如何当着面试官的面优雅地装逼!

news2025/2/26 4:57:50

 

从胡子的长度和忧郁的眼神我察觉到,面前坐着的这位面试官应该有点东西。

浑身上下流露着打过CTF的气场。我像以往一样,准备花3分钟的时间进行自我介绍。

在此期间,面试官面无表情但很有耐心的听着我balabala。

我按照原定计划顺利地介绍(吹)完自己的项目经验,面试官露出了一丝淡淡的微笑看着我说:

你觉得自己最擅长的是什么?

(我淡淡的回应道:虽然是一名苦逼码农,但是我对web安全很感兴趣)

0.CIA三元组知道吗?

  •  机密性(Confidentiality)
  •  完整性(Integrity)
  •  可用性(Availability)

(这三个东西一定要回答的干净利落,不假思索)

1.XSS攻击是如何产生的?

黑客在你的浏览器中插入一段恶意 JavaScript 脚本,窃取你的隐私信息、冒充你的身份进行操作。这就是 XSS 攻击(Cross-Site Scripting,跨站脚本攻击)

因为浏览器无法区分脚本是被恶意注入的还是正常的内容,它都会执行,况且 HTML 非常灵活,可以在任何时候对它进行修改。

2.知道XSS有哪几种类型吗?

(送分题)

  •  反射型 XSS (也叫非持久型)
  •  基于 DOM 的 XSS
  •  存储型 XSS (也叫持久型 XSS)

3.分别说一下它们的实现原理

反射型:顾名思义,恶意 JavaScript 脚本属于用户发送给网站请求中的一部分,随后网站又将这部分返回给用户,恶意脚本在页面中被执行。一般发生在前后端一体的应用中,服务端逻辑会改变最终的网页代码。

基于DOM型:目前更流行前后端分离的项目,反射型 XSS 无用武之地。

但这种攻击不需要经过服务器,我们知道,网页本身的 JavaScript 也是可以改变 HTML 的,黑客正是利用这一点来实现插入恶意脚本。

存储型:又叫持久型 XSS,顾名思义,黑客将恶意 JavaScript 脚本长期保存在服务端数据库中,用户一旦访问相关页面数据,恶意脚本就会被执行。常见于搜索、微博、社区贴吧评论等。

4.说一说它们之间的区别

反射型的 XSS 的恶意脚本存在 URL 里,存储型 XSS 的恶意代码存在数据库里。

而基于DOM型的XSS 攻击中,取出和执行恶意代码由浏览器端完成,属于前端 JavaScript 自身的安全漏洞,其他两种 XSS 都属于服务端的安全漏洞。

(面试官微微抬起头,递给我一张纸。)

5.再画个图解释一下把

(好的,给你降维解释一波)

反射型

基于DOM型

存储型

(面试官:小伙子图画的不错)

6.黑客可以通过XSS攻击做哪些事儿?

  •  盗取用户 Cookie
  •  未授权操作
  •  修改 DOM
  •  刷浮窗广告
  •  发动 XSS 蠕虫攻击
  •  劫持用户行为,进一步渗透内网

(...太多了)

7.XSS攻击如何进行防护?

  •  一切用户输入皆不可信,在输出时进行验证
  •  将 HTML 元素内容、属性以及 URL 请求参数、CSS 值进行编码
  •  当编码影响业务时,使用白名单规则进行检测和过滤
  •  使用 W3C 提出的 CSP (Content Security Policy,内容安全策略),定义域名白名单
  •  设置 Cookie 的 HttpOnly 属性

8.知道哪些XSS攻击案例简单说一下

(没想到你还爱听新闻)

  •  2005年,年仅19岁的 Samy Kamkar 发起了对 MySpace.com 的 XSS Worm 攻击。

    Samy Kamkar 的蠕虫在短短几小时内就感染了100万用户——它在每个用户的自我简介后边加了一句话:“but most of all, Samy is my hero.”(Samy是我的偶像)。这是 Web 安全史上第一个重量级的 XSS Worm,具有里程碑意义。

  •  2007年12月,百度空间收到蠕虫攻击,用户之间开始转发垃圾短消息。
  •  QQ 邮箱 m.exmail.qq.com 域名被发现反射型 XSS 漏洞
  •  2011年新浪微博曾被黑客 XSS 攻击,黑客诱导用户点击一个带有诱惑性的链接,便会自动发送一条带有同样诱惑性链接微博。攻击范围层层扩大,也是一种蠕虫攻击。

9.什么是CSRF攻击?

CSRF 英文全称是 Cross-site request forgery,又称为“跨站请求伪造”。

顾名思义,CSRF 攻击就是黑客引诱用户打开黑客的网站,利用用户的登陆状态发起跨站请求。

降维解释:攻击者诱导受害者进入第三方网站,在第三方网站中,向被攻击网站发送跨站请求。

利用受害者在被攻击网站已经获取的注册凭证,绕过后台的用户验证, 达到冒充用户对被攻击的网站执行某项操作的目的。

10.CSRF攻击一般怎么实现?

  •  最容易实现的是 Get 请求,一般进入黑客网站后,可以通过设置 img的 src 属性来自动发起请求
  •  在黑客的网站中,构造隐藏表单来自动发起 Post 请求
  •  通过引诱链接诱惑用户点击触发请求,利用 a 标签的 href。

11.CSRF攻击和XSS攻击有什么区别?

CSRF 攻击不需要将恶意代码注入用户的页面,仅仅是利用服务器的漏洞和用户的登录状态来实施攻击。

CSRF 攻击成本也比 XSS 低,用户每天都要访问大量网页,无法确认每一个网页的合法性,

从用户角度来说,无法彻底防止 CSRF 攻击。

12.那应该如何防范CSRF攻击?

  •  针对实际情况,设置关键 Cookie 的 SameSite 属性为 Strict 或 Lax
  •  服务端验证请求来源站点(Referer、Origin)
  •  使用 CSRF Token,服务端随机生成返回给浏览器的 Token,每一次请求都会携带不同的 CSRF Token
  •  加入二次验证(独立的支付密码)

13.关于Web密码学你了解哪些呢?

  •   对称加密算法
    •   对称加密算法就是加密和解密使用同一个密钥,简单粗暴
    •   常见的经典对称加密算法有 DES、AES(AES-128)、IDEA、国密SM1、国密SM4
  •  非对称加密算法
    •   非对称加密就是加密和解密使用不同的密钥。发送方使用公钥对信息进行加密,接收方收到密文后,使用私钥进行解密。
    •   主要解决了密钥分发的难题
    •   我们常说的签名就是私钥加密
    •   常见的经典非对称加密算法有RSA、ECC和国密SM2
  •  散列算法
    •   不可逆性、鲁棒性、唯一性
    •   MD5、SHA(SHA-256)、国密SM3
    •   使用时记得加盐

AES 是国际上最认可的密码学算法,只要算力没有极大的突破性进展,这种算法在可预期的未来都是安全的。

ECC 是目前国际上加密强度最高的非对称加密算法。

MD5 和 SHA 的唯一性被破解了,但是大部分场景下,不会构成安全问题。一般使用 SHA-256 加盐即可满足大部分使用场景。

14.简单说一下HTTPS的实现原理

  •  Client 发送 random1+对称加密套件列表+非对称加密套件列表
  •  Server 收到信息, 选择 对称加密套件+非对称加密套件 并和 random2+证书(公钥在证书中) 一起返回
  •  Client 验证证书有效性,并用 random1+random2 生成 pre-master 通过服务器公钥加密+浏览器确认 发送给 Server
  •  Server 收到 pre-master,根据约定的加密算法对 random1+random2+pre-master(解密)生成 master-secret,然后发送服务器确认
  •  Client 收到生成同样的 master-secert,对称加密秘钥传输完毕

(基操,勿6)

HTTPS 在 TCP 和 HTTP 中间加入了 SSL/TLS 安全层。

  •  对发起 HTTP 请求的数据进行加密操作
  •  对接收到 HTTP 的内容进行解密操作。

采用对称加密的方式加密传输数据和非对称加密的方式来传输密钥,既可以解决传输效率问题也能保证两端数据的安全传输。除此之外,为了能够证明服务器是可靠的,引入了数字证书,让浏览器验证证书的可靠性。

面试官拿起旁边已经凉透的乌龙茶,喝了一口。

(小伙子,有点东西) 

 文章的最后,还给大家整理了一套网络安全面试题和简历模板,需要的可以后台私信我“面试”获取,希望对大家有帮助!

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/567728.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

国内行业垂直型SaaS公司有哪些?发展前景如何?

01 国内行业垂直型SaaS公司有哪些? 根据艾瑞咨询测算,2021年中国企业级应用软件市场规模达到2592亿元,SaaS在其中占比达到28.1%。 在企业数字化转型的全景图中,SaaS扮演着应用场景层面的关键作用,往往是企业特定环节数…

什么是护网?护网怎么参加?

一、什么是护网行动? 护网行动是以公安部牵头的,用以评估企事业单位的网络安全的活动。 具体实践中。公安部会组织攻防两方,进攻方会在一个月内对防守方发动网络攻击,检测出防守方(企事业单位)存在的安全…

智慧水务系统如何进行有效的数据架构整改?三个企业的改造实践分享

在智慧水务系统中,往往需要对设备中产生的液位、电流、水量等实时指标数据进行存储、分析及监控操作,而这些都是典型的时序数据。面对这些数据的处理时,很多企业在前期选择的大都是传统的实时数据库甚至关系型数据库,随着设备数量…

字段信息 详解,以易举例,创建数据库,程序自动创建数据库的前提,程序读写数据库的第一步

今天要做一个处理比较多数据的工具,就是桌面小软件,重新收拾起以前的易语言来编写,C#等也可以,反正就是最后的成品是绿色免安装。 数据多,优先考虑的就是数据库操作了,又快又好是吧? 第一步&am…

MyBatis源码学习五之插件

MyBatis源码学习五之插件 官网MyBatis插件介绍:https://mybatis.org/mybatis-3/zh/configuration.html#plugins MyBatis的插件使用的范围比较广,像PageHelper就是利用的插件的原理去实现的。插件会做一些通用的功能,比如打印日志&#xff0…

行业报告 | 2022文化科技十大前沿应用趋势(下)

原创 | 文 BFT机器人 04 商业创新 趋势7:区块链技术连接传统文化,数字藏品市场在探索中发展 核心内容: 2022年,数字藏品在区块链技术的助力下应运而生。狭义的数字藏品是指使用区块链技术、基于特定的文化资源所生成唯一的数字凭…

Linux学习记录——이십사 多线程(1)

文章目录 1、以Linux角度理解2、并不是所有的操作系统都这样管理3、页表和物理内存4、线程优缺点5、进程和线程的区别6、线程接口1、pthread_create.2、pthread_join3、线程终止取消正在终止的线程 4、线程分离 1、以Linux角度理解 创建一个进程时,会有pcb结构体&a…

Java集合回顾

能不能和你竭尽全力奔跑 / 向着海平线 / 余晖消逝之前都不算终点 文章目录 集合概述Java 集合概览List, Set, Queue, Map 四者的区别?集合框架底层数据结构总结如何选用集合?为什么要使用集合? ListArrayList 和 Array(数组)的区…

Java SpringBoot自动化网页爬虫项目

介绍 Java SpringBoot自动化网页爬虫,以图形化方式定义爬虫流程,不写代码即可完成爬虫。 平台以流程图的方式定义爬虫,是一个高度灵活可配置的爬虫平台 功能根据需要可定制化开发。 特性 支持Xpath/JsonPath/css选择器/正则提取/混搭提取 支持JSON/XML/二…

aop+springboot实现数据字典表

文章目录 概要整体架构流程目录结构方式pom文件信息application.yml文件信息aop实现方式(重点方式)我们这里主要的实现了,就是在前段请求数据的时候,我们利用aop,拦截数据,将code编码进行翻译,翻译的方式就是我们将cod…

LabVIEWCompactRIO 开发指南34 在模拟模式下调试

LabVIEWCompactRIO 开发指南34 在模拟模式下调试 在仿真模式下执行LabVIEW FPGA VI时,可以访问标准LabVIEW调试功能,包括突出显示执行、探测和断点。LabVIEW2013及更高版本包含了一个额外的调试工具,称为采样探针。在仿真中运行时插入FPGA设…

U盘超级加密3000试用版与正式版的区别有哪些?

U盘超级加密3000是一款专业的U盘加密软件,它可以为U盘、移动硬盘、内存卡等移动存储设备加密。软件拥有正式版和试用版,那么这两个版本有什么区别呢?下面我们就一起来了解一下。 U盘超级加密3000试用版和正式版的区别 打开软件时的区别 试用…

C++第三章:字符串、向量和数组

字符串、向量和数组 一、命名空间的using声明每个名字独立using声明头文件不应包含using声明 二、标准库类型string2.1 定义和初始化string对象直接初始化和拷贝初始化 2.2 string对象上的操作读写string对象读取未知数量的string对象使用getline读取一整行string的empty和size…

TypeScript9-声明文件

本篇文章来讲 TypeScript 的声明文件。 当我们在使用第三方库的时候,很多第三方库不是用 TS 写的,它们是通过原生的 JavaScript 或者是浏览器 / 或者是 node 提供的 run time 对象。如果我们直接使用 TS 肯定就会报编译不通过。 1. 声明语句 假设一个…

【学习日记2023.5.24】 之 用户端模块开发 用户端小程序_服务端接入微信认证_完善用户端商品浏览模块

文章目录 6. 用户端模块开发6.1 HttpClient6.1.1 介绍6.1.2 入门案例6.1.2.1 GET方式请求6.1.2.2 POST方式请求 6.2 微信小程序开发6.2.1 介绍6.2.2 准备工作6.2.3 入门案例6.2.3.1 小程序目录结构6.2.3.2 编写和编译小程序6.2.3.3 发布小程序 6.3 微信登录6.3.1 导入小程序代码…

MATLAB 之 绘制三维图形的基本函数、三维曲面和其他三维图形

文章目录 一、绘制三维曲线的基本函数二、三维曲面1. 平面网格坐标矩阵的生成2. 绘制三维曲面的函数3. 标准三维曲面 三、其他三维图形1. 三维条形图2. 三维饼图3. 三维实心图4. 三维散点图5. 三维杆图6. 三维箭头图 三维图形具有更强的数据表现能力,为此 MATLAB 提…

关于CSDN如何获得铁粉

一、发表高质量技术博客 获得铁粉首先是需要有粉丝关注,在CSDN有粉丝关注,就需要多发表写技术文章而且最好是高质量文章,条理清晰,复合当下主流技术,或者新的技术方向,图文并茂的那种。这样通过搜索引擎搜到…

虚拟专用网络-那些年你错过的“VPN 盲点”

我们先和海翎光电的小编一起了解一下什么是VPN,VPN的分类。对基础知识有一定的了解后,我们再来讲一下VPN的盲点。 VPN(全称:Virtual Private Network)虚拟专用网络,是依靠ISP和其他的NSP,在公共网络中建立专用的数据通信的网络技术…

Linux 网络基础(2)应用层(http/https协议、请求格式、响应格式、session、cookie、加密传输)

说明:网络基础2讲解的是应用层的典型协议, 通过对于典型协议的理解,来体会数据的网络传输的软件层面的流程与原理。 面试中网络通信相关问题占了很大的比重,而网络通信相关的问题大多都集中在网络基础2这个单元中 下面是应用层的位…

解决dpdk reserve的内存返回的虚拟地址和iova地址一样的问题

1. 背景: 在ubuntu20.04上用dpdk API: rte_memzone_reserve_aligned("L1L2_PCIE_MEMORY", 1.5*1024*1024*1024, rte_socket_id(), RTE_MEMZONE_1GB|RTE_MEMZONE_IOVA_CONTIG, RTE_CACHE_LINE_SIZE); 分配1.5…