A
AnarComJune 1, 2020, 4:18 a.m.

Перехват обращения к локальным файлам QWebEngineView

QWebEngineView

Суть задачи - все файлы (html и мультимедиа) хранятся на компьютере в зашифрованном виде, требуется отловить обращение компонента QWebEngineView к локальному файлу и вернуть ему обратно в уже не зашифрованном виде

(код расшифровки есть, но не могу понять, как повесить handler на обращение)

We recommend hosting TIMEWEB
We recommend hosting TIMEWEB
Stable hosting, on which the social network EVILEG is located. For projects on Django we recommend VDS hosting.
5

А можете уточнить. Тот файл, путь к которому указывается в url, или вообще всех? В том числе и тех, пути к которым указываются в атрибутах href и src?

A

Всех (т.е. фото\видео, относительные пути, которых указаны в html и загрузка новой html страницы)

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

Сама по себе загрузка файлов происходит асинхронно в дебрях движка. Ничего удивительного, что вы этого не нашли.

Есть способ отловить страницу, когда она уже загружена. Только в этом случае движок высылает нужные сигналы.
Но обработчиков, которые бы давали возможность на лету модифицировать данные нет.

Тем не менее, имею мысль, что по окончанию загрузки страницы можно запускать JavaScript, который проверит все url на странице, и вы сможете взять все эти url, по ним взять все зашифрованные файлы, временно их расшифровать и сохранить во временный каталог. После чего запустить второй JavaScript, который заменит url на временные.

Хотя в данном случае пострадает безопасность ваших данных, и вы конечно же не захотите этого делать.

Но чтобы модифицировать данные на лету, вам очевидно понадобиться изменять исходники самого QWebEngine и хорошо, если только его исходники, а не самого webkit.

A

В общем решил выложить решение (вдруг кому-то понадобиться, хоть оно и очень странное) - теперь программа поднимает локальный http сервер на и вся логика расшифровки сделана на нем.

В вашем случае вполне адекватное решение. Так сказать меньше зло.
В противном случае пришлось бы очень много переписывать и перепиливать.

Comments

Only authorized users can post comments.
Please, Log in or Sign up
Timeweb

Let me recommend you the excellent hosting on which EVILEG is located.

For many years, Timeweb has been proving his stability.

For projects on Django I recommend VDS hosting

View Hosting
b

C++ - Тест 003. Условия и циклы

  • Result:50points,
  • Rating points-4
US

C++ - Test 005. Structures and Classes

  • Result:91points,
  • Rating points8
US

C++ - Test 002. Constants

  • Result:33points,
  • Rating points-10
Last comments
t

Qt/C++ - Lesson 013. QMenu – How to work with context menu in QTableView?

Добрый день, в строке 49 файла mainwindow.cpp создаётся меню и оно будет создаваться каждый раз при его вызове. Т.е. каждый раз будет выделяться память под QMenu. Это же утечка памяти или Q…
TF

Qt/C++ - Lesson 054. Reading data from a CSV file, and their representation via QStandardItemModel

А если мне надо данными из файла подписать оси x и y и построить график как это сделать?

QML - Lesson 018. Loader in QML Qt – The working with the dynamic components

Лично для меня loader - это компонень, который загружает какую-то часть внутри окна, поэтому с этой точки зрения я бы не стал рассматривать использование loader лоя открытия окон, только для зап…
KF

QML - Lesson 018. Loader in QML Qt – The working with the dynamic components

добрый день, грамотно ли использовать loader для загрузки небольших диалоговых окон по клику из меню? и если да, то возникает проблема: загрузили первое диалоговое окно, потом его закрыли, а отк…
Q
  • QISHON
  • July 16, 2021, 6:28 a.m.

Data encryption by RSA algorithm in Qt with public and private keys without binding to OpenSSL

Возможно ли с помощью этой библиотеки шифровать файлы, а не обычные строки?
Now discuss on the forum

QScrollArea dynamically add QCheckBoxes

Всё правильно. Это просто спамер, который отправился в вечный бан.
IP

Как совместить таблицу и дерево в Qt

Необходимо использовать виджет QTreeView, для него необходимо сделать соответствующую модель. Примеры есть в самом Qt
K

Как поменять шаг оси с числового формата на текстовый

Добрый день. Только начинаю знакомство с Qt, а именно с библиотекой QCustomPlot. Столкнулся с такой проблемой - не знаю как поменять оси с числового на текстовый формат как на скрине. …

QWebEngineView получить событие фокуса для полей редактирования

от QWebEngineView возможно это и не получите, посмотрите в сторону WinApi для получения данного события

С++ и qml передача модели

для отображения данных нужно использовать, в вашем случае, ListModel тыц и тыц , можно представить модель классом с++ и в qml его подгружать. а для загрузки страниц использ…
About
Services
© EVILEG 2015-2021
Recommend hosting TIMEWEB