Web开发的常用攻击和防御方式
一、XSS
主要利用:1.盲目相信用户提交的内容 2.直接把用户的字符串转化成DOM
分类:
1.存储型XSS,恶意脚本存在数据库中,所有访问页面的用户都会被攻击
2.反射型XSS,脚本写在URL中,服务端注入
3.基于DOM的XSS攻击,服务器不参与,浏览器注入
4.基于mutation的XSS,利用浏览器渲染DOM的特性,不同浏览器攻击方式也不同
防御:对string进行转义,扫描svg,自定义跳转链接时要过滤,CSP(限制同源)
二、CSRF
主要利用:简单的身份验证只能保证请求发自某个用户的浏览器,却不能保证请求本身是用户自愿发出的。
防御:限制请求来源,校验Origin和Referrer;用户绑定一个有过期时间的token;非同源禁用iframe;GET和POST分开写;samesite cookie,其他页面发出的请求不能带上cookie;对于node,专门构造中间件防御CSRF。
三、注入
分类:
1.SQL注入
2.CLI注入
防御:最小限权,对高位命令建立允许名单,对URL类型参数进行限制
四、Dos
主要利用:通过某种方式,导致服务器资源被显著消耗,来不及响应更多请求,导致请求挤压,进而雪崩效应
防御:拒绝使用用户提供的正则,负载均衡,快速扩容,降级非核心服务,使用HTTPS
分类:
1.基于正则表达式的DoS(贪婪模式)
2.DDoS,短时间内让大量僵尸设备请求服务器,TCP三次握手不能完成,服务器连接不能释放
五、传输层中间人攻击
主要利用:明文传输,信息篡改不可知,缺少身份验证
SRI:通过对比Hash,判断资源是否被篡改
Web开发的常用攻击和防御方式的更多相关文章
- 依赖注入及AOP简述(十)——Web开发中常用Scope简介 .
1.2. Web开发中常用Scope简介 这里主要介绍基于Servlet的Web开发中常用的Scope. l 第一个比较常用的就是Application级Scope,通常我们会将一 ...
- Web安全之CSRF攻击的防御措施
Web安全之CSRF攻击的防御措施 CSRF是什么? Cross Site Request Forgery,中文是:跨站点请求伪造. CSRF攻击者在用户已经登录目标网站之后,诱使用户访问一个攻击 ...
- web开发中常用的技术体系
HTML html(HyperText Markup Language)超文本标记语言"超文本"就是指页面内可以包含图片.链接.程序等非文字元素. 超文本标记语言的结构包括&q ...
- WEB开发中常用的正则表达式
在计算机科学中,正则表达式用来描述或者匹配一系列符合某个句法规则的字符串的单个字符串.在WEB开发中,正则表达式通常用来检测.查找替换某些符合规则的字符串,如检测用户输入E-mai格式是否正确,采集符 ...
- WEB开发中常用的正则表达式集合
在计算机科学中,正则表达式用来描述或者匹配一系列符合某个句法规则的字符串的单个字符串.在WEB开发中,正则表达式通常用来检测.查找替换某些符合规则的字符串,如检测用户输入E-mai格式是否正确,采集符 ...
- java web开发中常用的协议的使用和java-web 常见的缓冲技术
一.DNS协议 作用将域名解析为IP 类似于我们只需要知道中央一台,中央二台,而不需要知道它的频率,方便记忆. java dns 域名解析协议实现 1 域名解析,将域名可转换为ip地址InetAd ...
- Web常见几种攻击与预防方式
DoS和DDoS攻击 DoS(Denial of Service),即拒绝服务,造成远程服务器拒绝服务的行为被称为DoS攻击.其目的是使计算机或网络无法提供正常的服务.最常见的DoS攻击有计算机网络带 ...
- Web 安全之 XSS 攻击与防御
前言 黑客,相信大家对这一名词并不陌生,黑客们往往会利用 Web 应用程序的漏洞来攻击咱们的系统.开放式 Web 应用程序安全项目(OWASP, Open Web Application Securi ...
- Web开发中常用的定位布局position
定位布局就是为开发提供了更好的布局方式,可以根据需求给相应的模块设定相应位置,从而使界面更佳丰富,代码更佳完美. position是CSS中非常重要的一个属性,通过position属性,我们可以让元素 ...
- SQL参数化查询--最有效可预防SQL注入攻击的防御方式
参数化查询(Parameterized Query 或 Parameterized Statement)是访问数据库时,在需要填入数值或数据的地方,使用参数 (Parameter) 来给值. 在使用参 ...
随机推荐
- java入门与进阶P-5.5+P-5.6
投票统计 写一个程序,输入数量不确定的[0,9]范围内的整数,统计每一中数字出现的次数,输入-1表示结束 循环遍历 通常都是使用for循环,让循环变量i从0到<数组的length,这样循环体内最 ...
- 《爆肝整理》保姆级系列教程-玩转Charles抓包神器教程(6)-Charles安卓手机抓包大揭秘
1.简介 Charles和Fiddler一样不但能截获各种浏览器发出的 HTTP 请求,也可以截获各种智能手机发出的HTTP/ HTTPS 请求. Charles也能截获 Android 和 Wind ...
- Python标准库pathlib及实例操作
Python标准库pathlib及实例操作 https://docs.python.org/zh-cn/3.9/library/pathlib.html 官网 讲的比较好的文章 https://zhu ...
- JavaScript 、三个点、 ...、点点点 是什么语法
笔者在学习ts函数式的时候见到这样的写法,这个语法是es6的扩展运算符,可以在函数调用/数组构造时, 将数组表达式或者string在语法层面展开:还可以在构造字面量对象时, 将对象表达式按key-va ...
- elasticsearch-head-master安装
1 简介 elasticsearch-head是一款专门针对于elasticsearch的客户端工具,elasticsearch-head是一个基于node.js的前端工程 2 依赖 需要安装node ...
- cannot load "mso.dll" vs2008 web开发问题
已成功解决办法: ①将VS 2008安装包WCUWebDesignerCoreWebDesignerCore.exe提取并重新安装: ②将C:Program Files/Common Files/Mi ...
- JZOJ 3527.迷宫花坛(garden)
题面 思路 考场想到 \(tarjan\) 缩点 然而忘了缩点怎么打 于是甩了个暴力 改题时学了个圆方树 发现挺好用 于是······注意重边 \(Code\) #include<cstdio& ...
- JZOJ 5347. 【NOIP2017提高A组模拟9.5】遥远的金字塔
题目 分析 毫无疑问 \(dp\) 设 \(f_{i,j}\) 表示选到第 \(i\) 层,已选 \(j\) 个矩阵最大覆盖面积 那么 \(f_{i,j}=\max{f_{l,j}+w_i*(i-l) ...
- php使用PDO获取结果集的方法
php使用PDO获取结果集的方法 转载:https://www.jb51.net/article/105797.htm 更新时间:2017年02月16日 11:11:42 作者:水晶依恋 ...
- 抗TNF治疗改变JIA患者PBMC基因表达谱,可预测疗效
抗TNF治疗改变JIA患者PBMC基因表达谱,可预测疗效 Moorthy LN, et al. ACR 2007. Presentation No:1713. 背景:我们假设儿童期发生的特发性关节炎( ...