这个方法中有一个安全漏洞用PHP来保护Jquery / AJAX请求吗?

时间:2012-03-13 18:52:57

标签: php ajax security access-control

在我的search.php页面上,用户可以按城市/位置搜索内容,通过JQuery / AJAX搜索到名为search_data.php的页面,结果在{{1}上返回}。

现在这就是我正在做的事情: 在search.php我有这个:

search.php

$_SESSION['verid'] = randomid(12); $_SESSION['verkey'] == randomid(12); 是一个生成12个随机字符的函数。这两个会话变量与jquery randomid请求一起作为javascript变量发送(名为“vuid”和“vukid”)

$.post我有这个:

search_data.php

使用这种方法,它会阻止某人手动浏览if ($_POST['vuid'] != $_SESSION['verid']) { header('Location: http://mysite.com/'); die(); } else { if ($_POST['vukid'] != $_SESSION['verkey']) { header('Location: http://mysite.com/'); die(); } else { //both keys correct. process Jquery data. } 尝试做恶意事情(我认为?),它只允许Jquery访问它。

我的问题是,我在这里看不到某种“漏洞”吗?这是保护这类网页的好方法吗?

2 个答案:

答案 0 :(得分:3)

任何人都可以模拟任何HTTP请求,因此此方法不可靠。在这种情况下,他可以伪造第一个HTTP请求来启动会话,存储PHP脚本返回的cookie并重新使用它来伪造第二个HTTP请求,该请求是通过cookie和他从第一个请求获得的验证密钥传递的。

答案 1 :(得分:1)

什么样的恶意事物?我猜是search_data.php链接到数据库?最好是保护该脚本,特别是保护所需的最少访问量。您可以使用对search_data.php上的表只具有读访问权限的数据库用户,这样可以稍微降低安全威胁。

底线是恶意用户可能造成的更大潜在损害,您需要的保护页面和资源越多。

OWASP是学习潜在安全威胁以及如何减轻其威胁的重要资源。