Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/387.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/python/305.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 我需要在django(ajax)中检查相同的源代码吗?_Javascript_Python_Ajax_Django - Fatal编程技术网

Javascript 我需要在django(ajax)中检查相同的源代码吗?

Javascript 我需要在django(ajax)中检查相同的源代码吗?,javascript,python,ajax,django,Javascript,Python,Ajax,Django,如果我没有实现django文档中本页所述的用于检查请求是否来自应用程序运行所在的同一域的代码: 这是否意味着有人可以执行来自其他站点的csrf请求?我认为这是django中的内置功能,所以您不必亲自检查。通常在处理表单时,您不必亲自检查此项,因此我想我不明白为什么在该示例中他们必须实现此功能 我在谷歌上搜索并阅读了几篇文章,没有一篇实现了文档中写的功能,检查请求是否来自与应用程序运行时相同的来源,所以我觉得很奇怪,他们只是提取cookie并像我现在这样发送 在这种情况下,什么是正确的?是的,您需

如果我没有实现django文档中本页所述的用于检查请求是否来自应用程序运行所在的同一域的代码:

这是否意味着有人可以执行来自其他站点的csrf请求?我认为这是django中的内置功能,所以您不必亲自检查。通常在处理表单时,您不必亲自检查此项,因此我想我不明白为什么在该示例中他们必须实现此功能

我在谷歌上搜索并阅读了几篇文章,没有一篇实现了文档中写的功能,检查请求是否来自与应用程序运行时相同的来源,所以我觉得很奇怪,他们只是提取cookie并像我现在这样发送


在这种情况下,什么是正确的?

是的,您需要检查CSRF,否则有人会向您发送随机数据,坏事情就会发生:)

我建议:

  • 在已安装的应用程序中启用CsrfViewMiddleware

  • 在每一页上,包括

  • 同样在每个页面上,告诉jQuery的Ajax系统在POST请求时插入cookie。看这个要点——(不是我写的)


  • 以上内容将以最少的麻烦获得最大的安全性。

    啊,好的,谢谢。因此jquery库实现了检查请求是否来自应用程序运行的源的功能?我还没有太多地研究jquery,因为我喜欢在没有jquery或其他LIB的情况下编写代码,直到我对编写ajax有了足够的了解/javascript@user2959896不,jQuery库只是实现获取cookie值的功能。CSRF令牌被设置为cookie,代码段将其设置为请求上的头(POST数据中提供它的替代方法),但
    CsrfViewMiddleware
    实际上检查请求中发送的令牌是否为有效令牌,因此,如果请求来自正确的站点。当再次阅读文档时,我看到第二个示例实际上是他们正在使用csrf cookie设置标头,但他们仍然执行相同的来源检查,如果这是由middlewarecomponent处理的,他们为什么要这样做?