Как я могу отслеживать входное значение, к которому у меня нет доступа с JavaScript? - PullRequest
0 голосов
/ 25 февраля 2020

Я пытаюсь прочитать значение ввода внутри iframe перекрестного происхождения, что традиционно невозможно из-за CORS (насколько я знаю). Сайт iframed не позволяет мне получить доступ к значению ввода, но он возвращает события onfocus и onblur, что заставило меня задуматься: могу ли я прослушивать события onfocus и onblur из событий iframe и onkeydown и onpaste из основного документа и воссоздать входное значение? Я немного обеспокоен тем, что кто-то перемещает курсор на другой символ и продолжает печатать, но я подумал, что есть браузерный API, который поможет отследить это. Я не уверен, как все это складывается вместе, или если это вообще возможно. С чего мне начать? Как я могу отслеживать входное значение, к которому я не могу получить доступ с помощью JavaScript?

1 Ответ

0 голосов
/ 25 февраля 2020

События onblur и onfocus на самом деле не приходят из документа внутри вашего iframe. Они приходят из окна объекта iframe, говоря, что iframe теряет или получает фокус. Как вы заметили, невозможно получить входное значение с их страницы в iframe без использования CORS каким-либо образом.

Обычно действительно плохая идея пытаться обойти защиту измерения. Подумайте о том, что вы просите. Замените фразу «значение ввода» на «номер кредитной карты незнакомца». Это то, о чем вы просите в Интернете.

Разработчики разных доменов обходят эти меры безопасности, сотрудничая друг с другом. Вот что такое CORS. Он по-прежнему не допускает прямого JS перехвата доменов, но позволяет двум сторонам сказать «мы доверяем друг другу» достаточно, чтобы разделить ресурсы друг друга. Затем вы можете научиться взаимодействовать друг с другом, например, получать данные с серверов друг друга, которые отслеживают события.

Вместо того, чтобы пытаться захватить другой сайт, рассмотрите другие способы решения данной проблемы. Менеджеры паролей, например, работают на уровне расширения браузера, а не на уровне страницы, и имеют другую изолированную программную среду. Но продолжайте думать, что вы пытаетесь открыть ящик Пандоры для кого-то другого.

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