Skip to content

Moving toward enforcing use of application passwords for authenticated XML-RPC requests #23976

@johnbillion

Description

@johnbillion

This affects both the iOS and Android apps.

I am investigating the viability of enforcing the use of application passwords for authenticated XML-RPC requests in WordPress core. The benefit this has is that it greatly reduces the ability to brute force user passwords via the XML-RPC endpoint which is typically difficult or impossible to protect with rate limiting or additional authentication methods unlike wp-login.php.

Core ticket: https://core.trac.wordpress.org/ticket/62789

One of the prerequisites of this change is that the mobile apps provide a good UX for users who are currently using a user password rather than an application password and need to switch over. I anticipate that some form of messaging will be added to a WordPress release prior to actually implementing the switch, so that users are given time to switch over.

There are two ways for a user to use an application password:

  1. Manually generating one from their profile screen and copy-pasting the value into a password input along with their username.
  2. Using the application password authorisation workflow, which directs the user to their site and subsequently sends the username and application password back to the requesting application.

My understanding is that neither the iOS or Android apps support the authorisation workflow yet, is that correct? I see some work has been done in #23473 and #23726 but I'm not sure of the status of it.

  • Is there a way we can use messaging in the XML-RPC response to alert affected users to the change? I've yet to look into this at all.
  • Is there a way we could create a user application password over XML-RPC via the app and overwrite the stored user password? This has the potential to make the enforcement entirely invisible to the end user. Adding new custom XML-RPC methods should be a possibility.
  • Any ideas about improvements that could be made to the application password authorisation workflow UI and UX are welcome. We could even think about going as far as bundling dedicated support for the WordPress apps and other common XML-RPC clients such as MarsEdit in order to get rid of the suboptimal display of the redirect URL.
  • Does this affect the Jetpack connection option? I've also not yet looked into this.

Let's discuss what work would need to be done in the apps and in WordPress core to support a good UX or an invisible UX for users.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions