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