Open MJingv opened 5 years ago
一句话解释 攻击者想尽一切办法将可以执行的代码注入到网页中
分类:持久型&&非持久型
持久型 :攻击的代码被服务端写入进数据库中,影响恶劣 input 里 <script>alert(1)</script> 非持久型:一般通过修改 URL 参数的方式加入攻击代码,诱导用户访问链接从而进行攻击。 http://www.domain.com?name=<script>alert(1)</script>
input 里 <script>alert(1)</script>
http://www.domain.com?name=<script>alert(1)</script>
防御:转义字符 && csp
对于用户的输入应该是永远不信任的。最普遍的做法就是转义输入输出的内容,对于引号、尖括号、斜杠进行转义 白名单:通常采用白名单过滤的办法,当然也可以通过黑名单过滤,但是考虑到需要过滤的标签和标签属性实在太多,更加推荐使用白名单的方式。
CSP 本质上就是建立白名单,开发者明确告诉浏览器哪些外部资源可以加载和执行。我们只需要配置规则,如何拦截是由浏览器自己实现的。 开启方式 设置 HTTP Header 中的 Content-Security-Policy 只允许加载本站资源 Content-Security-Policy: default-src ‘self’ 只允许加载 HTTPS 协议图片 Content-Security-Policy: img-src https://* 允许加载任何来源框架 Content-Security-Policy: child-src 'none' 2 .设置 meta 标签的方式 <meta http-equiv="Content-Security-Policy">
设置 HTTP Header 中的 Content-Security-Policy 只允许加载本站资源 Content-Security-Policy: default-src ‘self’ 只允许加载 HTTPS 协议图片 Content-Security-Policy: img-src https://* 允许加载任何来源框架 Content-Security-Policy: child-src 'none' 2 .设置 meta 标签的方式 <meta http-equiv="Content-Security-Policy">
Content-Security-Policy: default-src ‘self’
Content-Security-Policy: img-src https://*
Content-Security-Policy: child-src 'none'
2 .设置 meta 标签的方式
<meta http-equiv="Content-Security-Policy">
原理就是攻击者构造出一个后端请求地址,诱导用户点击或者通过某些途径自动发起请求。如果用户是在登录状态下的话,后端就以为是用户在操作,从而进行相应的逻辑
<img src="http://www.domain.com/xxx?comment='attack'"/>
规则
Get 请求不对数据进行修改 不让第三方网站访问到用户 Cookie 阻止第三方网站请求接口 请求时附带验证信息,比如验证码或者 Token
措施
可以对 Cookie 设置 SameSite 属性。该属性表示 Cookie 不随着跨域请求发送,可以很大程度减少 CSRF 的攻击,但是该属性目前并不是所有浏览器都兼容。
验证 Referer
对于需要防范 CSRF 的请求,我们可以通过验证 Referer 来判断该请求是否为第三方网站发起的。
Token
服务器下发一个随机 Token,每次发起请求时将 Token 携带上,服务器验证 Token 是否有效。
一句话解释 点击劫持是一种视觉欺骗的攻击手段
点击劫持是一种视觉欺骗的攻击手段。攻击者将需要攻击的网站通过 iframe 嵌套的方式嵌入自己的网页中,并将 iframe 设置为透明,在页面中透出一个按钮诱导用户点击。
防御
DENY,表示页面不允许通过 iframe 的方式展示 SAMEORIGIN,表示页面可以在相同域名下通过 iframe 的方式展示 ALLOW-FROM,表示页面可以在指定来源的 iframe 中展示
1.X-FRAME-OPTIONS 2.JS 防御
iframe 的方式加载页面时,攻击者的网页直接不显示所有内容了。
一句话解释 中间人攻击是攻击方同时与服务端和客户端建立起了连接,并让对方认为连接是安全的,但是实际上整个通信过程都被攻击者控制了。
攻击者不仅能获得双方的通信信息,还能修改通信信息。 不建议使用公共wi-fi
防御 https
通过提供 可鉴别 的 数字信息 验证 自身身份 的一种方式。
签名 最根本的用途是要能够唯一 证明发送方的身份,防止 中间人攻击、CSRF 跨域身份伪造。基于这一点在诸如 设备认证、用户认证、第三方认证 等认证体系中都会使用到 签名算法
资料来源
浅谈常见的七种加密算法及实现
常见的 对称加密 算法主要有 DES、3DES、AES 等 常见的 非对称算法 主要有 RSA、DSA 等 散列算法 主要有 SHA-1、MD5 等
xss
一句话解释 攻击者想尽一切办法将可以执行的代码注入到网页中
分类:持久型&&非持久型
防御:转义字符 && csp
csrf
规则
措施
验证 Referer
Token
点击劫持
一句话解释 点击劫持是一种视觉欺骗的攻击手段
防御
1.X-FRAME-OPTIONS 2.JS 防御
中间人攻击
一句话解释 中间人攻击是攻击方同时与服务端和客户端建立起了连接,并让对方认为连接是安全的,但是实际上整个通信过程都被攻击者控制了。
防御 https
数字签名
通过提供 可鉴别 的 数字信息 验证 自身身份 的一种方式。