[TASK] Cleanup escaping in EXT:t3editor 59/44859/3
authorStefan Neufeind <typo3.neufeind@speedpartner.de>
Sat, 21 Nov 2015 14:22:06 +0000 (15:22 +0100)
committerMarkus Klein <markus.klein@typo3.org>
Sat, 21 Nov 2015 15:23:30 +0000 (16:23 +0100)
Change-Id: Iadee8c9258f7dd267c25f58138ae012c93300a9e
Resolves: #71756
Releases: master
Reviewed-on: https://review.typo3.org/44859
Reviewed-by: Wouter Wolters <typo3@wouterwolters.nl>
Tested-by: Wouter Wolters <typo3@wouterwolters.nl>
Reviewed-by: Markus Klein <markus.klein@typo3.org>
Tested-by: Markus Klein <markus.klein@typo3.org>
typo3/sysext/t3editor/Classes/Hook/FileEditHook.php
typo3/sysext/t3editor/Classes/Hook/TypoScriptTemplateInfoHook.php
typo3/sysext/t3editor/Classes/T3editor.php

index fa7d9c5..48794ec 100644 (file)
@@ -91,7 +91,7 @@ class FileEditHook
         if (!$t3editor->getMode()) {
             return;
         }
-        $attributes = 'rows="30" ' . 'wrap="off" ' . $pObj->doc->formWidth(48, true, 'width:98%;height:60%');
+        $attributes = 'rows="30" ' . 'wrap="off"' . $pObj->doc->formWidth(48, true, 'width:98%;height:60%');
         $title = $GLOBALS['LANG']->getLL('file') . ' ' . htmlspecialchars($pObj->target);
         $outCode = $t3editor->getCodeEditor('file[editfile][0][data]', 'text-monospace enable-tab', '$1', $attributes, $title, array(
             'target' => (int)$pObj->target
index a5a86cc..10ac707 100644 (file)
@@ -71,8 +71,8 @@ class TypoScriptTemplateInfoHook
         $t3editor->getJavascriptCode();
         foreach (array('constants', 'config') as $type) {
             if ($parameters['e'][$type]) {
-                $attributes = 'rows="' . $parameters['numberOfRows'] . '" ' . 'wrap="off" ' . $pObj->pObj->doc->formWidth(48, true, 'width:98%;height:60%');
-                $title = $GLOBALS['LANG']->getLL('template') . ' ' . htmlspecialchars($parameters['tplRow']['title']) . $GLOBALS['LANG']->getLL('delimiter') . ' ' . $GLOBALS['LANG']->getLL($type);
+                $attributes = 'rows="' . (int)$parameters['numberOfRows'] . '" wrap="off"' . $pObj->pObj->doc->formWidth(48, true, 'width:98%;height:60%');
+                $title = $GLOBALS['LANG']->getLL('template') . ' ' . $parameters['tplRow']['title'] . $GLOBALS['LANG']->getLL('delimiter') . ' ' . $GLOBALS['LANG']->getLL($type);
                 $outCode = $t3editor->getCodeEditor('data[' . $type . ']', 'text-monospace enable-tab', '$1', $attributes, $title, array(
                     'pageId' => (int)$pObj->pObj->id
                 ));
index beabb44..e4d15f4 100644 (file)
@@ -306,23 +306,20 @@ class T3editor implements \TYPO3\CMS\Core\SingletonInterface
     {
         $code = '';
         $class .= ' t3editor';
-        $alt = htmlspecialchars($alt);
-        if (!empty($alt)) {
-            $alt = ' alt="' . $alt . '"';
-        }
+        $alt = trim($alt);
         $code .=
             '<div class="t3editor">'
                 . '<div class="t3e_wrap">'
                     . $this->getPreparedTemplate()
                 . '</div>'
                 . '<textarea '
-                    . 'id="t3editor_' . $this->editorCounter . '" '
-                    . 'name="' . $name . '" '
-                    . 'class="' . $class . '" '
+                    . 'id="t3editor_' . (int)$this->editorCounter . '" '
+                    . 'name="' . htmlspecialchars($name) . '" '
+                    . 'class="' . htmlspecialchars($class) . '" '
                     . $additionalParams . ' '
-                    . $alt
+                    . ($alt !== '' ? ' alt="' . htmlspecialchars($alt) . '"' : '')
                     . ' data-labels="' . htmlspecialchars(json_encode($GLOBALS['LANG']->getLabelsWithPrefix('js.', 'label_'))) . '"'
-                    . ' data-instance-number="' . $this->editorCounter . '"'
+                    . ' data-instance-number="' . (int)$this->editorCounter . '"'
                     . ' data-editor-path="' . htmlspecialchars($this->relExtPath) . '"'
                     . ' data-codemirror-path="' . htmlspecialchars($this->codemirrorPath) . '"'
                     . ' data-ajaxsavetype="' . htmlspecialchars($this->ajaxSaveType) . '"'
@@ -333,7 +330,7 @@ class T3editor implements \TYPO3\CMS\Core\SingletonInterface
             . '</div>';
         if (!empty($hiddenfields)) {
             foreach ($hiddenfields as $name => $value) {
-                $code .= '<input type="hidden" ' . 'name="' . $name . '" ' . 'value="' . $value . '" />';
+                $code .= '<input type="hidden" ' . 'name="' . htmlspecialchars($name) . '" ' . 'value="' . htmlspecialchars($value) . '" />';
             }
         }
         $this->editorCounter++;