问题描述
我一直在使用ajax的网站上工作,当然使用ajax遇到跨站点请求的问题(我正在执行登录,因此需要POST到我的API端点)。 我已阅读了CORS以及如何响应请求以实现此目的。
我的问题是:此ajax请求的安全性和正常的(例如,来自表单的)POST请求如何?
这个ajax请求是否使用与普通请求相同的路由,HTTP方法等? 像任何请求一样,是否需要验证其输入?
如果我没记错的话,如果我创建一个普通表单并将操作设置为另一个站点,它将起作用。 这与ajax POST所做的一样吗?
谢谢
1楼
从表单进行POST时,您的网页将始终重定向到POST返回的内容,并且用户将知道操作已完成。
AJAX请求将永远不会更改您的网页(除非您通过编程方式进行更改),因此,如果您可以向其他域发出AJAX请求,则用户将永远不会注意到网页中的脚本正在访问其他域。
之所以存在CORS,是因为同源
防止一个页面上的恶意脚本通过该页面的文档对象模型来访问另一网页上的敏感数据。
对于广泛依赖HTTP cookie维护经过身份验证的用户会话的现代Web应用程序,此机制具有特别的意义。
如果您可以使用ajax向任何站点发出POST请求,那么您可以在用户不注意的情况下修改任何站点中的任何设置。 那将是一个安全问题。