Security and limits
Updated October 26, 2026
An import changes the settings of a site from a file that someone else may have written. These are the checks ConfigPort makes and the limits it applies.
Access
- Only users with ConfigPort's permissions can export, import or restore. By default these are Super Users only. See Permissions.
- The import permission is close to Super User for settings. Give it only to groups you trust with the whole site.
- Every step is checked again on the server. Every step that changes something is a form sent with Joomla's token, and a missing or wrong token is refused.
- The site, as opposed to the administrator, has no ConfigPort page. A visitor of the site cannot reach a snapshot, an uploaded file or a report.
Files you upload
- Only a file sent through the upload form is read. Its name is never used for a path on the server.
- The largest file is the smallest of 5 MB, the PHP settings
upload_max_filesizeandpost_max_size, and about three quarters of the database settingmax_allowed_packet, because the file is stored in the database as base64. The upload form shows the limit of this site. - A file must be UTF-8 JSON without a byte order mark, in the ConfigPort format with schema version 1. A file with a newer major schema version is refused.
- The file is checked as a whole before the preview: at most 1,000 items, 32 levels of nesting, 100,000 values and 1 MB for one text value; every item named once; known kinds only; names that follow Joomla's rules for extension, module and template names, so no path can reach another folder.
- A file that holds permissions (a
ruleskey) is refused. - Nothing in the file is run as code, and ConfigPort fetches nothing from the network for an import.
- The uploaded file is kept in the database, not on disk, for your user only and for at most 24 hours. Cancel deletes it at once, and an import uses it once.
What an import can change
- Only the settings of an item (the
paramscolumn). Never its title, state, position, access level, permissions or any other column, and never another table. - Only items of the kind the file names, matched on this site by what they are, never by an id from the file. A module or template style needs your choice when several match. See Choosing the target of a module or template style.
- Only what you confirmed. Apply checks the preview again, and an item whose settings changed since the preview is not written.
- At most 65,535 bytes of settings per item, the size of the column where Joomla keeps them. On Joomla 3, MySQL would cut a longer value without an error. ConfigPort refuses it before the write.
- ConfigPort checks after each write that the database kept every value as it was sent, and undoes the import when it did not.
Secrets
- Values that look secret are left out of an export unless you include them. The import keeps this site's value for a setting the file left out. See Why some values are left out.
- The preview, the result page and the report hide values that look secret.
- Finding secrets is a check of field types and names. A key in a plain text field with a neutral name is not found. Check a file before you share it.
- An export file that includes secrets is plain text. Keep it private and delete it after the import.
- A snapshot holds the settings from before an import, secrets included, in the database. Delete snapshots you no longer need. See Snapshots and retention.
Files from other Joomla versions
A file from a newer Joomla major version than the site can be previewed, not imported. See Importing older Joomla exports.
Outside what ConfigPort protects
- A Super User can change any setting and install any extension. ConfigPort does not limit Super Users.
- The server, PHP, the database and Joomla itself.
- What an extension does with settings that an import changed. Plugins that act when an extension is saved run, as on a save in the edit screen, and can refuse a change.
Network
ConfigPort makes no network call and sends no data anywhere. Joomla's own updater checks drplugin.com for new versions of the package.