Внедренная угроза безопасности Qt WebEngine - PullRequest
0 голосов
/ 28 января 2020

В моем приложении QT мне нужно загрузить определенные данные. Эти данные защищены, и пользователям необходимо войти на сайт, чтобы загрузить данные. Чтобы разрешить пользователям входить в систему, я отображаю страницу входа на нашем сайте, используя QWebEngineView. Пользователь вводит свои учетные данные. Это генерирует необходимые куки для аутентификации. Я храню сгенерированные куки в QNetworkCookieJar. Затем я создаю QNetworkAccessManager и добавляю сохраненные QNetworkCookieJar к QNetworkAccessManager. Затем я использую QNetworkAccessManager для загрузки данных. Это все отлично работает. Однако в обзоре безопасности моего проекта были высказаны опасения, что страница входа находится под контролем моего приложения, и поэтому я могу получить учетные данные пользователя (например, наблюдая за нажатиями клавиш на странице входа в систему).

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

1 Ответ

0 голосов
/ 29 января 2020

Да, в приложении Qt вы всегда можете отследить любые нажатия клавиш, отправленные виджету. То же самое относится к Google Chrome и почти ко всем веб-браузерам. Пользователь вводит данные в приложение, и они передаются в сеть и по проводам на веб-сервер.

При рассмотрении угрозы безопасности вы всегда учитываете две вещи. Потенциальный урон и возможность создания эксплойта. Потенциальный урон высок, и вы не можете это контролировать. То, что вы можете контролировать, - это возможность создания эксплойта. Учитывая, что вы (или ваша компания) управляете кодом, вам может быть очень сложно использовать тот факт, что ваше приложение знает учетные данные. Это сделало бы риск очень низким.

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

Попробуйте поискать обсуждения по анализу и снижению рисков безопасности программного обеспечения. Об этом даже есть сайт SE, https://security.stackexchange.com/.

...