2016-08-16 90 views
0

所以我都是Java的新手和Android开发人员,但是我通过Google登录我的应用程序时设法获得了成功的idToken。idToken是否安全地通过API的非安全URL发送?

我在Android开发网站上看到,只是ID不安全,因为修改后的客户端可能会发送一个伪造的消息,并导致其他用户模拟,所以我按照他们的步骤获取用户的idToken。

无论如何,这是安全的发送到我的服务器在家里的URL?例如,像这样(假装随机文本的长字符串是用户的idToken):

http://130.155.122.8/api_test/h78e568e7g6589gjkdfhjghdjfkghjkdfhgjkdfhk7hg9867458g74598hg6745896gh49/command

而且,在idToken甚至要求?我是否可以轻松地使用用户的电子邮件地址来识别用户(同样,它将通过不安全的URL发送,而不是HTTPS)?

谢谢!

回答

1

一般来说 -

识别你应该永远不会通过不安全的连接(例如http)来发送令牌。由于在这种连接上不使用加密,第三方可以非常轻松地监视连接并获取令牌(导致模拟问题)。

IANAE,但只能通过安全(加密)连接(例如https)传输任何安全相关数据(例如idToken或密码)。

而使用电子邮件地址不能解决问题。您只需替换另一个标识符即可。如果有人知道用户的电子邮件地址,他可以模拟该用户。坚持“有记录的”认证技术。如果做得对,他们应该是安全的。

1

你应该使用加密,如果有人从用户那里获取令牌,他们可以模仿该用户,在我的情况下,因为我不能aford ssl(现在)我使用非对称加密加密令牌,并且我发送它到服务器,但SSL是最好的方式

+0

嗯,非对称加密似乎是一个很好的解决方案。谢谢 –

+0

看看这个,http://stackoverflow.com/questions/38938950/comunicate-with-backend-server-securely,这不是最好的办法,但它会加密用户令牌,确保你保存私钥在安全的地方 –

+0

我实际上正在运行一个Python服务器。你知道如何用Java加密并用Python解密吗? –

相关问题