返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >前端面试之对安全防御的理解分析
  • 718
分享到

前端面试之对安全防御的理解分析

2024-04-02 19:04:59 718人浏览 八月长安
摘要

目录1.引言2.常见前端攻击策略3.攻击策略解释3.1 sql注入3.2 XSS攻击3.3 CSRF攻击4.攻击防御的正确姿势4.1 SQL注入防御4.2 XSS防御4.3 CSRF

1.引言

每逢前端面试,80%的候选人都会被问到这个问题。这问题确确实实是一道八股文。为了应付面试,我自己也是反反复复背了好几次,但是记了又忘,忘了又记,如此优雅的恶性循环让我痛下决心去搞定其中的枝枝叶叶。废话不多说,上车吧。

2.常见前端攻击策略

  • SQL注入
  • XSS攻击
  • CSRF攻击

3.攻击策略解释

3.1 SQL注入

sql注入通常是在url头或者表单内部通过拼接sql语句实现攻击。

它的原理比较简单,当浏览器url头或者表单提交数据到后端时,后端会进行数据库操作,如果未经过处理请求参数,那么攻击者会通过任意sql语句获取关键敏感数据从而实现攻击。

3.2 XSS攻击

xss攻击也是十分经典的,在前端发展历程中也是打不死的小强,现在已经衍生出了许多xss攻击策略。

存储型攻击通常指攻击者在前端的表单上输入恶意脚本代码,后端将表单数据保存到数据库,之后通过读取数据库信息显示在前端。

如下所示,假设该表单是一个评论功能,后端将表单内容保存到数据库后展示在界面上。如果前端解析表单内容是通过innerhtml,那用户的cookie信息就会被窃取。

  • 反射型:经过后端+不经过数据库

反射型攻击有个十分经典的案例,用过qq的小伙伴都知道每年都会爆料某诱骗链接伪造qq登录骗取用户登录信息造成个人数据泄露。这类诱导链接十分有趣,我本人也上当过。它的标题经常是"什么,你竟然和同班xxx一起合过影"等刺激信息诱骗用户点击进而输入个人账号信息。然后攻击者后端会收到用户输入的账号和密码进而盗窃。

  • Dom型:前端

谈到dom型攻击,也是十分简单。根据名称就知道和dom元素相关。此类攻击方式是建立在dom节点上。如下例子

//正确的链接
<img src='Http://www.baidu.com'/>
//错误的链接
<img src="http://error.com"/ onerror=()=>{alert(document.cookie())}>

看了上面的例子,相比有的小伙伴有了点头绪,攻击者修改img标签的src,并给dom添加错误触发事件,当图片无法加载就会触发脚本代码从而获取用户信息。

3.3 CSRF攻击

csrf攻击又称为跨站伪造攻击,具体解释就是你在访问淘宝页面,此时一个yellow网站的弹窗突然出现,由于你经受不住好奇心,于是想一探究竟。然后你就进入这个yellow网站,由于你在淘宝页面有了登录状态,前端自动保存了cookie信息,当你在进入yellow网站时已经向它的后端发起了http请求,此时cookie身份信息就被这个yellow网站窃取了。

4.攻击防御的正确姿势

4.1 SQL注入防御

此处我们只是讨论前端在sql注入的防御措施,通常我们在表单提交时对sql语句的特殊变量进行转译,这样可以将其作为普通字符串处理而组织获取敏感信息。

4.2 XSS防御

  • 针对登录方式的,可以采取扫码和动态验证码等结合方式
  • 针对窃取用户cookie的,我们可以在后端设置httponly防止前端读取用户的cookie
  • 不相信用户输入的任何数据,所有输入的数据应该在前端进行转译和限制,减少innerHTML的使用

4.3 CSRF防御

看了上面的CSRF攻击方式,我们可以总结以下防御手段

  • 后端设置secure,这个字段保证了只有是https的网站才会将cookie携带,因为https都是经过安全认证的,一般不会存在问题
  • 后端设置SameSites字段是Strict,这个字段称为严格模式,它会校验当前发起后端请求的网站是不是自己站点的,如果不符合不会携带cookie,有效的避免了危机。
  • token验证机制,这个很有意思啊,有个面试官曾经问过这么一个问题,听过token可以防止csrf攻击,那你token放在哪里?是cookie还是localstorage上?这个要好好考虑,这个必须是放在localstorage上,如果放在未经后端严格设置的cookie上,还是会被第三方通过cookie获取到你的token密钥。由于localstorage在浏览器上存在同源机制,第三方打死都无法获取你localstoarge的值,除非第三方偷你电脑。所以我们可以将token放到localstorage上预防csrf攻击。

以上就是前端面试之对安全防御的理解分析的详细内容,更多关于前端面试安全防御的资料请关注编程网其它相关文章!

--结束END--

本文标题: 前端面试之对安全防御的理解分析

本文链接: https://lsjlt.com/news/168766.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 前端面试之对安全防御的理解分析
    目录1.引言2.常见前端攻击策略3.攻击策略解释3.1 SQL注入3.2 XSS攻击3.3 CSRF攻击4.攻击防御的正确姿势4.1 SQL注入防御4.2 XSS防御4.3 CSRF...
    99+
    2024-04-02
  • 前端面试题之url、href、src的示例分析
    这篇文章主要介绍前端面试题之url、href、src的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、URL的概念统一资源定位符(或称统一资源定位器/定位地址、URL地址等...
    99+
    2024-04-02
  • 前端面试之同源和跨域的示例分析
    这篇文章将为大家详细讲解有关前端面试之同源和跨域的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。什么是同源策略同源策略是用来限制从一个源加载的文档或者脚本如何与来自另一个源的资源进行交互,是一种用...
    99+
    2023-06-08
  • 详解前端安全之JavaScript防http劫持与XSS
    目录HTTP劫持、DNS劫持与XSSHTTP劫持DNS劫持XSS跨站脚本页面被嵌入 iframe 中,重定向 iframe使用白名单放行正常 iframe 嵌套更改 URL 参数绕过...
    99+
    2024-04-02
  • JavaScript 前端安全最新趋势:了解最新威胁和防御措施
    随着 JavaScript 在现代网络世界中的广泛应用,JavaScript 前端安全成为一个日益重要的领域。网络罪犯和黑客不断发展攻击技术,因此,保持对最新威胁和防御措施的了解至关重要。 一、最新威胁 跨站点脚本攻击(XSS):X...
    99+
    2024-02-04
    JavaScript 安全 前端安全 网络安全 威胁 防御
  • 【整理分享】48个前端高频面试题(附答案解析)
    48.vue中keep-alive 的作用< keep-alive >是Vue的内置组件,能在组件切换过程中将状态保留在内存中,防止重复渲染DOM。< keep-alive > 包裹动态组件时,会缓存不活动的组件实例...
    99+
    2023-05-14
    javascript Vue 前端面试题
  • 前端理论之rscss和rsjs的示例分析
    这篇文章主要为大家展示了“前端理论之rscss和rsjs的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“前端理论之rscss和rsjs的示例分析”这篇文...
    99+
    2024-04-02
  • 前端开发之CSS原理的示例分析
    这篇文章主要为大家展示了“前端开发之CSS原理的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“前端开发之CSS原理的示例分析”这篇文章吧。  一、浏览器...
    99+
    2024-04-02
  • 前端面试中字节的笔试题和算法题示例分析
    这篇文章将为大家详细讲解有关字节的笔试题和算法题示例分析,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。题目给定一个包含 m x n 个元素的矩阵(m 行, ...
    99+
    2024-04-02
  • 前端面试运行npm run xxx发生过程原理解析
    目录引言package.json文件总结引言 事情是这样的,直接开讲 面试官:npm run xxx的时候,发生了什么?讲的越详细越好。 我(心想,简单啊): 首先,DNS 解析,将...
    99+
    2024-04-02
  • JS面试之对事件循环的理解
    目录一、是什么事件循环(Event Loop)二、宏任务与微任务微任务宏任务三、async与awaitasyncawait四、流程分析 一、是什么 JavaScript 在...
    99+
    2024-04-02
  • JS前端的内存处理的方法全面详解
    目录一、内存的储存和代码执行的场所关系1. 储存空间2. 内存的生命周期3. js 中的内存分配和使用4. 调用栈下移ESP(记录当前执行状态的指针)二、 js中的垃圾回收机制1. ...
    99+
    2023-05-15
    JS前端内存处理 前端内存处理
  • Vue.js前端框架之事件处理的示例分析
    这篇文章主要介绍了Vue.js前端框架之事件处理的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。js的作用是什么1、能够嵌入动态文本于HTML页面。2、对浏览器事件做...
    99+
    2023-06-14
  • Java面试题之MD5加密的安全性详解
    目录1.彩虹表什么是彩虹表2.解决方案3.实现代码总结MD5 是 Message Digest Algorithm 的缩写,译为信息摘要算法,它是 Java 语言中使用很广泛的一种加...
    99+
    2022-11-13
    Java MD5加密 安全 Java MD5加密 Java MD5
  • 【整理分享】75道前端面试CSS中的高频考点
    理论篇1. box-sizing 属性值有什么作用?用来控制元素的盒子模型的解析模式,默认为content-boxcontext-box:W3C 的标准盒子模型,设置元素的 height/width 属性指的是 content 部分的高/宽...
    99+
    2022-11-22
    css
  • java面试散列表及树所对应容器类及HashMap冲突解决全面分析
    目录性能分析HashMap 产生冲突原因及解决方法HashMap 解决冲突方法jdk7 与 jdk8 中HashMap的区别发生冲突扩容使用建议散列表 Hashmap、hashtab...
    99+
    2024-04-02
  • 如何进行基于代理的防火墙安全性分析
    本篇文章为大家展示了如何进行基于代理的防火墙安全性分析,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。其实一直以来,基于代理的防火墙或Web代理都被认为是一种非常重要的安全组件。但问题就在于,这种类型...
    99+
    2023-06-17
  • Web安全解析Boolean注入攻击原理的示例分析
    这篇文章主要为大家展示了“Web安全解析Boolean注入攻击原理的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Web安全解析Boolean注入攻击原理的示例分析”这篇文章吧。1. B...
    99+
    2023-06-25
  • 服务器安全防护对被黑客入侵修改了数据的重点分析
    好多企业网站遭遇黑客攻击,像黑客入侵在互联网只要有数据网络,就能使用数据网络远程操作目标的笔记本电脑、网络服务器、企业网站,从而任意地读取或篡改目标的重要数据,又又或者使用目标系统软件上的功能模块,比如对手机的麦克风开展监听,开启对方摄像头...
    99+
    2023-06-03
  • Android源码面试宝典之JobScheduler从使用到原理分析(二)【JSS的启动】
    上文,我们以IntentService入手,先对JobScheduler进行了简单的实例编码使用。本文开始,我们开始就源码入手,开始深入学习、总结JobScheduler的内部实现原理。 前言 我们从使用代码入手,通过阅读JobSch...
    99+
    2023-08-16
    android java JSS JSC JobScheduler
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作