Platform order form: use BackUrl::sanitizeForLinks for back
This commit is contained in:
@@ -11,11 +11,7 @@
|
|||||||
@php
|
@php
|
||||||
$leadId = (int) old('lead_id', $defaults['lead_id'] ?? 0);
|
$leadId = (int) old('lead_id', $defaults['lead_id'] ?? 0);
|
||||||
$incomingBackForLead = (string) ($defaults['back'] ?? '');
|
$incomingBackForLead = (string) ($defaults['back'] ?? '');
|
||||||
$leadBack = (str_starts_with($incomingBackForLead, '/')
|
$leadBack = \App\Support\BackUrl::sanitizeForLinks($incomingBackForLead);
|
||||||
&& !preg_match('/["\'<>]/', $incomingBackForLead)
|
|
||||||
&& !preg_match('/(?:^|[?&])back=/', $incomingBackForLead))
|
|
||||||
? $incomingBackForLead
|
|
||||||
: '';
|
|
||||||
|
|
||||||
$viewLeadOrdersQuery = [
|
$viewLeadOrdersQuery = [
|
||||||
'lead_id' => $leadId,
|
'lead_id' => $leadId,
|
||||||
@@ -63,13 +59,8 @@
|
|||||||
|
|
||||||
@php
|
@php
|
||||||
$backVal = (string) old('back', $defaults['back'] ?? '');
|
$backVal = (string) old('back', $defaults['back'] ?? '');
|
||||||
// back 作为隐藏字段用于 store 后跳转回来源页:同样需要安全护栏
|
// back 作为隐藏字段用于 store 后跳转回来源页:同样需要安全护栏(统一口径)
|
||||||
$backValSafe = (str_starts_with($backVal, '/')
|
$backValSafe = \App\Support\BackUrl::sanitizeForLinks($backVal);
|
||||||
&& !preg_match('/["\'<>]/', $backVal)
|
|
||||||
// back 本身不应再包含 back(避免无限嵌套导致 URL 膨胀)
|
|
||||||
&& !preg_match('/(?:^|[?&])back=/', $backVal))
|
|
||||||
? $backVal
|
|
||||||
: '';
|
|
||||||
@endphp
|
@endphp
|
||||||
@if($backValSafe !== '')
|
@if($backValSafe !== '')
|
||||||
<input type="hidden" name="back" value="{{ $backValSafe }}">
|
<input type="hidden" name="back" value="{{ $backValSafe }}">
|
||||||
|
|||||||
Reference in New Issue
Block a user