我有一个受CSRF令牌保护的表单。我不知道CSRF令牌的所有细节,但我听说他们对表单安全性有好处。当表单提交太晚时,表单会出错,因此CSRF令牌似乎按预期工作。
另一方面,当我使用ajax提交表单时,如何验证表单与验证普通表单的方式相同?我认为我不会有一个表单对象来验证。
答案 0 :(得分:1)
使用ajax会有风险吗?
实际上没有任何其他请求对您的服务器造成风险。
当我接受ajax调用时,如何验证它与验证普通表单的方式相同?
我不知道,你现在如何验证表格? :)
您可能希望在服务器端共享此代码。给定键/值对,创建一个公共方法/函数/处理表单的任何内容。与AJAX唯一不同的是如何将键/值对发送到服务器以及格式化的响应是什么。从这些细节中隔离验证代码,您可以从两个地方调用它。
显然,AJAX代码也应该发送CSRF令牌。
我想通过一个带有请求的密钥(比如一个API密钥)来证明我的应用程序正在进行调用,但是如何从肉眼看到这个密钥呢?
这没有意义。 JavaScript以纯文本形式发送,因此任何了解JavaScript的人都可以提取密钥。