почему эта строка toDataURL является ошибкой безопасности? - PullRequest
1 голос
/ 02 сентября 2011

Если изображение с другого сайта загружается на страницу, а затем записывается на холст как частичный компонент в композиции, используя:

context.drawImage(image, 0, 0, w, h);

Казалось бы, что-нибудь небезопасное уже произошло бы при рисовании на холсте. Почему тогда

window.location = canvas.toDataURL('image/png');

представить сообщение об ошибке. SECURITY_ERR; DOM Exception 18. Это не кажется более небезопасным, чем дополнительный шаг сохранения внешнего изображения сайта в другом месте.

Мой вопрос не в том, как обойти это, или что означает ошибка, а скорее,

Почему это небезопасно? Если страница загружается сервером, автор обязательно ожидает действия.

1 Ответ

5 голосов
/ 02 сентября 2011

Согласно спецификации утечка информации может произойти, если скрипты из одного источника могут получить доступ к информации (например, считывать пиксели) из изображений из другого источника. Беспокойство заключается в том, что вредоносное приложение могло бы получить информацию, к которой оно иначе не имело бы доступа, загрузив изображение из другого домена / источника (легко сделать с изображениями) и считав содержимое в пикселях. XHR имеет встроенную защиту для предотвращения утечки XD. Изображения нет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...