Make password managers autofill work on the ING bank's website.
As a 1Password user, I hated the fact that my bank uses a masked password strategy — it renders the autofill functionality useless and forces me to use the "Show in Large Type" functionality.
When I first realized that my password manager does not support autofilling masked passwords, I stumbled upon some threads on the 1Password forum. I did not, however, search for any existing solutions to this problem at that time, nor before starting coding this utility a few years later.
Out of pure Sunday boredom, I gave myself an hour to create the simplest Chrome extension that would fix this annoying issue.
After making something that works as expected, I searched for some alternatives and found:
- https://github.com/piotr-sarna/ING-Password-Filler
- https://chrome.google.com/webstore/detail/ing-%20-1password-autofill/heagjbohbnbaioaiekgioabidmgoihdc?hl=pl
I did not bother trying them, but a first glance instantly revealed some issues:
- the former project seems overly complex; using Svelte to inject another form into the login page 🤔
- the latter is not open-source and only available via the Chrome Web Store; this is a no-go for security-focused utilities in my opinion, especially when it comes to online banking
Therefore, I felt happy with what I came up with.
In May 2024, I updated the extension so that it now works on ING's new website.
- Simple (a single file, <100 LOC, easy to understand)
- Uses Manifest V3, with a minimal number of permissions
- We create hidden inputs for both the username and the password, making sure password managers will see them and autofill accordingly.
- Once the hidden login input gets autofilled, we fill the actual login input click on the "Next" button.
- Once the hidden password input gets autofilled, we fill the actual masked password inputs accordingly and click on the final "Login" button.
- 1Password
- Bitwarden
Note
Other password managers may work as well; this list only includes those which were tested and confirmed to be working.
- Clone or download this repository into a folder somewhere on your computer.
- Enter
chrome://extensions/
in the address bar. - At the top right, turn on Developer mode.
- Click Load unpacked.
- Select the folder from step 1.
- Download this repository into a folder somewhere on your computer.
- Enter
about:debugging#/runtime/this-firefox
in the address bar. - Click Load Temporary Add-on….
- Select the
manifest.json
file located in the folder you created in step 1. - Go to ING's login page and, from the extensions menu, make sure to grant the extension access to the page:
Important
Temporary add-ons are removed when Firefox is restarted.
- Make sure you have Node.js v20 installed, with Corepack enabled.
- Run
pnpm install
to install the required dependencies. - Run
pnpm build && pnpm package
to build and pack the extension into abundle.zip
file.
MIT