Ajax调用和安全性

时间:2013-01-20 21:27:32

标签: ajax jquery security

我创建了一个像“路由器”一样的php函数,这意味着它接收带有一些变量的Ajax调用,加载正确的方法和函数,然后返回数据,以便JS可以处理它。

我提供的大多数函数都使用$_SESSION个未通过调用/响应过程传递的变量,因此一般来说,如果没有加载正确的会话,则不应返回任何内容。但据我所知,我确信必须有办法解决这个问题,更重要的是,我可能会遗漏一些即使没有加载任何会话也能正常工作的功能。

所以我想知道如何限制对会话的访问。我认为通过ajax调用用户id或其他一些唯一标识符的一种方法,然后将它与会话进行比较,并且只有在两者匹配时才继续。

但这样做会暴露用户ID,如果可能的话,我宁愿尽可能多地隐藏它。此外,我甚至不确定它会阻止任何欺诈性的ajax呼叫。

所以我想知道,有更好的方法吗?

感谢的!

PS重要的是,我正在使用jQuery进行调用

1 个答案:

答案 0 :(得分:0)

保护会话数据的最佳方法是使用仅存储在服务器上的密钥对其进行加密。每次您获得会话数据解密时,请进行所需的任何更改并加密,然后再将其重新放入$_SESSION。只要客户端没有加密密钥,他们就无法解密数据(默认情况下会将数据存储在客户端的cookie中)。

如果恶意客户端尝试发送自己创建或修改的会话数据,则无法使用您的密钥解密(因为它未加密或使用其他密钥加密)因此您可以假设会话数据无效并清除它。

有关PHP加密的更多信息,请参阅this question

相关问题