Ответ 1
В основном вы хотите взломать стороннее приложение, но вы управляете средой, поэтому это не кажется невозможным. (Я не буду говорить о том, думаю ли я, что это хорошая идея, я просто перечислю несколько вариантов, которые у вас могут быть.)
Удаление заголовка X-Frame-options
Вы говорите, что стороннее приложение не позволяет встраиваться в фрейм. Это делается заголовком ответа, скорее всего, X-Frame-Options
(или может быть Content-Security-Policy: frame-ancestors
, но на самом деле это не имеет значения). Все, что вам нужно сделать, это удалить этот заголовок и voila, приложение может быть загружено в фрейм.
Чтобы удалить заголовок, вам понадобится какой-то прокси. Если приложение обслуживается на обычном http, это очень просто, любой прокси-сервер http может удалить соответствующий заголовок ответа. Если он обслуживается на https, вам необходимо сделать несколько действий, чтобы заставить его работать (создать центр сертификации, добавить корневой сертификат клиентам как доверенный корень, использовать прокси для подключения к приложению и, кроме удаления заголовка, заменить https cert с вашим собственным, который затем будет доверять вашим клиентам).
Обратите внимание, что это ослабит безопасность стороннего приложения, и это сделает его уязвимым для атак, подобных clickjacking (а также пиксель идеального времени и т.д. все атаки, связанные с кадрами).
Ввести пользовательский script через прокси (изменить: добавлено позже)
С прокси-сервером, как описано выше, вам не нужно удалять X-Frame-Options
. Гораздо лучше добавить свой собственный javascript на страницу стороннего приложения, которая может делать все, что угодно на исходной странице, так как имеет полный доступ к DOM приложения. Например, он может изменять поведение, чтобы щелкнуть соответствующие кнопки.:) Я бы сделал это, если мне не удалось установить расширение браузера на клиентах (см. Ниже).
Использование пользовательского клиента
Вместо того, чтобы использовать браузер в качестве клиента, вы можете создать пользовательский клиент, который на практике действует как браузер, но не учитывает вышеупомянутые заголовки. Это также может делать клики, которые вы хотите, без особых хлопот. Недостатком является то, что вашим пользователям придется запускать пользовательский клиент, а не использовать их браузер для использования приложения. Это, вероятно, проще сделать в мобильной среде, где у вас есть такие вещи, как Xamarin и WKWebView.
Расширение браузера
Более простым и, вероятно, более возможным вариантом в пользовательской идее браузера является расширение браузера. Он может активироваться на URL-адресе приложения, и он может очень легко делать клики, которые вы хотите на соответствующих страницах (расширения браузера могут запрашивать полный доступ к страницам независимо от заголовков). Вам нужно будет только установить расширение один раз на клиентах. Я бы, наверное, сделал это, если бы пришлось.