Adding phishing protection data providers

Phishing protection technology lets Firefox help protect users by comparing the URLs the user visits to a list of known scam sites, and presenting a warning to the user when they visit a site on the list.

Installing a new data provider

To install a data provider for phishing protection, it's necessary to set a series of preferences to provide details about the provider.

Each data provider has a unique ID number. The data provider with the ID number 0 is the default data provider shipped with Firefox. When installing a new provider, you should use the next unused number.

To find an ID number to use, you can build a loop that requests the value of, then, and so forth until no value is returned. Then you can use that value.

You can find examples of how to read and write preferences in the article Adding preferences to an extension.

Required preferences
A human-readable name for the data provider.
An URL that returns a private key to be used for encrypting of other requests.
The URL to use to look up URLs to see if they're block-listed. This request must be encrypted using the private key returned by the keyURL request.

Optional preferences

An URL used for reporting when users visit phishing pages and whether or not they decided to heed the warning or to ignore it.
An URL used to request an updated list of phishing sites. The server either provides a full list or incremental updates in order to bring the client's tables up to date.
Not currently used; intended for use in reporting other issues with the phishing protection service.
An URL to which the user is directed in order to report a safe page that is incorrectly being reported as a phishing site.
An URL to which the user is directed in order to report a phishing site that isn't detected by the phishing protection system.

Determining the currently-selected data provider

If you need to determine the ID number of the currently selected anti-phishing data provider, you can look at the current value of the preference browser.safebrowsing.dataProvider.