如何保护ajax不被登录使用?

时间:2011-07-26 20:18:44

标签: jquery ruby-on-rails ajax django linux

如果我的网站具有登录和会话管理功能,并且页面使用ajax将表单数据发送到服务器端。

如何保护任何人不仅仅是保存HTML和JavaScripts,从而完全绕过登录和会话管理?

您是否在成功登录时生成令牌,并将其与JSON字符串一起发送,以便服务器端脚本可以对此进行检查?

如果是的话,是否存在我可以使用的解决方案,所以我不必自己编写?

我对Djando和ROR解决方案感兴趣,因为我现在正在尝试这两种解决方案。

4 个答案:

答案 0 :(得分:2)

您创建一个令牌并将其保存在cookie上。然后检查每个地方的cookie。包括你所有的ajax页面。当您执行ajax请求时,也会发送cookie。这是我能想到的唯一安全选择。您始终必须检查后端中的令牌,如果未经授权则拒绝。

答案 1 :(得分:2)

您应该在服务器上实现登录。 AJAX请求与常规请求存在于同一会话中,因此如果有人登录,他们也会登录AJAX请求。如果用户未登录,您也可以检查此AJAX请求。检查服务器上是否有用户登录,如果没有则返回错误代码。

服务器不应该依赖客户端告诉它是否有人登录。唯一用于此的客户端数据是会话令牌,如果您想要更安全,则与IP地址结合使用。

答案 2 :(得分:0)

答案 3 :(得分:0)

将一个before_filter添加到应用程序控制器,验证用户是否已登录:

before_filter:login_required

def login_required   除非current_user      重定向到登录页面 端

相关问题