Состояние безопасности JSONP - PullRequest
0 голосов
/ 07 марта 2011

Там было было много предложений для повышения безопасности связи JSONP - некоторые из которых не понимают сути.

В настоящее время, когда кто-то делает запрос JSONP какому-либо провайдеру, он должен доверять провайдеру, чтобы он действительно возвращал некоторые данные JSON, заключенные в обратный вызов.Ну, на самом деле достаточно доверять провайдеру, чтобы обернуть anything в желаемый обратный вызов: мы можем использовать JSON.parse, чтобы убедиться, что anything является допустимым JSON.В любом случае, ничто не мешает провайдеру просто игнорировать обратный вызов и возвращать вредоносный скрипт.

Единственный способ сделать механизм безопасным - добавить некоторые улучшения на клиенте.Клиент не должен слепо вставлять сценарий, а должен проанализировать его , прежде чем разрешит его.Это, по сути, то, что многие предложения защищают, но, конечно, это требует некоторой совместной работы от поставщиков браузеров.Итак, мы подошли к моему вопросу

Есть ли какое-то конкретное предложение от какого-либо поставщика браузеров для реализации такого механизма?

1 Ответ

2 голосов
/ 07 марта 2011

Использование междоменных запросов XHR в браузерах, поддерживающих CORS, вероятно, в конечном итоге решит эту проблему. Внедрение ответа через XHR вместо внедрения скрипта предотвращает выполнение нежелательного кода, и (как вы упомянули) JSON.parse() может затем использоваться для интерпретации / проверки ответа JSON.

...