Подтвердить что ты не робот

Улучшение удобства использования сторонних приложений

Третье приложение, которое мы используем, вызывает большую проблему, потому что пользователь не нажимает кнопку Register до нажатия кнопки Launch, или если они нажимают Register, сначала эту страницу сведений с кнопки Register и Launch обновляются и поступают в их портфолио. Затем они должны снова найти этот предмет в списке своих акций.

Стороннее приложение, которое я считаю, является .NET и использует knockout.js и не позволяет встраивать в Frames.

Каковы некоторые варианты предоставления рекомендаций пользователю или, в идеале, сделать этот процесс менее болезненным?

Я надеялся предоставить внутреннюю веб-страницу, которая могла бы отправить действия Request и Launch одним нажатием кнопки. Я отправил более ранний вопрос кликнуть данные для привязки к нокауту, но не смог заставить что-то работать.

Кажется, есть несколько подобных вопросов по SO, но я не уверен, что эти вопросы/ответы предназначены для автоматического нажатия кнопок на автономные приложения, поскольку я хочу это делать, если из стороннего приложения (я даже имеют доступ к их модели представления?). Это приложение не позволяет встраивать его в Frames.

Вот код кнопки третьей стороны

    <a class="btn btn-large btn-blue" href="javascript:void(0);" 
    data-bind="click: $root.clickAction.bind($data, ActionType)">
    <span data-bind="text: Title">Register</span></a>
4b9b3361

Ответ 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-адресе приложения, и он может очень легко делать клики, которые вы хотите на соответствующих страницах (расширения браузера могут запрашивать полный доступ к страницам независимо от заголовков). Вам нужно будет только установить расширение один раз на клиентах. Я бы, наверное, сделал это, если бы пришлось.