Android加密URL参数和值,解密服务器端


Android encrypting URL parameters and values and decrypting server side

我想设置一些基本的web服务器保护,以防止重放攻击和数据操纵黑客。目前,我从客户端(android)端发出一个REST请求,如:

http://www.example.com/add_book.php?user_name=eddy&nonce=534365756756&book_title=My%20First%20Book

在这里,我使用了一个nonce,它将根据用户的id存储,并检查是否有重复的请求。然而,在这个未加密的系统中,某人可以简单地插入他们自己的(随机)nonce。我要做的是将上面的请求转换成以下内容:

http://www.example.com/add_book.php?fsjdfhdhsjfhdsjf538537854rj34i5348ur4rf4r3g4yrg4y32210dfsdjfsdhfjshru99jifjknjsdfnfjsfhuruwe

,可以将未加密的服务器端转换为等效的未加密URL,以便可以使用$_GET['book_title'](像通常的方式一样)访问参数。

在理想情况下,请求本身可以用用户的散列密码加密,作为一种简单的方法来证明用户就是他们所说的那个人。

在这个阶段,我还没有准备好为HTTPS证书付费,所以这不是一个真正的选择。

有人知道我该怎么做吗?我的请求是纯文本的,所以非常脆弱。谢谢。

Android加密URL参数和值,解密服务器端

不要加密URL参数!

我想设置一些基本的web服务器保护,以防止重放攻击和数据操纵黑客。

如果你试图阻止网络上的某人拦截明文HTTP请求并恶意操纵它们,HTTPS是你唯一的解决方案。

如果您试图阻止本地用户做同样的事情,请重新考虑应用程序的安全模型。

在这个阶段,我还没有准备好为HTTPS证书付费,所以这不是一个真正的选择。

你不需要为HTTPS支付任何费用。它是免费的!

如果你使用的主机提供商很难免费获得HTTPS,设置一个便宜的VPS (LowEndBox, DigitalOcean水滴等),并停止给他们你的业务。它们要么适应,要么死亡。