0

在某些情况下,我需要将 URL 放入网页中,单击该网页时会在服务器上触发一些处理代码。我显然想防止随机的坏人构建他们自己的 URL 并做他们不应该做的事情,所以我正在使用这个方案,从我在其他网站上看到的东西逆向工程:

  • 制作一个唯一的字符串(我使用的是 MD5,但毫无疑问还有其他选项)
  • 将此字符串放入适当命名的会话变量中
  • 在 URL 中包含字符串,可能类似于/do_this/123/FABDYFYEYYDFBDHDFS
  • 当处理代码运行时,从 url 中提取字符串并将其与会话变量的值进行比较——如果匹配,我们应该可以安全地继续。如果没有,请执行其他操作。

这对我来说没问题,除了用户浏览器的会话存储中充斥着不再相关的会话变量的部分。在某些情况下,我可以(并且确实)在完成我正在做的事情后删除会话变量,但并非总是如此。在寻找清除旧变量的机会方面,我可能会更聪明一些,但问题似乎很普遍,可能有更好的方法来做到这一点(即,我想出的对于任何数字来说都可能非常愚蠢我没有想到的原因)。对于做这种事情的好/更好的方法有什么建议吗?

4

1 回答 1

1

我可能误解了这个问题,但我不确定为什么需要将唯一字符串存储在会话变量/cookie 中。为什么不做类似的事情:

  • <a>使用标签或任何地方的秘密字符串呈现页面。
  • 将字符串存储为“好的”服务器端。
  • 当字符串用于触发事件时,使其无效。如果您的链接导致页面重新加载,这会自动工作,但也可以通过 AJAX 等来实现。
于 2013-07-03T22:16:17.803 回答