Laravel 4会话变量是否安全?

时间:2015-08-11 17:55:53

标签: php security laravel-4 session-variables

最终用户是否有(已知)方式编辑Laravel 4会话变量?

2 个答案:

答案 0 :(得分:6)

  

最终用户是否有(已知)方式编辑Laravel 4会话变量?

是的,但只有你不顾一切地让它成为可能。所需的步骤是:

  1. 将cookie驱动程序用于会话(将所有会话数据存储到cookie中,而不是简单地将标识符存储在cookie中并保留实际的数据服务器端)。 I generally recommend against storing session state in a cookie
  2. 关闭会话加密,文档强烈建议不要这样做。
  3. 如果您执行这些不明智的步骤,除了允许用户覆盖会话数据外,this is a risk for PHP object injection via unserialize()

    建议:如果您要将会话状态存储在Cookie中,请确保将其包含在authenticated encryption中。 Laravel的加密库采用经过身份验证的加密(加密然后是MAC),会话默认使用此功能。

    至于其他驱动程序,这取决于您的网络拓扑。如果您的数据库位于另一台服务器上,并且您的攻击者可以模拟Web服务器,那么他们可以在数据库中放置他们想要的任何内容。

    最后我检查过,Laravel默认加密会话数据(除非你禁用加密)。除非您的数据库与Web服务器位于同一主机上,否则请将其保持打开状态。

答案 1 :(得分:1)

他们必须在您的服务器上运行代码(类似Session::put('key', 'value');)..或者利用您应用程序上可能存在的漏洞。

如果你小心使用会话(验证等),除非你更新它,否则它应该保持不变。

更多关于Laravel会议的内容:http://laravel.com/docs/4.2/session