漏洞修改

This commit is contained in:
jiang 2025-10-28 09:26:39 +08:00
parent aa2415982e
commit 45cf8ee7ba
5 changed files with 51 additions and 18 deletions

View File

@ -8,8 +8,6 @@
<meta name="description"
content="layuimini基于layui的轻量级前端后台管理框架最简洁、易用的后台框架模板面向所有层次的前后端程序,只需提供一个接口就直接初始化整个框架,无需复杂操作。">
<meta name="renderer" content="webkit">
<meta http-equiv="Content-Security-Policy"
content="default-src 'self'; script-src 'self' 'unsafe-inline'; style-src 'self' 'unsafe-inline' https://cdnjs.cloudflare.com; img-src 'self' data:; font-src 'self' https://cdnjs.cloudflare.com;">
<meta http-equiv="x-ua-compatible" content="SAMEORIGIN">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
@ -21,10 +19,6 @@
<link rel="stylesheet" href="css/themes/default.css" media="all">
<link rel="stylesheet" href="lib/font-awesome-4.7.0/css/font-awesome.min.css" media="all">
<link rel="stylesheet" href="css/custom-sidebar.css" media="all">
<!--[if lt IE 9]>
<script src="https://cdn.staticfile.org/html5shiv/r29/html5.min.js"></script>
<script src="https://cdn.staticfile.org/respond.js/1.4.2/respond.min.js"></script>
<![endif]-->
<style id="layuimini-bg-color">
</style>
</head>
@ -160,14 +154,26 @@
}, function (result) {
console.log(result);
if (result.code === 200) {
var url = window.location.href; //获取当前页面的url
if (url.indexOf("?") != -1) { //判断是否存在参数
url = url.replace(/(\?|#)[^'"]*/, ''); //去除参数
window.history.pushState({}, 0, url);
// 使用 URL API 解析
var currentUrl = new URL(window.location.href);
// 协议检查,拒绝 javascript: 等危险协议
if (currentUrl.protocol !== "http:" && currentUrl.protocol !== "https:") {
console.warn("非法协议,拒绝处理: " + currentUrl.protocol);
return;
}
initPage(miniAdmin,isPlanAdd);
// 如果有 query 参数或者 hash就清理掉
if (currentUrl.search || currentUrl.hash) {
var cleanUrl = currentUrl.origin + currentUrl.pathname;
window.history.pushState({}, "", cleanUrl);
}
// 初始化页面
initPage(miniAdmin);
sessionStorage.setItem('us', JSON.stringify(result.data));
} else if (result.code === 401) {
// 登录过期或无权限
closeWindowOpen();
}
}, function (xhr, status, error) {
@ -258,6 +264,20 @@
}, function (result) {
console.log(result);
if (result.code === 200) {
// 使用 URL API 解析
var currentUrl = new URL(window.location.href);
// 协议检查,拒绝 javascript: 等危险协议
if (currentUrl.protocol !== "http:" && currentUrl.protocol !== "https:") {
console.warn("非法协议,拒绝处理: " + currentUrl.protocol);
return;
}
// 如果有 query 参数或者 hash就清理掉
if (currentUrl.search || currentUrl.hash) {
var cleanUrl = currentUrl.origin + currentUrl.pathname;
window.history.pushState({}, "", cleanUrl);
}
sessionStorage.setItem('gz-token', result.token);
sessionStorage.setItem('us', JSON.stringify(result.user));
initPage(miniAdmin,isPlanAdd);

View File

@ -4,6 +4,7 @@
*/
(function (window, document) {
var Print = function (dom, options) {
console.log(dom)
if (!(this instanceof Print)) return new Print(dom, options);
this.options = this.extend({
@ -44,6 +45,7 @@
},
getHtml: function () {
var inputs = document.querySelectorAll('input');
var textareas = document.querySelectorAll('textarea');
var selects = document.querySelectorAll('select');
@ -121,4 +123,4 @@
}
};
window.Print = Print;
}(window, document));
}(window, document));

View File

@ -152,8 +152,14 @@ function beforeSubmitApply() {
let l = list[j];
cgNum += (l.cgNum ? parseInt(l.cgNum) : 0);
lkNum += (l.lkNum ? parseInt(l.lkNum) : 0);
if (!l.supId && cgNum > 0) {
return layer.msg('序号为' + (i + 1) + '的数据,未选择供应商', { icon: 7 });
if (cgNum > 0 || lkNum > 0) {
// 如果没有选择供应商且 cgNum 大于 0显示警告
if (!l.supId && cgNum > 0) {
return layer.msg('序号为' + (i + 1) + '的数据,未选择供应商', { icon: 7 });
}
} else {
// 如果 cgNum 和 lkNum 都不大于 0弹出提示
return layer.msg('序号为' + (i + 1) + '的数据,采购量 或 利库量 必须大于 0', { icon: 7 });
}
}
}

View File

@ -157,8 +157,15 @@ function beforeSubmitApply() {
let l = list[j];
cgNum += (l.cgNum ? parseInt(l.cgNum) : 0);
lkNum += (l.lkNum ? parseInt(l.lkNum) : 0);
if (!l.supId && cgNum > 0) {
return layer.msg('序号为' + (i + 1) + '的数据,未选择供应商', { icon: 7 });
// 如果 cgNum 或 lkNum 中至少有一个大于 0则通过
if (cgNum > 0 || lkNum > 0) {
// 如果没有选择供应商且 cgNum 大于 0显示警告
if (!l.supId && cgNum > 0) {
return layer.msg('序号为' + (i + 1) + '的数据,未选择供应商', { icon: 7 });
}
} else {
// 如果 cgNum 和 lkNum 都不大于 0弹出提示
return layer.msg('序号为' + (i + 1) + '的数据,采购量 或 利库量 必须大于 0', { icon: 7 });
}
}
}

File diff suppressed because one or more lines are too long