MRBS 1.12.2 等保2.0二级整改完整提交

包含:登录失败锁定、90天密码有效期、30分钟会话超时、
强制改密、登录审计日志、屏幕水印、企业背景图、
备案信息固定底部、favicon、JS空集合保护、
会话过期体验优化(403 JSON)、display_errors 关闭、
固定 key 根治 Integrity check failed 等全部改动

注意:config.inc.php/.htaccess/.user.ini 含敏感信息,
通过 .gitignore 排除,勿推送到公开仓库。
This commit is contained in:
人事系统开发
2026-09-09 16:55:02 +08:00
commit 1ba6efd8ed
2151 changed files with 528780 additions and 0 deletions
+74
View File
@@ -0,0 +1,74 @@
<?php
declare(strict_types=1);
namespace MRBS\Session;
use MRBS\User;
use function MRBS\auth;
require_once MRBS_ROOT . '/auth/cms/wordpress.inc';
class SessionWordpress extends SessionWithLogin
{
public function __construct()
{
$this->checkTypeMatchesSession();
parent::__construct();
}
public function getCurrentUser() : ?User
{
if (!is_user_logged_in())
{
return parent::getCurrentUser();
}
$mrbs_user = wp_get_current_user();
return auth()->getUser($mrbs_user->user_login);
}
// Can only return a valid username. If the username and password are not valid it will ask for new ones.
protected function getValidUser(
#[\SensitiveParameter]
?string $username,
#[\SensitiveParameter]
?string $password) : string
{
global $errors; // $errors is a WordPress global
$credentials = array();
$credentials['user_login'] = $username;
$credentials['user_password'] = $password;
$credentials['remember'] = false;
$wp_user = wp_signon($credentials);
if (is_wp_error($wp_user))
{
$errors = $wp_user;
$error_message = apply_filters('login_errors', $wp_user->get_error_message());
// The WordPress error message contains HTML so don't escape it.
$this->authGet($this->form['target_url'], $this->form['returl'], $error_message, true);
exit(); // unnecessary because authGet() exits, but just included for clarity
}
return $username;
}
protected function logonUser(string $username) : void
{
// Don't need to do anything: the user will have been logged on when the
// username and password were validated.
}
public function logoffUser() : void
{
wp_logout();
}
}