Перехват обращения к локальным файлам QWebEngineView
Суть задачи - все файлы (html и мультимедиа) хранятся на компьютере в зашифрованном виде, требуется отловить обращение компонента QWebEngineView к локальному файлу и вернуть ему обратно в уже не зашифрованном виде
(код расшифровки есть, но не могу понять, как повесить handler на обращение)
Рекомендуем хостинг TIMEWEB
Стабильный хостинг, на котором располагается социальная сеть EVILEG. Для проектов на Django рекомендуем VDS хостинг.Вам это нравится? Поделитесь в социальных сетях!
Комментарии
Только авторизованные пользователи могут публиковать комментарии.
Пожалуйста, авторизуйтесь или зарегистрируйтесь
Пожалуйста, авторизуйтесь или зарегистрируйтесь
d
- dsfs
- 26 апреля 2024 г. 1:56
C++ - Тест 004. Указатели, Массивы и Циклы
- Результат:80баллов,
- Очки рейтинга4
d
- dsfs
- 26 апреля 2024 г. 1:35
C++ - Тест 001. Первая программа и типы данных
- Результат:73баллов,
- Очки рейтинга1
Последние комментарии
Qt Linux - Урок 001. Автозапуск Qt приложения под Linux как сделать автозапуск для флэтпака, который не даёт создавать файлы в ~/.config - вот это вопрос ))
АК
Qt WinAPI - Урок 007. Работаем с ICMP Ping в Qt Без строки #include <QRegularExpressionValidator> в заголовочном файле не работает валидатор.
Анатолий Кононенко4 февраля 2024 г. 22:50
EVA25 декабря 2023 г. 7:30
Boost - статическая линковка в CMake проекте под Windows Сделал всё по-как у вас, но выдаёт ошибку [build] LINK : fatal error LNK1104: не удается открыть файл "libboost_locale-vc142-mt-gd-x64-1_74.lib" Хоть убей, не могу понять в чём дел…
Qt/C++ - Урок 056. Подключение библиотеки Boost в Qt для компиляторов MinGW и MSVC Для решения твой проблемы добавь в файл .pro строчку "LIBS += -lws2_32" она решит проблему , лично мне помогло.
Сейчас обсуждают на форуме
DA
Unlock Your Aesthetic Potential: Explore MSC in Facial Aesthetics and Cosmetology in India Embark on a transformative journey with an msc in facial aesthetics and cosmetology in india . Delve into the intricate world of beauty and rejuvenation, guided by expert faculty and …
Dr Gangil Academics20 апреля 2024 г. 4:45
Мобильное приложение на C++Qt и бэкенд к нему на Django Rest Framework Евгений, добрый день! Такой вопрос. Верно ли следующее утверждение: Любое Android-приложение, написанное на Java/Kotlin чисто теоретически (пусть и с большими трудностями) можно написать и на C+…
Павел Дорофеев13 апреля 2024 г. 23:35
Вернуть старое поведение QComboBox, не менять индекс при resetModel Добрый день! У нас много проектов в которых используется QComboBox, в версии 5.5.1, когда модель испускает сигнал resetModel, currentIndex не менялся. В версии 5.15 при resetModel происходит try…
А можете уточнить. Тот файл, путь к которому указывается в url, или вообще всех? В том числе и тех, пути к которым указываются в атрибутах href и src?
Всех (т.е. фото\видео, относительные пути, которых указаны в html и загрузка новой html страницы)
ха. забавная у вас задачка. То есть вам нужно подменить контент, который загружается через QWebEngineView.
На входе имеете одно, зашифрованное, а на выходе загрузки делаете на лету дешифровшку и подставляете это во вьюшку.
Сама по себе загрузка файлов происходит асинхронно в дебрях движка. Ничего удивительного, что вы этого не нашли.
Есть способ отловить страницу, когда она уже загружена. Только в этом случае движок высылает нужные сигналы.
Но обработчиков, которые бы давали возможность на лету модифицировать данные нет.
Тем не менее, имею мысль, что по окончанию загрузки страницы можно запускать JavaScript, который проверит все url на странице, и вы сможете взять все эти url, по ним взять все зашифрованные файлы, временно их расшифровать и сохранить во временный каталог. После чего запустить второй JavaScript, который заменит url на временные.
Хотя в данном случае пострадает безопасность ваших данных, и вы конечно же не захотите этого делать.
Но чтобы модифицировать данные на лету, вам очевидно понадобиться изменять исходники самого QWebEngine и хорошо, если только его исходники, а не самого webkit.
В общем решил выложить решение (вдруг кому-то понадобиться, хоть оно и очень странное) - теперь программа поднимает локальный http сервер на и вся логика расшифровки сделана на нем.
В вашем случае вполне адекватное решение. Так сказать меньше зло.
В противном случае пришлось бы очень много переписывать и перепиливать.