一、XSS—跨站脚本攻击
跨站脚本攻击(cross site script)
1、原理
恶意攻击者往web页面插入恶意可执行网页脚本代码,当用户浏览该页时,嵌入其中web里面的脚本代码会被执行,从而可以达到攻击者盗取用户信息或其它侵犯用户安全隐私的目的。XSS的攻击方式千变万化,但仍可大致分成几个类型:
2、非持久XSS(反射型XSS)
一般是通过给别人发送带有恶意脚本代码参数的URL,当URL地址被打开时,特有的恶意代码参数被html解析,执行。
2.1、特点
- 即时性,不经过服务器存储,直接通过
HTTP的GET和POST请求就能完成一次攻击,拿到用户隐私数据 - 攻击者需要诱骗点击
- 反馈率低,所以较难发现和响应修复
- 盗取用户敏感保密信息
2.2、如何防止
- web页面渲染的所有内容/数据都必须来自服务端
- 尽量不要从
URL、document(文档)、referrer、document.forms这种DOM API中获取数据直接渲染 - 尽量不要使用
eval、new function()、document.write()、window.setInterval()、innerhtml、document.setTimeout()、document.createElement()等执行字符串的方法 - 如果做不到以上几点,也必须对设计
DOM渲染的方法传入的字符串参数做escope转义 - 前端渲染的时候对任何的字段都需要做
escope转义代码
3、持久性XSS(存储型XSS)
一般存在于form表单提交等交互操作,如发帖留言、提交文本信息等。黑客利用XSS漏洞,将内容经正常功能提交进入数据库持久保存,当前端页面获得后端从数据库中读出的注入代码时,恰将其渲染执行。
3.1、条件
此攻击成功需同时满足以下条件:
POST请求提交表单后端没做转义直接入库- 后端从数据库中取出数据没做转义直接输出前端
- 前端拿到后端数据没做转义直接渲染成
DOM
3.2、特点
- 持久性久,植入在数据库中
- 危害面广,甚至可以让用户机器变成
DDOS攻击的肉鸡 - 盗取用户私密信息
- 基于字符集的XSS
- 基于Flash 的跨站XSS
- 未经验证的跳转XSS
二、CSRF—跨站请求伪造攻击
跨站请求伪造攻击(cross-site request forgery)
1、原理
攻击者盗用了你的身份,以你的名义发送恶意请求。
以你名义发送邮件,发消息,盗取你的账号,甚至于购买商品,虚拟货币转账。
造成个人隐私泄露以及财产安全问题
可以理解为有一个小偷在你配钥匙的地方得到了你家的钥匙,然后拿着去你家想偷什么偷什么。
2、条件
完成CSRF攻击必须有三种条件:
- 用户以及登陆了站点
A,并在本地记录了cookie - 用户在没有登出站点
A的情况下(也就是cookie生效的情况下),访问了恶意攻击者提供的引诱危险站点B(B要求访问A)——(B也可能为一个存在其他漏洞的可信任网站) - 站点
A没有做任何CSRF防御
3、预防CSRF
- 正确使用
GET、POST和cookie - 在非GET请求中增加token
当正确使用GET和POST后,剩下的就剩在所有非GET请求中国增加随机数 - 验证码 token
三、SQL注入
1、原理
攻击者成功的向服务器提交恶意的SQL查询代码,程序在接收后错误的将攻击者的输入作为查询语句的一部分执行,导致原始的查询逻辑被改变,额外的执行了攻击者精心构造的恶意代码。
举例: ' OR '1' = '1'
这是最常见的SQL注入攻击,当我们输入如用户名admin,然后密码输入 ' OR '1'='1' 的时候,我们在查询用户名和密码是否正确的时候,本来要执行的是 select * from user where username=' ' and password

本文总结了常见的Web安全攻击,包括XSS、CSRF、SQL注入、命令行注入和DDoS攻击,详细阐述了它们的原理、攻击方式及防范策略。对于XSS,介绍了反射型和存储型XSS的特征与防御;对于CSRF,解释了其工作原理和防止手段;SQL注入则探讨了如何避免恶意代码执行;DDoS攻击则分为网络层和应用层,讨论了不同类型的DDoS攻击及其防御方法。此外,还提及了流量劫持、服务器漏洞以及高并发场景下的QPS计算和处理。
最低0.47元/天 解锁文章
2230

被折叠的 条评论
为什么被折叠?



