Является ли хорошей идеей использовать шаблонную функцию на моем сайте, которая извлекает HTML, сгенерированный с помощью PHP Smarty, и отображает с ответом ajax? - PullRequest
2 голосов
/ 28 февраля 2012

Мой PHP-фреймворк

public static function insertAction(){

   .......

   \MVCApplication::getSmarty()->display('common/inserted.tpl');

}

Показать пользователю, используя ответ Ajax: (JQuery)

success: function(response){
    $("body").html(response);
}

Я хочу создать сайт, на котором все действия не обновляют страницу (я хочу динамический сайт с одной страницей index.php).

Мой вопрос касается безопасности!Я читал в Интернете несколько статей о проблемах, связанных с внедрением скриптов, и я боюсь, что любой злоумышленник перехватит ответ от сервера и добавит неверный код в ответ моего сервера!Как мне улучшить безопасность моей структуры?

(В конце концов мне понадобится выполнить скрипт в моих шаблонах .tpl smarty, и это тоже будет выведено в ответ ajax ...)

1 Ответ

0 голосов
/ 06 марта 2012

Зависит от того, о чьей безопасности вы говорите, веб-сервере или клиенте.
Из того, что вы перечислили в коде, сервер отправляет данные только клиенту AJAX, поэтому он не подвержен атаке внедрения сценариев, поскольку он не действует на полученные сценарии. (Хотя это, вероятно, анализ ответа GET / POST, но это другая тема)

Тот факт, что вы используете smarty, не имеет значения для безопасности, это всего лишь инструмент для создания шаблонов.

Javascript на клиенте по своей сути небезопасен. Если вас беспокоит возвращение скрипта клиенту, не используйте javascript. В качестве альтернативы вы можете попытаться удалить любые возвращенные данные AJAX для удаления HTML или встроенных сценариев.

используйте что-то вроде: var StrippedString = OriginalString.replace (/ (<([^>] +)>) / ig, ""); от: http://css -tricks.com / snippets / javascript / strip-html-tags-in-javascript /

...