得到或会话?

时间:2010-05-19 14:16:41

标签: php session get

我有一个登录表单,在login.php中。授权后,我将客户端移动到some.php文件!所以,从以下两种方法来看,哪个更好?

  1. 我可以通过id
  2. 向用户GET e.t.c发送大量信息
  3. 我可以使用SESSION - s来实现此目的
  4. 什么是更优选的?

    和两个关于我为什么问这个问题的话。 我听说某处SESSION不是很好的编程方法,并且不建议在这种情况下使用它们......

    感谢

8 个答案:

答案 0 :(得分:7)

会话确实是首选解决方案。您不能信任在查询字符串中发送的数据($ _GET,$ _POST,$ _COOKIE等),因为所有这些都可以由用户更改,但您可以相信没有人篡改了$ _SESSION数据,因为$ _SESSION是存储在服务器上。

答案 1 :(得分:1)

会话没有任何本质上的坏处。实际上,在这种情况下,我会将userid存储在会话中,而不是在URL中传递它。恕我直言,它会更干净,更专业。在会话中存储琐碎的信息很好。

答案 2 :(得分:1)

$_SESSION可能有其缺陷,但使用$_GET进行此类操作的情况更糟。

答案 3 :(得分:1)

如果我理解正确的问题,那么没有。请改为使用POST,然后在登录时创建SESSION

假设用户来到index.php登录表单。他填写信息并推送“登录”。您使用login.php将数据发送到POST。如果用户名,密码和其他任何信息都是正确的,您可以创建SESSION并将用户重定向到其他位置。

答案 4 :(得分:0)

如果您想存储一些基于身份验证成功的信息,我会使用SESSION。 GET中的数据,POST变量太容易操作。

答案 5 :(得分:0)

如果您必须在$ _SESSION和$ _GET之间做出决定,那么,对于安全的东西,请使用$ _SESSION。所有用户可以使用会话来销毁它们(通过删除PHPSESSID cookie),但用户无法操纵它们。

如果你必须传递一次信息,$ _SESSION非常好。您可以将一些数据存储到$ _SESSION变量中,通过PHP更改位置(这样用户就无法通过禁用JavaScript来阻止脚本。只需使用header('Location: '.$path);),使用另一页上的$ _SESSION内容和用户他可以摧毁会话时没有时间间隔。这很安全。

答案 6 :(得分:0)

最安全的方法是使用SESSIONS,因为这意味着只有一个令牌标识符存储在客户端,并且由令牌标识符表示的所有数据都存储在服务器上。此外,您还可以设置会话的到期时间,这将使其更安全。

答案 7 :(得分:0)

SESSION是最佳解决方案。这使得更安全。用户无法改变他的任何数据