Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support multiple urls per entry [$30 awarded] #398

Closed
Kaito23 opened this issue Mar 15, 2017 · 56 comments · Fixed by #3558
Closed

Support multiple urls per entry [$30 awarded] #398

Kaito23 opened this issue Mar 15, 2017 · 56 comments · Fixed by #3558

Comments

@Kaito23
Copy link

Kaito23 commented Mar 15, 2017

Hey,

is it possible to add multiple urls to a single entry?
Maybe a cool feature?
(Working with passiFox)

Greetings Kaito

@phoerious
Copy link
Member

You can only add one URL per entry. But you can add more as custom attributes when needed. 2.2.0 will also support references, so you create multiple entries referencing each other where only specific fields are different (e.g. the URL).

@ibrokemypie
Copy link

Would there be an option to show the referenced entries as simply being additional attributes in the first, so that the number of entries remains the same and everything is held together? Understand that due to the keepass compatibility that it is not possible to do this in the database, but displaying it otherwise in app would be a good workaround

@TheZ3ro
Copy link
Contributor

TheZ3ro commented Mar 30, 2017

Hiding entry just because they have reference seems a little confusing to me and it will be complex to implement. We already have a nice way to display Reference-entry.
Does some other KeePass-compatible program do that?

@ibrokemypie
Copy link

Not as far as I know, my thinking was just that if a user simply wants multiple urls for the exact same entry, we deliver that to the user, while keeping the keepass backend exactly the same.
eg
Entry: Microsoft
username: whatever
password: *******
url: microsoft.com
url: live.com
url: office.com

it is the exact same account over all 3 urls, so wouldnt it make more sense to display it as a single entry to be updated and interacted with, and display one entry in keepassxc rather than 3?

@phoerious
Copy link
Member

phoerious commented Mar 30, 2017

We need to remain compatible with other KDBX implementations. You can of course, add multiple URLs as advanced/custom fields.

@ibrokemypie
Copy link

then we will need to broaden the keehttp protocol to integrate that with the extensions though, would we not?

@droidmonkey
Copy link
Member

No, this is already a feature in the http plugin. It searches the attributes for a specific key name. I believe that is in the settings

@ibrokemypie
Copy link

what is the standard for more than two urls? two seems fine, however you cant have more than one field with the same name, and it doesnt detect when two urls are in the same field

@droidmonkey
Copy link
Member

Looks like you create an attribute with the name of "KPH: XXXX" and the value of the URL you want to match against. XXXX can be anything

@yan12125
Copy link
Contributor

yan12125 commented Sep 2, 2017

Many people mentioned that KeeFox has this feature [1][2], so I studied its implementation. Detailed descriptions with a screenshot can be found at KeeFox's wiki page. [3]

Data for additional URLs are stored in an advanced attribute "KPRPC JSON". It stores more than additional URLs.

{
    "version":1,
    "alwaysAutoFill":false,
    "neverAutoFill":false,
    "alwaysAutoSubmit":false,
    "neverAutoSubmit":false,
    "priority":0,
    "altURLs":["https://foo.com"],
    "hide":false,
    "blockedURLs":["https://bar.com"],
    "regExBlockedURLs":["https://bad.com"],
    "regExURLs":["https://good.com"],
    "blockHostnameOnlyMatch":false,
    "blockDomainOnlyMatch":false
}

The implementation can be found in keepassrpc, the backend behind KeeFox. [4]

[1] pfn/passifox#296 (comment)
[2] https://sourceforge.net/p/keepass/discussion/329220/thread/cb922dee/#5027
[3] https://github.com/kee-org/KeeFox/wiki/en-%7C-Using-KeeFox-%7C-Alternative-URLs
[4] https://github.com/kee-org/keepassrpc/blob/master/KeePassRPC/KeePassRPCService.cs#L1784

@yan12125
Copy link
Contributor

Another implementation submitted to pfn/keepasshttp: pfn/keepasshttp#340

It put configurations in KeePassHttp Settings. The limitation is that it only allows one regular expression.

@themasch
Copy link

Since this KeePassHttp thing is dying (#913) and KeePassXC-Browser is here I'd like to ask if this feature has a chance to be implemented?
I'd really like to be able to use a single entry from multiple urls since the websites are using the same
database.

I know I could create multiple entries that use references, but that would generate redundant entries that only vary in the URL which doesn't feel "right" for me.

It would also be totally fine to me if keepassxc-browser could use the additional properties for the lookup so I could add these urls there. By this the entry would still contain only one URL which is opened by keepassxc but the browser plugin could find the same entry for other urls, too.

@neochrome
Copy link

Also entries can't reference custom fields, so TOTP Seeds needs to be duplicated. I think it would be better to support multiple urls via some additional setting like KPH: urls which could be multiline

@yan12125
Copy link
Contributor

I created a proof-of-concept patch at #1769. I'll be glad to hear some feedback :)

@vasyugan
Copy link

What about just supporting the scheme KeeFox (now Kee) uses? I don't know if I am the only one, but I am extensibly making use of KeeFox' multi URL feature, and having to replicate all of that for KeePassXC would be a bit frustrating. Why can't KeeKassXC re-use what is already there?

@droidmonkey
Copy link
Member

Can you link us to this scheme? There is literally nothing in the KDBX scheme that supports this feature. It is a custom job no matter what.

@yan12125
Copy link
Contributor

Can you link us to this scheme?

#398 (comment)

Quite near :)

@droidmonkey
Copy link
Member

Oh lol

@phoerious
Copy link
Member

phoerious commented Oct 20, 2018

I think we can implement multiple URLs quite easily. Just add new URL fields and add a counter to their name. In other implementations, they will just appear as additional string fields. The KeeFox implementation is extremely ugly, though.

@droidmonkey droidmonkey changed the title Multiple Urls for a single entry (passiFox) Support multiple urls per entry Apr 6, 2019
@droidmonkey droidmonkey added this to the v2.5.0 milestone Apr 6, 2019
@AdamPS
Copy link

AdamPS commented May 4, 2019

I started a bounty https://www.bountysource.com/issues/43057047-support-multiple-urls-per-entry please join in if you would like to see this feature.

@AdamPS
Copy link

AdamPS commented Sep 7, 2019

I think it's really important to be compatible with Keepass2Android because many users will use the same database on PC and Android.

@varjolintu
Copy link
Member

I agree. Supporting KP2A_URL and KP2A_URL_[counter] directly would do the job.

@varjolintu
Copy link
Member

Work is in progress: https://github.com/varjolintu/keepassxc/tree/feature/multiple_urls if you want to try it, but it's not ready for an official PR yet.

For now, the URL's can be added/edited/removed via the new Browser Integration page under Entry settings. But it's also fine to add the custom attributes manually. This list reads the KP2A_URL attributes directly.

Screen Shot 2019-09-08 at 12 27 29

@AdamPS
Copy link

AdamPS commented Sep 10, 2019

Great thanks @varjolintu . I don't have my own build environment set up so I can't try it yet but as soon as there is a built release I would be very happy to try it.

@droidmonkey
Copy link
Member

There is a bounty in your future!

droidmonkey pushed a commit to varjolintu/keepassxc that referenced this issue Oct 17, 2019
* Fixes keepassxreboot#398

The new Browser Integration entry settings page has a list view with any additional URL's. These URL's are added to the entry attributes with KP2A_URL_<counter>, which means those are directly compatible with Keepass2Android.
droidmonkey pushed a commit that referenced this issue Oct 17, 2019
* Fixes #398

The new Browser Integration entry settings page has a list view with any additional URL's. These URL's are added to the entry attributes with KP2A_URL_<counter>, which means those are directly compatible with Keepass2Android.
@AdamPS
Copy link

AdamPS commented Oct 27, 2019

It's very nice many thanks @varjolintu

scoroi pushed a commit to scoroi/keepassxc that referenced this issue Nov 10, 2019
* Fixes keepassxreboot#398

The new Browser Integration entry settings page has a list view with any additional URL's. These URL's are added to the entry attributes with KP2A_URL_<counter>, which means those are directly compatible with Keepass2Android.
@droidmonkey droidmonkey changed the title Support multiple urls per entry Support multiple urls per entry [$30 awarded] Dec 24, 2019
@ghost ghost mentioned this issue Nov 14, 2020
14 tasks
@zeorin
Copy link

zeorin commented Jan 18, 2021

Is there a way to bulk-add sites? The Stack Exchange network of sites currently has 176 sites in it, and they all use the same login credentials. Adding them one-by-one is clearly impractical.

@varjolintu
Copy link
Member

@zeorin Just use https://stackexchange.com as your entry URL. It will cover all subdomains.

@zeorin
Copy link

zeorin commented Jan 18, 2021

Good point. There are a few that aren't subdomains (AskUbuntu, StackOverflow, etc.) but that's manageable.

@Vakke
Copy link

Vakke commented Nov 24, 2021

Why the minimum URL match accuracy was deemend not to usable and this additional URL to be used instead?

E1: I migrated from Bitwarden to KeepassXC and I have many legacy URLs which have different URLs to same site. KeepassXC is unable to recognize almost any website which have these external pop up window logins etc with different URLs and would need a manual reset on almost every site. Keepass addon Kee has this URL match accuracy which seems to be very accurate and helps with the pop up login fields.

I don't know does anybody else have these issues but I would really like to migrate to KeepassXC rather than be on Keepass or Bitwarden but I'm way too lazy to manually correct over 1000 URLs.

E2: Also a one solution would be a somekind of an URL checker program which would get rid off any other than the needed for KeepassXC, for example, https://www.nba.com

E3: Or I just edit everything when these occur. Damnit.

@Hidigoudi
Copy link

Why this feature is not included inside the Debian 12 KeePassXC package ?

Here is my current version :

KeePassXC - Version 2.7.4
Revision: 63b2394

Qt 5.15.8
Debugging mode is disabled.

Operating system: Debian GNU/Linux 12 (bookworm)
CPU architecture: x86_64
Kernel: linux 6.1.0-21-amd64

Enabled extensions:
- Auto-Type
- Browser Integration
- SSH Agent
- KeeShare
- YubiKey
- Secret Service Integration

Cryptographic libraries:
- Botan 2.19.3

Is it because Debian team removes some "parts" of the software ?

@varjolintu
Copy link
Member

@Hidigoudi If Browser Integration is enabled, the feature should be there.

@Hidigoudi
Copy link

Hidigoudi commented Jun 27, 2024

Oh ok I see, is it work with Auto-Type also ? If browser integration is enabled I mean. Is there a link with the Browser Extension, it's weird ?!

@varjolintu
Copy link
Member

@Hidigoudi Those are two different features. The only thing common between those two is that the browser extension can launch Global Auto-Type directly using the web site URL for matching.

@Hidigoudi
Copy link

Ok I understand, but is there any technical limitation to provide multiple URLs per entry for those using only Auto-Type ? I'm not a developer so this might be a stupid question...

@varjolintu
Copy link
Member

@Hidigoudi I'm not 100% sure how those will work with just Auto-Type enabled in the compiler flags. Basically the additional URL's are just attributes starting with KP2A_URL , for example KP2A_URL_1.

@droidmonkey
Copy link
Member

Are you typing the url with autotype? If not then you don't need to do anything. If so, use {S:KP2_URL}

@Hidigoudi
Copy link

Hidigoudi commented Jun 27, 2024

I'm using only "Use entry URL to match windows for global Auto-Type" and I have an extension to add URL inside windows titles. I'm not typing the URL with Auto-Type. It seems that Auto-Type only searches inside the main "URL" field but not in all others if we add additional URLs with KP2A_URL. I guess it's a performance issue ?

@droidmonkey
Copy link
Member

Oh, that feature

@Hidigoudi
Copy link

Yes, it is a shame we can't use additional URLs feature with Auto-Type :(
It could be very convenient for my daily work. As I said, it is maybe not possible to split the additional URLs feature from the Browser integration / extension activation. Is there any way to implement that ?

What would prevent this from being implemented ?

@droidmonkey
Copy link
Member

It's implementanable, somewhat easy, just needs to be done.

@Hidigoudi
Copy link

Ok, do I need to open an issue / new feature for this ?

@droidmonkey
Copy link
Member

Yes please do, I can't find an existing one

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.