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。
以下纯 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。