java.util.properties.load()发布owasp 2017十大问题

r55awzrz  于 2021-06-27  发布在  Java
关注(0)|答案(1)|浏览(375)

我在java中有这段代码,用于属性文件,但是当使用microfocus fortify owasp top 10 2017执行安全代码扫描时,它在实现该方法的行中生成类型为“a1注入”和“a5断开访问控制”的问题 java.util.Properties.load() . 我找不到解决这个问题的办法。属性文件在构建war之外的另一个目录中。
我的代码:

public void initPop() {
    logger.info("Cargar archivo de propiedades en memoria");
    String configProp = "config.properties";
    try {
        Properties prop = new Properties();
        InputStream inputSt = new FileInputStream("/home/ejm/properties/" + configProp);
        prop.load(inputSt);
        Map<String, String> help = new HashMap<String, String>();
        for (Enumeration<?> names = prop.keys(); names.hasMoreElements();) {
            String key = (String) names.nextElement();
            help.put(key, prop.getProperty(key));
        }
        setLstProp(help);
        inputSt.close();
        prop.clear();
    } catch (Exception ex) {
        logger.error("[getValue] Archivo " + configProp + " no encontrado : " + ex.toString());
    }
}

微焦点强化owasp 2017十大报告:

sdnqo3pr

sdnqo3pr1#

这个例子展示了一个正确的源代码,并且做了它应该做的事情。
检查表明,您的代码可能会或可能不会被用于操纵数据或访问您的软件/公司的部分,否则将受到限制和禁止。
让我们进入细节。a1注入。也就是说,你可以从一个可以被操作的外部文件中加载可读的数据。e、 g.如果将访问数据保存在可以读取或更改的属性文件中。属性文件没有安全措施(如crc或编码)。
a5通道。它警告您,如果您立即加载并使用数据,可能会通过操纵访问或重定向到禁止的系统(例如,您保存到隐藏端口的链接,该端口通常只能通过某种登录控件访问)感染您的系统。
安全的关键是“清除输入数据”。控制每一对(a)值和范围(b)数据和链接的可访问性(例如,如果允许此用户这样做,则将其与数据库中的条目进行比较)(c)仅存储此工作站真正需要的值(例如,监视器的大小、快捷方式、选项等)。如果你做了所有你能看到它是什么-一个公平的警告。

相关问题