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

时间:2016-08-20 10:16:11

标签: java ssl https httprequest query-string

以下普通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是安全的,但请记住,如果有足够的时间,任何加密都可能被破坏......"

谢谢,

1 个答案:

答案 0 :(得分:2)

在使用现代密码时,您可以考虑使用SSL安全。 它仍然容易受到man-in-the-middle攻击 - certificate pinningother practices旨在防止这些攻击。

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

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