0

这很少见,但我不得不称赞 MS:ASP.NET WebMethod (AJAX) 授权是一个梦想,因为我渴望安全和懒惰。

Encosia 的ASP.NET 页面方法只有在您使它们完全满足这些需求时才安全。ASP.NET 现在对我来说实际上是可行的。终于自由了!(来自高贵但灾难性的 AJAXControlToolkit)。

无论如何,问题是,这是为了工作。当 LAMP 免费提供时,我不会购买 MS 架构。我是 AJAX 的新手,我似乎找不到关于如何以与上面的 Encosia 相同的方式授权对 PHP 的 AJAX 调用的明确答案。

任何人都可以在上面的链接中建议与 Encosia 相同的 PHP 吗?

提前致谢!

更多细节

好的,让我更具体一点。上面的 Encosia 的解决方案为任何未登录尝试访问 web 方法的人提供了 401 denied。整洁,干净,简单。之前,我尝试对用户会话数据进行访问,但它在我不知不觉中强制同步模式。不,不。

对于我的网站,我需要两者。如果用户未登录,我需要能够在某些页面上提供 401 拒绝。我需要能够允许任何人通过 ajax 调用其他 php,无论登录如何。

明晰

底线:我不希望任何人访问某些 AJAX PHP,除非他们已登录。我不在乎响应或任何其他细节,只要它仍然是 AJAX。如何?

4

1 回答 1

1

问题不是很清楚,但是如果您只想允许已验证或在相关页面上的用户访问您的 AJAX 服务器端侦听脚本(可能是 XML 或 JSON 输出),那么如何添加会话标识符到你的 JS AJAX 请求?在服务器端脚本中,您可以对照保存当前会话的数据库表检查该标识符。

为了提高安全性,您可以检查 IP、cookie 等。这些都是您可以在会话启动时设置的值。

您需要问自己的主要问题是:

如果用户登录或浏览,您真正想要/需要提供什么样的数据库访问权限?每个应用程序都有自己的需求。如果您要在服务器上安装 AJAX 侦听器,那么只需快速查看 Firebug(示例)以了解您的脚本在哪里以及请求的格式。这可能会发现潜在的安全漏洞。确保您的所有传入请求都得到正确处理,以消除注入攻击的可能性。

于 2012-09-30T17:43:07.230 回答