Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/431.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript gorilla/csrf的问题_Javascript_Jquery_Go_Gorilla - Fatal编程技术网

Javascript gorilla/csrf的问题

Javascript gorilla/csrf的问题,javascript,jquery,go,gorilla,Javascript,Jquery,Go,Gorilla,所以,就我的一生而言,我不知道如何让gorilla的csrf在不直接注入农田的情况下发挥作用。它一直在谈论通过标题和cookies传递它,但我所做的一切似乎都不起作用。。。以下是我的go服务器的配置: ` ` 鉴于,在我的前端,我有以下功能,以便更新所有请求: ` ` 我知道我肯定错过了什么,但我真的一点也不明白。任何帮助都将不胜感激。您似乎正在用这行代码覆盖gorilla创建的真实CSRF令牌。Gorilla正在使用会话存储来保存真实的CSRF令牌以供验证 w.Header().Set("Se

所以,就我的一生而言,我不知道如何让gorilla的csrf在不直接注入农田的情况下发挥作用。它一直在谈论通过标题和cookies传递它,但我所做的一切似乎都不起作用。。。以下是我的go服务器的配置:

`

`

鉴于,在我的前端,我有以下功能,以便更新所有请求: `

`


我知道我肯定错过了什么,但我真的一点也不明白。任何帮助都将不胜感激。

您似乎正在用这行代码覆盖gorilla创建的真实CSRF令牌。Gorilla正在使用会话存储来保存真实的CSRF令牌以供验证

w.Header().Set("Set-Cookie", "_gorilla_csrf="+csrf.Token(r))
请不要碰这个饼干

Gorilla仅通过表单字段和标题支持CSRF。因此,选择您的选择,他们有您需要的表单字段、标题和自定义字段名和标题名所需的信息

gorilla/csrf按以下顺序检查csrf令牌:

gorilla/csrf首先检查HTTP头,然后在后续的POST/PUT/PATCH/DELETE/etc令牌请求中检查表单正文


所以,不管出于什么原因,我可能在没有意识到的情况下改变了一些东西——但在我按照你说的做了之后,我实际上得到了正确的——大猩猩csrf——它以前没有通过。话虽如此,当将X-CSRF-Token头设置为getCookie返回的值时,我仍然得到403个禁止,知道为什么吗?@ReginadScarr很高兴听到,你得到了正确的“gorilla”CSRF cookie。你可以接受答案,我相信。所以,看起来我没有得到正确的钥匙。。。它每次都会发回同样的东西,没有失败。我不知道在这里该怎么办,真奇怪。好的,让我在最后试一试,让你知道。我已经试过gorilla pkg的示例代码,它工作得非常好。供参考
var getCookie = function(cname) {
  var name = cname + "=";
  var ca = document.cookie.split(';');
  for (var i = 0; i < ca.length; i++) {
      var c = ca[i];
      while (c.charAt(0) == ' ') c = c.substring(1);
      if (c.indexOf(name) == 0) return c.substring(name.length, c.length);
  }
  return "";
};
$.ajaxPrefilter(function( options ) {
    options.beforeSend = function (xhr) { 
        xhr.setRequestHeader('X-CSRF-Token', getCookie('_gorilla_csrf'));
    }
});
w.Header().Set("Set-Cookie", "_gorilla_csrf="+csrf.Token(r))