2012-04-17 121 views
0

我正在编写一个应用程序,它具有服务器上的客户端和php上的JS,在服务器上打开会话及其“在php脚本中”我通过唯一标识检索每个用户从DB和存储在$_SESSION["uID"]起初,我认为这是足够的同时将用户数据从JavaScript发送到PHP,因为会话将处理识别问题,并且每个用户请求将由其自己的会话接收,因此没有用户会话会冲突与另一个..我对吗?或者我必须使用其他技术?
我是否必须将用户标识从js发送到php?或者它足以在php中声明?
我必须使用会话Id或其他东西吗?从js发送用户数据到php

+0

默认情况下,PHP会将会话ID存储在cookie中。每次请求都会将Cookie发送回服务器。 – 2012-04-17 08:32:40

+0

你的第一个变种是好的。您可以将用户标识存储在'$ _SESSION [“uID”]'中。您应该将用户标识从JS传递到PHP以识别用户。每个用户都有它自己的'$ _SESSION'超全局数组。 – 2012-04-17 08:33:50

回答

2

由js发送用户ID会使您的施药器不安全。任何人都可成为任何人 如果session由cookie设置,那么在php结束时使用该会话就足够了。您不必通过js发送会话Id,因为它会通过Cookie由浏览器自动发送。

0

花一些时间阅读会议。

当你测试它时发生了什么?

正常情况下,会话ID通过cookie传输。 Cookies应该通过xmlhttp请求发送到服务器。 Cookie通过HTTP请求在浏览器上设置。

可以通过其他方式发送会话标识,并通过javascript设置会话cookie - 但对此的解释在理解基础知识之前不会有多大意义。

1

很确定,一旦session_start()在php脚本的开始被调用,您将能够访问$ _SESSION [“uID”]。如果您为用户提供了唯一的uID,则只需在php中使用它。此外,如果您使用uID从js到php进行一些调用,将会有一个巨大的安全漏洞,因为javascript很容易受到干扰,并且可能会传递“错误的”uID。所以是的,我会坚持你所说的和我的结论:是的,它足以在php中声明:)

0

Php有客户端将会话ID存储为cookie,并在每个请求上发送该cookie。但是,如果用户不保留cookie,会话将被取消。更糟糕的是,如果用户从不安全的位置登录,攻击者可能会得到他的会话ID,并且系统会错误地将其标识为受害者。

事实是,没有绝对的方法来识别客户端。对于大多数情况,会话ID足够好,但是如果您需要额外的安全层,请将帐户与IP检查和会话结合使用。