常见网络攻击

网络安全 - 幕布
网络安全
  • XSS
    • 当用户提交表单的时候输入了错误信息,那么服务端校验不通过,重定向回这个页面,服务端会在该页面后面加上一段脚本程序,只是为了弹出一个消息框。那么这个带了脚本的url进行URLEncode,用户以为是正常的推广链接,一点击,用户的计算机就会执行攻击者的页面。
    • www.xxx.com/login.do?nick="/><script>alert("haha")</script><!- ----URLEncode----> www.xxx.com/login.do?nick=%22%2f%3e%3cscript%3ealert(%22haha%22)%3c%2fscript%3e%3c!-
    • 防御:
      • XSS发生的原因是将用户的输入数据变成了代码。那么防范措施是将用户的输入数据进行HTML转义处理,将特殊字符进行转义编码
  • CSRF
    • 用户登陆收信人站点A,并在本地生成cookie,在cookie没有清除的情况下,访问恶意站点B。
    • 防御:
      • 1:将cookie设置为HttpOnly,这样访问站点B的时候也拿不到cookie:。
      • 2:在token里面放置随机产生的数,HTTP请求的时候加入token,如果token检验失败就不能访问。
  • SQL注入攻击
    • 比如说在登陆的是,将提交的密码改成sql语句,就会在进行登陆校验的时候执行了密码中的sql语句,造成数据丢失甚至获取服务器的root权限。
    • 防御:
      • 将提交的参数中’这样的特殊字符进行转义之后再运行。
      • 将密码使用MD5加密后再存入数据库。
  • 文件上传漏洞
  • DDos攻击
    分布式拒绝服务攻击
    • 控制庞大数量的计算机在同一时刻访问某个主机,达到服务器瘫痪的目的。
    • 1:SYN Flood:利用TCP三次握手,伪造IP地址发送连接请求,导致服务器资源消耗,无法接受新的连接请求。
    • 2:DNS Query Flood:发送海量的域名解析请求,这些url(域名)根本不存在。
    • 3:CC:首先,在网上搜寻大量匿名的HTTP代理,模拟正常用户对网站发起请求,这可能需要服务器多次进行DB查询,或者一次请求返回大量数据,造成巨大资源消耗。
  • 数字摘要:对收到的信息采用相同的哈希算法,比较新摘要和原摘要
    • 特点:
      • 无论输入信息多长,计算出来的信息摘要长度固定。
      • 一般输入不同输出不同。
      • 消息摘要不包含原文的完整信息,因此无法逆向解密。
    • MD5
    • SHA
    • SHA-1
    • 十六进制编码
    • Base64编码
    • 彩虹破解Hash算法
  • 对称加密算法:算法公开、计算量小、加密解密快。
    • DES
    • AES
  • 非对称加密算法:不需要进行秘钥的传输,因为本来就是公开的。
    • RSA:在数字签名的应用中是私钥加密公钥解密,在通常情况下是公钥加密私钥解密。
  • 数字签名:就像是。数字摘要+非对称加密。数字签名就是发送者对正文进行数字摘要加密+私钥加密后的东西,接受者将数字签名用公钥解密后用同样的数字摘要加密算法加密,判断数字签名和加密后的东西是否相同。为什么这个校验起作用呢:因为如果第三方篡改了正文,那么比较结果不相同,就回丢弃这个数据。
  • 数字证书:可以证明一个人、服务器、组织的身份。数字证书中包含颁发者、有效期、使用者、数字签名、公钥算法是什么、签名算法。数字签名可以让接收方去检验签名,就是用公钥将数字签名解密,然后将数字摘要进行对比,看证书是否完整。
  • 摘要认证:攻击者可以监听和拦截到大量信息。防止端口映射、代理监听。因此每次请求和响应都要先1:根据请求参数排序,2:加上相同的secret,3:MD5等摘要算法生成数字摘要,接收方要校验数字摘要。没有
  • 签名认证:就是在摘要认证的基础上加上了签名认证。如果摘要认证的secret泄露了,攻击者可以为造出合法的请求或响应的摘要。因此签名认证给摘要进行非对称加密,发送端用私钥加密,接收端用公钥解密。
  • 总结:摘要认证和签名认证能保证传输的完整性,但如果攻击者监听并还原了通信内容,那么数字签名就无法保证安全。
  • HTTPS
  • 所有传输数据在经过网络传输之前都会先加密在传输。对称加密。支持单向、双向验证。
  • HTTPS协议栈:TCP--SSL or TLS--HTTP。
  • SSL/TLS协议很复杂,我们可以用JSSE工具来接入这个协议,它实现了SSL/TLS协议,包含了数据加密、服务器验证、客户端验证、消息完整性等技术。
  • 在Java环境下,搭建基于Tomcat的单向认证和双向认证HTTPS Web
展开阅读全文

没有更多推荐了,返回首页