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
+13
View File
@@ -0,0 +1,13 @@
# Add a month_absolute column so that monthly repeats can be converted to the
# new format. The conversion itself is done in post.inc
# We save the current value of the timestamp before updating and restore it
# afterwards because we do not want the timestamp to be changed by this operation.
# The restoration is done in the next upgrade because we need to operate on the table
# first using post.inc
ALTER TABLE %DB_TBL_PREFIX%repeat
ADD COLUMN saved_ts DATETIME;
UPDATE %DB_TBL_PREFIX%repeat SET saved_ts=timestamp;
ALTER TABLE %DB_TBL_PREFIX%repeat
ADD COLUMN month_absolute smallint DEFAULT NULL;
+5
View File
@@ -0,0 +1,5 @@
-- Add a month_absolute column so that monthly repeats can be converted to the
-- new format. The conversion itself is done in post.inc
ALTER TABLE %DB_TBL_PREFIX%repeat
ADD COLUMN month_absolute smallint DEFAULT NULL;
+42
View File
@@ -0,0 +1,42 @@
<?php
namespace MRBS;
require_once 'standard_vars.inc.php'; // to ensure the timezone is set
// Get all the monthly repeats
$sql = "SELECT T.id, T.start_time, A.timezone
FROM " . _tbl('repeat') . " T, " . _tbl('area') . " A, " . _tbl('room') . " M
WHERE T.rep_type=" . RepeatRule::MONTHLY . "
AND T.room_id=M.id
AND M.area_id=A.id";
$res = $upgrade_handle->query($sql);
// Save the current default timezone so that we can restore it at the end
$old_tz = mrbs_default_timezone_get();
$mods = array();
while (false !== ($row = $res->next_row_keyed()))
{
// We need to make sure that we have the correct timezone set when we work out
// the day of the month that this series repeats on
if (!empty($row['timezone']))
{
mrbs_default_timezone_set($row['timezone']);
}
$mods[$row['id']] = date('j', $row['start_time']);
}
foreach ($mods as $id => $month_absolute)
{
$sql = "UPDATE " . _tbl('repeat') . "
SET month_absolute=$month_absolute
WHERE id=$id";
$upgrade_handle->command($sql);
}
// Restore the original timezone
mrbs_default_timezone_set($old_tz);