diff --git a/app/Http/Controllers/Admin/PlatformOrderController.php b/app/Http/Controllers/Admin/PlatformOrderController.php index 68c0a1c..4e11942 100644 --- a/app/Http/Controllers/Admin/PlatformOrderController.php +++ b/app/Http/Controllers/Admin/PlatformOrderController.php @@ -42,6 +42,13 @@ class PlatformOrderController extends Controller 'back' => (string) $request->query('back', ''), ]; + // back 安全阀:必须为站内相对路径,并拒绝引号/尖括号。 + // 说明:form 页会把 defaults.back 透传到 hidden input 与返回按钮;因此这里提前清洗,避免 unsafe back 在页面中出现。 + $incomingBack = (string) ($defaults['back'] ?? ''); + $defaults['back'] = (str_starts_with($incomingBack, '/') && !preg_match('/["\'<>]/', $incomingBack)) + ? $incomingBack + : ''; + $siteSubscription = null; $siteSubscriptionId = (int) ($defaults['site_subscription_id'] ?? 0); if ($siteSubscriptionId > 0) { diff --git a/resources/views/admin/platform_orders/form.blade.php b/resources/views/admin/platform_orders/form.blade.php index 636ccbb..c97b8a6 100644 --- a/resources/views/admin/platform_orders/form.blade.php +++ b/resources/views/admin/platform_orders/form.blade.php @@ -29,7 +29,13 @@ @csrf - + + @php + $backVal = (string) old('back', $defaults['back'] ?? ''); + @endphp + @if($backVal !== '') + + @endif