1. Passwort mehrstufiger Logins nicht mehr auf der Platte: Der Auftrag lag
als __pendingFill in chrome.storage.local, also im Klartext auf der
Festplatte. Die 30-Sekunden-Pruefung verhinderte nur die Verwendung,
nicht die Speicherung - wurde der zweite Schritt nie erreicht, blieb
das Passwort liegen. Er liegt jetzt ausschliesslich im Speicher des
Service Workers, je Tab, und wird beim Abholen verbraucht, nach 30 s
verworfen, beim Sperren geleert und beim Schliessen des Tabs entfernt.
Reste frueherer Versionen raeumt onInstalled ab.
2. Domain-Warnung: fillDomainMatches akzeptierte mit
eh.endsWith('.' + pageHost) auch die Gegenrichtung - ein Eintrag fuer
vpn.firma.de galt auf firma.de als passend und die Warnung blieb aus.
Diese Klausel entfaellt.
3. scripting und activeTab werden nicht mehr angefordert; beide waren
unbenutzt (das Content-Script laeuft ueber content_scripts, der
Tab-Zugriff ueber host_permissions). PERMISSIONS.md begruendete
scripting mit dem nativen Value-Setter, was nichts damit zu tun hat.
4. Passwort-Generator: buf lieferte dieselben Werte fuer Zeichenwahl und
Mischreihenfolge, wodurch die Permutation mit dem Inhalt korrelierte.
Beides zieht jetzt getrennt ueber randomBelow(), das den obersten,
unvollstaendigen Block verwirft (gleichverteilt statt Rest-Modulo).
Laenge (12-48) und Sonderzeichen sind waehlbar.
5. Notizen laufen ueber copySecret und werden damit ebenfalls aus der
Zwischenablage entfernt; sie enthalten in der Praxis oft
Wiederherstellungscodes. copyToClipboard entfaellt.
6. urlmatch.js buendelt die drei abweichenden matchUrl-Fassungen zu einer
Regel, geladen in Service Worker, Popup und Seiten. escAttr escapt jetzt
auch & < > und Apostroph, traegt also in jedem Attributkontext.
Eintraege lassen sich im Popup bearbeiten und loeschen; beim Bearbeiten
bedeutet ein leeres Passwortfeld unveraendert, sodass das Passwort das
Popup nicht verlaesst.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01G12DRMpe4UjYDwuRU1sjy1
47 lines
No EOL
1.1 KiB
JSON
47 lines
No EOL
1.1 KiB
JSON
{
|
||
"manifest_version": 3,
|
||
"name": "OpenNIT Vault",
|
||
"version": "2.4.1",
|
||
"description": "OpenNIT Vault – Passwort-Manager mit Autofill für Benutzer-, Passwort- und 2FA-Felder direkt im Browser.",
|
||
"permissions": [
|
||
"storage",
|
||
"alarms",
|
||
"offscreen",
|
||
"identity"
|
||
],
|
||
"host_permissions": [
|
||
"<all_urls>"
|
||
],
|
||
"background": {
|
||
"service_worker": "background.js"
|
||
},
|
||
"action": {
|
||
"default_popup": "popup.html",
|
||
"default_title": "OpenNIT Vault",
|
||
"default_icon": {
|
||
"16": "icon16.png",
|
||
"32": "icon32.png"
|
||
}
|
||
},
|
||
"content_scripts": [
|
||
{
|
||
"matches": [
|
||
"<all_urls>"
|
||
],
|
||
"js": [
|
||
"urlmatch.js",
|
||
"content.js"
|
||
],
|
||
"run_at": "document_idle"
|
||
}
|
||
],
|
||
"options_ui": {
|
||
"page": "options.html",
|
||
"open_in_tab": true
|
||
},
|
||
"icons": {
|
||
"16": "icon16.png",
|
||
"48": "icon48.png",
|
||
"128": "icon128.png"
|
||
}
|
||
} |