古人学问无遗力,少壮工夫老始成。这篇文章主要讲述「2022」打算跳槽的,必知的 WEB 安全面试题相关的知识,希望能为你提供帮助。
Hi,我是前端人,今日与君共勉!废话不多说,直接上干货!1、你对 WEB 安全的理解?
互联网发展迅速,现在的 web 不再是以前的简单网页,除了常见的电商购物平台、手机转账、银行系统之外,物联网技术的发展,不仅让智能家居走进了生活,也促进了医疗、物流等行业的发展,安全问题逐渐也成为大家比较关心的问题。
作为一个前端程序员最关心的也就是 web 安全喽,较为常见且危害较大的有 XSS跨站脚本gongji、SQL 注入、CSFR 跨站请求伪造等gongji方式。我们需要更好的理解它们的恶意gongji原理,才能更好的防御gongji。
2、XSS 跨站脚本gongji
XSS 是 Cross Site Scripting 的缩写,为了与 CSS 做区分,所以叫做 XSS 。
XSS gongji主要是 web 页面被植入了恶意的 script 代码,当用户访问页面的时候,嵌入的恶意代码自动执行,从而达到gongji的效果。XSS 类型可分为三种:
反射型 XSS 是发出网络请求时,恶意gongji代码出现在 url 中,作为输入内容提交给服务器,服务器再返回给浏览器,浏览器执行 XSS 代码,这个过程像是一次反射,所以叫做反射型 XSS gongji。
http://www.xxx.com?q=<
script>
alert("恶意脚本")<
/script>
或
http://www.xxx.com?n=<
img sec="1 onerror=alert(恶意代码)">
存储型 XSS 是提交的 XSS 代码存储到服务器的数据库、内存或文件系统内,下次请求目标页面时不再提交 XSS 代码。常见于用户输入的地方。
文档型 XSS 不会经过服务器,作为中间人的角色,在数据传输过程中劫持到网络数据包,然后修改里面的 html 文档。
XSS 危害较多,常见的是盗用账号、盗取商业价值信息等。所以我们就需要做一定的防御措施来保障用户的权益,针对以上三种gongji方式,对应的也有三种防御措施,分别为:
<
script>
alert(恶意代码)<
/script>
转义编码后编辑器又会给你重新处理,不知道的同学可以自己试试!
Content Security Policy 内容安全策略,可以规定当前网页可以加载的资源的白名单,从而减少网页受到 XSS gongji的风险。
3、CSRF 怎么防御知道吗?
CSFR 是 cross site request forgery ,中文名叫跨站请求伪造。也被称为:one click attack/session riding,缩写为:CSRF / XSRF。
CSRF 主要是gongji者盗用用户的身份,以用户的名义进行恶意操作,容易造成个人隐私泄露以及财产安全问题,所以 CSRF 的防御措施不能少,可以从服务端和客户端两方面着手,它的防御方式有以下几种:
具体的防御措施内容为:
1>
、检查 http 头部的 referer 信息
referer 包含在 http 请求头内,表示请求接口的页面来源,服务端通过检查 referer 信息,发现来源于外域时拦截请求,阻止不明请求,一定程度上可以减少gongji。
2>
、使用一次性令牌
使用一次性令牌做身份标识,heike是无法通过跨域拿到一次性令牌的,所以服务端可以通过判断是否携带一次性令牌,可以排除一部分非法操作者。
3>
、 关键操作使用 POST 请求
敏感操作使用 POST 请求,主要是为了防止用户敏感信息出现在 url 中,容易泄露重要信息。
4>
、使用验证码
CSRF gongji基本都是出现在用户不知道的情况下,在用户无感的情况下偷偷发送网络请求,如果使用验证码,需要每次进行重要操作时进行验证,从而简单有效的防御了 CSRF gongji。
4、SQL注入是啥?
所谓的 SQL 注入就是把 SQL 语句命令插入到 web 表单提交或页面请求的查询字符串,最终达到服务器执行恶意 SQL 命令。它是一种常见的 WEB 安全loudong,gongji者会利用这个loudong,可以访问或修改数据,利用潜在的数据库loudong进行gongji。
SQL 注入可以分为以下几例:
SQL 注入的防范措施:
5、DDOS
DDOS 是 Distributed Denial of Service 的缩写,翻译为中文是分布式拒绝服务。DDOS gongji指的是借助于客户/服务器技术,将多个计算机联合起来作为gongji平台,对一个或多个目标发动 DDOS gongji,从而成倍的提高拒绝服务gongji的威力。该gongji方式主要利用目标系统网络服务功能缺陷或者直接消耗其系统资源,使得该目标系统无法提供正常的服务。
DDOS gongji通过大量合法的请求占用大量资源,以达到瘫痪网络的目的,具体的表现形式有几下几种:
6、DNS 劫持
DNS 是将网络域名对应到真实计算机能够识别的 IP 地址,以便进一步通信。DNS劫持就是当用户通过某一个域名访问站点时,被篡改的 DNS 服务器返回的是一个钓鱼网站的 IP,用户被劫持到钓鱼网站,进而泄露隐私。
7、HTTP劫持
HTTP劫持是当用户访问某个网站时,会经过运营商,运营商和黑厂勾结就能够截获请求返回的内容,并且篡改返回的内容之后再返回给用户。一般网站被劫持之后就会插入一些广告,严重的可能直接修改成钓鱼网站窃取用户信息。
防御措施:
【「2022」打算跳槽的,必知的 WEB 安全面试题】通信过程没有对对方身份进行校验以及对数据完整性进行校验,所以防止 HTTP 劫持的方法只有将内容加密,让劫持者无法pojie篡改,这样就可以防止 HTTP 劫持了。
推荐阅读
- Linux 防火墙是什么,你需要它吗( | Linux 中国)
- 「2022」打算跳槽涨薪,必问面试题及答案 -- vue3 篇
- #yyds干货盘点# HCIE-Security Day11(初步学习防火墙双机热备和VGMP概念)
- #yyds干货盘点# JetPack | Hilt-依赖注入框架上手指南
- #yyds干货盘点#spring-cloud-kubernetes官方demo运行实战
- Redis 在 vivo 推送平台的应用与优化实践
- #yyds干货盘点#数据分析实际案例之(pandas在泰坦尼特号乘客数据中的使用)
- 在C中将数字转换为字符串的最佳方法是什么()
- PHP中的echo、print和print_r有什么区别()