2013-08-18 70 views
2

比方说,我有一个var即时生成(例如一个Facebook API调用返回用户ID)。然后我想使用jQuery的AJAX将这个var发送给我自己的服务器。安全:AJAX帖子

我的问题 - 这是安全的吗?在AJAX发送到我的服务器之前,有人会拦截并插入自己的值吗?如果这是不安全的,那么人们如何去做这样的AJAX帖子呢?

回答

0

是的,除非您使用HTTPS,否则有人可能会拦截并更改该值。所以这基本上是解决方案,以确保安全,以及某种身份验证系统。除此之外,请确保您不在该var中存储任何秘密,因为您的用户可以轻松看到该值。

+0

非常感谢 - 但HTTPS如何改变这一点?它将如何阻止用户在运行中更改AJAX POST数据? – user1775598

+0

HTTPS不会阻止用户更改POST数据 - 它只会阻止其他人能够劫持并更改它。这就是为什么你需要一个认证系统和可能的某种权限系统 - 那么如果用户改变其他值,你可以授权他们对这个资源,如果他们没有被授权,那么你提供一个401/403响应而不是200。 –

0

可能有人拦截和AJAX发送到我的服务器之前,插入自己的价值?

这取决于你是指“某人”的意思。

如果你是在谈论一个第三方攻击者,则可能的攻击点是:

  1. Facebook的服务器和浏览器之间。如果您可以选择对该请求使用SSL,那么这是在此处保护它的唯一方法。
  2. 在用户的浏览器中。这要求攻击者已经损害了用户的计算机。对此你无能为力。
  3. 浏览器与您的服务器之间。使用SSL来防御这一点。

如果你谈话的浏览器约用户,那么就没有什么可以做,以阻止他们改变数据。用户完全可以控制浏览器发送到服务器的内容。唯一的防御是让他们的浏览器脱离等式(这将涉及使用OAuth获得从您的服务器访问他们的Facebook帐户的权限)。