Java 如何保护 http 连接查询字符串 URL 请求传递和获取敏感数据?

Java how to secure http connection query string URL request passing & getting sensitive data?

以下纯 java 代码正在调用某些 Web 服务 API:

String url = "https://my_web_service/some_function?password=my_password";
InputStream is = new URL(url).openStream();
BufferedReader rd = new BufferedReader(new InputStreamReader(is, Charset.forName("UTF-8")));
String result = readAll(rd);  //result is also sensitive data!

传输和获取敏感数据是否安全?假设这样的论点不相关:

"SSL is secure, but remember that any encryption can be broken if given enough time..."

谢谢,

当您使用现代密码时,您可以认为 SSL 是安全的。 它仍然容易受到 man-in-the-middle attacks though - certificate pinning and other practices 的攻击,旨在防止这些攻击。

您的另一个问题是您将密码作为查询参数传递 - 最好将其传递到请求正文中。否则会打印在服务器访问日志和客户端日志中(可能)。

如果它是一个网页,而不是 Web 服务,它也会存储在浏览器历史记录、书签、e.t.c。