fix(back): render safeBack raw with stronger validation on index/form pages
This commit is contained in:
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user