<defaultvalue>disable</defaultvalue>
</option>
<!-- /security.blacklist.stopforumspam -->
- <!-- security.blacklist.custom -->
- <option name="blacklist_user_agents">
- <categoryname>security.blacklist.custom</categoryname>
- <optiontype>textarea</optiontype>
- </option>
- <!-- /security.blacklist.custom -->
<!-- security.antispam.captcha -->
<option name="captcha_type">
<categoryname>security.antispam.captcha</categoryname>
<delete>
<option name="module_master_password"/>
<option name="blacklist_ip_addresses"/>
+ <option name="blacklist_user_agents"/>
</delete>
</data>
\define('USER_AUTHENTICATION_FAILURE_USER_CAPTCHA', 3);
\define('USER_AUTHENTICATION_FAILURE_EXPIRATION', 30);
\define('SIGNATURE_SECRET', '');
-\define('BLACKLIST_USER_AGENTS', '');
\define('CAPTCHA_TYPE', 'com.woltlab.wcf.recaptcha');
\define('REGISTER_USE_CAPTCHA', 1);
\define('LOST_PASSWORD_USE_CAPTCHA', 1);
use wcf\system\exception\IPrintableException;
use wcf\system\exception\NamedUserException;
use wcf\system\exception\ParentClassException;
-use wcf\system\exception\PermissionDeniedException;
use wcf\system\exception\SystemException;
use wcf\system\language\LanguageFactory;
use wcf\system\package\PackageInstallationDispatcher;
use wcf\util\FileUtil;
use wcf\util\HeaderUtil;
use wcf\util\StringUtil;
-use wcf\util\UserUtil;
// phpcs:disable PSR1.Files.SideEffects
// https://github.com/WoltLab/WCF/issues/3913
\define('MODULE_MASTER_PASSWORD', 0);
- // The IP address blocklist was removed in 5.5.
+ // The IP address and User Agent blocklist was removed in 5.5.
// https://github.com/WoltLab/WCF/issues/3914
\define('BLACKLIST_IP_ADDRESSES', '');
+ \define('BLACKLIST_USER_AGENTS', '');
}
/**
{
$isAjax = isset($_SERVER['HTTP_X_REQUESTED_WITH']) && ($_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest');
- if (\defined('BLACKLIST_USER_AGENTS') && BLACKLIST_USER_AGENTS != '') {
- if (!StringUtil::executeWordFilter(UserUtil::getUserAgent(), BLACKLIST_USER_AGENTS)) {
- if ($isAjax) {
- throw new AJAXException(
- self::getLanguage()->getDynamicVariable('wcf.ajax.error.permissionDenied'),
- AJAXException::INSUFFICIENT_PERMISSIONS
- );
- } else {
- throw new PermissionDeniedException();
- }
- }
- }
-
// handle banned users
if (self::getUser()->userID && self::getUser()->banned && !self::getUser()->hasOwnerAccess()) {
if ($isAjax) {
\define('HTTP_SEND_X_FRAME_OPTIONS', 0);
-\define('BLACKLIST_USER_AGENTS', '');
-
\define('CACHE_SOURCE_TYPE', 'disk');
\define('IMAGE_ADAPTER_TYPE', 'gd');
\define('TIMEZONE', 'Europe/Berlin');
<item name="wcf.acp.notice.showOrder.description"><![CDATA[Legt die Reihenfolge fest, in der die Hinweise angezeigt werden.]]></item>
</category>
<category name="wcf.acp.option">
- <item name="wcf.acp.option.blacklist_user_agents"><![CDATA[Browser-Kennung ausschließen (Obsolet)]]></item>
- <item name="wcf.acp.option.blacklist_user_agents.description"><![CDATA[Browser-Kennungen können durch Angreifer leicht gefälscht werden und sind kein zuverlässiger Indikator für die Identität des Anfragestellers. Falls ein Ausschluss dennoch gewünscht ist, erfolgt ein Ausschluss von Browser-Kenunngen leistungsfähiger auf Ebene des Webservers. Diese Option ist obsolet und wird mit einer zukünftigen Version entfernt.]]></item>
<item name="wcf.acp.option.cache_source_memcached_host"><![CDATA[Memcached-Server]]></item>
<item name="wcf.acp.option.cache_source_memcached_host.description"/>
<item name="wcf.acp.option.cache_source_redis_host"><![CDATA[Redis-Server]]></item>
<item name="wcf.acp.option.module_master_password.description"/>
<item name="wcf.acp.option.blacklist_ip_addresses"/>
<item name="wcf.acp.option.blacklist_ip_addresses.description"/>
+ <item name="wcf.acp.option.blacklist_user_agents"/>
+ <item name="wcf.acp.option.blacklist_user_agents.description"/>
</delete>
</language>
<item name="wcf.acp.notice.showOrder.description"><![CDATA[Choose display order of notices.]]></item>
</category>
<category name="wcf.acp.option">
- <item name="wcf.acp.option.blacklist_user_agents"><![CDATA[Block by User-Agent (Not Recommended)]]></item>
- <item name="wcf.acp.option.blacklist_user_agents.description"><![CDATA[User-Agents are easily faked by an attacker and not a reliable indicator of the client’s identity. If a block based on the User-Agent is desired nonetheless, it is achieve more performant at the web server level. Use of this blocklist is not recommended and this option will be removed in a future version.]]></item>
<item name="wcf.acp.option.cache_source_memcached_host"><![CDATA[Memcached-Server]]></item>
<item name="wcf.acp.option.cache_source_memcached_host.description"/>
<item name="wcf.acp.option.cache_source_redis_host"><![CDATA[Redis-Server]]></item>
<item name="wcf.acp.option.module_master_password.description"/>
<item name="wcf.acp.option.blacklist_ip_addresses"/>
<item name="wcf.acp.option.blacklist_ip_addresses.description"/>
+ <item name="wcf.acp.option.blacklist_user_agents"/>
+ <item name="wcf.acp.option.blacklist_user_agents.description"/>
</delete>
</language>