Open GregDeitrick opened 1 year ago
I now understand a bit more about the plugin and I was able to manually create an entry in KeePassXC and add a Site Preference in the plugin so that the username and password fields of the login are filled by the plugin.
Whether or not this issue is a bug I recommend expanding the documentation to include walk throughs on how to use the plugin for various situations:
If y'all would like to have something like this added to the docs I would be willing to create a first draft.
Yeah the documentation clearly needs some updates.
FWIW, attached are comments I have from my "new user" phase with KeePassXC-Browser. I'm glad that phase is over. But while that phase wasn't pleasant, now that it's over I'm a convert. The comments in the attached file are suggestions and information that I think would have helped me.
Please just paste them here instead of a file
Please just paste them here instead of a file
Comments on using KeePassXC
These comments are intend for prospective and new users of KeePassXC / KeePassXC-Browser from someone who just recently moved to KeePassXC / KeePassXC-Browser for personal use (March, 2023). For prospective users these comments are intended to provide one perspective on what to expect. For new users these comments are intended to provide warnings and solutions for common challenges and hopefully get you through the new user stage with less time and frustration than you would without them.
Anticipated Advantages
The anticipated advantages of using KeePassXC and KeePassXC-Browser are: • You need to remember only one long password to strongly encrypt your database of web login credentials. (Using and memorizing this password is likely easier than you expect.) • Typically you need only one mouse click to fill in the login credentials for a web site, even if each of your logins has a unique, secure password. • The KeePassXC / KeePassXC-Browser system is simple to understand and use, and works consistently under MacOS, Windows, and Linux.
KeePassXC is a desktop/laptop application which is very good for creating and managing strongly encrypted database files stored on your local computer. These database files are intended for storing passwords and other “small” secrets. They conform to an open standard which is supported by other applications should you have a need for those applications in addition to KeePassXC or should you eventually desire to migrate away from KeePassXC.
The strength of the encryption depends upon the strength of the encryption password, and strong passwords are long and can be awkward to deal with. One popular strategy supported by KeePassXC and many other applications is to create a strong password from 7 randomly selected words, all in lower case. Such a password is long, typically around 50 characters. However, it is relatively easy to type since it is only letters with no capitalization or punctuation. Further, most people can memorize such a list with only a bit of effort during normal use over several days or weeks. Also for most people, keeping the password written on paper is adequately safe and secure until it is memorized in the short term and in case it is forgotten in the long term.
KeePassXC-Browser is a browser extension available for several desktop/laptop browsers that does a fair job at integrating web page logins with an instance of KeePassXC. Once KeePassXC-Browser and KeePassXC are properly configured, the typical workflow is:
Real-World Inconveniences
Mobile
Mobile device apps such as KeePassDroid and KeePassDX can use the same encrypted database files that are used by KeePassXC. These apps do not have great browser integration, however. Instead one must copy/paste login credentials from the app into the browser input fields. The process is practical but not nearly as easy as the laptop/desktop experience provided by KeePassXC / KeePassXC-Browser.
Multiple Devices
KeePassXC provides no functionality for synchronizing database files among multiple devices. You must manually copy database files between devices. Bluetooth file transfer can be a convenient method of copying database files between devices since laptops and handheld devices usually have bluetooth built in and bluetooth adapters for desktops are inexpensive. A remaining inconvenience is to avoid the situation where there are two (or more) copies of the database file but each having unique updates. Merging the updates will need to be done manually.
Browser Integration Annoyances
The typical browser integration workflow described above fails in a number of common situations. Fortunately with a bit of knowledge and experience these failures are more like minor annoyances that can be resolved simply and quickly. Some of the common annoyances are:
• KeePassXC automatically closes the database file in a number of situations including inactivity. When this happens the KeePassXC-Browser icon in the browser toolbar will turn gray. You will need to select the KeePassXC window and re-enter the (typically long) password to re-open the database file. On the upside this annoyance will train you first to memorize the password and second to build muscle memory for typing it.
• KeePassXC-Browser typically displays a banner to ask whether you want to save a new entry or update an existing entry when you are logging into a web page with credentials that are different from those in the database. This banner often disappears before you can interact with it and sometimes before you can see it.
◦ Recommended: increase your opportunity to see the banner
a) Select the KeePassXC-Browser icon in the browser toolbar
b) Select the Settings icon to open the Settings page in a tab
c) Select the General item in the left side menu
d) Scroll down to Saving Credentials section
e) Check Show a banner on the page when new credentials can be saved to the database.
f) Change Number of allowed redirects to infinite by moving the blue dot to the right end of the bar.
◦ Recommended: automatically save new login credentials
a) Select the KeePassXC-Browser icon in the browser toolbar
b) Select the Settings icon to open the Settings page in a tab
c) Select the General item in the left side menu
d) Uncheck Always ask where to save new credentials
◦ Work-Around: manually create an entry for a new login that KeePassXC-Browser fails to save.
a) Browse to a login web page
b) Copy the domain part of the URL
c) Select the KeePassXC application window
d) Create a new entry
e) In the URL field paste the URL copied in step b.
f) Fill in the username and password for the login
g) Return to the browser and refresh the page.
h) KeePassXC-Browser will prompt you to confirm that the database entry is to be used for that login web page.
• The entry in the database file for the login web page was created manually in KeePassXC and the URL is not the same aSs the one actually open in the browser. For example, at the time of writing, the web site https://[www.newegg.com](http://www.newegg.com/) will redirect to https://secure.newegg.com for account login web pages. If you browse to a login web page and have an entry for that page in the database file but KeePassXC-Browser fails to fill in the login input fields make sure that the URL in the database is consistent with the URL in the browser.
• The entry in the database file for the login web page was created manually in KeePassXC and IS matched to the login web page. KeePassXC-Browser may prompt you to confirm that the entry and the page are correctly matched.
• Some web sites have more than one URL for the login web page. Advanced users can configure the entry in the database file so that the entry is matched to multiple URLs.
• Some web sites have the username input field on one page and the password input field on a second page. One resolution for this the following:
1. Copy the domain information for that login page.
2. Select the KeePassXC-Browser icon in the browser toolbar and open the Settings page.
3. Select the Site Preferences item in the left side menu.
4. Paste the domain information from step 1 into the “Add URL manually” input field
5. Select the Add button. A line is added to the bottom of the table.
6. In the new line of the table, ensure that “Enable all features” is selected in the “Ignore” column and the box is checked in the “Username-only Detection” column.
THIS IS A KEEPASSXC-BROWSER CONFIGURATION. If you use a different browser on the same computer, or copy the database file to another device and user a browser on that other device, you must add this site preference to the configuration of the KeePassXC-Browser on that other browser. At this time the author doesn’t know if there is a mechanism for synchronizing KeePassXC-Browser site preferences across different browsers and/or devices.
• KeePassXC-Browser has a button to “Choose custom login fields”. I have not yet needed that. But I did try it a bunch of times when I was having problems and had no clue what to try. My guess is that when this is what you need it will be very obvious; if it isn’t obvious your solution lies elsewhere.
The plugin fails to save a new entry for my explore.garmin.com account. The username is input on one page and the password is input on a second page.
I had the same problem for my walmart.com account login, but after MANY iterations I somehow got that to work. I noticed that I now have a Site Preference for https://www.walmart.com/account/* with "Ignore" = "Enable all features" and "Username only detection" checked. Where is that feature explained in the documentation? I experimented blindly with and without that and got nowhere on my explore.garmin.com account.
On the explore.garmin.com account I get a page asking for my username. There is a green icon from the plugin. I enter that (email) and select Next. The next page asks for the password. There is a grey icon from the plugin. I enter my password and select Next. I am then successfully logged in. I expect to get a banner telling me the plugin saved a new login, and see a new entry for that login to appear in KeePassXC. I see neither.
My settings include a check by "Show a banner on the page when new credentials can be saved to the database."
I am using KeePassXC 2.7.4 and Firefox on a laptop running Debian Bookworm. They were installed using apt.
I got this log from the browser console during a login attempt at explore.garmin.com. While typing in this issue report additional instances of Content Security Policy lines added to the log.
LoginRecipes: getRecipes: falling back to a synchronous message for: https://sso.garmin.com/ LoginRecipes.jsm:297:11 TypeError: gRecipeManager is null LoginManagerParent.jsm:136:3 LoginRecipes: getRecipes: falling back to a synchronous message for: https://sso.garmin.com/ LoginRecipes.jsm:297:11 TypeError: gRecipeManager is null LoginManagerParent.jsm:136:3 Content Security Policy: Ignoring “'unsafe-inline'” within script-src: ‘strict-dynamic’ specified Content Security Policy: Ignoring “https:” within script-src: ‘strict-dynamic’ specified Content Security Policy: Ignoring “http:” within script-src: ‘strict-dynamic’ specified
This is from the console window of the debugger(?) from a login attempt on explore.garmin.com
KeePassXC-Browser: Connecting to native messaging host org.keepassxc.keepassxc_browser client.js:317:13 KeePassXC-Browser: Server public key: zgwRyBkpSlG8zGq6vn2zJdKJFP66bi1p25aBv43QVjk= keepass.js:445:17 [Error ] KeePassXC-Browser - No content script available for this tab. 2 global.js:145:13 [Error client.js:175] KeePassXC-Browser - 15: No logins found global.js:145:13 [Error ] KeePassXC-Browser - Cannot send activated_tab message: Could not establish connection. Receiving end does not exist. 4 global.js:145:13 [Error client.js:175] KeePassXC-Browser - 15: No logins found 5 global.js:145:13 [Error ] KeePassXC-Browser - Cannot send activated_tab message: Could not establish connection. Receiving end does not exist. 2 global.js:145:13 [Error client.js:175] KeePassXC-Browser - 15: No logins found global.js:145:13 [Error ] KeePassXC-Browser - Cannot send activated_tab message: Could not establish connection. Receiving end does not exist. 5 global.js:145:13 [Error client.js:175] KeePassXC-Browser - 15: No logins found 6 global.js:145:13 [Error ] KeePassXC-Browser - Cannot send activated_tab message: Could not establish connection. Receiving end does not exist. 4 global.js:145:13 [Error client.js:175] KeePassXC-Browser - 15: No logins found global.js:145:13 [Error ] KeePassXC-Browser - Cannot send activated_tab message: Could not establish connection. Receiving end does not exist. global.js:145:13 [Error client.js:175] KeePassXC-Browser - 15: No logins found global.js:145:13 [Error ] KeePassXC-Browser - Cannot send activated_tab message: Could not establish connection. Receiving end does not exist. global.js:145:13 [Error client.js:175] KeePassXC-Browser - 15: No logins found 2 global.js:145:13 [Error ] KeePassXC-Browser - Cannot send activated_tab message: Could not establish connection. Receiving end does not exist. 3 global.js:145:13 [Error client.js:175] KeePassXC-Browser - 15: No logins found 4 global.js:145:13 [Error ] KeePassXC-Browser - Cannot send activated_tab message: Could not establish connection. Receiving end does not exist. global.js:145:13 [Error client.js:175] KeePassXC-Browser - 15: No logins found global.js:145:13 [Error ] KeePassXC-Browser - Cannot send activated_tab message: Could not establish connection. Receiving end does not exist. global.js:145:13 [Error client.js:175] KeePassXC-Browser - 15: No logins found 9 global.js:145:13 [Error ] KeePassXC-Browser - Cannot send activated_tab message: Could not establish connection. Receiving end does not exist. 7 global.js:145:13 [Error client.js:175] KeePassXC-Browser - 15: No logins found 2 global.js:145:13 [Error ] KeePassXC-Browser - Cannot send activated_tab message: Could not establish connection. Receiving end does not exist. global.js:145:13 [Error client.js:175] KeePassXC-Browser - 15: No logins found 5 global.js:145:13 [Error ] KeePassXC-Browser - Cannot send activated_tab message: Could not establish connection. Receiving end does not exist. global.js:145:13 [Error client.js:175] KeePassXC-Browser - 15: No logins found global.js:145:13 [Error ] KeePassXC-Browser - Cannot send activated_tab message: Could not establish connection. Receiving end does not exist. global.js:145:13 [Error client.js:175] KeePassXC-Browser - 15: No logins found 2 global.js:145:13 [Error ] KeePassXC-Browser - Cannot send activated_tab message: Could not establish connection. Receiving end does not exist. 2 global.js:145:13 [Error client.js:175] KeePassXC-Browser - 15: No logins found 2 global.js:145:13 [Error ] KeePassXC-Browser - Cannot send activated_tab message: Could not establish connection. Receiving end does not exist. global.js:145:13 [Error client.js:175] KeePassXC-Browser - 15: No logins found global.js:145:13 [Error ] KeePassXC-Browser - Cannot send activated_tab message: Could not establish connection. Receiving end does not exist. 3 global.js:145:13 [Error client.js:175] KeePassXC-Browser - 15: No logins found 3 global.js:145:13 [Error ] KeePassXC-Browser - Cannot send activated_tab message: Could not establish connection. Receiving end does not exist. 11 global.js:145:13 [Error client.js:175] KeePassXC-Browser - 15: No logins found 2 global.js:145:13 [Error init.js:66] KeePassXC-Browser - Cannot send activated_tab message: Could not establish connection. Receiving end does not exist. global.js:145:13