【问题标题】:java.util.Properties.load() issues OWASP Top 10 2017java.util.Properties.load() 问题 OWASP Top 10 2017
【发布时间】:2021-01-04 13:47:44
【问题描述】:

我在 java 中有这段代码,用于使用属性文件,但是当使用 MicroFocus FortiFy OWASP Top 10 2017 执行安全代码扫描时,它会生成“A1 注入”类型的问题和实现方法java.util.Properties.load() 的行中的“A5 Broken Access Control”。我找不到这个问题的解决方案。属性文件位于构建 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());
    }
}

MicroFocus FortiFy OWASP 2017 年 10 强报告:

【问题讨论】:

  • 写入错误,源码中是这样的/home/ejm/properties/config.properties

标签: java properties-file owasp


【解决方案1】:

这个案例展示了一个正确的源代码,并且做了它应该做的事情。

检查表明,您的代码可能会或可能不会用于操作数据或访问部分或您的软件/公司,否则会受到限制和禁止。

让我们详细介绍一下。 A1 注射。这只是说您从可以操作的外部文件加载可读数据。例如如果您将访问数据保存在可以读取或更改的属性文件中。属性文件没有安全措施(如 CRC 或编码)。

A5 访问。它警告您 - 如果您立即加载和使用数据 - 可能会通过操纵访问或重定向到禁止系统来感染您的系统(例如,您保存指向通常只能通过某种登录方式访问的隐藏端口的链接 -控制)。

确保安全的关键是“清理您的输入数据”。控制每一对(a)值和范围(b)数据和链接的可访问性(例如,如果允许该用户这样做,则将其与数据库中的条目进行比较)(c)仅存储该工作站真正需要的值(例如监视器的大小、快捷方式、选项……)。如果你做了所有事情,你可以看到它是什么 - 一个公平的警告。

【讨论】:

    猜你喜欢
    • 2011-09-16
    • 2018-01-30
    • 2018-05-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-13
    相关资源
    最近更新 更多