Skip to content

Commit 179977d

Browse files
committed
修复json()方法可能导致的xss攻击
1 parent fc66b3a commit 179977d

File tree

1 file changed

+7
-1
lines changed

1 file changed

+7
-1
lines changed

src/Show/Field.php

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -408,7 +408,13 @@ public function json()
408408

409409
return $this->unescape()->as(function ($value) use ($field) {
410410
$content = is_string($value) ? json_decode($value, true) : $value;
411-
411+
if (is_array($content)) {
412+
array_walk($content, function (&$v, $k) {
413+
$v = htmlspecialchars($v);
414+
});
415+
} else {
416+
$content = htmlspecialchars($content);
417+
}
412418
$field->wrap(false);
413419

414420
return Dump::make($content);

0 commit comments

Comments
 (0)