Skip to content

Commit 3410180

Browse files
committed
MC-3578: Script tag removal
1 parent e27a8b5 commit 3410180

File tree

1 file changed

+22
-7
lines changed

1 file changed

+22
-7
lines changed

app/code/Magento/PageBuilder/Model/Stage/Renderer/CmsStaticBlock.php

Lines changed: 22 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88

99
namespace Magento\PageBuilder\Model\Stage\Renderer;
1010

11+
use Psr\Log\LoggerInterface;
12+
1113
/**
1214
* Renders a CMS Block for the stage
1315
*
@@ -25,18 +27,26 @@ class CmsStaticBlock implements \Magento\PageBuilder\Model\Stage\RendererInterfa
2527
*/
2628
private $widgetDirectiveRenderer;
2729

30+
/**
31+
* @var LoggerInterface
32+
*/
33+
private $loggerInterface;
34+
2835
/**
2936
* CmsStaticBlock constructor.
3037
*
3138
* @param \Magento\Cms\Model\ResourceModel\Block\CollectionFactory $blockCollectionFactory
3239
* @param WidgetDirective $widgetDirectiveRenderer
40+
* @param LoggerInterface $loggerInterface
3341
*/
3442
public function __construct(
3543
\Magento\Cms\Model\ResourceModel\Block\CollectionFactory $blockCollectionFactory,
36-
WidgetDirective $widgetDirectiveRenderer
44+
WidgetDirective $widgetDirectiveRenderer,
45+
LoggerInterface $loggerInterface
3746
) {
3847
$this->blockCollectionFactory = $blockCollectionFactory;
3948
$this->widgetDirectiveRenderer = $widgetDirectiveRenderer;
49+
$this->loggerInterface = $loggerInterface;
4050
}
4151

4252
/**
@@ -95,11 +105,16 @@ public function render(array $params): array
95105
*/
96106
private function removeScriptTags(string $html) : string
97107
{
98-
$dom = new \DOMDocument();
99-
$dom->loadHTML($html);
100-
foreach (iterator_to_array($dom->getElementsByTagName('script')) as $item) {
101-
$item->parentNode->removeChild($item);
102-
}
103-
return $dom->saveHTML();
108+
$dom = new \DOMDocument();
109+
try {
110+
$dom->loadHTML($html);
111+
} catch (\Exception $e) {
112+
$this->loggerInterface->critical($e->getMessage());
113+
return $html;
114+
}
115+
foreach (iterator_to_array($dom->getElementsByTagName('script')) as $item) {
116+
$item->parentNode->removeChild($item);
117+
}
118+
return $dom->saveHTML();
104119
}
105120
}

0 commit comments

Comments
 (0)