Manual:Huggle/Bot passwords

Since MediaWiki implemented application passwords (called bot passwords) and deprecated standard API login, this feature was also implemented into Huggle and is now a recommended authentication method.

In order to use Bot passwords in Huggle you first need to generate one. You can do so by visiting Special:BotPasswords.

It is recommended to give Huggle the following permissions if you want to use it to its fullest extent:

grant-highvolume High-volume (bot) access
grant-editpage Edit existing pages
grant-editmycssjs Edit your user CSS/JSON/JavaScript required to store your options
grant-createeditmovepage Create, edit, and move pages required to warn users who don't have talk page yet
grant-patrol Patrol changes to pages
grant-rollback Rollback changes to pages
grant-blockusers Block and unblock users
grant-delete Delete pages, revisions, and log entries
grant-protect Protect and unprotect pages
grant-viewmywatchlist View your watchlist
grant-editmywatchlist Edit your watchlist

Restricting Huggle from any of these permissions may result in random failures of various features.

Why are they more secure?


Logging in over a password that has full access to your account is probably least secure method that should be avoided everywhere possible, not only in Huggle. The password as it is typed could be logged by keylogger virus or recorded in some other way. Someone could also in theory compile some malware-version of Huggle from its source code and offer this binary to naive users who would run it and enter their password into it.

If someone steals your bot password, they can't do so much with it. Editing is possible only via API and they are far more restricted than if they were using your real password.

Why Huggle doesn't just use OAuth


Because OAuth is a technology that was never designed with desktop applications in mind. OAuth was designed to allow web-based applications to login over another web server that hosts the credential database (in this case, over Wikimedia's central auth).

Each web based application therefore has its own secret that is located on a web server run by the provider of the application and uses this secret to verify the authenticity of the application. Then, using web callbacks the authentication server communicates the results of a login back to the website you want to login to.

Now, Huggle is not a web server, it's an application running on your system, so there is no way to securely store a secret used to validate its authenticity, and there is no easy way to handle callbacks from an OAuth server, and the process is overly complex for something that could be done much more simply. The security features of OAuth don't have any benefit for an application that is running directly on your PC and that is fully under your control. Therefore OAuth is a huge overkill that only adds complexity and no security, unlike "bot passwords" (actual Application Passwords).

See also