Требуется ли htmlspecialchars () для ВСЕГО вывода?

Я пишу несколько скриптов для Expression Engine, и мне сказали, что каждый фрагмент данных, который мывыход на страницу, требуетдезинфицирующий», чтобы предотвратить XSS.

Например, здесь я выбираю все категории из базы данных, сортирую их в массив и возвращаю в Expression Engine.

PHP функция

public function categories()
{
    $query = $this->crm_db->select('name, url_name')
        ->order_by("name", "asc")
        ->get_where('activities_categories', array('active'=>1));

    foreach($query->result() as $row)
    {
        $activityCategories[0]['cats'][] = array(
                    'categoryName' => $row->name,
                    'categoryURL' => $row->url_name,
                );
    }   
    return $this->EE->TMPL->parse_variables($this->EE->TMPL->tagdata, $activityCategories);
}

Код шаблона

            {exp:activities:categories}
                {cats}
                    <a href="/{categoryURL}">{categoryName}</a>
                {/cats}
            {/exp:activities:categories}

Мне говорят, что мне нужно использовать функцию htmlspecialchars () на каждом выводимом фрагменте данных.

Это необходимо?

Это правильно?

Пример:

foreach($query->result() as $row)
{
    $activityCategories[0]['cats'][] = array(
                'categoryName' => htmlspecialchars($row->name),
                'categoryURL' => htmlspecialchars($row->url_name),
            );
}   

Большое спасибо! :)

Ответы на вопрос(3)

Ваш ответ на вопрос