Skip to content

Commit 1727688

Browse files
AC-11662 CSP - improve script rendering
1 parent d2a9e2f commit 1727688

File tree

3 files changed

+36
-19
lines changed

3 files changed

+36
-19
lines changed

app/code/Magento/PageBuilder/view/adminhtml/templates/stage/render.phtml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ $script .= <<<SCRIPT
5252
?>
5353
SCRIPT;
5454

55-
/* @noEscape */ $secureRenderer->renderTag('script', [], $script, false)
55+
/* @noEscape */ echo $secureRenderer->renderTag('script', [], $script, false);
5656
?>
5757

5858
<div>Page Builder Render Frame</div>

app/code/Magento/PageBuilder/view/adminhtml/templates/wysiwyg_setup.phtml

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,22 @@
44
* See COPYING.txt for license details.
55
*/
66

7-
/** @var Magento\PageBuilder\Block\WysiwygSetup $block */
7+
/** @var Magento\PageBuilder\Block\WysiwygSetup $block
8+
* @var Magento\Framework\View\Helper\SecureHtmlRenderer $secureRenderer
9+
*/
810

911
?>
10-
<script>
12+
<?php
13+
$config = $block->getConfigJson();
14+
$script = <<<SCRIPT
1115
require.config({
1216
config: {
1317
'mage/adminhtml/wysiwyg/tiny_mce/setup': {
14-
config: <?= /* @noEscape */ $block->getConfigJson() ?>
18+
config: {$config}
1519
}
1620
}
1721
});
18-
</script>
22+
?>
23+
SCRIPT;
24+
?>
25+
<?= /* @noEscape */ $secureRenderer->renderTag('script', [], $script, false) ?>

app/code/Magento/PageBuilder/view/base/templates/googlemaps.phtml

Lines changed: 24 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -4,39 +4,49 @@
44
* See COPYING.txt for license details.
55
*/
66

7-
/** @var Magento\PageBuilder\Block\GoogleMapsApi $block */
7+
/** @var Magento\PageBuilder\Block\GoogleMapsApi $block
8+
* @var Magento\Framework\View\Helper\SecureHtmlRenderer $secureRenderer
9+
* @var Magento\Framework\Escaper $escaper
10+
*/
811
?>
9-
<script>
12+
13+
<?php
14+
$script = <<<SCRIPT
1015
require.config({
1116
paths: {
12-
googleMaps: '<?= $block->escapeJs($block->getLibraryUrl()); ?>'
17+
googleMaps: '" . $escaper->escapeJs($block->getLibraryUrl()); . "'
1318
},
1419
config: {
1520
'Magento_PageBuilder/js/utils/map': {
16-
style: '<?= $block->escapeJs($block->getStyle()); ?>'
21+
style: '" . $escaper->escapeJs($block->getStyle()); . "'
1722
},
1823
'Magento_PageBuilder/js/content-type/map/preview': {
19-
apiKey: '<?= $block->escapeJs($block->getApiKey()); ?>',
20-
apiKeyErrorMessage: '<?= $block->escapeJs($block->getInvalidApiKeyMessage()); ?>'
24+
apiKey: '" . $escaper->escapeJs($block->getApiKey()); . "',
25+
apiKeyErrorMessage: '" . $escaper->escapeJs($block->getInvalidApiKeyMessage()); . "'
2126
},
2227
'Magento_PageBuilder/js/form/element/map': {
23-
apiKey: '<?= $block->escapeJs($block->getApiKey()); ?>',
24-
apiKeyErrorMessage: '<?= $block->escapeJs($block->getInvalidApiKeyMessage()); ?>'
28+
apiKey: '" . $escaper->escapeJs($block->getApiKey()); . "',
29+
apiKeyErrorMessage: '" . $escaper->escapeJs($block->getInvalidApiKeyMessage()); . "'
2530
},
2631
}
2732
});
28-
</script>
33+
SCRIPT;
34+
/** @noEscape */ echo $secureRenderer->renderTag('script', [], $script, false);
35+
?>
2936

3037
<?php
31-
// Include the googleMaps dependency only if we have an API key set, this removes unnecessary calls to Google
32-
if ($block->shouldIncludeGoogleMapsLibrary()) : ?>
33-
<script>
38+
/** Include the googleMaps dependency only if we have an API key set, this removes unnecessary calls to Google */
39+
if ($block->shouldIncludeGoogleMapsLibrary()) {
40+
$script = <<<SCRIPT
41+
3442
require.config({
3543
shim: {
3644
'Magento_PageBuilder/js/utils/map': {
3745
deps: ['googleMaps']
3846
}
3947
}
4048
});
41-
</script>
42-
<?php endif; ?>
49+
SCRIPT;
50+
/** @noEscape */ echo $secureRenderer->renderTag('script', [], $script, false);
51+
}
52+
?>

0 commit comments

Comments
 (0)