一为主题社交登录聚合登录QQ和微信授权后返回提示错误原创文章

玩技站长
玩技站长
管理员, Keymaster
11144
文章
0
粉丝
运维笔记1 11字数 427阅读1分25秒阅读模式

问题描述:

一为主题设置了聚合登录后,使用QQ或者微信和其他登录方式时,可以正常打开和跳转QQ互联,但是结果返回提示:The state does not match. You may be a victim of CSRF. 的解决办法。

一为主题社交登录聚合登录QQ和微信授权后返回提示错误插图文章源自玩技e族-https://www.playezu.com/850482.html

排查过程:

1、找到回调文件 /wp-content/themes/onenav/inc/auth/prk-callback.php。文章源自玩技e族-https://www.playezu.com/850482.html

<?php
/*
 * @Author: iowen
 * @Author URI: https://www.iowen.cn/
 * @Date: 2022-06-19 16:23:07
 * @LastEditors: iowen
 * @LastEditTime: 2022-06-19 17:30:05
 * @FilePath: \onenav\inc\auth\prk-callback.php
 * @Description: 
 */

include_once('../../../../../wp-config.php');
if(!session_id()) session_start();

$type 		= isset($_GET['type'])?$_GET['type']:'qq';
$pyk 		= io_get_option('open_prk_key');
$pyk_config = array(
	'apiurl' 	=> $pyk['apiurl'],
	'appid' 	=> $pyk['appid'],
	'appkey' 	=> $pyk['appkey'],
	'state' 	=> $_SESSION ['state'],
	'callback' 	=> get_theme_file_uri('/inc/auth/prk-callback.php'),
);
if($_GET['code']){
	if($_GET['state'] != $_SESSION['state']){
		exit("The state does not match. You may be a victim of CSRF.");
	}
	unset($_SESSION['state']);
	$Oauth	= new ioLoginPrk($pyk_config);
	$arr 	= $Oauth->callback();
    $Oauth->use_db($arr,$_SESSION['rurl']);
}

2、找到请求日志:/www/wwwlogs/xxx.xxx.com.log,可以看到以下几点信息:文章源自玩技e族-https://www.playezu.com/850482.html

103.150.185.227 - - [10/Oct/2024:11:54:13 +0800] "GET /wp-content/themes/onenav/inc/auth/prk-callback.php?type=qq&code=xxxxxx&state=xxxxxxHTTP/2.0" 200 72 "https://graph.qq.com/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36"

针对CSRF:

当前的问题出现在 $_GET['state'] 与 $_SESSION['state'] 不匹配时,导致了 The state does not match. You may be a victim of CSRF. 的错误提示。文章源自玩技e族-https://www.playezu.com/850482.html

检验代码:

在代码中可以通过以下方式检查 Session 的状态:
if (session_status() === PHP_SESSION_NONE) {
    echo "Session is not started.";
} else {
    echo "Session is started.";
}

结果为Session is not started.文章源自玩技e族-https://www.playezu.com/850482.html

检查环境:

评论后刷新
由于本站被大量采集,顾添加评论验证防止因采集造成的网络崩溃
文章源自玩技e族-https://www.playezu.com/850482.html文章源自玩技e族-https://www.playezu.com/850482.html

原创声明:本文章为原创内容,所有文章均由博主亲自撰写,严格遵循原创原则。我们承诺不使用任何人工智能生成的内容,所发布的每一篇文章都经过深思熟虑,旨在为读者提供真实、有价值的观点和信息。我们坚信原创才是知识分享的根本,致力于为广大读者呈现最具真实性和独特性的文章。感谢您的支持与关注,欢迎持续关注我们的原创内容。

 
    • 111
      111 0

      看看

    匿名

    发表评论

    匿名网友
    :?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:
    确定

    拖动滑块以完成验证