fix(back): render safeBack raw with stronger validation on index/form pages

This commit is contained in:
萝卜
2026-03-14 01:16:02 +00:00
parent c2b213af9c
commit 4116ea5f9f
4 changed files with 24 additions and 8 deletions

View File

@@ -40,11 +40,15 @@
@php
$incomingBack = (string) request()->query('back', '');
$safeBack = str_starts_with($incomingBack, '/') ? $incomingBack : '';
// 为避免 & 被 Blade escape 成 & 导致回退上下文丢失,这里需要原样输出 href。
// 安全护栏:必须为站内相对路径,并拒绝引号/尖括号,降低 XSS 风险。
$safeBack = (str_starts_with($incomingBack, '/') && !preg_match('/["\'<>]/', $incomingBack))
? $incomingBack
: '';
@endphp
@if($safeBack)
<div class="mt-10">
<a href="{{ $safeBack }}" class="muted"> 返回上一页(保留上下文)</a>
<a href="{!! $safeBack !!}" class="muted"> 返回上一页(保留上下文)</a>
</div>
@endif
</div>