我是靠谱客的博主 美满手套,最近开发中收集的这篇文章主要介绍常见网络攻击原理与防御中间人攻击重放攻击CSRF跨站请求伪造XSS跨站脚本攻击SQL注入HTTP劫持DNS劫持DDoS攻击错误回显路径遍历,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
中间人攻击
- 产生中间人攻击的本质原因是协商过程中的数据没有经过端点认证,通信两端不知道收到的协商数据是来自对端还是来自中间人
- 因此单纯的“密钥协商”是不够的,还需要“带认证的密钥协商”
- 防御方式
- CA证书
- 基于签名算法的非对称认证
- HMAC
- 基于消息认证码(Message Authentication Code)的对称认证
- 消息认证码的认证方式需要预先共享一个私密的Key(PSK)
- CA证书
重放攻击
- 攻击者不需要理解请求本身的意思,只需要截获并重新发送请求即可
- 如果转账业务没有做防重放处理,就会重现重复转账问题
- 防御方式
- 每次连接生成不同的秘钥来进行加密
- 对于不加密的请求,使用 时间戳+不重数
CSRF跨站请求伪造
- CSRF攻击利用Cookie或Session盗取了用户身份
- 和XSS区别在于恶意请求全部发生在用户的浏览器上
- 这样不需要拿到cookie,绕开了HTTPOnly的限制
- CSRF的主要防御思路是识别请求者身份
- 防御方式
- 使用 HTTP 的
Referer
头- 因为
Referer
头可以携带请求的来源页面地址,这样可以根据 Referer 头鉴别出伪造的请求 - 很多网站使用这个功能实现图片防盗链
- 如果访问图片的请求不是来自自己网站就拒绝
- 因为
- 使用表单 token,服务端给每个表单都生成的一个随机数参数
- Token和Cookie 所不同的是,前者是对每个页面或每个表单就会生成一个新的值,而后者则是只有会话重新生成的时候才会生成
- 当用户正常操作的时候,这个 token 会被带上,从而证明用户操作的合法性,而如果是 CSRF 的情形,这个请求来自于一个非预期的位置,那么就不可能带有这个正确的 token
- 验证码
- 用户体检不好,一般用于关键页面
- 使用 HTTP 的
- 一旦存在xss,csrf的防御措施都可能失效
XSS跨站脚本攻击
- 全球大约70%的web应用攻击来自XSS和SQL注入攻击
- 攻击者在服务器返回的普通页面中嵌入特殊的脚本代码,那么在普通用户浏览这个网页的时候,这个特殊的脚本代码就得到了执行,于是用户的 Cookie 通过请求的方式发送给了这个攻击者指定的地址,这样攻击者就劫持了用户的会话,利用 Cookie 中标识身份的字符串,就可以伪装成实际的用户在这个网页操作了
- 恶意脚本的上传方式,往往是利用网站没有对用户的输入(例如提交的表单)进行过滤或转义造成的
- 防御方式
- 做好字符转义和过滤
- 让用户上传的文本在展示的时候永远只是文本,而不能变成 HTML 和脚本
- 控制好 Cookie 的作用范围
- 比如服务器在返回
Set-Cookie
头的时候,设置HttpOnly
这个标识 - 这样只能通过http访问,javascript无法访问,恶意上传的js脚本就无法获得 Cookie 了
- 比如服务器在返回
- 做好字符转义和过滤
SQL注入
- SQL 注入指的是攻击者利用网站漏洞,通过构造特殊的嵌入了 SQL 命令的网站请求以欺骗服务器,并执行该恶意 SQL 命令
- SQL注入需要攻击者对数据库结构有所了解
- 获取方式:
- 网站使用开源软件搭建,那么网站数据库结构就是公开的
- 网站开启错误回显,那么内部错误会显示在浏览器上,可以通过故意构造非法参数获取异常信息
- 获取方式:
- 防御方式
- 对输入参数进行校验和过滤
- SQL语句的执行尽可能采用参数化查询接口,而不是字符串拼接
HTTP劫持
- 由于HTTP是明文传输,所以可以被运营商或者网络服务提供商任意篡改
- 常用方式是把原网页嵌入一个
iframe
中,并让这个iframe
占据这个浏览器,然后就可以在iframe
外添加浮动广告了 - 把网站换位HTTPS可以避免这种劫持
DNS劫持
- 用户的浏览器在通过 DNS 查询目标域名对应的 IP 地址的时候,会被攻击者引导到一个恶意网站的地址。这个假的网站也可以有相似的页面布局,也可能有“正规”方式申请的 HTTPS 证书
- HTTPS加密本身并不能防范DNS劫持
- 可以通过DNS over HTTPS 的安全域名解析方案防御
DDoS攻击
- 攻击者使用若干被“攻陷”的电脑(比如被病毒占领和控制的“肉鸡”),向网络应用和服务同一时间发起请求,通过一瞬间的请求洪峰,将服务冲垮
错误回显
- 一些服务端直接把未处理的异常堆栈信息直接输出到客户端
- 黑客通过故意制造非法请求,使系统出错获取异常信息,来寻找漏洞
- 防御方式: 出错时跳转到专门的错误页面即可
路径遍历
- 在请求的URL中使用相对路径,遍历系统未开放的目录和文件
- 防御方式:
- 把JS,CSS等资源部署在独立服务器、使用独立域名
- 其他文件不适用静态URL访问
- 动态参数不包含文件路径
最后
以上就是美满手套为你收集整理的常见网络攻击原理与防御中间人攻击重放攻击CSRF跨站请求伪造XSS跨站脚本攻击SQL注入HTTP劫持DNS劫持DDoS攻击错误回显路径遍历的全部内容,希望文章能够帮你解决常见网络攻击原理与防御中间人攻击重放攻击CSRF跨站请求伪造XSS跨站脚本攻击SQL注入HTTP劫持DNS劫持DDoS攻击错误回显路径遍历所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复