【问题标题】:The use of UrlEncodedFormEntity to send passwords使用 UrlEncodedFormEntity 发送密码
【发布时间】:2014-10-07 12:40:59
【问题描述】:
我试图在我的 android 应用程序中通过 POST 方法发送用户名和密码。正如我从标准示例中了解到的,我们声明了一个 UrlEncodedFormEntity 对象,后跟一个 httpPost.setEntity(urlEncodedFormEntity)
我的问题是,通过这种方法发送密码是否被认为是“安全的”(假设有可用的加密)?
这是因为我也读过帖子说不应该通过 GET 方法发送密码,因为它可能被编码到 URL 字符串中。如果是这样,UrlEncodedFormEntity 会做同样的事情吗? (由 URL 编码的措辞)。
我的网络知识比较模糊,谢谢大家的帮助。
【问题讨论】:
标签:
php
android
html
security
post
【解决方案1】:
我的问题是通过这种方法发送密码是否被认为是“安全的”(假设有可用的加密)?
是的,如果您的 URL 是 HTTPS,并且在提供不受信任的证书时您不连接。
这是因为我也读过帖子说不应该通过 GET 方法发送密码,因为它可能被编码到 URL 字符串中。如果是这样,UrlEncodedFormEntity 是否做同样的事情?
不,POST 方法在消息正文中发送数据,而 GET 方法在 URL 中传输数据。如果 URL 为 HTTPS,即使 GET 和 POST 数据都被加密,查询字符串中的 GET 数据默认记录在负载均衡器、服务器、公司代理等上,因此使用 POST 更安全。
【解决方案2】:
UrlEncoded 只是更改了一些无法通过 http 正确传输的字符,例如 : 更改为 %3a 它与加密无关。
如果要发送密码的 URL 是 HTTPS,那将是安全的。