PluginProbe ʕ •ᴥ•ʔ
Wordfence Security – Firewall, Malware Scan, and Login Security / 7.3.2
Wordfence Security – Firewall, Malware Scan, and Login Security v7.3.2
8.2.2 8.2.1 8.2.0 3.7.1 3.7.2 3.8.1 3.8.2 3.8.3 3.8.4 3.8.5 3.8.6 3.8.7 3.8.8 3.8.9 3.9.1 4.0.1 4.0.2 4.0.3 5.0.1 5.0.2 5.0.3 5.0.4 5.0.5 5.0.6 5.0.7 5.0.8 5.0.9 5.1.1 5.1.2 5.1.4 5.1.5 5.1.6 5.1.7 5.1.8 5.1.9 5.2.1 5.2.2 5.2.3 5.2.4 5.2.5 5.2.6 5.2.7 5.2.8 5.2.9 5.3.1 5.3.10 5.3.11 5.3.12 5.3.2 5.3.3 5.3.4 5.3.5 5.3.6 5.3.7 5.3.8 5.3.9 6.0.1 6.0.10 6.0.11 6.0.12 6.0.14 6.0.15 6.0.16 6.0.17 6.0.18 6.0.19 6.0.2 6.0.20 6.0.21 6.0.22 6.0.23 6.0.24 6.0.25 6.0.3 6.0.4 6.0.5 6.0.6 6.0.7 6.0.8 6.0.9 6.1.1 6.1.10 6.1.11 6.1.12 6.1.14 6.1.15 6.1.16 6.1.17 6.1.2 6.1.3 6.1.4 6.1.5 6.1.6 6.1.7 6.1.8 6.1.9 6.2.0 6.2.1 6.2.10 6.2.2 6.2.3 6.2.4 6.2.5 6.2.6 6.2.7 6.2.8 6.2.9 6.3.0 6.3.1 6.3.10 6.3.11 6.3.12 6.3.14 6.3.15 6.3.16 6.3.17 6.3.18 6.3.19 6.3.2 6.3.20 6.3.21 6.3.22 6.3.3 6.3.4 6.3.5 6.3.6 6.3.7 6.3.8 6.3.9 7.0.1 7.0.2 7.0.3 7.0.4 7.0.5 7.1.0 7.1.1 7.1.10 7.1.11 7.1.12 7.1.14 7.1.15 7.1.16 7.1.17 7.1.18 7.1.19 7.1.2 7.1.20 7.1.3 7.1.4 7.1.5 7.1.6 7.1.7 7.1.8 7.1.9 7.10.0 7.10.1 7.10.2 7.10.3 7.10.4 7.10.5 7.10.6 7.10.7 7.11.0 7.11.1 7.11.2 7.11.3 7.11.4 7.11.5 7.11.6 7.11.7 7.2.1 7.2.2 7.2.3 7.2.4 7.2.5 7.3.1 7.3.2 7.3.3 7.3.4 7.3.5 7.3.6 7.4.0 7.4.1 7.4.10 7.4.11 7.4.12 7.4.14 7.4.2 7.4.3 trunk 7.4.4 1.1 7.4.5 1.2 7.4.6 1.3 7.4.7 1.3.1 7.4.8 1.3.2 7.4.9 1.3.3 7.5.0 1.4.2 7.5.1 1.4.3 7.5.10 1.4.4 7.5.11 1.4.5 7.5.2 1.4.6 7.5.3 1.4.7 7.5.4 1.4.8 7.5.5 1.5.1 7.5.6 1.5.2 7.5.7 1.5.3 7.5.8 1.5.4 7.5.9 1.5.5 7.6.0 1.5.6 7.6.1 2.0.1 7.6.2 2.0.2 7.7.0 2.0.3 7.7.1 2.0.5 7.8.0 2.0.6 7.8.1 2.0.7 7.8.2 2.1.0 7.9.0 2.1.1 7.9.1 2.1.2 7.9.2 2.1.3 7.9.3 2.1.4 8.0.0 2.1.5 8.0.1 3.0.2 8.0.2 3.0.3 8.0.3 3.0.4 8.0.4 3.0.5 8.0.5 3.0.6 8.1.0 3.0.7 8.1.1 3.0.8 8.1.2 3.0.9 8.1.3 3.1.0 8.1.4 3.1.1 v1.4.1 3.1.2 3.1.4 3.1.6 3.2.1 3.2.3 3.2.4 3.2.5 3.2.6 3.2.7 3.3.2 3.3.3 3.3.4 3.3.5 3.3.6 3.3.7 3.4.1 3.4.4 3.4.5 3.5.1 3.5.2 3.6.1 3.6.3 3.6.4 3.6.5 3.6.6 3.6.7 3.6.8 3.6.9
wordfence / lib / menu_options.php
wordfence / lib Last commit date
Diff 8 years ago dashboard 7 years ago rest-api 7 years ago .htaccess 7 years ago Diff.php 14 years ago GeoLite2-Country.mmdb 7 years ago IPTraf.php 8 years ago IPTrafList.php 7 years ago WFLSPHP52Compatability.php 7 years ago compat.php 8 years ago conntest.php 7 years ago cronview.php 8 years ago dbview.php 8 years ago diffResult.php 8 years ago email_genericAlert.php 7 years ago email_newIssues.php 7 years ago email_unlockRequest.php 8 years ago email_unsubscribeRequest.php 7 years ago flags.php 7 years ago live_activity.php 8 years ago menu_dashboard.php 7 years ago menu_dashboard_options.php 7 years ago menu_firewall.php 7 years ago menu_firewall_blocking.php 7 years ago menu_firewall_blocking_options.php 8 years ago menu_firewall_waf.php 7 years ago menu_firewall_waf_options.php 7 years ago menu_options.php 7 years ago menu_scanner.php 7 years ago menu_scanner_credentials.php 8 years ago menu_scanner_options.php 8 years ago menu_support.php 7 years ago menu_tools.php 7 years ago menu_tools_diagnostic.php 7 years ago menu_tools_importExport.php 7 years ago menu_tools_livetraffic.php 7 years ago menu_tools_twoFactor.php 7 years ago menu_tools_whois.php 8 years ago menu_wordfence_central.php 7 years ago noc1.key 7 years ago sysinfo.php 8 years ago unknownFiles.php 8 years ago viewFullActivityLog.php 8 years ago wf503.php 7 years ago wfAPI.php 7 years ago wfActivityReport.php 7 years ago wfAdminNoticeQueue.php 8 years ago wfArray.php 7 years ago wfBrowscap.php 8 years ago wfBrowscapCache.php 7 years ago wfBulkCountries.php 7 years ago wfCache.php 9 years ago wfCentralAPI.php 7 years ago wfConfig.php 7 years ago wfCrawl.php 8 years ago wfCredentialsController.php 7 years ago wfCrypt.php 7 years ago wfDB.php 7 years ago wfDashboard.php 7 years ago wfDateLocalization.php 8 years ago wfDiagnostic.php 7 years ago wfDict.php 8 years ago wfDirectoryIterator.php 7 years ago wfHelperBin.php 11 years ago wfHelperString.php 11 years ago wfIPWhitelist.php 7 years ago wfImportExportController.php 7 years ago wfIssues.php 7 years ago wfJWT.php 7 years ago wfLockedOut.php 7 years ago wfLog.php 7 years ago wfMD5BloomFilter.php 8 years ago wfModuleController.php 7 years ago wfNotification.php 8 years ago wfOnboardingController.php 7 years ago wfPersistenceController.php 8 years ago wfRESTAPI.php 7 years ago wfScan.php 7 years ago wfScanEngine.php 7 years ago wfSchema.php 7 years ago wfStyle.php 7 years ago wfSupportController.php 7 years ago wfUnlockMsg.php 7 years ago wfUpdateCheck.php 8 years ago wfUtils.php 7 years ago wfVersionCheckController.php 8 years ago wfView.php 10 years ago wfViewResult.php 8 years ago wordfenceClass.php 7 years ago wordfenceConstants.php 7 years ago wordfenceHash.php 7 years ago wordfenceScanner.php 7 years ago wordfenceURLHoover.php 7 years ago
menu_options.php
439 lines
1 <?php
2 if (!defined('WORDFENCE_VERSION')) { exit; }
3 $waf = wfWAF::getInstance();
4 $d = new wfDashboard(); unset($d->countriesNetwork);
5 $firewall = new wfFirewall();
6 $scanner = wfScanner::shared();
7 $config = $waf->getStorageEngine();
8 $wafURL = wfPage::pageURL(wfPage::PAGE_FIREWALL);
9 $wafConfigURL = network_admin_url('admin.php?page=WordfenceWAF&subpage=waf_options#configureAutoPrepend');
10 $wafRemoveURL = network_admin_url('admin.php?page=WordfenceWAF&subpage=waf_options#removeAutoPrepend');
11 /** @var array $wafData */
12
13 $backPage = new wfPage(wfPage::PAGE_FIREWALL);
14 if (isset($_GET['source']) && wfPage::isValidPage($_GET['source'])) {
15 $backPage = new wfPage($_GET['source']);
16 }
17 ?>
18 <script type="application/javascript">
19 (function($) {
20 WFAD.wafData = <?php echo json_encode($wafData); ?>;
21 WFAD.restoreWAFData = JSON.parse(JSON.stringify(WFAD.wafData)); //Copied into wafData when canceling changes
22
23 $(function() {
24 document.title = "<?php esc_attr_e('All Options', 'wordfence'); ?>" + " \u2039 " + WFAD.basePageName;
25
26 WFAD.wafConfigPageRender();
27
28 //Hash-based option block linking
29 if (window.location.hash) {
30 var hashes = WFAD.parseHashes();
31 var hash = hashes[hashes.length - 1];
32 var block = $('.wf-block[data-persistence-key="' + hash + '"]');
33 if (block.length) {
34 if (!block.hasClass('wf-active')) {
35 block.find('.wf-block-content').slideDown({
36 always: function() {
37 block.addClass('wf-active');
38 $('html, body').animate({
39 scrollTop: block.offset().top - 100
40 }, 1000);
41 }
42 });
43
44 WFAD.ajax('wordfence_saveDisclosureState', {name: block.data('persistenceKey'), state: true}, function() {}, function() {}, true);
45 }
46 else {
47 $('html, body').animate({
48 scrollTop: block.offset().top - 100
49 }, 1000);
50 }
51
52 history.replaceState('', document.title, window.location.pathname + window.location.search);
53 }
54 }
55 });
56
57 $(window).on('wfOptionsReset', function() {
58 WFAD.wafData = JSON.parse(JSON.stringify(WFAD.restoreWAFData));
59 WFAD.wafConfigPageRender();
60 });
61 })(jQuery);
62 </script>
63 <div class="wf-options-controls">
64 <div class="wf-row">
65 <div class="wf-col-xs-12">
66 <?php
67 $indexOptions = array(
68 'wf-option-apiKey' => __('License Key', 'wordfence'),
69 'wf-option-displayTopLevelOptions' => __('Display All Options menu item', 'wordfence'),
70 'wf-option-displayTopLevelBlocking' => __('Display Blocking menu item', 'wordfence'),
71 'wf-option-displayTopLevelLiveTraffic' => __('Display Live Traffic menu item', 'wordfence'),
72 'wf-option-autoUpdate' => __('Update Wordfence automatically when a new version is released?', 'wordfence'),
73 'wf-option-alertEmails' => __('Where to email alerts', 'wordfence'),
74 'wf-option-howGetIPs' => __('How does Wordfence get IPs', 'wordfence'),
75 'wf-option-howGetIPs-trusted-proxies' => __('Trusted Proxies', 'wordfence'),
76 'wf-option-other-hideWPVersion' => __('Hide WordPress version', 'wordfence'),
77 'wf-option-disableCodeExecutionUploads' => __('Disable Code Execution for Uploads directory', 'wordfence'),
78 'wf-option-liveActivityPauseEnabled' => __('Pause live updates when window loses focus', 'wordfence'),
79 'wf-option-actUpdateInterval' => __('Update interval in seconds', 'wordfence'),
80 'wf-option-other-bypassLitespeedNoabort' => __('Bypass the LiteSpeed "noabort" check', 'wordfence'),
81 'wf-option-deleteTablesOnDeact' => __('Delete Wordfence tables and data on deactivation', 'wordfence'),
82 'wf-option-notification-updatesNeeded' => __('Updates Needed (Plugin, Theme, or Core)', 'wordfence'),
83 'wf-option-notification-securityAlerts' => __('Security Alerts', 'wordfence'),
84 'wf-option-notification-promotions' => __('Promotions', 'wordfence'),
85 'wf-option-notification-blogHighlights' => __('Blog Highlights', 'wordfence'),
86 'wf-option-notification-productUpdates' => __('Product Updates', 'wordfence'),
87 'wf-option-notification-scanStatus' => __('Scan Status', 'wordfence'),
88 'wf-option-alertOn-update' => __('Email me when Wordfence is automatically updated', 'wordfence'),
89 'wf-option-alertOn-wordfenceDeactivated' => __('Email me if Wordfence is deactivated', 'wordfence'),
90 'wf-option-alertOn-wafDeactivated' => __('Email me if the Wordfence Web Application Firewall is turned off', 'wordfence'),
91 'wf-option-alertOn-scanIssues' => __('Alert me with scan results of this severity level or greater', 'wordfence'),
92 'wf-option-alertOn-block' => __('Alert when an IP address is blocked', 'wordfence'),
93 'wf-option-alertOn-loginLockout' => __('Alert when someone is locked out from login', 'wordfence'),
94 'wf-option-alertOn-lostPasswdForm' => __('Alert when the "lost password" form is used for a valid user', 'wordfence'),
95 'wf-option-alertOn-adminLogin' => __('Alert me when someone with administrator access signs in', 'wordfence'),
96 'wf-option-alertOn-firstAdminLoginOnly' => __('Only alert me when that administrator signs in from a new device or location', 'wordfence'),
97 'wf-option-alertOn-nonAdminLogin' => __('Alert me when a non-admin user signs in', 'wordfence'),
98 'wf-option-alertOn-firstNonAdminLoginOnly' => __('Only alert me when that user signs in from a new device or location', 'wordfence'),
99 'wf-option-wafAlertOnAttacks' => __('Alert me when there\'s a large increase in attacks detected on my site', 'wordfence'),
100 'wf-option-alert-maxHourly' => __('Maximum email alerts to send per hour', 'wordfence'),
101 'wf-option-email-summary-enabled' => __('Enable email summary', 'wordfence'),
102 'wf-option-email-summary-excluded-directories' => __('List of directories to exclude from recently modified file list', 'wordfence'),
103 'wf-option-email-summary-dashboard-widget-enabled' => __('Enable activity report widget on the WordPress dashboard', 'wordfence'),
104 'wf-option-wafStatus' => __('Web Application Firewall Status', 'wordfence'),
105 'wf-option-protectionMode' => __('Web Application Firewall Protection Level', 'wordfence'),
106 'wf-option-disableWAFBlacklistBlocking' => __('Real-Time IP Blacklist', 'wordfence'),
107 'wf-option-disableWAFIPBlocking' => __('Delay IP and Country blocking until after WordPress and plugins have loaded (only process firewall rules early)', 'wordfence'),
108 'wf-option-whitelisted' => __('Whitelisted IP addresses that bypass all rules', 'wordfence'),
109 'wf-option-whitelistedServices' => __('Whitelisted services', 'wordfence'),
110 'wf-option-bannedURLs' => __('Immediately block IPs that access these URLs', 'wordfence'),
111 'wf-option-wafAlertWhitelist' => __('Ignored IP addresses for Wordfence Web Application Firewall alerting', 'wordfence'),
112 'wf-option-wafRules' => __('Web Application Firewall Rules', 'wordfence'),
113 'wf-option-loginSecurityEnabled' => __('Enable brute force protection', 'wordfence'),
114 'wf-option-loginSec-maxFailures' => __('Lock out after how many login failures', 'wordfence'),
115 'wf-option-loginSec-maxForgotPasswd' => __('Lock out after how many forgot password attempts', 'wordfence'),
116 'wf-option-loginSec-countFailMins' => __('Count failures over what time period', 'wordfence'),
117 'wf-option-loginSec-lockoutMins' => __('Amount of time a user is locked out', 'wordfence'),
118 'wf-option-loginSec-lockInvalidUsers' => __('Immediately lock out invalid usernames', 'wordfence'),
119 'wf-option-loginSec-userBlacklist' => __('Immediately block the IP of users who try to sign in as these usernames', 'wordfence'),
120 'wf-option-loginSec-strongPasswds-enabled' => __('Enforce strong passwords', 'wordfence'),
121 'wf-option-loginSec-breachPasswds-enabled' => __('Prevent the use of passwords leaked in data breaches', 'wordfence'),
122 'wf-option-loginSec-maskLoginErrors' => __('Don\'t let WordPress reveal valid users in login errors', 'wordfence'),
123 'wf-option-loginSec-blockAdminReg' => __('Prevent users registering "admin" username if it doesn\'t exist', 'wordfence'),
124 'wf-option-loginSec-disableAuthorScan' => __('Prevent discovery of usernames through "/?author=N" scans, the oEmbed API, and the WordPress REST API', 'wordfence'),
125 'wf-option-other-blockBadPOST' => __('Block IPs who send POST requests with blank User-Agent and Referer', 'wordfence'),
126 'wf-option-blockCustomText' => __('Custom text shown on block pages', 'wordfence'),
127 'wf-option-other-pwStrengthOnUpdate' => __('Check password strength on profile update', 'wordfence'),
128 'wf-option-other-WFNet' => __('Participate in the Real-Time Wordfence Security Network', 'wordfence'),
129 'wf-option-firewallEnabled' => __('Enable Rate Limiting and Advanced Blocking', 'wordfence'),
130 'wf-option-blockFakeBots' => __('Immediately block fake Google crawlers', 'wordfence'),
131 'wf-option-neverBlockBG' => __('How should we treat Google\'s crawlers', 'wordfence'),
132 'wf-option-maxGlobalRequests' => __('If anyone\'s requests exceed', 'wordfence'),
133 'wf-option-maxRequestsCrawlers' => __('If a crawler\'s page views exceed', 'wordfence'),
134 'wf-option-max404Crawlers' => __('If a crawler\'s pages not found (404s) exceed', 'wordfence'),
135 'wf-option-maxRequestsHumans' => __('If a human\'s page views exceed', 'wordfence'),
136 'wf-option-max404Humans' => __('If a human\'s pages not found (404s) exceed', 'wordfence'),
137 'wf-option-blockedTime' => __('How long is an IP address blocked when it breaks a rule', 'wordfence'),
138 'wf-option-allowed404s' => __('Whitelisted 404 URLs', 'wordfence'),
139 'wf-option-wafWhitelist' => __('Web Application Firewall Whitelisted URLs', 'wordfence'),
140 'wf-option-ajaxWatcherDisabled-front' => __('Monitor background requests from an administrator\'s web browser for false positives (Front-end Website)', 'wordfence'),
141 'wf-option-ajaxWatcherDisabled-admin' => __('Monitor background requests from an administrator\'s web browser for false positives (Admin Panel)', 'wordfence'),
142 'wf-option-cbl-action' => __('What to do when we block someone visiting from a blocked country', 'wordfence'),
143 'wf-option-cbl-redirURL' => __('URL to redirect blocked countries to', 'wordfence'),
144 'wf-option-cbl-loggedInBlocked' => __('Block countries even if they are logged in', 'wordfence'),
145 'wf-option-cbl-bypassRedirURL' => __('If user from a blocked country hits the relative URL ____ then redirect that user to ____ and set a cookie that will bypass all country blocking', 'wordfence'),
146 'wf-option-cbl-bypassViewURL' => __('If user who is allowed to access the site views the relative URL ____ then set a cookie that will bypass country blocking in future in case that user hits the site from a blocked country', 'wordfence'),
147 'wf-option-scheduledScansEnabled' => __('Schedule Wordfence Scans', 'wordfence'),
148 'wf-option-scanType' => __('Scan Type', 'wordfence'),
149 'wf-option-scansEnabled-checkGSB' => __('Check if this website is on a domain blacklist', 'wordfence'),
150 'wf-option-spamvertizeCheck' => __('Check if this website is being &quot;Spamvertised&quot;', 'wordfence'),
151 'wf-option-checkSpamIP' => __('Check if this website IP is generating spam', 'wordfence'),
152 'wf-option-scansEnabled-checkHowGetIPs' => __('Scan for misconfigured How does Wordfence get IPs', 'wordfence'),
153 'wf-option-scansEnabled-checkReadableConfig' => __('Scan for publicly accessible configuration, backup, or log files', 'wordfence'),
154 'wf-option-scansEnabled-suspectedFiles' => __('Scan for publicly accessible quarantined files', 'wordfence'),
155 'wf-option-scansEnabled-core' => __('Scan core files against repository versions for changes', 'wordfence'),
156 'wf-option-scansEnabled-themes' => __('Scan theme files against repository versions for changes', 'wordfence'),
157 'wf-option-scansEnabled-plugins' => __('Scan plugin files against repository versions for changes', 'wordfence'),
158 'wf-option-scansEnabled-coreUnknown' => __('Scan wp-admin and wp-includes for files not bundled with WordPress', 'wordfence'),
159 'wf-option-scansEnabled-malware' => __('Scan for signatures of known malicious files', 'wordfence'),
160 'wf-option-scansEnabled-fileContents' => __('Scan file contents for backdoors, trojans and suspicious code', 'wordfence'),
161 'wf-option-scansEnabled-fileContentsGSB' => __('Scan file contents for malicious URLs', 'wordfence'),
162 'wf-option-scansEnabled-posts' => __('Scan posts for known dangerous URLs and suspicious content', 'wordfence'),
163 'wf-option-scansEnabled-comments' => __('Scan comments for known dangerous URLs and suspicious content', 'wordfence'),
164 'wf-option-scansEnabled-suspiciousOptions' => __('Scan WordPress core, plugin, and theme options for known dangerous URLs and suspicious content', 'wordfence'),
165 'wf-option-scansEnabled-oldVersions' => __('Scan for out of date, abandoned, and vulnerable plugins, themes, and WordPress versions', 'wordfence'),
166 'wf-option-scansEnabled-suspiciousAdminUsers' => __('Scan for admin users created outside of WordPress', 'wordfence'),
167 'wf-option-scansEnabled-passwds' => __('Check the strength of passwords', 'wordfence'),
168 'wf-option-scansEnabled-diskSpace' => __('Monitor disk space', 'wordfence'),
169 'wf-option-scansEnabled-wafStatus' => __('Monitor Web Application Firewall status', 'wordfence'),
170 'wf-option-scansEnabled-dns' => __('Scan for unauthorized DNS changes', 'wordfence'),
171 'wf-option-other-scanOutside' => __('Scan files outside your WordPress installation', 'wordfence'),
172 'wf-option-scansEnabled-scanImages' => __('Scan images, binary, and other files as if they were executable', 'wordfence'),
173 'wf-option-scansEnabled-highSense' => __('Enable HIGH SENSITIVITY scanning (may give false positives)', 'wordfence'),
174 'wf-option-lowResourceScansEnabled' => __('Use low resource scanning (reduces server load by lengthening the scan duration)', 'wordfence'),
175 'wf-option-scan-maxIssues' => __('Limit the number of issues sent in the scan results email', 'wordfence'),
176 'wf-option-scan-maxDuration' => __('Time limit that a scan can run in seconds', 'wordfence'),
177 'wf-option-maxMem' => __('How much memory should Wordfence request when scanning', 'wordfence'),
178 'wf-option-maxExecutionTime' => __('Maximum execution time for each scan stage', 'wordfence'),
179 'wf-option-scan-exclude' => __('Exclude files from scan that match these wildcard patterns', 'wordfence'),
180 'wf-option-scan-include-extra' => __('Additional scan signatures', 'wordfence'),
181 'wf-option-liveTrafficEnabled' => __('Traffic logging mode (Live Traffic)', 'wordfence'),
182 'wf-option-liveTraf-ignorePublishers' => __('Don\'t log signed-in users with publishing access', 'wordfence'),
183 'wf-option-liveTraf-ignoreUsers' => __('List of comma separated usernames to ignore', 'wordfence'),
184 'wf-option-liveTraf-ignoreIPs' => __('List of comma separated IP addresses to ignore', 'wordfence'),
185 'wf-option-liveTraf-ignoreUA' => __('Browser user-agent to ignore', 'wordfence'),
186 'wf-option-liveTraf-maxRows' => __('Amount of Live Traffic data to store (number of rows)', 'wordfence'),
187 'wf-option-liveTraf-maxAge' => __('Maximum days to keep Live Traffic data', 'wordfence'),
188 'wf-option-exportOptions' => __('Export this site\'s Wordfence options for import on another site', 'wordfence'),
189 'wf-option-importOptions' => __('Import Wordfence options from another site using a token', 'wordfence'),
190 );
191
192 if (wfCredentialsController::useLegacy2FA()) {
193 $indexOptions['wf-option-loginSec-requireAdminTwoFactor'] = __('Require Cellphone Sign-in for all Administrators', 'wordfence');
194 $indexOptions['wf-option-loginSec-enableSeparateTwoFactor'] = __('Enable Separate Prompt for Two Factor Code', 'wordfence');
195 }
196
197 $indexOptions = array_merge($indexOptions, wfModuleController::shared()->optionIndexes);
198
199 echo wfView::create('options/block-all-options-controls', array(
200 'showIcon' => false,
201 'indexOptions' => $indexOptions,
202 'restoreDefaultsSection' => wfConfig::OPTIONS_TYPE_ALL,
203 'restoreDefaultsMessage' => __('Are you sure you want to restore the default settings? This will undo any custom changes you have made to the options on this page. If you have manually disabled any rules or added any custom whitelisted URLs, those changes will not be overwritten.', 'wordfence'),
204 ))->render();
205 ?>
206 </div>
207 </div>
208 </div>
209 <div class="wf-options-controls-spacer"></div>
210 <?php
211 if (wfOnboardingController::shouldShowAttempt3()) {
212 echo wfView::create('onboarding/disabled-overlay')->render();
213 echo wfView::create('onboarding/banner')->render();
214 }
215 else if (wfConfig::get('touppPromptNeeded')) {
216 echo wfView::create('gdpr/disabled-overlay')->render();
217 echo wfView::create('gdpr/banner')->render();
218 }
219 ?>
220 <div class="wrap wordfence">
221 <div class="wf-container-fluid">
222 <?php
223 if (function_exists('network_admin_url') && is_multisite()) {
224 $firewallURL = network_admin_url('admin.php?page=WordfenceWAF#top#waf');
225 $blockingURL = network_admin_url('admin.php?page=WordfenceWAF#top#blocking');
226 }
227 else {
228 $firewallURL = admin_url('admin.php?page=WordfenceWAF#top#waf');
229 $blockingURL = admin_url('admin.php?page=WordfenceWAF#top#blocking');
230 }
231 ?>
232 <div class="wf-row">
233 <div class="wf-col-xs-12">
234 <div class="wp-header-end"></div>
235 </div>
236 </div>
237 <div class="wf-row">
238 <div class="<?php echo wfStyle::contentClasses(); ?>">
239 <div id="wf-all-options" class="wf-fixed-tab-content">
240 <?php
241 $stateKeys = array(
242 'wf-unified-global-options-license',
243 'wf-unified-global-options-view-customization',
244 'wf-unified-global-options-general',
245 'wf-unified-global-options-dashboard',
246 'wf-unified-global-options-alert',
247 'wf-unified-global-options-email-summary',
248 'wf-unified-waf-options-basic',
249 'wf-unified-waf-options-advanced',
250 'wf-unified-waf-options-bruteforce',
251 'wf-unified-waf-options-ratelimiting',
252 'wf-unified-waf-options-whitelisted',
253 'wf-unified-blocking-options-country',
254 'wf-unified-scanner-options-schedule',
255 'wf-unified-scanner-options-basic',
256 'wf-unified-scanner-options-general',
257 'wf-unified-scanner-options-performance',
258 'wf-unified-scanner-options-custom',
259 'wf-unified-2fa-options',
260 'wf-unified-live-traffic-options',
261 );
262
263 echo wfView::create('options/options-title', array(
264 'title' => __('All Options', 'wordfence'),
265 'stateKeys' => $stateKeys,
266 'showIcon' => true,
267 ))->render();
268 ?>
269
270 <p><?php _e('These options are also available throughout the plugin pages, in the relevant sections. This page is provided for easier setup for experienced Wordfence users.', 'wordfence'); ?></p>
271
272 <?php
273 echo wfView::create('common/section-subtitle', array(
274 'title' => __('Wordfence Global Options', 'wordfence'),
275 'showIcon' => false,
276 ))->render();
277
278 echo wfView::create('dashboard/options-group-license', array(
279 'stateKey' => 'wf-unified-global-options-license',
280 ))->render();
281
282 echo wfView::create('dashboard/options-group-view-customization', array(
283 'stateKey' => 'wf-unified-global-options-view-customization',
284 ))->render();
285
286 echo wfView::create('dashboard/options-group-general', array(
287 'stateKey' => 'wf-unified-global-options-general',
288 ))->render();
289
290 echo wfView::create('dashboard/options-group-dashboard', array(
291 'stateKey' => 'wf-unified-global-options-dashboard',
292 ))->render();
293
294 echo wfView::create('dashboard/options-group-alert', array(
295 'stateKey' => 'wf-unified-global-options-alert',
296 ))->render();
297
298 echo wfView::create('dashboard/options-group-email-summary', array(
299 'stateKey' => 'wf-unified-global-options-email-summary',
300 ))->render();
301 ?>
302
303 <?php
304 echo wfView::create('common/section-subtitle', array(
305 'title' => __('Firewall Options', 'wordfence'),
306 'showIcon' => false,
307 ))->render();
308
309 echo wfView::create('waf/options-group-basic-firewall', array(
310 'firewall' => $firewall,
311 'waf' => $waf,
312 'stateKey' => 'wf-unified-waf-options-basic',
313 ))->render();
314
315 echo wfView::create('waf/options-group-advanced-firewall', array(
316 'firewall' => $firewall,
317 'waf' => $waf,
318 'stateKey' => 'wf-unified-waf-options-advanced',
319 ))->render();
320
321 echo wfView::create('waf/options-group-brute-force', array(
322 'firewall' => $firewall,
323 'waf' => $waf,
324 'stateKey' => 'wf-unified-waf-options-bruteforce',
325 ))->render();
326
327 echo wfView::create('waf/options-group-rate-limiting', array(
328 'firewall' => $firewall,
329 'waf' => $waf,
330 'stateKey' => 'wf-unified-waf-options-ratelimiting',
331 ))->render();
332
333 echo wfView::create('waf/options-group-whitelisted', array(
334 'firewall' => $firewall,
335 'waf' => $waf,
336 'stateKey' => 'wf-unified-waf-options-whitelisted',
337 ))->render();
338 ?>
339
340 <?php
341 echo wfView::create('common/section-subtitle', array(
342 'title' => __('Blocking Options', 'wordfence'),
343 'showIcon' => false,
344 ))->render();
345
346 echo wfView::create('blocking/options-group-advanced-country', array(
347 'stateKey' => 'wf-unified-blocking-options-country',
348 ))->render();
349 ?>
350
351 <?php
352 echo wfView::create('common/section-subtitle', array(
353 'title' => __('Scan Options', 'wordfence'),
354 'showIcon' => false,
355 ))->render();
356
357 echo wfView::create('scanner/options-group-scan-schedule', array(
358 'scanner' => $scanner,
359 'stateKey' => 'wf-unified-scanner-options-schedule',
360 ))->render();
361
362 echo wfView::create('scanner/options-group-basic', array(
363 'scanner' => $scanner,
364 'stateKey' => 'wf-unified-scanner-options-basic',
365 ))->render();
366
367 echo wfView::create('scanner/options-group-general', array(
368 'scanner' => $scanner,
369 'stateKey' => 'wf-unified-scanner-options-general',
370 ))->render();
371
372 echo wfView::create('scanner/options-group-performance', array(
373 'scanner' => $scanner,
374 'stateKey' => 'wf-unified-scanner-options-performance',
375 ))->render();
376
377 echo wfView::create('scanner/options-group-advanced', array(
378 'scanner' => $scanner,
379 'stateKey' => 'wf-unified-scanner-options-custom',
380 ))->render();
381 ?>
382
383 <?php
384 echo wfView::create('common/section-subtitle', array(
385 'title' => __('Tool Options', 'wordfence'),
386 'showIcon' => false,
387 ))->render();
388
389 if (wfCredentialsController::useLegacy2FA()) {
390 echo wfView::create('tools/options-group-2fa', array(
391 'stateKey' => 'wf-unified-2fa-options',
392 ))->render();
393 }
394
395 echo wfView::create('tools/options-group-live-traffic', array(
396 'stateKey' => 'wf-unified-live-traffic-options',
397 'hideShowMenuItem' => true,
398 ))->render();
399 ?>
400
401 <div class="wf-row">
402 <div class="wf-col-xs-12">
403 <div class="wf-block wf-always-active" data-persistence-key="">
404 <div class="wf-block-header">
405 <div class="wf-block-header-content">
406 <div class="wf-block-title">
407 <strong><?php _e('Import/Export Options', 'wordfence'); ?></strong>
408 </div>
409 </div>
410 </div>
411 <div class="wf-block-content">
412 <ul class="wf-block-list">
413 <li>
414 <ul class="wf-flex-horizontal wf-flex-vertical-xs wf-flex-full-width wf-add-top wf-add-bottom">
415 <li><?php _e('Importing and exporting of options is available on the Tools page', 'wordfence'); ?></li>
416 <li class="wf-right wf-left-xs wf-padding-add-top-xs-small">
417 <a href="<?php echo esc_url(network_admin_url('admin.php?page=WordfenceTools&subpage=importexport')); ?>" class="wf-btn wf-btn-primary wf-btn-callout-subtle" id="wf-export-options"><?php _e('Import/Export Options', 'wordfence'); ?></a>
418 </li>
419 </ul>
420 <input type="hidden" id="wf-option-exportOptions">
421 <input type="hidden" id="wf-option-importOptions">
422 </li>
423 </ul>
424 </div>
425 </div>
426 </div>
427 </div> <!-- end import options -->
428 <?php
429 $moduleOptionBlocks = wfModuleController::shared()->optionBlocks;
430 foreach ($moduleOptionBlocks as $b) {
431 echo $b;
432 }
433 ?>
434 </div> <!-- end options block -->
435 </div> <!-- end content block -->
436 </div> <!-- end row -->
437 </div> <!-- end container -->
438 </div>
439