面试官:网络安全了解多少,简单说说?

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第10天,点击查看活动详情

写在前面

近年来,随着互联网以及数字化的不断发展,互联网已经成为了我们生活中无处不在的 基建 ,而随着网络相关技术的发展,网络安全也逐渐受到广泛关注,由于数字化程度的不断加深,接入网络的设备丰繁多样,面对各式各样的网络使用者,网络应用的脆弱性逐渐显现出来。

对于接入网络的相关应用而已,网络攻击成了大家心头的一个疙瘩,开放式的网络中,无时无刻存在这被恶意攻击者盯上的隐患,因此,如何在应用开发期间主动规避设计缺陷,降低网络攻击风险成了如今产品开发越来越重视的问题

XSS 攻击

XSS 即跨站脚本攻击XSS(Cross Site Scripting),为了不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS。恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页面时,嵌入Web里面的Script代码会被执行,从而达到恶意攻击用户的目的。

反射型 XSS

又称非持久型XSS,这种攻击方式具有一次性,只在用户单击时触发。跨站代码一般存在链接中,当受害者请求这样的链接时,跨站代码经过服务端反射回来,这类跨站的代码通常不存储服务端。

攻击过程

微信截图_20220610224754.png 反射型 XSS 的形成主要依靠恶意链接和网页将恶意链接参数插入到DOM中执行而触发,简单举个例子,有个网站有这样的功能,输入框输入内容,然后通过 get 请求提交到服务器,而服务器会将该内容返回给客户端,客户端回显到 DOM 中,当存在这样子的功能时,我们就可以尝试进行 XSS 攻击了。

1、构造链接

首先我们构造一个携带恶意尝试的该网站的链接,如 http://api.xxx.org?input=<script>alert("Yimwu is coming!")<script>

2、诱导点击

我们可以通过发送钓鱼邮件或者在钓鱼网站植入链接,诱导用户进行点击,当用户点击恶意链接后将对目标网站进行访问

3、网站反射 XSS

当网站接收到携带而已代码的参数后,将恶意代码返回给用户端,用户端执行恶意代码,XSS 攻击成功

存储型 XSS

存储型XSS,持久化,代码是存储在服务器中的,如在个人信息或发表文章等地方,插入代码,如果没有过滤或过滤不严,那么这些代码将储存到服务器中,用户访问该页面的时候触发代码执行。

攻击过程

批注 2022-06-11 110242.png

1、上传恶意脚本

存储型攻击的第一步是构造恶意脚本,通过构造恶意脚本,然后嵌入到网站允许上传的内容中,提交到服务器,然后服务器将其存入数据库中

2、用户访问网站

当用户通过正常请求,发送请求到该被攻击的网站,由于请求的网页包含恶意脚本的内容,因此网站会从数据库中提取存在恶意脚本的内容,返回给用户

3、执行恶意代码

当服务器返回了包含恶意脚本的内容给用户后,用户端自动执行,发送 XSS 攻击,将用户敏感信息发送到恶意服务器,至此攻击成功

XSS 攻击防范措施

永远不要相信用户输入的任何东西,永远不要,永远不要!!! 当用户输入的信息提交到服务器的过程中,我们有两个防范关卡,第一个是前端,第二个是后端。作为前端或者后端,我们应该都知道,日常工作中,除了敲代码,我们还要在前端、后端间相互甩锅中度日!!!所以,在这种情况下, XSS 攻击到底在哪端做限制好呢,我的建议是,你做哪端,就在哪端做,不要天真的认为对方做了就行,安全问题永远是无孔不入的,当发生了安全攻击的时候,如果两端都做了限制,那么会极大地给攻击者增加攻击的难度,另外,当攻击发生时,如果你已经做了充分的限制,那么,甩锅侠乱战中,你将不会是其中一员了!!!

往期好文推荐

浅尝 | 从 0 到 1 Vue 组件库封装

面试官:这么简单的正则表达式都不会?

Webpack 打包类库踩坑

面试官:你就只会 npm run build 吗?(Webpack 配置 Vue+Ts)

面试官:连VuePress都没搭过还说开发过组件库?(VuePress 搭建)

面试官: 连 Vue 视图更新都不会写?(Vue视图更新原理【一】)

面试官: 能不能手写 Vue 响应式?(Vue2 响应式原理【完整版】)

面试官:能不能手写 Vue3 响应式(Vue3 原理解析之响应系统的实现)

JS 优雅之道(JS 代码优化小 Tip)

面试官:你真的会用 SVG 吗? (SVG 应用实战)

面试官:说一下这个Loading动画实现思路 (CSS3 实现 Loading 动画)

JS 扫盲题 ( 面试题梳理系列 (一))

面试官:你确定你说的防抖不是节流吗?( 面试题梳理系列 (二))

面试官:除了 HTTP,你还用过什么通信协议?(Websocket 在数字孪生中的应用)

面试官:你真的理解 Event Loop 吗?( JS 事件循环 )

面试官:v-for 中 key 为什么不能用 index,从原理层面聊聊?

面试官:vue-router 的 hash 与 history 哪个模式会刷新页面?

面试官:说说你平时用过的自适应方案(数字孪生可视化自适应方案)

面试官:说一下如何优化过渡动画(数字孪生可视化过渡动画)

面试官:网络安全了解多少,简单说说?

写在最后

博主接下来将持续更新好文,欢迎关注博主哟!!
如果文章对您有帮助麻烦亲点赞、收藏 + 关注和博主一起成长哟!!❤️❤️❤️

猜你喜欢

转载自juejin.im/post/7107636958045667364