【发布时间】:2011-07-17 09:46:36
【问题描述】:
我正在构建一个浏览器游戏,并且我使用大量的 ajax 而不是页面刷新。我正在使用 php 和 javascript。经过大量工作后,我注意到 ajax 并不完全安全。我担心的威胁是有人想在我的 SQL 服务器上查找某人的信息,他们只需要在与我的 ajax 调用关联的 .php 文件中键入正确的信息。我使用的是 GET 风格的 ajax 调用,这是一个坏主意。无论如何,经过大量研究,我采取了以下安全措施。我切换到 POST(这实际上并不安全,但它的威慑力很小)。我也有一个推荐的地方,它又可以被伪造,但又是另一种威慑。
我采取的最后措施是这个问题的重点,当我的网站加载时,我在会话中生成并保存了一个 80 字符的十六进制密钥,当我发送 ajax 调用时,我也在发送挑战
形式的键challenge= <?php $_SESSION["challenge"]; ?>
现在,当 ajax php 文件读取此内容时,它会检查发送的质询是否与会话质询匹配。现在这本身不会做太多,因为您可以简单地打开萤火虫并轻松查看正在发送的挑战。所以我要做的是,一旦使用了该挑战,它就会在会话中生成一个新挑战。
所以我的问题是,从我站立的位置来看,这有多安全从另一个来源发送伪造的请求。是否有人看到此安全方法的任何漏洞或有任何其他想法或想法。
【问题讨论】:
标签: php javascript jquery html ajax