web网络安全总结

web网络安全

我认为web的网络安全我们只需要关注两个方面

  1. 保证我们的前端页面没有漏洞可循
    我们页面常见的web安全问题有:

    • xss跨站点脚本攻击: 不要新人任何用户的输入, 能跟用户产生交互的地方都需要对参数进行转译或者过滤
    • 文件上传漏洞攻击: 校验文件格式, 后端限制存放文件路径的权限,限制运行脚本
    • SQL注入攻击: 对用户输入进行转译, 后端采用预编译的sql,不要直接使用前端参数
    • CSRF 跨站请求伪造
      • anti CSRF token: 原理是从后端拿过来的html文件会在session存储一个随机的验证信息, 每次请求都发送这个验证信息进行校验
      • 验证码登录: 这种的验证原理是确认操作的是人,而不是脚本,绝大部分验证码都不会被现有的脚本破解
      • reffer 请求头验证,reffer会带原网站的访问信息
  2. 保证前后端传输不被盗取

    采用https的验证方式, 那么为什么https的验证方式会那么安全?

    • 对称加密: 公钥跟私钥是一样的, 都可以用来进行数据加密和解密, 攻击者只需要得到公钥,那么数据就像是未曾加密过一样,对称加密的问题是不会对每个用户生成一个秘钥。
    • 非对称加密, 由服务器生成公钥私钥, 前端拿到公钥,对数据进行加密,私钥可以对数据进行解密。 非对称加密的问题是攻击者也可以得到公钥,所以可以拿到服务器返回的信息
    • 对称加密 + 非对称加密: 这种方式的操作原理是,由客户端使用非对称加密的方式跟服务端商量出一个独一无二的key, 然后利用对称加密生成一个客户端独一无二的公钥。
      那么攻击者无法得到这个独一无二的公钥,便无法完成攻击。 但是这种方式仍然是有漏洞的,比如在客户端与服务端商量key的时候被中间人拦截, 问题是我们无法知道过来的请求是
      好的还是坏的
    • 对称加密 + 非对称加密 + CA认证: 原理: 由CA部门颁发认证, 只有经过CA部门认证过的请求我们才认为是有效的请求。 具体的实现过程是
      • 由CA部门提供算法来加密我们的公钥得到一个证书, 客户端请求到一个liscense,客户端得到liscense之后需要对其进行解密。
      • 此时就需要CA部门提供的私钥来进行解密
      • 为了防止从CA部门获取数字证书的过程中又被截获, 我们的操作系统中预先安装了数字证书, 即是我们用来解密的CA的私钥。

你可能感兴趣的:(好好学习,网络安全,java,数据库)