diff --git a/resources/views/admin/platform_orders/show.blade.php b/resources/views/admin/platform_orders/show.blade.php
index 18935e4..f7ad33b 100644
--- a/resources/views/admin/platform_orders/show.blade.php
+++ b/resources/views/admin/platform_orders/show.blade.php
@@ -760,26 +760,29 @@
@php
- $back = (string) request()->query('back', '');
- // back 安全校验:只接受相对路径,且拒绝引号/尖括号,并拒绝 nested back,避免潜在 XSS/URL 膨胀。
+ $incomingBack = (string) request()->query('back', '');
+ // back 安全护栏:
+ // - 仅允许站内相对路径(/ 开头)
+ // - 拒绝引号/尖括号
+ // - 拒绝 nested back=(避免 URL 膨胀/绕过)
// 说明:下方 href 采用原样输出以避免 & 影响断言。
- $safeBack = (str_starts_with($back, '/')
- && !preg_match('/["\'<>]/', $back)
- && !preg_match('/(?:^|[?&])back=/', $back))
- ? $back
+ $safeBackForLinks = (str_starts_with($incomingBack, '/')
+ && !preg_match('/["\'<>]/', $incomingBack)
+ && !preg_match('/(?:^|[?&])back=/', $incomingBack))
+ ? $incomingBack
: '';
// 若 back 指向的平台订单列表带 lead_id,则在详情页也提示当前来源线索(更不迷路)。
$leadIdFromBack = 0;
- if ($safeBack !== '') {
- $parts = parse_url($safeBack);
+ if ($safeBackForLinks !== '') {
+ $parts = parse_url($safeBackForLinks);
parse_str((string) ($parts['query'] ?? ''), $q);
$leadIdFromBack = (int) ($q['lead_id'] ?? 0);
}
@endphp
- @if($safeBack)
-
← 返回上一页(保留上下文)
+ @if($safeBackForLinks !== '')
+
← 返回上一页(保留上下文)
@if($leadIdFromBack > 0)
|
来源线索:#{{ $leadIdFromBack }}