Java 引用传递导致的恶意代码漏洞

Java 引用传递导致的恶意代码漏洞


  1. 代码

// 赋值操作只是传递引用,多建立一个引用的关联关系
// private List<String> list; 只是创建一个指向null的引用,并没有创建一个空的List对象
// list = s这个操作看似创建了一个对象,其实也只是把list的引用从null关联到s这个对象而已


import com.google.common.collect.Lists;
import lombok.Data;
import utils.print.Print;

import java.util.List;

/**
 * @author Created by 谭健 on 2018/4/17 0017. Tuesday. 15:31.
 * © All Rights Reserved.
 * <p>
 * <p>
 * 引用传递导致的bug问题
 */
@Data
public class Reference {


    private List<String> list;

    public static void main(String[] args) throws Exception {


        Reference reference = new Reference();
        List<String> s = Lists.newArrayListWithExpectedSize(3);
        s.add("1");
        // 存到reference
        reference.setList(s);
        // 监控操作,如你所愿,成功了
        Print.echo(reference.getList());

        // 用作其它操作
        s.add("2");

        // 所有操作做完了。reference 返回去渲染

        // 然后你发现,出bug了,reference变了
        Print.echo(reference.getList());

    }


}

2.引用传递漏洞有可能导致恶意代码漏洞

假设你有一个公开的getXXX方法,返回了某个对象。[实际上返回了这个对象的引用]
某一天,一台不受信任的设备在用户允许接入的情况下连接到了你的工程并且获取了这个方法。
然后经过研究,获取了你这个对象的所有的公开方法并获取了操作权限。
比如。getPassword,setPassword,getEmail,等等。
但是他知道盗取密码不好,所以悄悄做了一层代理转发。
然后,你的所有操作,都被悄悄的监控了。
然后你就感叹,这广告真TM牛逼,我上午搜了个东东,下午广告就打过来了。
阅读更多

扫码向博主提问

简简单单OnlineZuozuo

欢迎提问,技术群172083832
  • 擅长领域:
  • JavaEE
  • java
  • 后台开发
  • 系统架构
  • 后端
去开通我的Chat快问
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_15071263/article/details/79976664
想对作者说点什么? 我来说一句

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

关闭
关闭
关闭