Firefox should not autofill passwords when the form fields are invisible
Categories
(Toolkit :: Password Manager, defect, P3)
Tracking
()
People
(Reporter: bugzilla, Unassigned)
References
(Blocks 5 open bugs, )
Details
(Keywords: sec-want, Whiteboard: [passwords:fill-ui] [passwords:heuristics][fxcm-bugs-2022])
Comment 1•8 years ago
|
||
Comment 3•8 years ago
|
||
Updated•7 years ago
|
Updated•7 years ago
|
Comment 6•6 years ago
|
||
We can maybe use Intersection Observer for this. I think we will end up in an arms race and the cost to compute visibility isn't zero so this could have a performance cost. We would need to keep an intersection observer around as long as there are hidden fields so that we can fill them when they become visible. We would also need to have a minimum amount of time for the fields to be visible otherwise attackers would just make them visible for a short time that users won't notice.
(In reply to Matthew N. [:MattN] (PM me if requests are blocking you) from comment #6)
We can maybe use Intersection Observer for this. I think we will end up in an arms race and the cost to compute visibility isn't zero so this could have a performance cost.
There might be an option that will not cost that much performance:
Firefox could only show that the fields are filled to the user, but not filling them on the page in reality. Firefox then only fills the fields when the user takes some actions like actively sending the form. As an additional warning for the user, Firefox could actively make autofilled forms visable by rendering them always ontop+inscreen with small Style overwrite.
Comment 8•6 years ago
|
||
We would also need to have a minimum amount of time for the fields to be visible otherwise attackers would just make them visible for a short time that users won't notice.
Does it really help if the user can watch while his password/data is being stolen?
Firefox could only show that the fields are filled to the user, but not filling them on the page in reality. Firefox then only fills the fields when the user takes some actions like actively sending the form.
What if a script triggers sending of the form? fill the data or not? The user would expect the data is filled, as he sees the data filled. But a script could always trigger sending of a form without any user interaction.
I am living very happily with this for a long time:
signon.autofillForms = false
I even set this on the Firefox of a couple of noob users and noone complained about the need to click form fields to fill them.
Comment 9•6 years ago
|
||
"Invisible" is indeed hard to define. However, not filling an input that appears to be hidden seems a lot safer than filling it. If there is a CSS rule to hide an input or one of its ancestor elements I would rather have it err on the side of caution and not fill it like the other clients seem to (Chrome and Edge at least, when I tested this week).
Comment 10•5 years ago
|
||
Even with signon.autofillForms = false the master password dialog is triggered, which is quite annoying for sites that include the login form even if you are already logged in. As I use a secure password I don't like to enter it unless I actually want to log in. So is there another option that I need to set, so that the master password dialog is not triggered unless I click in the username/password fields?
Updated•3 years ago
|
Comment 11•3 years ago
|
||
The severity field for this bug is relatively low, S3. However, the bug has 17 votes and 6 See Also bugs.
:serg, could you consider increasing the bug severity?
For more information, please visit auto_nag documentation.
Comment 12•3 years ago
|
||
The last needinfo from me was triggered in error by recent activity on the bug. I'm clearing the needinfo since this is a very old bug and I don't know if it's still relevant.
Updated•3 years ago
|
Updated•3 years ago
|
Updated•3 years ago
|
Comment 14•1 year ago
|
||
It is hard to define invisible at the CSS level. What is not hard to do is to prevent it from autofilling the values of input elements with type="hidden". Those should never be filled.
Updated•1 year ago
|
Description
•