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
+37
View File
@@ -0,0 +1,37 @@
<?php
declare(strict_types=1);
namespace MRBS\Intl;
/**
* A wrapper for the Locale class, that uses the PHP method if available, otherwise falling
* back to the emulator.
*/
class Locale
{
public const LANG_TAG = 'language';
public const EXTLANG_TAG = 'extlang';
public const SCRIPT_TAG = 'script';
public const REGION_TAG = 'region';
public const VARIANT_TAG = 'variant';
public const GRANDFATHERED_LANG_TAG = 'grandfathered';
public const PRIVATE_TAG = 'private';
public const ACTUAL_LOCALE = 0;
public const VALID_LOCALE = 1;
public static function __callStatic(string $name, array $arguments)
{
// Use the PHP method if it exists, unless it's the acceptFromHttp() method. Until we stop using setlocale(), we
// can't rely on PHP's acceptFromHttp() to tell us whether the locale is valid for setlocale() and have to use
// the emulator, which does further checks.
if (($name !== 'acceptFromHttp') && method_exists('\Locale', $name))
{
// Check that the method we're calling also exists in the emulator class, in case the 'intl' extension is not enabled.
assert(method_exists(__NAMESPACE__ . '\LocaleEmulator', $name), "Call to \Locale::$name which hasn't been emulated.");
return \Locale::$name(...$arguments);
}
return LocaleEmulator::$name(...$arguments);
}
}