Действительно ли это безопасно для обеспечения JSONP?

Или если я, например, фильтрую $_GET['callback'] переменная так, чтобы это только содержало допустимое имя функции JavaScript? Если так, что такое допустимые имена функций JavaScript?

Или не фильтрует ту переменную немного точка с JSONP?


Текущее решение: Занесенный в блог о моем текущем решении по http://www.geekality.net/?p=1021. Короче говоря, на данный момент у меня есть следующий код, который, надо надеяться, должен быть довольно безопасным:

23
задан Lightness Races with Monica 9 August 2011 в 10:30
поделиться

2 ответа

Нет, если вы собираетесь ограничить JSONP выбранными доменами. Указывайте также кодировку, иначе люди, которые не должны иметь доступ к JSON, могут совершать инъекционные атаки UTF-7. Вместо этого используйте этот заголовок:

header('Content-Type: application/json; charset=utf-8');

Если предполагается, что это будет публичный JSONP-сервис, то да, это безопасно, а также используйте application/javascript вместо application/json.

17
ответ дан 29 November 2019 в 02:41
поделиться

Думаю, это безопасно. Пока вы не отобразите $ _GET ['callback'] на другой странице без выхода. Тот, кто выполняет запрос, может помещать в него все, что хочет, я думаю, это всегда будут его проблемы, а не ваши. На этой странице представлено определение допустимого имени js-функции: http://www.functionx.com/javascript/Lesson05.htm

2
ответ дан 29 November 2019 в 02:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: