см .: http://www.ethicalhacker.net/content/view/185/24/
Все инъекционные атаки (включая html / javascript-инъекцию, sql-инъекцию, hql-инъекцию) в значительной степени следуют одним и тем же принципам - практически везде, где вы объединяете пользовательский ввод с текстом команды, у вас есть потенциал для инъекционной атаки.
Помимо проверки ввода, как упомянуто в вышеприведенной статье, другой подход (который может быть предпочтительнее, поскольку он позволяет безопасно использовать любые символы) заключался бы в кодировании любого пользовательского ввода перед использованием его в xpath.
Обновление:
По крайней мере, некоторые библиотеки Xpath предусматривают объявление переменных, что позволяет безопасно оценивать вводимые пользователем данные для выражения xpath.
См: