我需要一种以安全方式在两个页面之间传递变量的方法。
我知道我可以使用 POST / GET / Cookie / Session 或隐藏字段,但我认为这些方式都不够安全,因为:
get 可以在 url 中看到
cookies 是一个客户端,因此它可以从客户端
会话中更改,可以对抗 Session ID 劫持和...
现在我想知道有没有比这些方法更好的方法,如果没有这些方法,是安全传递变量的最佳方法;
会话是您可用的最安全的方法。
会话 id 重新生成将有助于防止会话劫持,但通过 https 的 SSL 将真正防止它。
顺便说一句:如果会话被劫持并且您正在向客户端显示用户数据,那么无论您如何将数据带到第二页,劫持者都会看到它。如果您仅在服务器端使用它,则劫机者将看不到它。
由于会话是服务器端,它是传递变量和防止会话劫持的最安全方法,您可以在 php 手册中使用 session_regenerate_id 函数:http: //php.net/manual/en/function.session-regenerate-id。 php
但这并不意味着您总是使用会话来传递变量,您仍然可以使用 cookie,但在将数据存储到 cookie 之前对其进行加密。
使用 GET 没有任何问题 - 只要它们被正确清理......你总是可以将 get 与参数的哈希结合起来以降低它被篡改的风险,同时使用会话来确保它们也是合法的.