9 use \Magento\Framework\Filter\Input\MaliciousCode;
31 $this->
filter->filter($input),
32 'Malicious code is not filtered out correctly.' 42 'Comments' => [
'Comment /** This is omitted */ is removed',
'Comment is removed'],
43 'Tabs' => [
"Tabs \t\t are removed",
'Tabs are removed'],
44 'JS' => [
'JS JavaScript : is removed',
'JS is removed'],
45 'Import' => [
'Import @import directive is removed',
'Import directive is removed'],
46 'JS in styles (array of strings to be filtered)' => [
48 '<element style="behavior:url(malicious.example.com)"></element>',
49 '<img src="test.gif" style="height: expression(compatMode==\'CSS1Compat\'? 200px : 300px")/>',
52 '<element ></element>',
53 '<img src="test.gif" />' 56 'JS attributes (array of strings to be filtered)' => [
58 '<element ondblclick="SomeJavaScriptCode">',
59 '<element onclick="SomeJavaScriptCode">',
60 '<element onkeydown="SomeJavaScriptCode">',
61 '<element onkeypress="SomeJavaScriptCode">',
62 '<element onkeyup="SomeJavaScriptCode">',
63 '<element onmousedown="SomeJavaScriptCode">',
64 '<element onmousemove="SomeJavaScriptCode">',
65 '<element onmouseout="SomeJavaScriptCode">',
66 '<element onmouseover="SomeJavaScriptCode">',
67 '<element onmouseup="SomeJavaScriptCode">',
68 '<element onload="SomeJavaScriptCode">',
69 '<element onunload="SomeJavaScriptCode">',
70 '<element onerror="SomeJavaScriptCode" />',
88 'Prohibited tags (array of strings to be filtered)' => [
90 'Tag is removed <script>SomeScript</script>',
91 'Tag is removed <meta>SomeMeta</meta>',
92 'Tag is removed <link>SomeLink</link>',
93 'Tag is removed <frame>SomeFrame</frame>',
94 'Tag is removed <iframe>SomeIFrame</iframe>',
95 'Tag is removed <object>SomeObject</object>',
98 'Tag is removed SomeScript',
99 'Tag is removed SomeMeta',
100 'Tag is removed SomeLink',
101 'Tag is removed SomeFrame',
102 'Tag is removed SomeIFrame',
103 'Tag is removed SomeObject',
107 '<img alt="Embedded Image" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIA..." />',
108 '<img alt="Embedded Image" />',
110 'Nested malicious tags' => [
111 '<scri<script>pt>alert(1);</scri<script>pt>',
122 $customExpression =
'/<\/?(customMalicious).*>/Uis';
123 $this->
filter->addExpression($customExpression);
126 'Custom malicious tag is removed customMalicious',
128 "Custom \tmalicious tag\t\t is removed <customMalicious>customMalicious</customMalicious>" 130 'Custom filters are not applied correctly.' 139 $customExpression =
'/<\/?(customMalicious).*>/Uis';
140 $this->
filter->setExpressions([$customExpression]);
143 "Custom \tmalicious tag\t\t is removed customMalicious",
145 "Custom \tmalicious tag\t\t is removed <customMalicious>customMalicious</customMalicious>" 147 'Native filters should have been replaced with custom ones.'