GVKun编程网logo

织梦提示:DedeCMS:CSRF Token Check Failed(织梦提示数据库出错)

14

对于织梦提示:DedeCMS:CSRFTokenCheckFailed感兴趣的读者,本文将会是一篇不错的选择,我们将详细介绍织梦提示数据库出错,并为您提供关于CSRFFailed:Refererche

对于织梦提示:DedeCMS:CSRF Token Check Failed感兴趣的读者,本文将会是一篇不错的选择,我们将详细介绍织梦提示数据库出错,并为您提供关于CSRF Failed: Referer checking failed - no Referer、DedeCMS:CSRF Token Check Failed提示解决办法、DedeCMS:CSRF Token Check Failed提示解决方法、DedeCMS安全:dedecms如何防止挂马的有用信息。

本文目录一览:

织梦提示:DedeCMS:CSRF Token Check Failed(织梦提示数据库出错)

织梦提示:DedeCMS:CSRF Token Check Failed(织梦提示数据库出错)

 
先说解释一下:CSRF(Cross-site request forgery),中文名称:跨站请求伪造,也被称为:one click attack/session riding,缩写为:CSRF/XSRF。
 
织梦dedecms出现DedeCMS:CSRF Token Check Failed!,由于您重新打开了一个需要CSRF校验的表单页面。
 
修改文件位于后台目录,默认为/dede/config.php这个文件中,在大约63行可以看到:
 
function csrf_check()
{
    global $token;
 
    if(!isset($token) || strcasecmp($token, $_SESSION['token']) != 0){
        echo '<a href="http://bbs.dedecms.com/907721.html">DedeCMS:CSRF Token Check Failed!</a>';
        exit;
    }
}
本文章网址:http://www.ppssdd.com/code/1123.html。转载请保留出处,谢谢合作!

CSRF Failed: Referer checking failed - no Referer

CSRF Failed: Referer checking failed - no Referer

postman 模拟登录出了这个错误,其实看标题就知道大概是怎么回事,网上大概找了办法,也没说到位,所以干脆自己找源码了.

问题很明显就是出在 CSRF 上,理所当然去查看 CsrfViewMiddleware 中间件:

 1 class CsrfViewMiddleware(object):
 2 
 3     def _accept(self, request):
 4        
 5         request.csrf_processing_done = True
 6         return None
 7 
 8     def _reject(self, request, reason):
 9         logger.warning(''Forbidden (%s): %s'', reason, request.path,
10             extra={
11                 ''status_code'': 403,
12                 ''request'': request,
13             }
14         )
15         return _get_failure_view()(request, reason=reason)
16 
17     def process_view(self, request, callback, callback_args, callback_kwargs):
18 
19         if getattr(request, ''csrf_processing_done'', False):
20             return None
21 
22         try:
23             csrf_token = _sanitize_token(
24                 request.COOKIES[settings.CSRF_COOKIE_NAME])
25             request.META[''CSRF_COOKIE''] = csrf_token
26         except KeyError:
27             csrf_token = None
28            
29             request.META["CSRF_COOKIE"] = _get_new_csrf_key()
30         
31             return None
32 e that anything not defined as ''safe'' by RFC2616 needs protection
33         if request.method not in (''GET'', ''HEAD'', ''OPTIONS'', ''TRACE''):
34             if getattr(request, ''_dont_enforce_csrf_checks'', False):
35                 return self._accept(request)
36 
37             if request.is_secure():
38                 referer = force_text(
39                     request.META.get(''HTTP_REFERER''),
40                     strings_only=True,
41                     errors=''replace''
42                 )
43                 if referer is None:
44                     return self._reject(request, REASON_NO_REFERER)      # 问题就出在这里  
45 
46                 good_referer = ''https://%s/'' % request.get_host()
47                 if not same_origin(referer, good_referer):
48                     reason = REASON_BAD_REFERER % (referer, good_referer)
49                     return self._reject(request, reason)
50 
51             if csrf_token is None:
52                 return self._reject(request, REASON_NO_CSRF_COOKIE)
53             request_csrf_token = ""
54             if request.method == "POST":
55                 try:
56                     request_csrf_token = request.POST.get(''csrfmiddlewaretoken'', '''')
57                 except IOError:
58                     pass
59 
60             if request_csrf_token == "":
61                 request_csrf_token = request.META.get(''HTTP_X_CSRFTOKEN'', '''')
62 
63             if not constant_time_compare(request_csrf_token, csrf_token):
64                 return self._reject(request, REASON_BAD_TOKEN)
65 
66         return self._accept(request)

首先在文件里面搜索报错的信息字符串,找到这个:

REASON_NO_REFERER = "Referer checking failed - no Referer."

然后搜索 REASON_NO_REFERER 就会找到上面的那一段代码中出错的位置.(为什么写这些东西,因为我有个同学就是从来都不会找出错原因,方法有时候比结论更重要)

然后代码里面说的很清楚了,referer = request.META.get(''HTTP_REFERER'') 

这就说明请求头里面没有 REFERER 这个信息,都知道的,Django 会把自定义的请求头大写并在前面添加 HTTP_ , 所以在 postman 的 header 里面添加这个 referer 字段就好了.

注意,referer 的格式是 https://www.domain.com/.          后面有个点

然后就 OK 了

 

 

多说两句,看看人家 django 多贴心,如果是 post 请求的话,会尝试从两个地方获取 csrftoken, 请求体里面可以放,就算忘了放,还会从请求头里面拿 (54 行 - 64 行)

DedeCMS:CSRF Token Check Failed提示解决办法

DedeCMS:CSRF Token Check Failed提示解决办法

 

CSRF(Cross-site request forgery),中文名称:跨站请求伪造,也被称为:one click attack/session riding,缩写为:CSRF/XSRF。

 

出现DedeCMS:CSRF Token Check Failed!,由于您重新打开了一个需要CSRF校验的表单页面。

 

打开 dede/file_manage_view.php 找到

$path_parts = pathinfo($filename);

大约处于121行,在它下面一行加入

$GLOBALS['token'] = make_hash();

完成。修改文件就不会再出现DedeCMS:CSRF Token Check Failed!这个提示了

本文章网址:http://www.ppssdd.com/code/3446.html。转载请保留出处,谢谢合作!

DedeCMS:CSRF Token Check Failed提示解决方法

DedeCMS:CSRF Token Check Failed提示解决方法

CSRF(Cross-site request forgery),中文名称:跨站请求伪造,也被称为:one click attack/session riding,缩写为:CSRF/XSRF。
 
出现Dedecms:CSRF Token Check Failed!,由于您重新打开了一个需要CSRF校验的表单页面。
 
打开 dede/file_manage_view.PHP 找到
  1. $path_parts = pathinfo($filename);
大约处于121行,在它下面一行加入
  1. $GLOBALS['token'] = make_hash();
完成。修改文件就不会再出现Dedecms:CSRF Token Check Failed!这个提示了

DedeCMS安全:dedecms如何防止挂马

DedeCMS安全:dedecms如何防止挂马

很多客户在使用中经常会遇到或者担心网站挂马
这套简单的教程中为客户讲解了一系列针对DEDE网站的安全设置 只要你按照以下三点操作
可避免99% 网站被挂马的情况


一 精简设置篇: 内容来自多织梦(duodede.com)

不需要的功能统统删除。比如不需要会员就将member文件夹删除。删除多余组件是避免被hack注射的最佳办法。将每个目录添加空的index.html,防止目录被访问。
织梦可删除目录列表:
member会员功能
special专题功能
install安装程序(必删)
company企业模块
plus\guestbook留言板 以及其他模块一般用不上的都可以不安装或删除。

二 密码设置篇:

管理员密码一定要长,而且字母与数字混合,尽量不要用admin,初次安装完成后将admin删除,新建个管理员名字不要太简单。织梦系统数据库存储的密 码是MD5的,一般HACK就算通过注入拿到了MD5的密码,如果你的密码够严谨,对方也逆转不过来。也是无奈。但现在的MD5破解网站太过先进,4T的 硬盘全是MD5密码,即便你的密码很复杂有时候都能被蒙上。我之前的站点就是这么被黑的。所以一定密码够复杂。

 

三 dede可删除文件列表: duodede.com

DEDE管理目录下的

file_manage_control.PHP 内容来自多织梦(duodede.com)

file_manage_main.PHP

file_manage_view.PHP

media_add.PHP

media_edit.PHP

media_main.PHP

这些文件是后台文件管理器(这俩个功能最多余,也最影响安全,许多HACK都是通过它来挂马的。它简直就是小型挂马器,上传编辑木马忒方便了。一般用不上统统删除) 。
不需要sql命令运行器的将dede/sys_sql_query.PHP 文件删除。避免HACK利用。
不需要tag功能请将根目录下的tag.PHP删除。不需要顶客请将根目录下的digg.PHP与diggindex.PHP删除!

做到以上三点 保证您的网站安全可靠!

关于织梦提示:DedeCMS:CSRF Token Check Failed织梦提示数据库出错的介绍现已完结,谢谢您的耐心阅读,如果想了解更多关于CSRF Failed: Referer checking failed - no Referer、DedeCMS:CSRF Token Check Failed提示解决办法、DedeCMS:CSRF Token Check Failed提示解决方法、DedeCMS安全:dedecms如何防止挂马的相关知识,请在本站寻找。

本文标签: