|
|
![]() |
Разработчики Смарти не обошли и проблему безопасности в своем проекте. Под безопасностью здесь конечно подразумевается сфера шаблонов, т.е. мы обезопасиваем использование шаблонов, а не скриптов, которые их вызывают. |
А что там вообще надо обезопасивать и как мы можем нарушить безопасность какого-нибудь проекта с помощью шаблонов?
Допустим, я – интегратор. Я участвую в разработке какого-то крупного коммерческого проекта, где используется всеми любимый (и мной в том числе
) Smarty. Если я интегратор, мне не обязательно лезть в php-скрипты. Главное – мне нужен доступ к директориям картинок, css-файлов, js-файлов и шаблонов, где я бы мог менять дизайн и т.п.
В шаблонах при отключенной или плохо настроенной безопасности я могу делать три небезопасных действия, начинающихся на букву В:
- вставлять php-код
- вызывать любые функции php в условных операторах {if}
- включать любые шаблонные файлы (из любой директории сервера) в другие шаблоны

