1

我正在使用 html5 (Intel XDK) 开发一个移动应用程序,并使用 php 对服务器端进行编码。在我的应用程序中,用户可以将图像从移动设备上传到服务器。但是当我更改服务器端代码以检查用户是否使用会话登录时,会话变量返回 null。我的代码如下所示。

var par= new FormData(document.getElementById('form')); 
var obj= new XMLHttpRequest();
...
obj.open('POST', 'url.com/upload.php');
obj.send(par);

在服务器端代码中,我想检查会话变量。

if($_SESSION['user_logged_in'] == 1)

我在 SO 中搜索了这个问题,但结果有一些问题。例如,在下面的帖子中,答案说会话 ID 必须保留在客户端,但我认为由于安全问题,这不是一个好的解决方案。

如何使用 XMLHttpRequest 传递 php 会话

这个问题有什么好的实施方案吗?提前致谢。

编辑:我正在调用 session_start 并且如果我删除已登录的检查它可以工作。我用 Ajax 调用的其他页面会到达会话变量。我对安全性的怀疑是我的会话 id 会在源代码中看到,这不会是一个安全问题吗?

4

2 回答 2

1

您可以使用 App Security API Cordova 插件来改进对会话令牌/ID 的保护措施,您可以在此处找到有关此 Cordova 插件的更多详细信息。您还可以在此处找到“存储在安全存储中”和“从安全存储中读取”的代码片段链接。

顺便说一句,英特尔 XDK 支持 App Security API,您可以使用插件管理菜单 -> 特色插件 -> App Security API -> 单击“添加插件”将其添加到您的应用程序中。

于 2016-02-17T12:15:36.360 回答
0

如果您不将会话ID保留在客户端,服务器如何识别您?您可以使用强生成的会话 ID 更改会话 ID,这是最好的方法。

请验证是否启用了 cookie 等。因此,您必须进行一些调试。

于 2014-01-05T11:26:00.763 回答