【发布时间】:2019-08-31 17:32:01
【问题描述】:
我使用 PyQt5 框架在 Python 3.7.2 中构建了一个浏览器。创建密码管理器,如何检测用户名和密码的输入和发送,以及用户名和密码是什么,以便弹出提示保存用户名和密码?
【问题讨论】:
标签: python pyqt5 python-3.7 qtwebengine
我使用 PyQt5 框架在 Python 3.7.2 中构建了一个浏览器。创建密码管理器,如何检测用户名和密码的输入和发送,以及用户名和密码是什么,以便弹出提示保存用户名和密码?
【问题讨论】:
标签: python pyqt5 python-3.7 qtwebengine
QWebView::url方法可以帮你判断当前加载的网站。您应该有一个存储密码的本地数据库;因此,使用当前域,在所述数据库中查找任何存储的密码。 (理想情况下,密码将使用密码加密)。
至于 HTML 插入部分,您可以采用两种方法;我已经有一段时间没有这样做了,但请看一下以下方法:
`QWebView::setHtml`
`QWebFrame::evaluateJavaScript`
`QWebFrame::documentElement()`
With a `QWebFrame` there are many helpful methods that you can use.
更新:以上这些已被弃用,但仍有办法实现这一点。
注意:您应该有一个强大的密码字段检测。
决定何时是存储新密码的合适时间是一件非常棘手的事情,这似乎是它在商业浏览器上的工作方式:
检测到包含password-type 字段的成功 POST 请求(为此,您需要监视和检查浏览器内发生的所有 HTTP 请求。
查找是否有存储的域密码。如果有,如果密码不同,提示用户更新密码,否则提示用户存储新密码。 INSERT/UPDATE将密码存入数据库。
【讨论】: