在某些情况下,我需要将 URL 放入网页中,单击该网页时会在服务器上触发一些处理代码。我显然想防止随机的坏人构建他们自己的 URL 并做他们不应该做的事情,所以我正在使用这个方案,从我在其他网站上看到的东西逆向工程:
- 制作一个唯一的字符串(我使用的是 MD5,但毫无疑问还有其他选项)
- 将此字符串放入适当命名的会话变量中
- 在 URL 中包含字符串,可能类似于
/do_this/123/FABDYFYEYYDFBDHDFS
- 当处理代码运行时,从 url 中提取字符串并将其与会话变量的值进行比较——如果匹配,我们应该可以安全地继续。如果没有,请执行其他操作。
这对我来说没问题,除了用户浏览器的会话存储中充斥着不再相关的会话变量的部分。在某些情况下,我可以(并且确实)在完成我正在做的事情后删除会话变量,但并非总是如此。在寻找清除旧变量的机会方面,我可能会更聪明一些,但问题似乎很普遍,可能有更好的方法来做到这一点(即,我想出的对于任何数字来说都可能非常愚蠢我没有想到的原因)。对于做这种事情的好/更好的方法有什么建议吗?