当我们用AJAX调用服务器方法时,我们必须指定它的名称和参数。安全方面是否可以?对此没有任何担忧吗?
答案 0 :(得分:3)
这确实存在一个安全问题:即任何可以使用AJAX调用的方法也可以被攻击者用他们想要的任何参数调用。因此,即使被恶意调用,您也需要确保这样暴露的任何方法都是无害的。
如果确实需要公开通过AJAX执行可能有害的方法,则需要确保这些方法只有在用户经过适当身份验证后才会执行预期的操作,并且操作的范围仅限于用户有权这样做。身份验证信息应以某种方式传输,使攻击者难以拦截它,例如在HttpOnly cookie中。
此外,此类方法应受到CSRF attacks的保护,攻击者可以通过该方法欺骗经过身份验证的用户调用他们不打算使用的方法。标准解决方案是将辅助身份验证令牌作为参数传递给方法,并且只有在令牌和cookie匹配时才允许访问。
简短版本是:通过AJAX公开的任何内容都是暴露的。将其视为attack surface。
的一部分