安全的方式来执行基本授权

时间:2018-05-02 20:32:31

标签: java security basic-authentication

我需要以编程方式对tomcat执行授权 我目前正在这样做的方式是这样的:

String username = "tomcat_admin";
char[] password = CryptoUtility.decrypt(System.getenv("TOMCAT_ADMIN_PWD"));
URL tomcat = new URL("http://localhost:8080/manager/html");
HttpURLConnection conn = (HttpURLConnection) tomcat..openConnection();
String encoded = Base64.getEncoder().encodeToString((username+":"+password).getBytes());
conn.setRequestProperty("Authorization", "Basic " + encoded);
...

第二行执行一些加密过程,因为env变量TOMCAT_ADMIN_PWD保存密码的加密值。
当使用Fortify扫描我的项目时,它声称在String对象(在“编码”变量中)存储敏感信息(如密码)具有很高的安全风险,因为这些不可变对象驻留在内存中,直到垃圾收集器决定清除它们。 (因此可以在内存转储中看到粉碎情况)
我发现使用char []进行基本身份验证的唯一方法是使用Authenticator类,但我不想使用它,因为它可能会产生非常烦人的错误,如this one

我有两个问题:
1.是否可以更安全地设置标题?我已经扫描了API,找不到任何有用的东西 2. 真的是一个严重的安全问题吗?是否从安全角度夸大了内存中的数据?

0 个答案:

没有答案