[英]Do I need to use csrf protection if I am not using form tags?
我正在制作一些 forms 来申请组织成员资格。 我没有使用表单标签,它只是一堆输入(字符串、选择和检查),信息通过 ajax 发送到 Flask 服务器。 这样安全吗? 我没有使用 forms 所以我不确定如何处理 csrf 值
考虑一些恶意网站,它所做的只是:
window.onload = function() {
var body = {
action: "payment", amount: 500
}
$.ajax("https://your-api.com", body)
}
因此,如果您登录您的站点并访问此页面,则会成功地代表您发出请求。
为了缓解这种情况,请添加一个csrf
参数,该参数仅对您的服务器及其服务的页面已知。 您渲染的 HTML 页面将如下所示:
var csrf = "secret-8-digits-value-from-session-of-user";
// and on any request add this param
var body = {
action: "payment", amount: 500, csrf: csrf
}
$.ajax("https://your-api.com", body)
// now server will verify `csrf` from *request* against `csrf` from *session*
// if no match, then reject the request.
现在您可以再次访问恶意网站。 他们不知道您的 session csrf
代码。 所以他们的恶意代码将不起作用,因为您的服务器会拒绝请求中的csrf
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.