2

当我们使用 AJAX 调用服务器方法时,我们必须指定它的名称和参数。安全方面可以吗?对此没有任何顾虑吗?

4

1 回答 1

3

这里确实存在一个安全问题:即,您可以使用 AJAX 调用的任何方法也可以由攻击者使用他们想要的任何参数调用。因此,您需要确保任何由此暴露的方法即使被恶意调用也是无害的。

如果您确实需要通过 AJAX 公开可能有害的方法,则需要确保这些方法仅在用户经过正确身份验证的情况下才会执行其预期的操作,并且操作的范围仅限于用户被授权的范围去做。身份验证信息应该以某种方式传输,使攻击者难以拦截它,例如在HttpOnly cookie中。

此外,应保护此类方法免受CSRF 攻击,攻击者可以通过 CSRF 攻击诱骗经过身份验证的用户调用他们不打算调用的方法。标准解决方案是将辅助身份验证令牌作为参数传递给该方法,并且仅在令牌和 cookie 匹配时才允许访问。

简短的版本是:任何通过 AJAX 公开的东西都是公开的。将其视为攻击面的一部分。

于 2012-12-26T13:21:55.193 回答