【面试题】2023年前端最新面试题-web安全

news/2024/12/29 13:05:47/

原文见语雀:(https://www.yuque.com/deepstates/interview/tluabi)

● 网络前端安全
○ xss
○ csrf
○ 点击挟持攻击
○ url跳转漏洞
○ sql注入攻击
○ os命令注入攻击
○ 海量接口请求
● 前端兜底安全
○ 兜底容灾

⭐️⭐️⭐️ 相关知识点见:
网络前端安全
Web攻击方式有哪几种?
● XSS
● CSRF
● 点击挟持攻击
● url跳转漏洞
● SQL注入攻击:就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。
● os命令注入攻击
● 海量接口请求

XSS
XSS基本概念和缩写?
XSS,cross-site scripting ,跨域脚本攻击。

XSS攻击原理?
原理:向页面注入html标签或js脚本。
eg:提交区(评论区)写img标签,script标签,利用合法渠道向页面注入js

XSS防御措施?
宗旨:让xss不可执行。
1、前端替换关键字,如替换<为< > 为>
2、后台替换。
3、任何内容写到页面之前都必须加以encode,避免不小心把html tag 弄出来。

CSRF
CSRF基本概念和缩写?
CSRF,Cross-site request forgery,通常被称为跨站请求伪造。

CSRF攻击原理?

1、前提:①用户在注册网站A登录过,②接口有漏洞。
2、引诱点击,往往是一个链接(这个链接自动携带cookie,不会带token),指向网站A的api,接口是get类型。浏览了A,浏览器自动生成新的cookie,网站A拿到cookie,接口运行。

CSRF防御措施?
● token验证:注册网站,或者访问网站,服务器自动向本地存储一个token。
● refer验证:服务器判断页面是不是我这个站点来的页面。
● 对 Cookie 设置 SameSite 属性
● 验证码:应用程序和用户进行交互过程中,特别是账户交易这种核心步骤,强制用户输入验证码,才能完成最终请求。

网页验证码是干嘛的,是为了解决什么安全问题。
一、区分用户是计算机还是人的公共全自动程序。
二、CSRF防御措施之一。可以防止恶意破解密码、刷票、论坛灌水; 有效防止黑客对某一个特定注册用户用特定程序暴力破解方式进行不断的登陆尝试。

CSRF ,XSS的区别?
1、XSS是向页面注入js去运行,然后在js函数体中做他想做的事情。
CSRF是利用网站漏洞,自动执行接口。用户需要登陆网站。
2、XSS是获取信息,不需要提前知道其他用户页面的代码和数据包。
CSRF是代替用户完成指定的动作,需要知道其他用户页面的代码和数据包。

SQL注入
SQL注入防御措施?
1、永远不要信任用户的输入,要对用户的输入进行校验,可以通过正则表达式,或限制长度,对单引号和双"-"进行转换等。
2、永远不要使用动态拼装SQL,可以使用参数化的SQL或者直接使用存储过程进行数据查询存取。
3、永远不要使用管理员权限的数据库连接,为每个应用使用单独的权限有限的数据库连接。
4、不要把机密信息明文存放,请加密或者hash掉密码和敏感的信息。

前端兜底安全
前端兜底容灾?
一、前端容灾指的是当后端接口挂了,依然可以保证页面展示信息完整。我们以百度首页中新闻模块举例,当你打开百度的时候,服务端渲染好的页面出来以后,需要请求新闻接口拿到数据渲染新闻模块。你的老板告诉你,不论任何情况,必须展示新闻和广告,即使新闻接口挂了。这个时候怎么办,也就是前端容灾的范畴了。
二、兜底容灾方法
● localstorage缓冲接口数据
新闻模块的接口,每次有返回的时候,都存入localstorage中,以接口路径为key,返回数据为value,当新闻接口请求失败的时候先从localstorage中读上次成功请求时候的数据,展示出来。
● 备份一份静态数据到CDN
让业主方同学提供一份兜底新闻数据,存放在CDN上,新闻接口返回失败,用户localstorage中也没有数据的时候,去CDN对应地址拉取数据渲染
● 利用Service worker的caches API做页面接口缓存
Service worker提供了fetch事件可供监听,当页面发出请求的时候,会先过fetch方法,你可以在这里定义任何你需要的缓存策略,比如请求成功后,将结果存入caches。Service worker中,你甚至可以缓存当前页面的HTML,让网站离线运行。
通过上面这些手段,可以保证只要给用户吐出HTML就能保证页面完整性。对于让页面始终可吐出HTML这件事,那就又属于后端,运维同学所做的了。可以借助上面我介绍到的集群的方式,也可以通过CDN的方式(动态DNS)来解决。


http://www.ppmy.cn/news/13129.html

相关文章

【进击的算法】基础算法——回溯算法

&#x1f37f;本节主题&#xff1a;回溯算法 &#x1f388;更多算法&#xff1a;深入聊聊KMP算法 &#x1f495;我的主页&#xff1a;蓝色学者的个人主页 文章目录一、前言二、概念三、例题1.题目&#xff1a;全排列2.解题思路回溯算法的本质问题1&#xff1a;问题2&#xff1a…

记2022年秋招经历

自我介绍求职体验求职心得 一、自我介绍 学历普通本科&#xff0c;专业是网络工程&#xff0c;在校期间学习主要的是计算机体系方面的知识&#xff0c;根据课程&#xff0c;自学过前端、后端等内容。包括前端三板斧(htmlcssjs)、常用的前端框架(bootstarp/Vue等&#xff09;&am…

PostgreSQL 复制表的 5 种方式

PostgreSQL 提供了多种不同的复制表的方法&#xff0c;它们的差异在于是否需要复制表结构或者数据。 CREATE TABLE AS SELECT 语句 CREATE TABLE AS SELECT 语句可以用于复制表结构和数据&#xff0c;但是不会复制索引。 我们可以使用以下语句基于 employee 复制一个新表 em…

1个 30多年程序员的生涯经验总结

有人说&#xff1a;一个人从1岁活到80岁很平凡&#xff0c;但如果从80岁倒着活&#xff0c;那么一半以上的人都可能不凡。 生活没有捷径&#xff0c;我们踩过的坑都成为了生活的经验&#xff0c;这些经验越早知道&#xff0c;你要走的弯路就会越少。 在我30多年的程序员生涯里…

电脑开机出现绿屏错误无法启动怎么办?

电脑开机出现绿屏错误无法启动怎么办&#xff1f;有用户电脑开机的时候&#xff0c;突然出现了屏幕变成绿色的情况&#xff0c;而且上面有很多的错误代码。然后卡在页面上一直无法进入到桌面&#xff0c;重启电脑后依然无效。那么如何去解决这个问题呢&#xff1f;来看看具体的…

Linux 命令(245)—— chage 命令

文章目录1.命令简介2.命令格式3.选项说明4.常用示例参考文献1.命令简介 chage 修改用户密码过期信息。 chage 可以更改密码修改之间的天数和上次更改密码的日期。系统使用此信息来确定用户何时必须修改其密码。 chage 也可以设置帐户的过期时间。 2.命令格式 chage [optio…

OpenAI DALL·E 绘画机器人

快过年了&#xff0c;在公司也没啥任务&#xff0c;索性尝试使用OpenAI的DALLE生成一些好玩的图片。 OpenAI DALLE 官方介绍&#xff1a; DALLE 是一种由 OpenAI 开发的大型语言模型&#xff0c;其能够通过生成图像和文本来完成各种任务。其名称来源于绘画机器人 WALLE 和艺术家…

【论文精选】TPAMI2020 - PFENet_先验引导的特征富集网络_小样本语义分割

【论文精选】TPAMI2020 - PFENet_先验引导的特征富集网络_小样本语义分割 精选精析&#xff1a; 【论文原文】&#xff1a; Prior Guided Feature Enrichment Network for Few-Shot Segmentation (当前引用次数&#xff1a;184) 【论文代码】&#xff1a; https://github.co…