BE - backend configuration
The following configuration variables can be used to configure the TYPO3 backend:
Note
The configuration values listed here are keys in the
$GLOBALS global PHP array.
This variable can be set in one of the following files:
| Name | Type |
|---|---|
| text | |
| string (file path) | |
| array of file paths | |
| text | |
| text | |
| text | |
| text | |
| int | |
| bool | |
| bool | |
| int | |
| text | |
| int | |
| string, PHP relative format | |
| string | |
| int | |
| int | |
| int | |
| list | |
| bool | |
| int | |
| text | |
| text | |
| text | |
| bool | |
| int | |
| bool | |
| text | |
| string | |
| array | |
| array | |
| array | |
| text | |
| bool | |
| bool | |
| array | |
| string | |
| array | |
| string | |
| string | |
| string | |
| string | |
| array | |
fully qualified class name (implements
\Session)
|
|
| array |
fileadminDir
-
- Type
- text
- Path
- $GLOBALS['TYPO3_CONF_VARS']['BE']['fileadminDir']
- Default
- 'fileadmin/'
Path to the main file directory for editors. This is relative to the public web directory. DefaultStorage will be created with this configuration. Do not access manually but via
\TYPO3\.CMS\ Core\ Resource\ Storage Repository:: get Default Storage ()
lockBackendFile
-
- Type
- string (file path)
- Path
- $GLOBALS['TYPO3_CONF_VARS']['BE']['lockBackendFile']
- Default
"var/(Composer mode) |lock/ LOCK_ BACKEND" "config/(Classic mode)LOCK_ BACKEND"
New in version 13.3
Defines the location of the flag file
LOCK_BACKEND. The file temporarily restricts backend access to prevent unauthorized changes or during critical updates.
lockRootPath
-
- Type
- array of file paths
- Path
- $GLOBALS['TYPO3_CONF_VARS']['BE']['lockRootPath']
- Default
[]
These absolute paths are used to check if paths outside of the project path should be allowed. This restriction also applies to the local driver in the File Abstraction Layer.
This option supports an array of root path prefixes to allow multiple storage locations to be listed.
See also the Security bulletin "Path Traversal in TYPO3 File Abstraction Layer Storages".
Attention
Trailing slashes are enforced automatically.
userHomePath
-
- Type
- text
- Path
- $GLOBALS['TYPO3_CONF_VARS']['BE']['userHomePath']
- Default
- ''
Combined folder identifier pointing to the directory where TYPO3 backend users have their home-dirs. A combined folder identifier looks like this:
[storage, for example,Uid]: [folder Identifier] 2:. The home directory identifier of backend user 2 would be:users/ 2:. End slash required!users/ 2/
groupHomePath
-
- Type
- text
- Path
- $GLOBALS['TYPO3_CONF_VARS']['BE']['groupHomePath']
- Default
- ''
Combined folder identifier pointing to the directory where TYPO3 backend groups have their home-dirs. A combined folder identifier looks like this:
[storage, for example,Uid]: [folder Identifier] 2:. The home directory identifier of backend group 1 would be:groups/ 2:. End slash required!groups/ 1/
userUploadDir
-
- Type
- text
- Path
- $GLOBALS['TYPO3_CONF_VARS']['BE']['userUploadDir']
- Default
- ''
Suffix which as added to the user home dir path when mounted in TYPO3. For example, if the user dir is
../and the suffix is123_ user/ /uploadthen../will be mounted.123_ user/ upload
warning_email_addr
-
- Type
- text
- Path
- $GLOBALS['TYPO3_CONF_VARS']['BE']['warning_email_addr']
- Default
- ''
Email address that will receive notifications whenever there is an attempt to login to the Install Tool. This address will also receive warnings when more than 3 failed backend login attempts are detected within an hour (regardless of user).
See also security guidelines.
warning_mode
-
- Type
- int
- Path
- $GLOBALS['TYPO3_CONF_VARS']['BE']['warning_mode']
- Default
- 0
- Allowed values
- 1 0: Default: Do not send notification-emails upon backend-login 1: Send a notification-email every time a backend user logs in 2: Send a notification-email every time an admin backend user logs in
Send emails to
warning_upon backend-login.email_ addr See also security guidelines.
passwordReset
-
- Type
- bool
- Path
- $GLOBALS['TYPO3_CONF_VARS']['BE']['passwordReset']
- Default
- true
Enable password reset in the backend login for TYPO3 Backend users. Can be disabled for systems where only LDAP or OAuth login is allowed.
Password reset will still work via CLI and for admins in the backend.
passwordResetForAdmins
-
- Type
- bool
- Path
- $GLOBALS['TYPO3_CONF_VARS']['BE']['passwordResetForAdmins']
- Default
- true
Enable password reset for TYPO3 Administrators. This will affect both backend login and CLI. Disable this option for increased security.
requireMfa
-
- Type
- int
- Path
- $GLOBALS['TYPO3_CONF_VARS']['BE']['requireMfa']
- Default
- 0
- Allowed values
- 0-4
- 0:
- Default: Do not require multi-factor authentication
- 1:
- Require multi-factor authentication for all users
- 2:
- Require multi-factor authentication only for non-admin users
- 3:
- Require multi-factor authentication only for admin users
- 4:
- Require multi-factor authentication only for system maintainers
Define users that should be required to set up multi-factor authentication.
recommendedMfaProvider
-
- Type
- text
- Path
- $GLOBALS['TYPO3_CONF_VARS']['BE']['recommendedMfaProvider']
- Default
- 'totp'
Set the identifier of the multi-factor authentication provider. Recommended for all users.
loginRateLimit
-
- Type
- int
- Path
- $GLOBALS['TYPO3_CONF_VARS']['BE']['loginRateLimit']
- Default
- 5
Maximum amount of login attempts in time interval [BE][loginRateLimitInterval] before further login requests will be denied. Setting this value to
"0"will disable login rate limiting.
loginRateLimitInterval
-
- Type
- string, PHP relative format
- Path
- $GLOBALS['TYPO3_CONF_VARS']['BE']['loginRateLimitInterval']
- Default
- '15 minutes'
- Allowed values
- '1 minute', '5 minutes', '15 minutes', '30 minutes'
Time interval for the configured rate limit. Individual values using PHP relative formats can be set in
config/.system/ additional. php
loginRateLimitIpExcludeList
-
- Type
- string
- Path
- $GLOBALS['TYPO3_CONF_VARS']['BE']['loginRateLimitIpExcludeList']
- Default
- ''
IP addresses (with
*-wildcards) that are excluded from rate limiting. Syntax similar to [BE][IPmaskList]. An empty value disables the exclude list check.
lockIP
-
- Type
- int
- Path
- $GLOBALS['TYPO3_CONF_VARS']['BE']['lockIP']
- Default
- 0
- Allowed values
- 0-4
- 0:
- Default: Do not lock Backend User sessions to their IP address
- 1:
- Use the first part of the editors IPv4 address (for example "192.") as part of the session locking of Backend Users
- 2:
- Use the first two parts of the editors IPv4 address (for example "192.168") as part of the session locking of Backend Users
- 3:
- Use the first three parts of the editors IPv4 address (for example "192.168.13") as part of the session locking of Backend Users
- 4:
- Use the editors full IPv4 address (for example "192.168.13.84") as part of the session locking of Backend Users (highest security)
Session IP locking for backend users. See [FE][lockIP] for details.
See also security guidelines.
lockIPv6
-
- Type
- int
- Path
- $GLOBALS['TYPO3_CONF_VARS']['BE']['lockIPv6']
- Default
- 0
- Allowed values
- 0-8
- 0:
- Default: Do not lock Backend User sessions to their IP address
- 1:
- Use the first block (16 bits) of the editors IPv6 address (for example "2001:") as part of the session locking of Backend Users
- 2:
- Use the first two blocks (32 bits) of the editors IPv6 address (for example "2001:0db8") as part of the session locking of Backend Users
- 3:
- Use the first three blocks (48 bits) of the editors IPv6 address (for example "2001:0db8:85a3") as part of the session locking of Backend Users
- 4:
- Use the first four blocks (64 bits) of the editors IPv6 address (for example "2001:0db8:85a3:08d3") as part of the session locking of Backend Users
- 5:
- Use the first five blocks (80 bits) of the editors IPv6 address (for example "2001:0db8:85a3:08d3:1319") as part of the session locking of Backend Users
- 6:
- Use the first six blocks (96 bits) of the editors IPv6 address (for example "2001:0db8:85a3:08d3:1319:8a2e") as part of the session locking of Backend Users
- 7:
- Use the first seven blocks (112 bits) of the editors IPv6 address (for example "2001:0db8:85a3:08d3:1319:8a2e:0370") as part of the session locking of Backend Users
- 8:
- Use the editors full IPv6 address (for example "2001:0db8:85a3:08d3:1319:8a2e:0370:7344") as part of the session locking of Backend Users (highest security)
Session IPv6 locking for backend users. See [FE][lockIPv6] for details.
sessionTimeout
-
- Type
- int
- Path
- $GLOBALS['TYPO3_CONF_VARS']['BE']['sessionTimeout']
- Default
- 28800
Session timeout for backend users (in seconds). The value must be at least 180 to avoid side effects. The default is 28800 seconds = 8 hours.
IPmaskList
-
- Type
- list
- Path
- $GLOBALS['TYPO3_CONF_VARS']['BE']['IPmaskList']
- Default
- ''
Lets you define a list of IP addresses (with *-wildcards) that are the ONLY IP addresses that are allowed access to ANY backend activity. On error, an error header is sent and the script exits. Works like IP masking for users configurable through TSconfig.
See syntax for that (or look up syntax for the function
\TYPO3\CMS\ Core\ Utility\ General Utility:: cmp IP ()) See also security guidelines.
lockSSL
-
- Type
- bool
- Path
- $GLOBALS['TYPO3_CONF_VARS']['BE']['lockSSL']
- Default
- false
If set, the backend can only be accessed via an SSL-encrypted connection (https). If a user tries to access non-https admin-urls, they will be redirected to the SSL version of the URL.
See also security guidelines.
lockSSLPort
-
- Type
- int
- Path
- $GLOBALS['TYPO3_CONF_VARS']['BE']['lockSSLPort']
- Default
- 0
Use a non-standard HTTPS port for lockSSL. Set this value if you use lockSSL and the HTTPS port of your webserver is not 443.
cookieDomain
-
- Type
- text
- Path
- $GLOBALS['TYPO3_CONF_VARS']['BE']['cookieDomain']
- Default
- ''
Same as $TYPO3_CONF_VARS[SYS][cookieDomain] but for BE cookies. If empty, the
$TYPO3_value will be used.CONF_ VARS [SYS] [cookie Domain]
cookieName
-
- Type
- text
- Path
- $GLOBALS['TYPO3_CONF_VARS']['BE']['cookieName']
- Default
- 'be_typo_user'
Set the cookie name for the back-end user session.
cookieSameSite
-
- Type
- text
- Path
- $GLOBALS['TYPO3_CONF_VARS']['BE']['cookieSameSite']
- Default
- 'strict'
- Allowed values
- 'lax', 'strict', 'none'
- lax:
- Cookies set by TYPO3 are only available for the current site. Third-party integrations are not allowed to read cookies, except for links and simple HTML forms
- strict:
- Cookies set by TYPO3 are only available for the current site. They are never shared with third-party packages
- none:
- Allow cookies set by TYPO3 to be sent to other sites as well. Note: this only works with HTTPS connections
Configures how cookies can be shared in the TYPO3 Backend (first-party cookies vs. third-party cookies)
showRefreshLoginPopup
-
- Type
- bool
- Path
- $GLOBALS['TYPO3_CONF_VARS']['BE']['showRefreshLoginPopup']
- Default
- false
If set, the Ajax relogin will show a popup window for relogin after a countdown. Some authorization services need this as they add custom validation to the login form. If it is not set, the Ajax relogin will show an inline relogin window.
adminOnly
-
- Type
- int
- Path
- $GLOBALS['TYPO3_CONF_VARS']['BE']['adminOnly']
- Default
- 0
- Allowed values
-
-1 - +2
- -1:
- Total shutdown for maintenance purposes
- 0:
- Default: All users can access the TYPO3 Backend
- 1:
- Only administrators / system maintainers can log in and CLI interface is disabled
- 2:
- Only administrators / system maintainers have access to the TYPO3 Backend. CLI executions are allowed
Restricts access to the TYPO3 Backend. Useful when doing maintenance or updates
disable_exec_function
-
- Type
- bool
- Path
- $GLOBALS['TYPO3_CONF_VARS']['BE']['disable_exec_function']
- Default
- false
Don't use exec() function (except for ImageMagick which is disabled by
[GFX]=0). If set, all file operations are done by the default PHP functions. This is necessary under Windows! On Unix system commands using exec() can be used, unless this is disabled.[im]<typo3Conf Vars_ gfx_ im>
compressionLevel
-
- Type
- text
- Path
- $GLOBALS['TYPO3_CONF_VARS']['BE']['compressionLevel']
- Default
- 0
- Range
- 0-9
Determines output compression of BE output. Output is smaller but page generation slows down depending on compression level. Requires
- zlib in your PHP installation and
- special rewrite rules for
.css.andgz .js.(before version 12.0 the extension wasgz .css.andgzip .js.)gzip
Please see
EXT:for an example. The range isinstall/ Resources/ Private/ Folder Structure Template Files/ root- htaccess 1-9, where1is least compression and9is greatest compression. Setting the value totruewill set the compression based on the PHP default settings (usually5). The recommended and most optimal value is5.
installToolPassword
-
- Type
- string
- Path
- $GLOBALS['TYPO3_CONF_VARS']['BE']['installToolPassword']
- Default
- ''
Hash of the install tool password. See also Enabling and accessing the Install Tool.
New in version 14.0
You can also use the command vendor/bin/typo3 install:password:set to change the install tool password.
defaultPermissions
-
- Type
- array
- Path
- $GLOBALS['TYPO3_CONF_VARS']['BE']['defaultPermissions']
- Default
- []
This option defines the default page permissions (
show,edit,delete,new,editcontent). The following order applies:defaultfromPermissions \TYPO3\CMS\ Core\ Data Handling\ Page Permission Assembler $GLOBALS(the option described here)['TYPO3_ CONF_ VARS'] ['BE'] ['default Permissions'] - Page TSconfig via TCEMAIN.permissions
Example (with default permissions):
config/system/additional.php | typo3conf/system/additional.php$GLOBALS['TYPO3_CONF_VARS']['BE']['defaultPermissions'] = [ 'user' => 'show,edit,delete,new,editcontent', 'group' => 'show,edit,new,editcontent', 'everybody' => '', ];Copied!If you want to deviate from the default permissions, for example, by changing the 'everybody' key, just modify that key:
config/system/additional.php | typo3conf/system/additional.php$GLOBALS['TYPO3_CONF_VARS']['BE']['defaultPermissions'] = [ 'everybody' => 'show', ];Copied!
defaultUC
-
- Type
- array
- Path
- $GLOBALS['TYPO3_CONF_VARS']['BE']['defaultUC']
- Default
- []
Defines default user settings. The following order applies:
uc_indefault \TYPO3\CMS\ Core\ Authentication\ Backend User Authentication $GLOBALS(the option described here)['TYPO3_ CONF_ VARS'] ['BE'] ['default UC'] - User TSconfig via setup
Example (with default user settings):
config/system/additional.php | typo3conf/system/additional.php$GLOBALS['TYPO3_CONF_VARS']['BE']['defaultUC'] = [ 'emailMeAtLogin' => 0, 'titleLen' => 50, 'edit_RTE' => '1', 'edit_docModuleUpload' => '1', ];Copied!Visit the setup chapter of the User TSconfig guide for a list of available options.
customPermOptions
-
- Type
- array
- Path
- $GLOBALS['TYPO3_CONF_VARS']['BE']['customPermOptions']
- Default
- []
Array with sets of custom permission options. The syntax is:
config/system/additional.php | typo3conf/system/additional.php'key' => array( 'header' => 'header string, language split', 'items' => array( 'key' => array('label, language split','icon reference', 'Description text, language split') ) )Copied!Keys cannot contain any of the following characters:
:.|,
fileDenyPattern
-
- Type
- text
- Path
- $GLOBALS['TYPO3_CONF_VARS']['BE']['fileDenyPattern']
- Default
- ''
A perl and JavaScript-compatible regular expression that will block ('deny') operations on files with matching filenames (without delimiters
/), for example, file upload, rename, etc.For security reasons, files with multiple extensions in an Apache environment must be blocked using mod_alias, if the filename contains a valid php handler in an arbitrary position. Also, ".htaccess" files must be blocked. Matching is case-insensitive.
The default value is stored in class constant
\TYPO3\.CMS\ Core\ Resource\ Security\ File Name Validator:: FILE_ DENY_ PATTERN_ DEFAULT See also security guidelines.
flexformForceCDATA
-
- Path
- $GLOBALS['TYPO3_CONF_VARS']['BE']['flexformForceCDATA']
Changed in version 13.0
This option was removed in TYPO3 v13.0.
versionNumberInFilename
-
- Type
- bool
- Path
- $GLOBALS['TYPO3_CONF_VARS']['BE']['versionNumberInFilename']
- Default
- false
If enabled, CSS and JS files loaded in the TYPO3 Backend will have a timestamp in their filename, i.e.
filename.. This will force browsers and proxies to reload the files if they change (thus avoiding caching issues).1269312081. js IMPORTANT: This feature requires extra
.htaccessrules in order to work (please refer to thetypo3/file shipped with TYPO3).sysext/ install/ Resources/ Private/ Folder Structure Template Files/ root- htaccess If disabled, the last modification date of the file will be appended as a query-string.
debug
-
- Type
- bool
- Path
- $GLOBALS['TYPO3_CONF_VARS']['BE']['debug']
- Default
- false
If enabled, login refresh is disabled and pageRenderer is set to debug mode. Also, fieldnames are appended to field labels. Use this to debug the backend only!
Disables the $GLOBALS[TYPO3_CONF_VARS][BE][compressionLevel] setting.
HTTP
-
- Type
- array
- Path
- $GLOBALS['TYPO3_CONF_VARS']['BE']['HTTP']
Set HTTP headers to be sent with each backend request. Keys other than
['Response']are ignored.['Headers'] Default configuration:
[ 'Response' => [ 'Headers' => [ 'clickJackingProtection' => 'X-Frame-Options: SAMEORIGIN', 'strictTransportSecurity' => 'Strict-Transport-Security: max-age=31536000', 'avoidMimeTypeSniffing' => 'X-Content-Type-Options: nosniff', 'referrerPolicy' => 'Referrer-Policy: strict-origin-when-cross-origin', ], ], ]Copied!Note
Strict-is only active if the option $GLOBALS[TYPO3_CONF_VARS][BE][lockSSL] is enabled.Transport- Security
passwordHashing
-
- Path
- $GLOBALS['TYPO3_CONF_VARS']['BE']['passwordHashing']
className
-
- Type
- string
- Path
- $GLOBALS['TYPO3_CONF_VARS']['BE']['passwordHashing']['className']
- Default
\TYPO3\CMS\ Core\ Crypto\ Password Hashing\ Argon2i Password Hash:: class
Allowed values:
\TYPO3\CMS\ Core\ Crypto\ Password Hashing\ Argon2i Password Hash:: class - Good password hash mechanism. Used by default if available.
\TYPO3\CMS\ Core\ Crypto\ Password Hashing\ Argon2id Password Hash:: class - Good password hash mechanism.
\TYPO3\CMS\ Core\ Crypto\ Password Hashing\ Bcrypt Password Hash:: class - Good password hash mechanism.
\TYPO3\CMS\ Core\ Crypto\ Password Hashing\ Pbkdf2Password Hash:: class - Fallback hash mechanism if argon and bcrypt are not available.
\TYPO3\CMS\ Core\ Crypto\ Password Hashing\ Phpass Password Hash:: class - Fallback hash mechanism if none of the above are available.
options
-
- Type
- array
- Path
- $GLOBALS['TYPO3_CONF_VARS']['BE']['passwordHashing']['options']
- Default
- []
Special settings for specific hash algorithms. See Available hash algorithms for the different options.
passwordPolicy
-
- Type
- string
- Path
- $GLOBALS['TYPO3_CONF_VARS']['BE']['passwordPolicy']
- Default
- default
Defines the password policy in the backend context.
stylesheets
-
- Type
- string
- Path
- $GLOBALS['TYPO3_CONF_VARS']['BE']['stylesheets']
- Default
- default
Load additional CSS files for the TYPO3 backend interface. This can be set for a site or in an extension
ext_localconf.phpfile.Examples:Add a specific stylesheet:
$GLOBALS['TYPO3_CONF_VARS']['BE']['stylesheets']['my_extension'] = 'EXT:my_extension/Resources/Public/Css/myfile.css';Copied!Add all stylesheets from a folder:
$GLOBALS['TYPO3_CONF_VARS']['BE']['stylesheets']['my_extension'] = 'EXT:my_extension/Resources/Public/Css/';Copied!
contentSecurityPolicyReportingUrl
-
- Type
- string
- Path
- $GLOBALS['TYPO3_CONF_VARS']['BE']['contentSecurityPolicyReportingUrl']
- Default
- ''
Configure the reporting HTTP endpoint of Content Security Policy violations in the backend; if it is empty, the TYPO3 endpoint will be used.
Setting this configuration to
'0'disables Content Security Policy reporting. If the endpoint is still called, the server-side process responds with a 403 HTTP error message.If defined, site-specific configuration in
config/sites/my_site/csp.yamltakes precedence over the global configuration.config/system/additional.php// Set a custom endpoint for Content Security Policy reporting $GLOBALS['TYPO3_CONF_VARS']['BE']['contentSecurityPolicyReportingUrl'] = 'https://csp-violation.example.org/';Copied!config/system/additional.php// Disables Content Security Policy reporting $GLOBALS['TYPO3_CONF_VARS']['BE']['contentSecurityPolicyReportingUrl'] = '0';Copied!Use $GLOBALS['TYPO3_CONF_VARS']['FE']['contentSecurityPolicyReportingUrl'] to configure Content Security Policy reporting for the frontend.
entryPoint
-
- Type
- string
- Path
- $GLOBALS['TYPO3_CONF_VARS']['BE']['entryPoint']
- Default
- '/typo3'
New in version 13.0
A custom backend entry point can be configured by specifying a custom URL path or domain name.
Example:$GLOBALS['TYPO3_CONF_VARS']['BE']['entryPoint'] = '/my-specific-path';Copied!See also
installToolSessionHandler
-
- Type
- array
- Path
- $GLOBALS['TYPO3_CONF_VARS']['BE']['installToolSessionHandler']
New in version 14.0
className
-
- Type
- fully qualified class name (implements
\Session)Handler Interface - Default
\TYPO3\CMS\ Install\ Service\ Session\ File Session Handler - Path
- $GLOBALS['TYPO3_CONF_VARS']['BE']['installToolSessionHandler']['className']
New in version 14.0
Store Install Tool sessions in Redis by setting
classtoName \TYPO3\CMS\ Install\ Service\ Session\ Redis Session Handler Custom session handlers can be implemented using the PHP
\Session.Handler Interface
options
-
- Type
- array
- Path
- $GLOBALS['TYPO3_CONF_VARS']['BE']['installToolSessionHandler']['options']
For the
Fileyou can configure theSession Handler session.Path File-based session handler in config/system/settings.phpreturn [ // ... 'BE' => [ 'installToolSessionHandler' => [ 'className' => \TYPO3\CMS\Install\Service\Session\FileSessionHandler::class, 'options' => [ 'sessionPath' => \TYPO3\CMS\Core\Core\Environment::getVarPath() . '/session', ] ] ] ];Copied!For the
Redisyou can configureSession Handler host,port,databaseandauthentification:Redis session handler in config/system/settings.phpreturn [ 'BE' => [ 'installToolSessionHandler' => [ 'className' => \TYPO3\CMS\Install\Service\Session\RedisSessionHandler::class, 'options' => [ 'host' => '127.0.0.1', 'port' => 6379, 'database' => 0, 'authentication' => [ 'user' => 'redis', 'pass' => 'redis' ] ] ] ] ];Copied!