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

Posted

技术标签:

【中文标题】Java如何保护http连接查询字符串URL请求传递和获取敏感数据? [复制]【英文标题】:Java how to secure http connection query string URL request passing & getting sensitive data? [duplicate] 【发布时间】:2016-12-27 10:28:09 【问题描述】:

以下纯 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 是安全的,但请记住,只要有足够的时间,任何加密都可能被破解……”

谢谢,

【问题讨论】:

是的,这是安全的,因为查询参数是由 SSL 证书的密钥加密的。下次用谷歌搜索,你的问题没什么特别的。 @Andremoniy 是的,它已加密。不,这不安全。它解释了你发布的副本。 【参考方案1】:

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

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

如果它是一个网页,而不是网络服务,它还将被存储在浏览器历史记录、书签等中

【讨论】:

好的,所以我将请求参数移动到正文。但是反应呢? “根据定义”在上述情况下可以吗?谢谢, @michael 是的,响应正文没问题。 @bedrin “网址中的密码是个坏主意”,还有一个原因:securityweek.com/hackers-can-intercept-https-urls-proxy-atta‌​cks

以上是关于Java如何保护http连接查询字符串URL请求传递和获取敏感数据? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Angular 的 HTTP 发布请求中传递 url 中的查询参数

如何将 url 参数(查询字符串)传递给 Angular 上的 HTTP 请求?

Django中获取参数(路径,查询,请求头,请求体)

axios中怎么传数组

jquery post如何传值

是否可以将查询参数传递给 Django % url % 模板标签?