除了action
和method
之外,是否可以在表单数据中包含其他请求标头?我希望跨域发送一些身份验证凭据,而不会让用户重新输入他们的登录凭据。即我想直接从表单提交构建一个身份验证标头。
域已启用SSL,因此我考虑在URL中包含凭据,但正如here所述,这是一个坏主意,因为这些凭据可能在连接上是安全的,但可以通过浏览器访问其他应用程序可能。
放大图片
我可以通过对客户端服务器(主域)的AJAX请求访问跨域用户名和密码。我想获取这些凭据并通过非AJAX请求提交,因此用户可以安全地下载文档而无需公开访问URL。
答案 0 :(得分:1)
对于具体问题,我认为答案是否定的 - 您无法控制从表单本身发送任何额外的标头。您可以使用表单发送一些其他内容,但它们对您要执行的操作无用:W3 Form Tag Specification
你可以做的是做一个表单POST,这是会话cookie不可能而且查询字符串不能进行通信的标准方式;只需使用带有某种凭证的令牌/哈希的隐藏字段。避免像瘟疫这样的密码的明文,并且确实试图避免对它们进行可逆加密。这只是您必须格外小心避免造成容易被利用的安全漏洞的区域之一。
但一般来说它的工作正常,任何可以执行AJAX GET的操作都应该可以进行AJAX POST。