【发布时间】:2012-01-08 11:05:14
【问题描述】:
我有一个网络服务,我们的客户需要使用的参数之一是自定义键。此键是 sha1 的哈希
eg:
bce700635afccfd8690836f37e4b4e9cf46d9c08
那么当客户调用我们的网络服务时,我必须检查几件事:
- 客户端处于活动状态
- 客户端是否可以通过 webservice 和 service 提交
现在我的问题是:
我有一个问题:
$sql = "SELECT permission, is_active FROM clients WHERE sha1(concat(id,key)) = '" . mysql_real_escape_string($key) . "'";
我做对了吗?还是有更好的方法? 谢谢
【问题讨论】:
-
你基本上是在使用密钥作为会话ID吗?如果是这样,您可以考虑改用 PHP 会话。非常简单和安全。 php.net/manual/en/features.sessions.php
-
@JonathanM 不,密钥是客户端 id + 随机密钥的 sha1(我们本地存储在表中)并且我们提供给客户端。因此,当我们调用我们的站点时,他需要使用它,例如:ws.domain.com/bce700635afccfd8690836f37e4b4e9cf46d9c08 AND 他发布用户名和密码以及其他变量;
-
@ErinTucker:如果哈希中包含随机键,那么您的查询为什么只有
sha1(id)? -
@ruakh 哎呀我忘了谢谢