$ _GET变量 - 如何确保隐私?

时间:2010-07-29 20:46:41

标签: php http encryption

我已经为我自由发布的一些修改编写了许可脚本,我的部分条款和条件规定,在安装时,修改将发送以下信息以便存储在我的数据库中: -

  • 安装mod的域名
  • 网站所有者的电子邮件地址
  • 修改名称
  • 修改版本号

我的所有修改代码都经过ioncube加密,我通过图片网址发送值,如下所示:

http://www.example.com/licenses.php?modname=".$modname."&modversion=".$modversion."&domain=".$domain."&email=".$email."

我正在使用图片,以便我可以将图像返回给用户浏览器,显示是否根据用户当前安装的内容提供了代码更新。

我想在域之间发送并发送这些编码值时确保用户隐私,但我不确定哪种加密最适合这种情况?我需要能够解码值以便与数据库进行比较,但是任何可以由我解码的东西都可以被其他人轻松解码?我在这里错过了什么?我相信其他人之前已经尝试过数千次。

任何指针都会受到赞赏。

4 个答案:

答案 0 :(得分:4)

不要重新发明轮子。使用HTTPS / TLS / SSL。如果您告诉我们您使用的目标网络服务器,我们可以为您指出设置指南。您可能还想使用POST。但是,它并不是必需的,因为TLS将保护整个查询字符串。将POST用于安全数据的一个常见原因是为了防止人们意外地将数据存储在书签,历史记录等中,我认为这不适用于此。

答案 1 :(得分:0)

“我需要能够解码这些值以便与数据库进行比较,但是任何可以被我解码的东西都可以很容易地被其他人解码?”

您可以检查mcrypt。*和mdecrypt。*,它们使用libmcrypt提供对称加密和解密(可在php手册中找到)。

答案 2 :(得分:0)

如果你有一台运行Apache的专用服务器,你总是可以重写htaccess模块​​。

通过这种方式,您可以隐藏获取变量或向用户显示您想要的任何内容。

@Matthew Flaschen也是一个可行的选择。

答案 3 :(得分:0)

您可能会尝试稍微改变您的应用程序,以便客户在您的系统上注册,然后他们会获得类似API密钥的信息,然后传回给您。这样您就不必在每次请求时都传回他们的个人信息 - 只需传递匿名API密钥。

否则你可以加密数据,但人们将能够看到你的密钥。当然,你可以使用公钥加密,但这可能很难实现