Я хотел бы предложить веб-сервис через JSONP и задавался вопросом, нужно ли мне дезинфицировать значение из параметра обратного вызова.
Текущая серверная сторона script выглядит как это в настоящее время (больше или меньше). Код находится в PHP, но может быть что-то действительно.):
header("Content-type: application/json; charset=utf-8");
echo $_GET['callback'] . '(' . json_encode($data) . ')';
Это классическая уязвимость XSS.
Если мне нужно его дезинфицировать, то как? Мне не удалось найти достаточно информации о том, что может быть разрешено для строк обратного вызова. Я цитирую из Wikipedia:
В то время как дополнение (префикс) обычно является именем функции обратного вызова, которая определена в контексте выполнения браузера, это может быть также назначение переменной, оператор if или любой другой префикс инструкции Javascript.