[TASK] Add missing htmlspecialchars() or quoteJSvalue() in ToolbarItems 84/34884/4
authorWouter Wolters <typo3@wouterwolters.nl>
Mon, 1 Dec 2014 17:55:45 +0000 (18:55 +0100)
committerMarkus Klein <klein.t3@reelworx.at>
Wed, 3 Dec 2014 19:58:38 +0000 (20:58 +0100)
Resolves: #63489
Releases: master
Change-Id: I6e1d1dfd476a2ea33d81ce918cf6f41a43edade4
Reviewed-on: http://review.typo3.org/34884
Reviewed-by: Helmut Hummel <helmut.hummel@typo3.org>
Tested-by: Helmut Hummel <helmut.hummel@typo3.org>
Reviewed-by: Markus Klein <klein.t3@reelworx.at>
Tested-by: Markus Klein <klein.t3@reelworx.at>
typo3/sysext/backend/Classes/Backend/ToolbarItems/HelpToolbarItem.php
typo3/sysext/backend/Classes/Backend/ToolbarItems/ShortcutToolbarItem.php
typo3/sysext/backend/Classes/Backend/ToolbarItems/UserToolbarItem.php

index de57df3..1a806e7 100644 (file)
@@ -73,14 +73,14 @@ class HelpToolbarItem implements ToolbarItemInterface {
                        /** @var BackendModule $module */
                        $moduleIcon = $module->getIcon();
                        $dropdown[] ='<li'
-                               . ' id="' . $module->getName() . '"'
-                               . ' class="typo3-module-menu-item submodule mod-' . $module->getName() . '" '
-                               . ' data-modulename="' . $module->getName() . '"'
-                               . ' data-navigationcomponentid="' . $module->getNavigationComponentId() . '"'
-                               . ' data-navigationframescript="' . $module->getNavigationFrameScript() . '"'
-                               . ' data-navigationframescriptparameters="' . $module->getNavigationFrameScriptParameters() . '"'
+                               . ' id="' . htmlspecialchars($module->getName()) . '"'
+                               . ' class="typo3-module-menu-item submodule mod-' . htmlspecialchars($module->getName()) . '" '
+                               . ' data-modulename="' . htmlspecialchars($module->getName()) . '"'
+                               . ' data-navigationcomponentid="' . htmlspecialchars($module->getNavigationComponentId()) . '"'
+                               . ' data-navigationframescript="' . htmlspecialchars($module->getNavigationFrameScript()) . '"'
+                               . ' data-navigationframescriptparameters="' . htmlspecialchars($module->getNavigationFrameScriptParameters()) . '"'
                                . '>';
-                       $dropdown[] = '<a title="' . htmlspecialchars($module->getDescription()) . '" href="' . $module->getLink() . '" class="dropdown-list-link modlink">';
+                       $dropdown[] = '<a title="' . htmlspecialchars($module->getDescription()) . '" href="' . htmlspecialchars($module->getLink()) . '" class="dropdown-list-link modlink">';
                        $dropdown[] = '<span class="submodule-icon typo3-app-icon"><span><span>' . ($moduleIcon['html'] ?: $moduleIcon['html']) . '</span></span></span>';
                        $dropdown[] = '<span class="submodule-label">' . htmlspecialchars($module->getTitle()) . '</span>';
                        $dropdown[] = '</a>';
index 4a04d08..ca166cf 100644 (file)
@@ -131,8 +131,8 @@ class ShortcutToolbarItem implements ToolbarItemInterface {
                foreach ($noGroupShortcuts as $shortcut) {
 
                        $shortcutMenu[] = '
-                               <li class="shortcut" data-shortcutid="' . $shortcut['raw']['uid'] . '">
-                                       <a class="dropdown-list-link dropdown-link-list-add-editdelete" href="#" onclick="' . htmlspecialchars($shortcut['action']) . '; return false;">' .
+                               <li class="shortcut" data-shortcutid="' . (int)$shortcut['raw']['uid'] . '">
+                                       <a class="dropdown-list-link dropdown-link-list-add-editdelete" href="#" onclick="' . htmlspecialchars($shortcut['action']) . ' return false;">' .
                                                $shortcut['icon'] . ' ' .
                                                htmlspecialchars($shortcut['label']) .
                                        '</a>
@@ -149,7 +149,7 @@ class ShortcutToolbarItem implements ToolbarItemInterface {
                                        $shortcutGroup .= '<li class="divider"></li>';
                                }
                                $shortcutGroup .= '
-                                       <li class="dropdown-header" id="shortcut-group-' . $groupId . '">
+                                       <li class="dropdown-header" id="shortcut-group-' . (int)$groupId . '">
                                                ' . $groupLabel . '
                                        </li>';
                                $shortcuts = $this->getShortcutsByGroup($groupId);
@@ -157,8 +157,8 @@ class ShortcutToolbarItem implements ToolbarItemInterface {
                                foreach ($shortcuts as $shortcut) {
                                        $i++;
                                        $shortcutGroup .= '
-                                       <li class="shortcut" data-shortcutid="' . $shortcut['raw']['uid'] . '" data-shortcutgroup="' . $groupId . '">
-                                               <a class="dropdown-list-link dropdown-link-list-add-editdelete" href="#" onclick="' . $shortcut['action'] . '; return false;">' .
+                                       <li class="shortcut" data-shortcutid="' . (int)$shortcut['raw']['uid'] . '" data-shortcutgroup="' . (int)$groupId . '">
+                                               <a class="dropdown-list-link dropdown-link-list-add-editdelete" href="#" onclick="' . htmlspecialchars($shortcut['action']) . ' return false;">' .
                                                        $shortcut['icon'] . ' ' .
                                                        htmlspecialchars($shortcut['label']) .
                                                '</a>
@@ -291,7 +291,7 @@ class ShortcutToolbarItem implements ToolbarItemInterface {
                        $shortcut['group'] = $shortcutGroup;
                        $shortcut['icon'] = $this->getShortcutIcon($row, $shortcut);
                        $shortcut['iconTitle'] = $this->getShortcutIconTitle($shortcut['label'], $row['module_name'], $row['M_module_name']);
-                       $shortcut['action'] = 'jump(unescape(\'' . rawurlencode($this->getTokenUrl($row['url'])) . '\'),\'' . $moduleName . '\',\'' . $moduleParts[0] . '\', ' . (int)$pageId . ');';
+                       $shortcut['action'] = 'jump(' . GeneralUtility::quoteJSvalue($this->getTokenUrl($row['url'])) . ',' . GeneralUtility::quoteJSvalue($moduleName) . ',' . GeneralUtility::quoteJSvalue($moduleParts[0]) . ', ' . (int)$pageId . ');';
 
                        $shortcuts[] = $shortcut;
                }
@@ -396,14 +396,14 @@ class ShortcutToolbarItem implements ToolbarItemInterface {
                                $label = $languageService->sL('LLL:EXT:lang/locallang_misc.xlf:bookmark_group_' . abs($groupId), TRUE);
                                if (empty($label)) {
                                        // Fallback label
-                                       $label = $languageService->getLL('bookmark_group', 1) . ' ' . abs($groupId);
+                                       $label = $languageService->getLL('bookmark_group', TRUE) . ' ' . abs($groupId);
                                }
                        }
                        if ($groupId < 0) {
                                // Global group
                                $label = $languageService->sL('LLL:EXT:lang/locallang_misc.xlf:bookmark_global', TRUE) . ': ' . (!empty($label) ? $label : abs($groupId));
                                if ($groupId === self::SUPERGLOBAL_GROUP) {
-                                       $label = $languageService->getLL('bookmark_global', 1) . ': ' . $languageService->getLL('bookmark_all', 1);
+                                       $label = $languageService->getLL('bookmark_global', TRUE) . ': ' . $languageService->getLL('bookmark_all', TRUE);
                                }
                        }
                        $this->shortcutGroups[$groupId] = $label;
@@ -496,7 +496,7 @@ class ShortcutToolbarItem implements ToolbarItemInterface {
                // Determine shortcut type
                $url = rawurldecode($url);
                $queryParts = parse_url($url);
-               $queryParameters = GeneralUtility::explodeUrl2Array($queryParts['query'], 1);
+               $queryParameters = GeneralUtility::explodeUrl2Array($queryParts['query'], TRUE);
                // Proceed only if no scheme is defined, as URL is expected to be relative
                if (empty($queryParts['scheme'])) {
                        if (is_array($queryParameters['edit'])) {
@@ -504,10 +504,10 @@ class ShortcutToolbarItem implements ToolbarItemInterface {
                                $shortcut['recordid'] = key($queryParameters['edit'][$shortcut['table']]);
                                if ($queryParameters['edit'][$shortcut['table']][$shortcut['recordid']] == 'edit') {
                                        $shortcut['type'] = 'edit';
-                                       $shortcutNamePrepend = $languageService->getLL('shortcut_edit', 1);
+                                       $shortcutNamePrepend = $languageService->getLL('shortcut_edit', TRUE);
                                } elseif ($queryParameters['edit'][$shortcut['table']][$shortcut['recordid']] == 'new') {
                                        $shortcut['type'] = 'new';
-                                       $shortcutNamePrepend = $languageService->getLL('shortcut_create', 1);
+                                       $shortcutNamePrepend = $languageService->getLL('shortcut_create', TRUE);
                                }
                        } else {
                                $shortcut['type'] = 'other';
index 2330efd..f8ac23b 100644 (file)
@@ -85,14 +85,14 @@ class UserToolbarItem implements ToolbarItemInterface {
                                /** @var BackendModule $module */
                                $moduleIcon = $module->getIcon();
                                $dropdown[] ='<li'
-                                       . ' id="' . $module->getName() . '"'
-                                       . ' class="typo3-module-menu-item submodule mod-' . $module->getName() . '" '
-                                       . ' data-modulename="' . $module->getName() . '"'
-                                       . ' data-navigationcomponentid="' . $module->getNavigationComponentId() . '"'
-                                       . ' data-navigationframescript="' . $module->getNavigationFrameScript() . '"'
-                                       . ' data-navigationframescriptparameters="' . $module->getNavigationFrameScriptParameters() . '"'
+                                       . ' id="' . htmlspecialchars($module->getName()) . '"'
+                                       . ' class="typo3-module-menu-item submodule mod-' . htmlspecialchars($module->getName()) . '" '
+                                       . ' data-modulename="' . htmlspecialchars($module->getName()) . '"'
+                                       . ' data-navigationcomponentid="' . htmlspecialchars($module->getNavigationComponentId()) . '"'
+                                       . ' data-navigationframescript="' . htmlspecialchars($module->getNavigationFrameScript()) . '"'
+                                       . ' data-navigationframescriptparameters="' . htmlspecialchars($module->getNavigationFrameScriptParameters()) . '"'
                                        . '>';
-                               $dropdown[] = '<a title="' . htmlspecialchars($module->getDescription()) . '" href="' . $module->getLink() . '" class="dropdown-list-link modlink">';
+                               $dropdown[] = '<a title="' . htmlspecialchars($module->getDescription()) . '" href="' . htmlspecialchars($module->getLink()) . '" class="dropdown-list-link modlink">';
                                $dropdown[] = '<span class="submodule-icon typo3-app-icon"><span><span>' . ($moduleIcon['html'] ?: $moduleIcon['html']) . '</span></span></span>';
                                $dropdown[] = '<span class="submodule-label">' . htmlspecialchars($module->getTitle()) . '</span>';
                                $dropdown[] = '</a>';