本文主要从两个方面介绍web安全,一个是常见的攻防套路,一个是https,csp等策略。
1 攻防套路
1.1 XSS
跨站脚本攻击(Cross Site Script)是最常见的攻击之一,攻击者在用户页面注入恶意脚本,当用户浏览该页面时就会自动执行。在使用了react或其他框架的情况下,除非有特别操作(比如使用dangerouslySetInnerHTML),否则会自动将注入的内容转义。
转义后的标签会当作字符串来解析,而不是作为脚本执行。
常见的有两种
- 非持久型 XSS,又称为反射型,比如一个元素是后端接口返回或者通过input输入或者url解析等不安全方式获取。
- 持久型 XSS,通过表单等方式将相关代码存入数据库,然后前端直接渲染。
可通过以下操作可
- 页面渲染的的所有元素应由可控服务器获取,并结合后面介绍的CSP。
- 把所有即将插入的dom转义。
1.2 CSRF
跨站请求伪造攻击(Cross-Site Request Forgery)的攻击过程大致为
- 用户访问并登录网站a,并返回了相关认证信息
- 用户又访问网站b,b返回一些攻击性代码,比如图片,在用户不知情的情况下浏览器自动携带认证信息访问a
- a如果没做相关防范就会根据认证信息当作是用户的访问进行处理。
防范措施
- 验证referrer
- 添加相关http header
- 使用cookie外其他方式认证
1.3 SQL 注入
SQL 注入(SQL Injection)是因为没有处理好用户输入
1.4 DDoS 攻击
DDoS 又叫分布式拒绝服务(Distributed Denial of Service),其原理就是利用大量的请求造成资源过载,导致服务不可用。
预防措施可以缓解但不能预防,比如
- 限制单ip请求次数
- 关闭和限制对外开放的服务
- 加配置和负载均衡
1.5 流量劫持
包括dns劫持和http劫持。
其中dns劫持是dns服务器将域名解析到恶意网站,可能是电脑中毒改了dns配置等。
http劫持是中间人通过篡改http响应修改响应页面,使用https。
2 其他策略
以下是我别的文章中讨论过的话题,会提供相关链接。
2.1 https
在http基础上添加tls层加密,具体看这里
当在https页面请求http时,这个页面被称为mixed content page,这种情况下的页面只能部分加密部分,而且通过http获取的脚本可以更改https页面的行为,和泄露信息,因此浏览器会阻止mixed content的加载。
2.2 cookie的安全设置
cookie在使用时有一些安全选项,具体看这里
2.3 同源策略
参考这里
2.4 CSP
内容安全策略(Content Security Policy )使服务端添加Content-Security-Policy
header来指定用户代理可以加载哪些域名下的内容,可以有效解决XSS。
参考mdn
常见问题FAQ
- 免费下载或者VIP会员专享资源能否直接商用?
- 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
- 提示下载完但解压或打开不了?
- 找不到素材资源介绍文章里的示例图片?
- 模板不会安装或需要功能定制以及二次开发?
发表评论
还没有评论,快来抢沙发吧!