Кодировки там меньше и больше, но все еще большое дыра в безопасности.
С htmlspecialchars() я нашел, что неплохо было (или использовать) его функцию-оболочку, которая отличает строку, обеспечивает более простой способ отключить двойное кодирование (при необходимости) и обеспечить его использование правильный набор символов вашего приложения. Кохана имеет отличный пример.
Ответ 2
Вы должны также принимать во внимание двойные кавычки ", singlequotes ' и амперсанды &. Если вы все это сделаете во время отображения/создания вывода, то да, достаточно.
Вы должны только убедиться, что вы делаете это для любых управляемых пользователем входов, таких как параметры запроса, URL-адрес запроса, заголовки запросов и пользовательский ввод, который хранится в хранилище данных.
В PHP вы можете сделать это с помощью htmlspecialchars(), а в JSP cou можно сделать это с помощью JSTL <c:out>.