前端日拱一卒D5——web安全基础
前言
余为前端菜鸟,感姿势水平匮乏,难观前端之大局。遂决定循前端知识之脉络,以兴趣为引,辅以几分坚持,望于己能解惑致知、于同道能助力一二,岂不美哉。
本系列代码及文档均在 此处
三大攻击
XSS(cross site script, 跨站脚本攻击),SQL注入和CSRF(cross-site request forgery, 跨站请求伪造)是最常见的几种web攻击行为
XSS
由带有页面可解析内容的数据未经处理直接插入到页面解析导致
存储型XSS
后台从数据库中读取数据返回,在前端页面模板中直接渲染
<div>{{ content }}</div> <!-- content ---> <script>alert(1)<script> --> <!-- 渲染后 --> <div><script>alert(1)<script></div> 复制代码
MXSS(Dom XSS)
将脚本插入Dom属性中被解析导致
<div class="abcd {{ content }}"></div> <!-- content ---> "><script>alert(2)</script><div class="efgh --> <!-- 渲染后 --> <div class="abcd"><script>alert(2)</script><div class="efgh"></div> 复制代码
反射性XSS
在url中注入了可解析内容,页面渲染时用到了这些参数导致
// 例如node服务器处理页面请求时 let name = req.query['name'] // name=<script>alert(3)<script> this.body = `<div>${name}</div>` // 渲染后 <div><script>alert(3)<script></div> 复制代码
一般处理方式:
- HTML编码:将特殊字符如
<
,>
等进行转换,转换为HTML字符实体 - js编码:使用Unicode码位替换特殊字符
- Url编码:%加ASCII码
具体的东西有点多啊,暂时先放放,以后对安全竞赛感兴趣了再补充
CSRF
伪站点从源站点获取了用户信息后直接调用服务接口。 一般的处理的方式是通过服务下发加密过的token,并在后续请求中由前端带上到服务端进行token验证。但这样也不一定安全。
SQL注入
一个例子:
// 请求url GET /xxx/xxx?id=100 or name=derek
// server
sql = `select * from user where id =${req.query.id}`
exec(sql)
// 得到了意料之外、预谋已久的信息
复制代码
一般处理方式是服务端对于参数进行校验
请求劫持
DNS劫持
顾名思义,DNS服务器(DNS解析各个步骤)被篡改,修改了域名解析的结果,使得访问到的不是预期的ip
HTTP劫持
运营商劫持,此时大概只能升级HTTPS了
浏览器安全控制
X-XSS-Protection
防止反射型XSS
Strict-Transport-Security
强制使用HTTPS通信
Content-Secure-Policy
指定浏览器只可以加载指定可信域名来源的内容,可以在响应头中返回,也可在页面meta标签内指定
<meta http-equiv="Content-Security-Policy" content="default-src 'self'; img-src https://*; child-src 'none';"> 复制代码
Access-Control-Allow-Origin
设置可访问该服务器资源的域
虽发表于此,却毕竟为一人之言,又是每日学有所得之笔记,内容未必详实,看官老爷们还望海涵。
前端日拱一卒D5——web安全基础相关推荐
- 前端日拱一卒D9——ES6笔记之基础篇
前言 余为前端菜鸟,感姿势水平匮乏,难观前端之大局.遂决定循前端知识之脉络,以兴趣为引,辅以几分坚持,望于己能解惑致知.于同道能助力一二,岂不美哉. 本系列代码及文档均在 此处 最近几天有点忙,啃啃老 ...
- 日拱一卒,集小胜为大胜; 学以致用,在战争中学习战争;
项目,证明自己的学习能力: 短期掌握尽可能多的知识,并且连线总结成为网络 : 日拱一卒,集小胜为大胜: 学以致用,在战争中学习战争: 投入足够的时间: 学习中的总结,理解 ,应用,等编程套路: 目的性 ...
- CSDN20周年直播分享:日拱一卒,成为技术合伙人,力争财务自由
公开课主题:日拱一卒,成为技术合伙人,力争财务自由 内容介绍 成为技术合伙人,是广大技术达人最靠谱的职业发展方向,也是实现个人财富自由的可行方法之一. 听众受益 学习方法.职业发展规划.技术方向的选择 ...
- 社区人物志|李昊鹏:日拱一卒,功不唐捐
「社区人物志」是 Apache Doris 社区推出的系列专栏,我们关注每一个对 Doris 做出过贡献的 Contributor ,会定期从对 Doris 做出突出贡献的小伙伴中选出一位「社区之星」 ...
- EAUML日拱一卒 总目录
用例图 EA&UML日拱一卒 用例图开篇 EA&UML日拱一卒 用例包含关系 EA&UML日拱一卒 用例泛化关系 EA&UML日拱一卒 用例扩展关系 类图 EA& ...
- 【日拱一卒】如何编写测试用例(上)
[日拱一卒]如何编写测试用例(下) [写在前面的话] 测试用例(Test Case)是为某个特殊目标而编制的一组测试输入.执行条件以及预期结果,以便测试某个程序路径或核实是否满足某个特定需求. 测试用 ...
- 【日拱一卒】如何编写测试用例(下)
[日拱一卒]如何编写测试用例(上) 六.测试用例设计的误区 ·能发现到目前为止没有发现的缺陷的用例是好的用例: 首先要申明,其实这句话是十分有道理的,但我发现很多人都曲解了这句话的原意,一心要设计出发 ...
- 别做操之过急的”无效将军”,做实实在在的”日拱一卒” zz
别做操之过急的"无效将军",做实实在在的"日拱一卒" 前天在网上看到一句话很不错,拿来和大家分享,同时用我的"大叔"三观来解读这句话. 这句 ...
- 别做操之过急的”无效将军”,做实实在在的”日拱一卒”
前天在网上看到一句话很不错,拿来和大家分享,同时用我的"大叔"三观来解读这句话. 这句话是:"我们不需要操之过急的"无效将军",我们需要实实在在的&q ...
- 日拱一卒,功不唐捐 | 每日思考俱乐部 专栏更新通知
缘起 在 2019 年七月份,我写了一篇文章<我为什么要写反思录>.文中提到了我做记录和思考的初衷,起初写在了自己的私密仓库中,也就是其他人都看不到. 持续了一段时间后,我发现,没有分享的 ...
最新文章
- android 获取指定月份的开始时间 结束时间
- Effective C++ --7 模板与泛型编程
- Python-OpenCV之图片缩放(cv2.resize)
- AtCoder AGC043C Giant Graph (图论、SG函数、FWT)
- NVelocity系列:NVelocity配置详解
- 春节福利:《Oracle性能优化与诊断案例精选》电子版首次公开下载
- 曝Redmi Note 9系列下周发布:最便宜的一亿像素手机
- OpenShift 4 - DevSecOps Workshop (5) - 为Pipeline增加测试Task
- Windows中内存泄漏检测工具vld简介及使用
- 戴尔linux恢复镜像,如何从官网下载并使用系统恢复映像
- 士不可以不弘毅,任重而道远!
- 计算机程序占用端口,程序启动发现端口被占?3步查出它是谁!
- Go语言设计与实现 -- 内存管理器
- FlexiTimer2库下载 无偿 分享 仅供学习
- SecureCRT连接后乱码问题!!!
- 矩阵旋转(左旋,右旋)
- gradle-5.4.1-all.zip下载与替换
- linux笔记(6):东山哪吒D1H测试HDMI显示内置图片-命令行调试
- 解决Linux虚拟机无法打开,报无法打开虚拟机“Kylin” (D:\javaToil\linux\Kylin\Kylin.vmx): 虚拟机似乎正在使用中
- 漫长的告别读后感 - 说一声再见,就是死去一点点
热门文章
- 云原生:云计算时代命题之终极解决方案
- 1.7 非平衡数据的处理方法大全
- linux下下载fnl数据,NCEP再分析资料FNL数据在windows平台用cygwin批量下载方法
- python将txt读入矩阵_python读入txt数据,并转成矩阵
- 相对开音节java,L314 单音节词读音规则(二)-元音字母发音规则
- 蓝桥杯2021年第十二届C++省赛第四题-货物摆放
- 蓝桥杯2015年第六届C/C++省赛C组第一题-隔行变色
- Futter基础第6篇: 实现网格布局【GridView、GridView.count、GridView.builder】
- L1-017 到底有多二 (15 分) — 团体程序设计天梯赛
- Android编译判定BoardConfig.mk的宏控是否打开或者有效的验证方法