使用PHP在两个页面之间传递变量的最安全方法

时间:2012-10-30 15:15:40

标签: php security variables

我需要一种以安全的方式在两个页面之间传递变量的方法。

我知道我可以使用POST / GET / Cookie / Session或隐藏字段,但我认为这些方法都不够安全,因为:

可以在网址中看到 cookies是客户端,因此可以从客户端更改 会话可以面对会话ID劫持和...

现在我想知道有没有比这些方法更好的方法,如果没有这些方法,那么这是以安全方式传递变量的最佳方式;

4 个答案:

答案 0 :(得分:11)

会话是您可用的最安全的方法。

会话ID重新生成将有助于防止会话劫持,但通过https的SSL将真正防止它。

顺便说一句:如果会话被劫持并且您正在向客户端显示用户数据,那么无论您如何将数据传输到第二页,劫持者都会看到它。如果你只是在服务器端使用它,那么劫机者就不会看到它。

答案 1 :(得分:3)

使用会话在页面之间传递变量值是最安全的

每当安全级别发生变化(例如登录)时,

并按session_regenerate_id重新生成会话ID。如果您愿意,您甚至可以在每个请求中重新生成会话ID。

好读

PHP Security Guide: Sessions

答案 2 :(得分:1)

由于会话是服务器端,因此它是传递变量最安全的方式 并且为了防止会话劫持,你可以在php中使用session_regenerate_id函数 手册:http://php.net/manual/en/function.session-regenerate-id.php

但这并不意味着您总是使用会话来传递变量 您仍然可以使用cookie,但在将数据存储在cookie中之前对其进行加密。

答案 3 :(得分:0)

使用GET没有任何问题 - 只要它们被正确消毒了......你总是可以将get与参数哈希相结合,以降低被篡改的风险,同时使用会话来确保它们也是合法的。