【问题标题】:How to prevent randomly generated numbers from creating matching numbers如何防止随机生成的数字创建匹配的数字
【发布时间】:2013-06-28 20:55:55
【问题描述】:

我正在创建一个媒体商店,当您购买商品时,它会将随机数据插入到 cookie 中,稍后将匹配该 cookie,以便仅对在该浏览器中购买该商品/媒体的人进行特定访问。因此,如果一个用户购买了一件商品,则会插入一个设置数字以获得访问权限,以及插入一个随机数插入浏览器 cookie 以获得位置权限。在他们购买该项目之前,他们会被告知如果他们尝试使用不同的浏览器或计算机访问媒体,他们将被锁定无法访问媒体,直到他们联系人员以获得进一步的指导。如果用户试图在没有 cookie 代码(随机数)的情况下访问媒体,那么他们将生成其浏览器或任何其他浏览器无法访问的代码。 (锁定访问)

我唯一担心的是,如果生成器生成两次随机码,会产生冲突吗?以及如何预防?

如果这行不通,因为这不是使用 cookie 的方式,请在开始之前告诉我,并请提出另一种方法,我可以在保持想法的同时对其进行编码。

谢谢,
欢迎任何提示。
如果有任何方法可以更好地做到这一点,我欢迎提出建议。

【问题讨论】:

  • 您是想通过用户还是通过浏览器/计算机来限制它?如果可以的话,被用户屏蔽会容易得多
  • 当用户清除 cookie 或关闭 cookie 时会发生什么?我认为数据库将更适合存储,并且无情地提到最好只限制用户而不是介质。使用数据库,您可以查询它是否已经生成,然后重新生成一个新的,直到您没有得到一个尚未使用的数据库。
  • 您可以使用像 uniqid 这样的唯一 id 生成器,它不太可能产生冲突。
  • 我一直在寻找这样做的方法。我只是不希望购买后提供给用户的媒体能够“共享”媒体。因此,按位置锁定。我将如何按用户执行此操作?只需为位置访问创建另一列而不是 cookie??
  • 我所说的“共享”是指向其他人提供他们的登录信息以供访问。

标签: php cookies permissions code-generation media


【解决方案1】:

第一个 cookie 不是最好的主意,而且随机数也是为了保持更友好 尝试使用 ip lock 将 ip 保存在 cookie 中,并带有位置时间的到期日期 使用 cookie 和 mysql 表 尝试做 2表一像这样存储ipa 111.111.111,32 逗号后面的数字是电影ID 每部电影都有自己的ID,对于每部电影,放另一个逗号ID,对于另一部电影,另一个逗号和ID,每部电影都这样做并将id保存在cookie上并检查id并检查页面上的电影id是否与cookie中的匹配以及cookie是否与mysql表匹配更安全更友好,以防客户端需要使用其他浏览器他可以,如果浏览器的ip与mysql表中的ip匹配,那么在这个浏览器上设置一个cookie我相信这可以为你解决。 为了避免 2 个相同的标记使用这个

<?php
$token = sha1(rand(1,999999));
$_Token = sha1($token);
$token = $_POST['filmid'];
$ip = $_SERVER['REMOTE_ADDR']
$cd = $ip, $token, $_Token;
setcookie("$token", $cd);
?>

然后将这些数据放入带有 ip 的 cookie 中

【讨论】:

    猜你喜欢
    • 2014-01-01
    • 1970-01-01
    • 2022-01-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多