PluginProbe ʕ •ᴥ•ʔ
Wordfence Security – Firewall, Malware Scan, and Login Security / 6.1.15
Wordfence Security – Firewall, Malware Scan, and Login Security v6.1.15
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_scan.php
wordfence / lib Last commit date
Diff 11 years ago .htaccess 14 years ago Diff.php 14 years ago GeoIP.dat 9 years ago GeoIPv6.dat 9 years ago IPTraf.php 9 years ago compat.php 10 years ago conntest.php 11 years ago cronview.php 10 years ago dashboard.php 9 years ago dbview.php 11 years ago diffResult.php 11 years ago email_genericAlert.php 9 years ago email_newIssues.php 9 years ago email_passwdChanged.php 10 years ago email_pleaseChangePasswd.php 10 years ago email_unlockRequest.php 11 years ago menuHeader.php 12 years ago menu_activity.php 9 years ago menu_blockedIPs.php 9 years ago menu_countryBlocking.php 9 years ago menu_diagnostic.php 9 years ago menu_options.php 9 years ago menu_passwd.php 9 years ago menu_rangeBlocking.php 9 years ago menu_scan.php 9 years ago menu_scanSchedule.php 9 years ago menu_sitePerf.php 11 years ago menu_sitePerfStats.php 9 years ago menu_twoFactor.php 9 years ago menu_waf.php 9 years ago menu_whois.php 11 years ago pageTitle.php 11 years ago schedWeekEntry.php 12 years ago sysinfo.php 10 years ago unknownFiles.php 11 years ago viewFullActivityLog.php 10 years ago wf503.php 10 years ago wfAPI.php 9 years ago wfAction.php 14 years ago wfActivityReport.php 10 years ago wfArray.php 13 years ago wfBrowscap.php 12 years ago wfBrowscapCache.php 10 years ago wfBulkCountries.php 13 years ago wfCache.php 9 years ago wfConfig.php 9 years ago wfCountryMap.php 13 years ago wfCrawl.php 10 years ago wfCrypt.php 11 years ago wfDB.php 10 years ago wfDiagnostic.php 10 years ago wfDict.php 14 years ago wfDirectoryIterator.php 11 years ago wfGeoIP.php 9 years ago wfHelperBin.php 11 years ago wfHelperString.php 11 years ago wfIPWhitelist.php 9 years ago wfIssues.php 9 years ago wfLockedOut.php 13 years ago wfLog.php 9 years ago wfRate.php 10 years ago wfScan.php 9 years ago wfScanEngine.php 9 years ago wfSchema.php 10 years ago wfUnlockMsg.php 10 years ago wfUpdateCheck.php 9 years ago wfUtils.php 9 years ago wfView.php 10 years ago wfViewResult.php 11 years ago wordfenceClass.php 9 years ago wordfenceConstants.php 9 years ago wordfenceHash.php 9 years ago wordfenceScanner.php 9 years ago wordfenceURLHoover.php 9 years ago
menu_scan.php
1161 lines
1 <?php
2 $sigUpdateTime = wfConfig::get('signatureUpdateTime');
3 ?>
4 <div class="wordfenceModeElem" id="wordfenceMode_scan"></div>
5 <div class="wrap wordfence">
6
7 <?php
8 $nonce = filter_input(INPUT_GET, 'nonce', FILTER_SANITIZE_STRING);
9 if (!empty($promptForCredentials) && !empty($wpFilesystemActionCallback) && is_callable($wpFilesystemActionCallback)):
10 if (wp_verify_nonce($nonce, 'wp-ajax')) {
11 $relaxedOwnership = true;
12 $homePath = get_home_path();
13
14 if (!wordfence::requestFilesystemCredentials($filesystemCredentialsAdminURL, $homePath, $relaxedOwnership, true)) {
15 echo '</div>';
16 return;
17 }
18
19 call_user_func_array($wpFilesystemActionCallback,
20 !empty($wpFilesystemActionCallbackArgs) && is_array($wpFilesystemActionCallbackArgs) ? $wpFilesystemActionCallbackArgs : array());
21 } else {
22 printf("Security token has expired. Click <a href='%s'>here</a> to return to the scan page.", esc_url(network_admin_url('admin.php?page=Wordfence')));
23 }
24
25 ?>
26
27 <?php else: ?>
28
29 <?php require('menuHeader.php'); ?>
30 <?php $pageTitle = "Wordfence Scan"; $helpLink="http://docs.wordfence.com/en/Wordfence_scanning"; $helpLabel="Learn more about scanning"; include('pageTitle.php'); ?>
31 <div class="wordfenceWrap">
32 <div class="wordfenceScanButton">
33 <table border="0" cellpadding="0" cellspacing="0" style="width: 800px;">
34 <tr>
35 <td style="width: 250px; padding-top: 10px;">
36 <button type="button" id="wfStartScanButton1" class="wfStartScanButton button-primary" onclick="wordfenceAdmin.startScan();">Start a Wordfence Scan</button><br />
37 &nbsp;&nbsp;&nbsp;&nbsp;<a href="#" onclick="WFAD.killScan(); return false;" style="font-size: 10px; color: #AAA;">Click to kill the current scan.</a>
38 </td>
39 <td>
40 <div style="border: 1px solid #CCC; padding: 4px;">
41 <a href="http://docs.wordfence.com/en/Wordfence_scanning" target="_blank" class="wfhelp"></a><a href="http://docs.wordfence.com/en/Wordfence_scanning" target="_blank">Read our scanning documentation</a>. You can also <a href="#" onclick="WFAD.startTourAgain(); return false;">start the tour again</a>, <a href="http://www.wordfence.com/gnl1listSubscr/subscribe-to-the-wordfence-email-list/" target="_blank">subscribe to get WordPress Security Alerts and Product News</a> or <a target="_blank" href="http://support.wordfence.com/">visit our support website help.</a> Love Wordfence? You can help by doing two simple things: <a href="http://wordpress.org/extend/plugins/wordfence/" target="_blank">Go to WordPress.org now and give this plugin a 5&#9733; rating</a>. Blog about Wordfence and link to the <a href="http://wordpress.org/extend/plugins/wordfence/" target="_blank">plugin page</a> or <a href="http://www.wordfence.com/gnl1scanTopHome/" target="_blank">www.wordfence.com</a>. Spreading the word helps us keep the best features free.
42 </div>
43 </td>
44 </tr>
45 </table>
46 </div>
47 <div>
48 <div class="consoleHead">
49 <span class="consoleHeadText">Scan Summary</span>
50 </div>
51 <?php
52 $events = wordfence::getLog()->getStatusEvents(0);
53 ?>
54 <div class="bevelDiv1 consoleOuter"><div class="bevelDiv2"><div class="bevelDiv3 consoleInner" id="consoleSummary">
55 <?php if(sizeof($events) < 1){ ?>
56 <div style="width: 500px;">
57 Welcome to Wordfence!<br /><br />
58 To get started, simply click the "Scan" button at the top of this page to start your first scan.
59 </div>
60 <?php } ?>
61 </div></div></div>
62 <?php if (wfConfig::get('isPaid')) { ?>
63 <?php if (wfConfig::get('scansEnabled_fileContents')): ?>
64 <div style="width: 800px; ">
65 <p class="wf-success">You are running the Premium version of the Threat Defense Feed which is
66 updated in real-time as new threats emerge.</p>
67 </div>
68 <?php else: ?>
69 <div class="wfSecure">Premium scanning enabled</div>
70 <?php endif ?>
71 <?php } else { ?>
72 <?php if (wfConfig::get('scansEnabled_fileContents')): ?>
73 <p>You are running the Wordfence Community Scan signatures.
74 <!-- <em id="wf-scan-sigs-last-update"></em>-->
75 </p>
76 <?php endif ?>
77
78 <div class="wf-premium-callout" style="margin: 20px 0 20px 2px;width: 765px;">
79 <h3>The Wordfence Scan alerts you if you've been hacked</h3>
80
81 <p>As new threats emerge, the Threat Defense Feed is updated to detect these new hacks. The Premium
82 version of the Threat Defense Feed is updated in real-time protecting you immediately. As a free
83 user <strong>you are receiving the community version</strong> of the feed which is updated 30 days later. Upgrade
84 now for just $8.25 per month!</p>
85 <p class="center"><a class="button button-primary"
86 href="https://www.wordfence.com/gnl1scanUpgrade/wordfence-signup/">
87 Get Premium</a></p>
88 </div>
89
90 <?php } ?>
91
92 <?php if ($sigUpdateTime ): ?>
93 <script>
94 WFAD.updateSignaturesTimestamp(<?php echo (int) $sigUpdateTime ?>);
95 </script>
96 <?php endif ?>
97
98 <div class="consoleHead" style="margin-top: 20px;">
99 <span class="consoleHeadText">Scan Detailed Activity</span>
100 <a href="#" class="wfALogMailLink" onclick="WFAD.emailActivityLog(); return false;">Email activity log</a>
101 </div>
102 <div class="bevelDiv1 consoleOuter"><div class="bevelDiv2"><div class="bevelDiv3 consoleInner" id="consoleActivity">
103 <?php
104 if(sizeof($events) > 0){
105 $debugOn = wfConfig::get('debugOn', false);
106 $newestItem = 0;
107 $sumEvents = array();
108 $timeOffset = 3600 * get_option('gmt_offset');
109 foreach($events as $e){
110 if(strpos($e['msg'], 'SUM_') !== 0){
111 if( $debugOn || $e['level'] < 4){
112 $typeClass = '';
113 if($debugOn){
114 $typeClass = ' wf' . $e['type'];
115 }
116 echo '<div class="wfActivityLine' . $typeClass . '">[' . date('M d H:i:s', $e['ctime'] + $timeOffset) . ']&nbsp;' . $e['msg'] . '</div>';
117 }
118 }
119 $newestItem = $e['ctime'];
120 }
121
122 echo '<script type="text/javascript">WFAD.lastALogCtime = ' . $newestItem . '; WFAD.processActArray(' . json_encode(wordfence::getLog()->getSummaryEvents()) . ');</script>';
123 } else { ?>
124 A live stream of what Wordfence is busy with right now will appear in this box.
125
126 <?php
127 }
128 ?>
129 </div></div></div>
130 <div style="position: relative; width: 803px;">
131 &nbsp;
132 <a href="#" target="_blank" class="wfALogViewLink" id="wfALogViewLink">View activity log</a>
133 </div>
134 <div style="margin: 0 0 20px 5px; width: 795px;">
135 <strong>Docs:</strong> Our <a href="http://support.wordfence.com/" target="_blank">Support Site</a> can answer many common (and some less common) questions. It also includes our priority support ticketing system for Premium Wordfence users.
136 <?php $unknownFilesLink = wfUtils::siteURLRelative() . '?_wfsf=unknownFiles&nonce=' . wp_create_nonce('wp-ajax'); ?>
137 </div>
138
139 <div class="wf-premium-callout" style="margin: 20px 0 20px 2px;width: 765px;">
140 <h3>Have you been hacked?</h3>
141 <p>If your site has been compromised by attackers it is vitally important to restore it to working
142 order as quickly as possible. But cleaning up a hacked website can be difficult if you've never
143 done it before, sometimes it takes professional intervention. Let our team of seasoned Security
144 Analysts resolve it for you quickly and professionally.</p>
145 <p class="center"><a class="button button-primary"
146 href="https://www.wordfence.com/gnl1scanGetHelp/wordfence-site-cleanings/">
147 Get Help</a></p>
148 </div>
149
150
151 </div>
152 <div style="margin-top: 20px;">
153 <div id="wfTabs">
154 <a href="#" id="wfNewIssuesTab" class="wfTab2 wfTabSwitch selected" onclick="wordfenceAdmin.switchIssuesTab(this, 'new'); return false;">New Issues</a>
155 <a href="#" class="wfTab2 wfTabSwitch" onclick="wordfenceAdmin.switchIssuesTab(this, 'ignored'); return false;">Ignored Issues</a>
156 </div>
157 <div class="wfTabsContainer">
158 <div id="wfIssues_new" class="wfIssuesContainer">
159 <h2>New Issues</h2>
160 <?php if (wfConfig::get('scansEnabled_highSense')): ?>
161 <div class="wf-notice">
162 <em>HIGH SENSITIVITY scanning is enabled, it may produce false positives</em>
163 </div>
164 <?php endif ?>
165 <p>
166 The list below shows new problems or warnings that Wordfence found with your site.
167 If you have fixed all the issues below, you can <a href="#" onclick="WFAD.updateAllIssues('deleteNew'); return false;">click here to mark all new issues as fixed</a>.
168 You can also <a href="#" onclick="WFAD.updateAllIssues('ignoreAllNew'); return false;">ignore all new issues</a> which will exclude all issues listed below from future scans.
169 </p>
170 <p>
171 <a href="#" onclick="jQuery('#wfBulkOps').toggle(); return false;">Bulk operation&raquo;&raquo;</a>
172 <div id="wfBulkOps" style="display: none;">
173 <input type="button" name="but2" value="Select All Repairable files" onclick="jQuery('input.wfrepairCheckbox').prop('checked', true); return false;" />
174 &nbsp;<input type="button" name="but1" value="Bulk Repair Selected Files" onclick="WFAD.bulkOperation('repair'); return false;" />
175 <br />
176 <br />
177 <input type="button" name="but2" value="Select All Deletable files" onclick="jQuery('input.wfdelCheckbox').prop('checked', true); return false;" />
178 &nbsp;<input type="button" name="but1" value="Bulk Delete Selected Files" onclick="WFAD.bulkOperation('del'); return false;" />
179 </div>
180
181 </p>
182 <div id="wfIssues_dataTable_new">
183 </div>
184 </div>
185 <div id="wfIssues_ignored" class="wfIssuesContainer">
186 <h2>Ignored Issues</h2>
187 <p>
188 The list below shows issues that you know about and have chosen to ignore.
189 You can <a href="#" onclick="WFAD.updateAllIssues('deleteIgnored'); return false;">click here to clear all ignored issues</a>
190 which will cause all issues below to be re-scanned by Wordfence in the next scan.
191 </p>
192 <div id="wfIssues_dataTable_ignored"></div>
193 </div>
194 </div>
195 </div>
196 </div>
197 <?php endif ?>
198
199 </div>
200 <script type="text/x-jquery-template" id="issueTmpl_configReadable">
201 <div>
202 <div class="wfIssue">
203 <h2>${shortMsg}</h2>
204 <table border="0" class="wfIssue" cellspacing="0" cellpadding="0">
205 <tr>
206 <th>URL:</th>
207 <td><a href="${data.url}" target="_blank">${data.url}</a></td>
208 <tr>
209 <th>Severity:</th>
210 <td>{{if severity == '1'}}Critical{{else}}Warning{{/if}}</td>
211 </tr>
212 <tr>
213 <th>Status</th>
214 <td>
215 {{if status == 'new' }}New{{/if}}
216 {{if status == 'ignoreP' || status == 'ignoreC' }}Ignored{{/if}}
217 </td>
218 </tr>
219 </table>
220 <p>
221 {{html longMsg}}
222 </p>
223 <div class="wfIssueOptions">
224 <strong>Tools:</strong>
225 {{if data.fileExists}}
226 <a target="_blank" href="${WFAD.makeViewFileLink(data.file)}">View the file</a>
227 {{/if}}
228 <a href="#" onclick="WFAD.hideFile('${id}', 'delete'); return false;">Hide this file in <em>.htaccess</em></a>
229 {{if data.canDelete}}
230 <a href="#" onclick="WFAD.deleteFile('${id}'); return false;">Delete this file (can't be undone).</a>
231 <p>
232 <label><input type="checkbox" class="wfdelCheckbox" value="${id}" />&nbsp;Select for bulk delete</label>
233 </p>
234 {{/if}}
235 </div>
236 <div class="wfIssueOptions">
237 {{if status == 'new'}}
238 <strong>Resolve:</strong>
239 <a href="#" onclick="WFAD.updateIssueStatus('${id}', 'delete'); return false;">I have fixed this issue</a>
240 <a href="#" onclick="WFAD.updateIssueStatus('${id}', 'ignoreC'); return false;">Ignore this issue</a>
241 {{/if}}
242 {{if status == 'ignoreC' || status == 'ignoreP'}}
243 <a href="#" onclick="WFAD.updateIssueStatus('${id}', 'delete'); return false;">Stop ignoring this issue</a>
244 {{/if}}
245 </div>
246 </div>
247 </div>
248 </script>
249 <script type="text/x-jquery-template" id="issueTmpl_wpscan_fullPathDiscl">
250 <div>
251 <div class="wfIssue">
252 <h2>${shortMsg}</h2>
253 <p>
254 <table border="0" class="wfIssue" cellspacing="0" cellpadding="0">
255 <tr><th>URL:</th><td><a href="${data.url}" target="_blank">${data.url}</a></td>
256 <tr><th>Severity:</th><td>{{if severity == '1'}}Critical{{else}}Warning{{/if}}</td></tr>
257 <tr><th>Status</th><td>
258 {{if status == 'new' }}New{{/if}}
259 {{if status == 'ignoreP' || status == 'ignoreC' }}Ignored{{/if}}
260 </td></tr>
261 </table>
262 </p>
263 <p>
264 {{html longMsg}}
265 </p>
266 <div class="wfIssueOptions">
267 {{if (status == 'new')}}
268 <strong>Resolve:</strong>
269 <?php if (!wfUtils::isNginx()): ?>
270 <a href="#" onclick="WFAD.fixFPD('${id}'); return false;">Fix this issue</a>
271 <?php endif ?>
272 <a href="#" onclick="WFAD.updateIssueStatus('${id}', 'delete'); return false;">I have fixed this issue</a>
273 <a href="#" onclick="WFAD.updateIssueStatus('${id}', 'ignoreC'); return false;">Ignore this issue</a>
274 {{/if}}
275 {{if status == 'ignoreC' || status == 'ignoreP'}}
276 <a href="#" onclick="WFAD.updateIssueStatus('${id}', 'delete'); return false;">Stop ignoring this issue</a>
277 {{/if}}
278 </div>
279 {{if (status == 'new')}}
280 <div class="wfIssueOptions">
281 <strong style="width: auto;">Manual Fix:</strong>
282 &nbsp;
283 Set <code>display_errors</code> to <code>Off</code> in your php.ini file.
284 </div>
285 {{/if}}
286
287 </div>
288 </div>
289 </script>
290 <script type="text/x-jquery-template" id="issueTmpl_wpscan_directoryList">
291 <div>
292 <div class="wfIssue">
293 <h2>${shortMsg}</h2>
294 <p>
295 <table border="0" class="wfIssue" cellspacing="0" cellpadding="0">
296 <tr><th>URL:</th><td><a href="${data.url}" target="_blank">${data.url}</a></td>
297 <tr><th>Severity:</th><td>{{if severity == '1'}}Critical{{else}}Warning{{/if}}</td></tr>
298 <tr><th>Status</th><td>
299 {{if status == 'new' }}New{{/if}}
300 {{if status == 'ignoreP' || status == 'ignoreC' }}Ignored{{/if}}
301 </td></tr>
302 </table>
303 </p>
304 <p>
305 {{html longMsg}}
306 </p>
307
308 <div class="wfIssueOptions">
309 {{if (status == 'new')}}
310 <strong>Resolve:</strong>
311 <?php if (!wfUtils::isNginx()): ?>
312 <a href="#" onclick="WFAD.disableDirectoryListing('${id}'); return false;">Fix this issue</a>
313 <?php endif ?>
314 <a href="#" onclick="WFAD.updateIssueStatus('${id}', 'delete'); return false;">I have fixed this issue</a>
315 <a href="#" onclick="WFAD.updateIssueStatus('${id}', 'ignoreC'); return false;">Ignore this issue</a>
316 {{/if}}
317 {{if status == 'ignoreC' || status == 'ignoreP'}}
318 <a href="#" onclick="WFAD.updateIssueStatus('${id}', 'delete'); return false;">Stop ignoring this issue</a>
319 {{/if}}
320 </div>
321 <?php if (!wfUtils::isNginx()): ?>
322 {{if (status == 'new')}}
323 <div class="wfIssueOptions">
324 <strong style="width: auto;">Manual Fix:</strong>
325 &nbsp;
326 Add <code>Options -Indexes</code> to your .htaccess file.
327 </div>
328 {{/if}}
329 <?php endif ?>
330
331 </div>
332 </div>
333 </script>
334 <script type="text/x-jquery-template" id="issueTmpl_wfThemeUpgrade">
335 <div>
336 <div class="wfIssue">
337 <h2>${shortMsg}</h2>
338 <p>
339 <table border="0" class="wfIssue" cellspacing="0" cellpadding="0">
340 <tr><th>Theme Name:</th><td>${data.name}</td></tr>
341 <tr><th>Current Theme Version:</th><td>${data.version}</td></tr>
342 <tr><th>New Theme Version:</th><td>${data.newVersion}</td></tr>
343 <tr><th>Theme URL:</th><td><a href="${data.URL}" target="_blank">${data.URL}</a></td></tr>
344 <tr><th>Severity:</th><td>{{if severity == '1'}}Critical{{else}}Warning{{/if}}</td></tr>
345 <tr><th>Status</th><td>
346 {{if status == 'new' }}New{{/if}}
347 {{if status == 'ignoreP' || status == 'ignoreC' }}Ignored{{/if}}
348 </td></tr>
349 </table>
350 </p>
351 <p>
352 {{html longMsg}}
353 <a href="<?php echo get_admin_url() . 'update-core.php'; ?>">Click here to update now</a>.
354 </p>
355 <div class="wfIssueOptions">
356 {{if (status == 'new')}}
357 <strong>Resolve:</strong>
358 <a href="#" onclick="WFAD.updateIssueStatus('${id}', 'delete'); return false;">I have fixed this issue</a>
359 <a href="#" onclick="WFAD.updateIssueStatus('${id}', 'ignoreC'); return false;">Ignore this issue</a>
360 {{/if}}
361 {{if status == 'ignoreC' || status == 'ignoreP'}}
362 <a href="#" onclick="WFAD.updateIssueStatus('${id}', 'delete'); return false;">Stop ignoring this issue</a>
363 {{/if}}
364 </div>
365 </div>
366 </div>
367 </script>
368
369 <script type="text/x-jquery-template" id="issueTmpl_wfPluginUpgrade">
370 <div>
371 <div class="wfIssue">
372 <h2>${shortMsg}</h2>
373 <p>
374 <table border="0" class="wfIssue" cellspacing="0" cellpadding="0">
375 <tr><th>Plugin Name:</th><td>${data.Name}</td></tr>
376 {{if data.PluginURI}}<tr><th>Plugin Website:</th><td><a href="${data.PluginURI}" target="_blank">${data.PluginURI}</a></td></tr>{{/if}}
377 <tr><th>Changelog:</th><td><a href="${data.wpURL}/changelog" target="_blank">${data.wpURL}/changelog</a></td></tr>
378 <tr><th>Current Plugin Version:</th><td>${data.Version}</td></tr>
379 <tr><th>New Plugin Version:</th><td>${data.newVersion}</td></tr>
380 <tr><th>Severity:</th><td>{{if severity == '1'}}Critical{{else}}Warning{{/if}}</td></tr>
381 <tr><th>Status</th><td>
382 {{if status == 'new' }}New{{/if}}
383 {{if status == 'ignoreP' || status == 'ignoreC' }}Ignored{{/if}}
384 </td></tr>
385 </table>
386 </p>
387 {{if data.vulnerabilityPatched}}<p><strong>Update includes security-related fixes.</strong></p>{{/if}}
388 <p>
389 {{html longMsg}}
390 <a href="<?php echo get_admin_url() . 'update-core.php'; ?>">Click here to update now</a>.
391 </p>
392 <div class="wfIssueOptions">
393 {{if status == 'new'}}
394 <strong>Resolve:</strong>
395 <a href="#" onclick="WFAD.updateIssueStatus('${id}', 'delete'); return false;">I have fixed this issue</a>
396 <a href="#" onclick="WFAD.updateIssueStatus('${id}', 'ignoreC'); return false;">Ignore this issue</a>
397 {{/if}}
398 {{if status == 'ignoreC' || status == 'ignoreP'}}
399 <a href="#" onclick="WFAD.updateIssueStatus('${id}', 'delete'); return false;">Stop ignoring this issue</a>
400 {{/if}}
401 </div>
402 </div>
403 </div>
404 </script>
405
406 <script type="text/x-jquery-template" id="issueTmpl_wfUpgrade">
407 <div>
408 <div class="wfIssue">
409 <h2>${shortMsg}</h2>
410 <p>
411 <table border="0" class="wfIssue" cellspacing="0" cellpadding="0">
412 <tr><th>Current WordPress Version:</th><td>${data.currentVersion}</td></tr>
413 <tr><th>New WordPress Version:</th><td>${data.newVersion}</td></tr>
414 <tr><th>Severity:</th><td>{{if severity == '1'}}Critical{{else}}Warning{{/if}}</td></tr>
415 <tr><th>Status</th><td>
416 {{if status == 'new' }}New{{/if}}
417 {{if status == 'ignoreP' || status == 'ignoreC' }}Ignored{{/if}}
418 </td></tr>
419 </table>
420 </p>
421 <p>
422 {{html longMsg}}
423 <a href="<?php echo get_admin_url() . 'update-core.php'; ?>">Click here to update now</a>.
424 </p>
425 <div class="wfIssueOptions">
426 {{if (status == 'new')}}
427 <strong>Resolve:</strong>
428 <a href="#" onclick="WFAD.updateIssueStatus('${id}', 'delete'); return false;">I have fixed this issue</a>
429 <a href="#" onclick="WFAD.updateIssueStatus('${id}', 'ignoreC'); return false;">Ignore this issue</a>
430 {{/if}}
431 {{if status == 'ignoreC' || status == 'ignoreP'}}
432 <a href="#" onclick="WFAD.updateIssueStatus('${id}', 'delete'); return false;">Stop ignoring this issue</a>
433 {{/if}}
434 </div>
435 </div>
436 </script>
437
438 <script type="text/x-jquery-template" id="issueTmpl_dnsChange">
439 <div>
440 <div class="wfIssue">
441 <h2>${shortMsg}</h2>
442 <p>
443 <table border="0" class="wfIssue" cellspacing="0" cellpadding="0">
444 <tr><th>Old DNS records:</th><td>${data.oldDNS}</td></tr>
445 <tr><th>New DNS records:</th><td>${data.newDNS}</td></tr>
446 <tr><th>Severity:</th><td>{{if severity == '1'}}Critical{{else}}Warning{{/if}}</td></tr>
447 <tr><th>Status</th><td>
448 {{if status == 'new' }}New{{/if}}
449 {{if status == 'ignoreP' || status == 'ignoreC' }}Ignored{{/if}}
450 </td></tr>
451 </table>
452 </p>
453 <p>
454 {{html longMsg}}
455 </p>
456 <div class="wfIssueOptions">
457 {{if (status == 'new')}}
458 <strong>Resolve:</strong>
459 <a href="#" onclick="WFAD.updateIssueStatus('${id}', 'delete'); return false;">I know about this change</a>
460 {{/if}}
461 </div>
462 </div>
463 </div>
464 </script>
465 <script type="text/x-jquery-template" id="issueTmpl_badOption">
466 <div>
467 <div class="wfIssue">
468 <h2>${shortMsg}</h2>
469 <p>
470 <table border="0" class="wfIssue" cellspacing="0" cellpadding="0">
471 <tr><th>Severity:</th><td>{{if severity == '1'}}Critical{{else}}Warning{{/if}}</td></tr>
472 {{if data.isMultisite}}
473 <tr><th>Multisite Blog ID:</th><td>${data.blog_id}</td></tr>
474 <tr><th>Multisite Blog Domain:</th><td>${data.domain}</td></tr>
475 <tr><th>Multisite Blog Path:</th><td>${data.path}</td></tr>
476 {{/if}}
477 <tr><th>Status</th><td>
478 {{if status == 'new' }}New{{/if}}
479 {{if status == 'ignoreP' || status == 'ignoreC' }}Ignoring all alerts related to this option{{/if}}
480 </td></tr>
481 </table>
482 </p>
483 <p>
484 {{html longMsg}}
485 </p>
486 <div class="wfIssueOptions">
487 {{if (status == 'new')}}
488 <a href="#" onclick="WFAD.updateIssueStatus('${id}', 'delete'); return false;">I have fixed this issue</a>
489 <a href="#" onclick="WFAD.updateIssueStatus('${id}', 'ignoreP'); return false;">Ignore issues related to this option</a>
490 {{/if}}
491 {{if status == 'ignoreP' || status == 'ignoreC'}}
492 <a href="#" onclick="WFAD.updateIssueStatus('${id}', 'delete'); return false;">Stop ignoring issues related to this option</a>
493 {{/if}}
494 </div>
495 </div>
496 </div>
497 </script>
498
499
500 <script type="text/x-jquery-template" id="issueTmpl_diskSpace">
501 <div>
502 <div class="wfIssue">
503 <h2>${shortMsg}</h2>
504 <p>
505 <table border="0" class="wfIssue" cellspacing="0" cellpadding="0">
506 <tr><th>Space remaining:</th><td>${data.spaceLeft}</td></tr>
507 <tr><th>Severity:</th><td>{{if severity == '1'}}Critical{{else}}Warning{{/if}}</td></tr>
508 <tr><th>Status</th><td>
509 {{if status == 'new' }}New{{/if}}
510 {{if status == 'ignoreP' || status == 'ignoreC' }}Ignoring all disk space alerts{{/if}}
511 </td></tr>
512 </table>
513 </p>
514 <p>
515 {{html longMsg}}
516 </p>
517 <div class="wfIssueOptions">
518 {{if (status == 'new')}}
519 <a href="#" onclick="WFAD.updateIssueStatus('${id}', 'delete'); return false;">I have fixed this issue</a>
520 <a href="#" onclick="WFAD.updateIssueStatus('${id}', 'ignoreP'); return false;">Ignore disk space alerts</a>
521 {{/if}}
522 {{if status == 'ignoreP' || status == 'ignoreC'}}
523 <a href="#" onclick="WFAD.updateIssueStatus('${id}', 'delete'); return false;">Stop ignoring disk space alerts</a>
524 {{/if}}
525 </div>
526 </div>
527 </div>
528 </script>
529
530 <script type="text/x-jquery-template" id="issueTmpl_easyPassword">
531 <div>
532 <div class="wfIssue">
533 <h2>${shortMsg}</h2>
534 <p>
535 <table border="0" class="wfIssue" cellspacing="0" cellpadding="0">
536 <tr><th>Issue first detected:</th><td>${timeAgo} ago.</td></tr>
537 <tr><th>Login name:</th><td>${data.user_login}</td></tr>
538 <tr><th>User email:</th><td>${data.user_email}</td></tr>
539 <tr><th>Full name:</th><td>${data.first_name} ${data.last_name}</td></tr>
540 <tr><th>Severity:</th><td>{{if severity == '1'}}Critical{{else}}Warning{{/if}}</td></tr>
541 <tr><th>Status</th><td>
542 {{if status == 'new' }}New{{/if}}
543 {{if status == 'ignoreC' }}Ignored until user changes password{{/if}}
544 {{if status == 'ignoreP' }}Ignoring this user's weak passwords{{/if}}
545 </td></tr>
546 </table>
547 </p>
548 <p>
549 {{html longMsg}}
550 </p>
551 <div class="wfIssueOptions">
552 <strong>Tools:</strong>
553 <a target="_blank" href="${data.editUserLink}">Edit this user</a>
554 </div>
555 <div class="wfIssueOptions">
556 {{if status == 'new'}}
557 <strong>Resolve:</strong>
558 <a href="#" onclick="WFAD.updateIssueStatus('${id}', 'delete'); return false;">I have fixed this issue</a>
559 <a href="#" onclick="WFAD.updateIssueStatus('${id}', 'ignoreC'); return false;">Ignore this weak password</a>
560 <a href="#" onclick="WFAD.updateIssueStatus('${id}', 'ignoreP'); return false;">Ignore all this user's weak passwords</a>
561 {{/if}}
562 {{if status == 'ignoreC' || status == 'ignoreP'}}
563 <a href="#" onclick="WFAD.updateIssueStatus('${id}', 'delete'); return false;">Stop ignoring this issue</a>
564 {{/if}}
565 </div>
566 </div>
567 </div>
568 </script>
569
570 <script type="text/x-jquery-template" id="issueTmpl_commentBadURL">
571 <div>
572 <div class="wfIssue">
573 <h2>${shortMsg}</h2>
574 <p>
575 <table border="0" class="wfIssue" cellspacing="0" cellpadding="0">
576 <tr><th>Author</th><td>${data.author}</td></tr>
577 <tr><th>Bad URL:</th><td><strong class="wfWarn">${data.badURL}</strong></td></tr>
578 <tr><th>Posted on:</th><td>${data.commentDate}</td></tr>
579 {{if data.isMultisite}}
580 <tr><th>Multisite Blog ID:</th><td>${data.blog_id}</td></tr>
581 <tr><th>Multisite Blog Domain:</th><td>${data.domain}</td></tr>
582 <tr><th>Multisite Blog Path:</th><td>${data.path}</td></tr>
583 {{/if}}
584 <tr><th>Severity:</th><td>Critical</td></tr>
585 <tr><th>Status</th><td>
586 {{if status == 'new' }}New{{/if}}
587 {{if status == 'ignoreP' || status == 'ignoreC' }}Ignored{{/if}}
588 </td></tr>
589 </table>
590 </p>
591 <p>
592 {{html longMsg}}
593 </p>
594 <div class="WfIssueOptions">
595 <strong>Tools:</strong>
596 <a target="_blank" href="${data.editCommentLink}">Edit this ${data.type}</a>
597 </div>
598 <div class="wfIssueOptions">
599 {{if status == 'new'}}
600 <strong>Resolve:</strong>
601 <a href="#" onclick="WFAD.updateIssueStatus('${id}', 'delete'); return false;">I have fixed this issue</a>
602 <a href="#" onclick="WFAD.updateIssueStatus('${id}', 'ignoreC'); return false;">Ignore this ${data.type}</a>
603 {{/if}}
604 {{if status == 'ignoreC' || status == 'ignoreP'}}
605 <a href="#" onclick="WFAD.updateIssueStatus('${id}', 'delete'); return false;">Stop ignoring this ${data.type}</a>
606 {{/if}}
607 </div>
608 </div>
609 </script>
610 <script type="text/x-jquery-template" id="issueTmpl_postBadTitle">
611 <div>
612 <div class="wfIssue">
613 <h2>${shortMsg}</h2>
614 <p>
615 <table border="0" class="wfIssue" cellspacing="0" cellpadding="0">
616 <tr><th>Title:</th><td><strong class="wfWarn">${data.postTitle}</strong></td></tr>
617 <tr><th>Posted on:</th><td>${data.postDate}</td></tr>
618 {{if data.isMultisite}}
619 <tr><th>Multisite Blog ID:</th><td>${data.blog_id}</td></tr>
620 <tr><th>Multisite Blog Domain:</th><td>${data.domain}</td></tr>
621 <tr><th>Multisite Blog Path:</th><td>${data.path}</td></tr>
622 {{/if}}
623 <tr><th>Severity:</th><td>Critical</td></tr>
624 <tr><th>Status</th><td>
625 {{if status == 'new' }}New{{/if}}
626 {{if status == 'ignoreC' }}This bad title will be ignored in this ${data.type}.{{/if}}
627 {{if status == 'ignoreP' }}This post won't be scanned for bad titles.{{/if}}
628 </td></tr>
629 </table>
630 </p>
631 <p>
632 {{html longMsg}}
633 </p>
634 <div class="wfIssueOptions">
635 <strong>Tools:</strong>
636 <a target="_blank" href="${data.editPostLink}">Edit this ${data.type}</a>
637 </div>
638 <div class="wfIssueOptions">
639 {{if status == 'new'}}
640 <strong>Resolve:</strong>
641 <a href="#" onclick="WFAD.updateIssueStatus('${id}', 'delete'); return false;">I have fixed this issue</a>
642 <a href="#" onclick="WFAD.updateIssueStatus('${id}', 'ignoreC'); return false;">Ignore this title in this ${data.type}</a>
643 <a href="#" onclick="WFAD.updateIssueStatus('${id}', 'ignoreP'); return false;">Ignore all dangerous titles in this ${data.type}</a>
644 {{/if}}
645 {{if status == 'ignoreP' || status == 'ignoreC'}}
646 <a href="#" onclick="WFAD.updateIssueStatus('${id}', 'delete'); return false;">Stop ignoring this issue</a>
647 {{/if}}
648 </div>
649 </div>
650 </div>
651 </script>
652
653 <script type="text/x-jquery-template" id="issueTmpl_postBadURL">
654 <div>
655 <div class="wfIssue">
656 <h2>${shortMsg}</h2>
657 <p>
658 <table border="0" class="wfIssue" cellspacing="0" cellpadding="0">
659 {{if data.isMultisite}}
660 <tr><th>Title:</th><td><a href="${data.permalink}" target="_blank">${data.postTitle}</a></td></tr>
661 {{else}}
662 <tr><th>Title:</th><td><a href="${data.permalink}" target="_blank">${data.postTitle}</a></td></tr>
663 {{/if}}
664 <tr><th>Bad URL:</th><td><strong class="wfWarn">${data.badURL}</strong></td></tr>
665 <tr><th>Posted on:</th><td>${data.postDate}</td></tr>
666 {{if data.isMultisite}}
667 <tr><th>Multisite Blog ID:</th><td>${data.blog_id}</td></tr>
668 <tr><th>Multisite Blog Domain:</th><td>${data.domain}</td></tr>
669 <tr><th>Multisite Blog Path:</th><td>${data.path}</td></tr>
670 {{/if}}
671 <tr><th>Severity:</th><td>Critical</td></tr>
672 <tr><th>Status</th><td>
673 {{if status == 'new' }}New{{/if}}
674 {{if status == 'ignoreC' }}This bad URL will be ignored in this ${data.type}.{{/if}}
675 {{if status == 'ignoreP' }}This post won't be scanned for bad URL's.{{/if}}
676 </td></tr>
677 </table>
678 </p>
679 <p>
680 {{html longMsg}}
681 </p>
682 <div class="wfIssueOptions">
683 <strong>Tools:</strong>
684 <a target="_blank" href="${data.editPostLink}">Edit this ${data.type}</a>
685 </div>
686 <div class="wfIssueOptions">
687 {{if status == 'new'}}
688 <strong>Resolve:</strong>
689 <a href="#" onclick="WFAD.updateIssueStatus('${id}', 'delete'); return false;">I have fixed this issue</a>
690 <a href="#" onclick="WFAD.updateIssueStatus('${id}', 'ignoreC'); return false;">Ignore this bad URL in this ${data.type}</a>
691 <a href="#" onclick="WFAD.updateIssueStatus('${id}', 'ignoreP'); return false;">Ignore all bad URL's in this ${data.type}</a>
692 {{/if}}
693 {{if status == 'ignoreP' || status == 'ignoreC'}}
694 <a href="#" onclick="WFAD.updateIssueStatus('${id}', 'delete'); return false;">Stop ignoring this issue</a>
695 {{/if}}
696 </div>
697 </div>
698 </div>
699 </script>
700
701
702
703 <script type="text/x-jquery-template" id="issueTmpl_file">
704 <div>
705 <div class="wfIssue">
706 <h2>${shortMsg}</h2>
707 <p>
708 <table border="0" class="wfIssue" cellspacing="0" cellpadding="0">
709 <tr><th>Filename:</th><td>${data.file}</td></tr>
710 {{if ((typeof data.badURL !== 'undefined') && data.badURL)}}
711 <tr><th>Bad URL:</th><td><strong class="wfWarn">${data.badURL}</strong></td></tr>
712 {{/if}}
713 <tr><th>File type:</th><td>{{if data.cType}}${WFAD.ucfirst(data.cType)}{{else}}Not a core, theme or plugin file.{{/if}}</td></tr>
714 <tr><th>Issue first detected:</th><td>${timeAgo} ago.</td></tr>
715 <tr><th>Severity:</th><td>{{if severity == '1'}}Critical{{else}}Warning{{/if}}</td></tr>
716 <tr><th>Status</th><td>
717 {{if status == 'new' }}New{{/if}}
718 {{if status == 'ignoreP' }}Permanently ignoring this file{{/if}}
719 {{if status == 'ignoreC' }}Ignoring this file until it changes{{/if}}
720 </td></tr>
721 </table>
722 </p>
723 <p>
724 {{html longMsg}}
725 </p>
726 <div class="wfIssueOptions">
727 <strong>Tools:</strong>
728 {{if data.fileExists}}
729 <a target="_blank" href="${WFAD.makeViewFileLink(data.file)}">View the file.</a>
730 {{/if}}
731 {{if data.canFix}}
732 <a href="#" onclick="WFAD.restoreFile('${id}'); return false;">Restore the original version of this file.</a>
733 {{/if}}
734 {{if data.canDelete}}
735 <a href="#" onclick="WFAD.deleteFile('${id}'); return false;">Delete this file (can't be undone).</a>
736 {{/if}}
737 {{if data.canDiff}}
738 <a href="${WFAD.makeDiffLink(data)}" target="_blank">See how the file has changed.</a>
739 {{/if}}
740 {{if data.canFix}}
741 <br />&nbsp;<input type="checkbox" class="wfrepairCheckbox" value="${id}" />&nbsp;Select for bulk repair
742 {{/if}}
743 {{if data.canDelete}}
744 <br />&nbsp;<input type="checkbox" class="wfdelCheckbox" value="${id}" />&nbsp;Select for bulk delete
745 {{/if}}
746 </div>
747 <div class="wfIssueOptions">
748 {{if status == 'new'}}
749 <strong>Resolve:</strong>
750 <a href="#" onclick="WFAD.updateIssueStatus('${id}', 'delete'); return false;">I have fixed this issue</a>
751 {{if data.fileExists}}
752 <a href="#" onclick="WFAD.updateIssueStatus('${id}', 'ignoreC'); return false;">Ignore until the file changes.</a>
753 <a href="#" onclick="WFAD.updateIssueStatus('${id}', 'ignoreP'); return false;">Always ignore this file.</a>
754 {{else}}
755 <a href="#" onclick="WFAD.updateIssueStatus('${id}', 'ignoreC'); return false;">Ignore missing file</a>
756 {{/if}}
757
758 {{/if}}
759 {{if status == 'ignoreC' || status == 'ignoreP'}}
760 <a href="#" onclick="WFAD.updateIssueStatus('${id}', 'delete'); return false;">Stop ignoring this issue.</a>
761 {{/if}}
762 </div>
763 </div>
764 </div>
765 </script>
766
767 <script type="text/x-jquery-template" id="issueTmpl_coreUnknown">
768 <div>
769 <div class="wfIssue">
770 <h2>${shortMsg}</h2>
771 <p>
772 <table border="0" class="wfIssue" cellspacing="0" cellpadding="0">
773 <tr><th>Issue first detected:</th><td>${timeAgo} ago.</td></tr>
774 <tr><th>Severity:</th><td>{{if severity == '1'}}Critical{{else}}Warning{{/if}}</td></tr>
775 <tr><th>Status</th><td>
776 {{if status == 'new' }}New{{/if}}
777 {{if status == 'ignoreP' }}Permanently ignoring this version{{/if}}
778 {{if status == 'ignoreC' }}Ignoring this version until it changes{{/if}}
779 </td></tr>
780 </table>
781 </p>
782 <p>
783 {{html longMsg}}
784 </p>
785 <div class="wfIssueOptions">
786 {{if status == 'new'}}
787 <strong>Resolve:</strong>
788 <a href="#" onclick="WFAD.updateIssueStatus('${id}', 'ignoreC'); return false;">Ignore until the version changes.</a>
789 <a href="#" onclick="WFAD.updateIssueStatus('${id}', 'ignoreP'); return false;">Always ignore this version.</a>
790 {{/if}}
791 {{if status == 'ignoreC' || status == 'ignoreP'}}
792 <a href="#" onclick="WFAD.updateIssueStatus('${id}', 'delete'); return false;">Stop ignoring this issue.</a>
793 {{/if}}
794 </div>
795 </div>
796 </div>
797 </script>
798
799 <script type="text/x-jquery-template" id="issueTmpl_database">
800 <div>
801 <div class="wfIssue">
802 <h2>${shortMsg}</h2>
803 <p>
804 <table border="0" class="wfIssue" cellspacing="0" cellpadding="0">
805 <tr><th>Option Name:</th><td>${data.option_name}</td></tr>
806 {{if ((typeof data.badURL !== 'undefined') && data.badURL)}}
807 <tr><th>Bad URL:</th><td><strong class="wfWarn">${data.badURL}</strong></td></tr>
808 {{/if}}
809 <tr><th>Issue first detected:</th><td>${timeAgo} ago.</td></tr>
810 <tr><th>Severity:</th><td>{{if severity == '1'}}Critical{{else}}Warning{{/if}}</td></tr>
811 <tr><th>Status</th><td>
812 {{if status == 'new' }}New{{/if}}
813 {{if status == 'ignoreP' }}Permanently ignoring this option{{/if}}
814 {{if status == 'ignoreC' }}Ignoring this option until it changes{{/if}}
815 </td></tr>
816 </table>
817 </p>
818 <p>
819 {{html longMsg}}
820 </p>
821 <div class="wfIssueOptions">
822 <strong>Tools:</strong>
823 {{if data.optionExists}}
824 <a target="_blank" href="${WFAD.makeViewOptionLink(data.option_name, data.site_id)}">View this option.</a>
825 {{/if}}
826 {{if data.canDelete}}
827 <a href="#" onclick="WFAD.deleteDatabaseOption('${id}'); return false;">Delete this option from the database (can't be undone).</a>
828 <br />&nbsp;<input type="checkbox" class="wfdelCheckbox" value="${id}" />&nbsp;Select for bulk delete
829 {{/if}}
830 </div>
831 <div class="wfIssueOptions">
832 {{if status == 'new'}}
833 <strong>Resolve:</strong>
834 <a href="#" onclick="WFAD.updateIssueStatus('${id}', 'delete'); return false;">I have fixed this issue</a>
835 {{if data.optionExists}}
836 <a href="#" onclick="WFAD.updateIssueStatus('${id}', 'ignoreC'); return false;">Ignore until the option changes.</a>
837 <a href="#" onclick="WFAD.updateIssueStatus('${id}', 'ignoreP'); return false;">Always ignore this option.</a>
838 {{else}}
839 <a href="#" onclick="WFAD.updateIssueStatus('${id}', 'ignoreC'); return false;">Ignore missing option.</a>
840 {{/if}}
841
842 {{/if}}
843 {{if status == 'ignoreC' || status == 'ignoreP'}}
844 <a href="#" onclick="WFAD.updateIssueStatus('${id}', 'delete'); return false;">Stop ignoring this issue.</a>
845 {{/if}}
846 </div>
847 </div>
848 </div>
849 </script>
850 <script type="text/x-jquery-template" id="issueTmpl_pubBadURLs">
851 <div>
852 <div class="wfIssue">
853 <h2>${shortMsg}</h2>
854 <p>
855 <table border="0" class="wfIssue" cellspacing="0" cellpadding="0">
856 <tr><th>Severity:</th><td>{{if severity == '1'}}Critical{{else}}Warning{{/if}}</td></tr>
857 <tr><th>Status</th><td>
858 {{if status == 'new' }}New{{/if}}
859 {{if status == 'ignoreC' }}These bad URLs will be ignored until they change.{{/if}}
860 {{if status == 'ignoreP' }}These bad URLs will be permanently ignored.{{/if}}
861 </td></tr>
862 </table>
863 </p>
864 <p>
865 {{html longMsg}}
866 </p>
867 <div class="wfIssueOptions">
868 {{if status == 'new'}}
869 <strong>Resolve:</strong>
870 <a href="#" onclick="WFAD.updateIssueStatus('${id}', 'delete'); return false;">I have fixed this issue</a>
871 <a href="#" onclick="WFAD.updateIssueStatus('${id}', 'ignoreC'); return false;">Ignore these URLs until they change.</a>
872 <a href="#" onclick="WFAD.updateIssueStatus('${id}', 'ignoreP'); return false;">Ignore these URLs permanently</a>
873 {{/if}}
874 {{if status == 'ignoreP' || status == 'ignoreC'}}
875 <a href="#" onclick="WFAD.updateIssueStatus('${id}', 'delete'); return false;">Stop ignoring this issue</a>
876 {{/if}}
877 </div>
878 </div>
879 </div>
880 </script>
881
882
883 <script type="text/x-jquery-template" id="issueTmpl_pubDomainRedir">
884 <div>
885 <div class="wfIssue">
886 <h2>${shortMsg}</h2>
887 <p>
888 <table border="0" class="wfIssue" cellspacing="0" cellpadding="0">
889 <tr><th>Severity:</th><td>{{if severity == '1'}}Critical{{else}}Warning{{/if}}</td></tr>
890 <tr><th>Status</th><td>
891 {{if status == 'new' }}New{{/if}}
892 {{if status == 'ignoreC' }}This redirect will be ignored until it changes.{{/if}}
893 {{if status == 'ignoreP' }}This redirect is permanently ignored.{{/if}}
894 </td></tr>
895 </table>
896 </p>
897 <p>
898 {{html longMsg}}
899 </p>
900 <div class="wfIssueOptions">
901 {{if status == 'new'}}
902 <strong>Resolve:</strong>
903 <a href="#" onclick="WFAD.updateIssueStatus('${id}', 'delete'); return false;">I have fixed this issue</a>
904 <a href="#" onclick="WFAD.updateIssueStatus('${id}', 'ignoreC'); return false;">Ignore this redirect until it changes</a>
905 <a href="#" onclick="WFAD.updateIssueStatus('${id}', 'ignoreP'); return false;">Ignore any redirect like this permanently</a>
906 {{/if}}
907 {{if status == 'ignoreP' || status == 'ignoreC'}}
908 <a href="#" onclick="WFAD.updateIssueStatus('${id}', 'delete'); return false;">Stop ignoring this issue</a>
909 {{/if}}
910 </div>
911 </div>
912 </div>
913 </script>
914
915 <script type="text/x-jquery-template" id="issueTmpl_heartbleed">
916 <div>
917 <div class="wfIssue">
918 <h2>${shortMsg}</h2>
919 <p>
920 <table border="0" class="wfIssue" cellspacing="0" cellpadding="0">
921 <tr><th>Severity:</th><td>{{if severity == '1'}}Critical{{else}}Warning{{/if}}</td></tr>
922 <tr><th>Status</th><td>
923 {{if status == 'new' }}New{{/if}}
924 {{if status == 'ignoreC' }}This redirect will be ignored until it changes.{{/if}}
925 {{if status == 'ignoreP' }}This redirect is permanently ignored.{{/if}}
926 </td></tr>
927 </table>
928 </p>
929 <p>
930 {{html longMsg}}
931 </p>
932 <div class="wfIssueOptions">
933 {{if status == 'new'}}
934 <strong>Resolve:</strong>
935 <a href="#" onclick="WFAD.updateIssueStatus('${id}', 'delete'); return false;">I have fixed this issue</a>
936 <a href="#" onclick="WFAD.updateIssueStatus('${id}', 'ignoreP'); return false;">Ignore this problem</a>
937 {{/if}}
938 {{if status == 'ignoreP' || status == 'ignoreC'}}
939 <a href="#" onclick="WFAD.updateIssueStatus('${id}', 'delete'); return false;">Stop ignoring this issue</a>
940 {{/if}}
941 </div>
942 </div>
943 </div>
944 </script>
945 <script type="text/x-jquery-template" id="issueTmpl_checkSpamIP">
946 <div>
947 <div class="wfIssue">
948 <h2>${shortMsg}</h2>
949 <p>
950 <table border="0" class="wfIssue" cellspacing="0" cellpadding="0">
951 <tr><th>Severity:</th><td>{{if severity == '1'}}Critical{{else}}Warning{{/if}}</td></tr>
952 <tr><th>Status</th><td>
953 {{if status == 'new' }}New{{/if}}
954 {{if status == 'ignoreC' }}This redirect will be ignored until it changes.{{/if}}
955 {{if status == 'ignoreP' }}This redirect is permanently ignored.{{/if}}
956 </td></tr>
957 </table>
958 </p>
959 <p>
960 {{html longMsg}}
961 </p>
962 <div class="wfIssueOptions">
963 {{if status == 'new'}}
964 <strong>Resolve:</strong>
965 <a href="#" onclick="WFAD.updateIssueStatus('${id}', 'delete'); return false;">I have fixed this issue</a>
966 <a href="#" onclick="WFAD.updateIssueStatus('${id}', 'ignoreP'); return false;">Ignore this problem</a>
967 {{/if}}
968 {{if status == 'ignoreP' || status == 'ignoreC'}}
969 <a href="#" onclick="WFAD.updateIssueStatus('${id}', 'delete'); return false;">Stop ignoring this issue</a>
970 {{/if}}
971 </div>
972 </div>
973 </div>
974 </script>
975 <script type="text/x-jquery-template" id="issueTmpl_checkGSB">
976 <div>
977 <div class="wfIssue">
978 <h2>${shortMsg}</h2>
979 <p>
980 <table border="0" class="wfIssue" cellspacing="0" cellpadding="0">
981 {{if ((typeof data.badURL !== 'undefined') && data.badURL)}}
982 <tr><th>Bad URL:</th><td><strong class="wfWarn">${data.badURL}</strong></td></tr>
983 {{/if}}
984 <tr><th>Issue first detected:</th><td>${timeAgo} ago.</td></tr>
985 <tr><th>Severity:</th><td>{{if severity == '1'}}Critical{{else}}Warning{{/if}}</td></tr>
986 <tr><th>Status</th><td>
987 {{if status == 'new' }}New{{/if}}
988 {{if status == 'ignoreC' }}This issue will be ignored until it changes.{{/if}}
989 {{if status == 'ignoreP' }}This issue is permanently ignored.{{/if}}
990 </td></tr>
991 </table>
992 </p>
993 <p>
994 {{html longMsg}}
995 </p>
996 <div class="wfIssueOptions">
997 {{if status == 'new'}}
998 <strong>Resolve:</strong>
999 <a href="#" onclick="WFAD.updateIssueStatus('${id}', 'delete'); return false;">I have fixed this issue</a>
1000 <a href="#" onclick="WFAD.updateIssueStatus('${id}', 'ignoreP'); return false;">Ignore this problem</a>
1001 {{/if}}
1002 {{if status == 'ignoreP' || status == 'ignoreC'}}
1003 <a href="#" onclick="WFAD.updateIssueStatus('${id}', 'delete'); return false;">Stop ignoring this issue</a>
1004 {{/if}}
1005 </div>
1006 </div>
1007 </div>
1008 </script>
1009
1010 <script type="text/x-jquery-template" id="issueTmpl_spamvertizeCheck">
1011 <div>
1012 <div class="wfIssue">
1013 <h2>${shortMsg}</h2>
1014 <p>
1015 <table border="0" class="wfIssue" cellspacing="0" cellpadding="0">
1016 <tr><th>Severity:</th><td>{{if severity == '1'}}Critical{{else}}Warning{{/if}}</td></tr>
1017 <tr><th>Status</th><td>
1018 {{if status == 'new' }}New{{/if}}
1019 {{if status == 'ignoreC' }}This redirect will be ignored until it changes.{{/if}}
1020 {{if status == 'ignoreP' }}This redirect is permanently ignored.{{/if}}
1021 </td></tr>
1022 </table>
1023 </p>
1024 <p>
1025 {{html longMsg}}
1026 </p>
1027 <div class="wfIssueOptions">
1028 {{if status == 'new'}}
1029 <strong>Resolve:</strong>
1030 <a href="#" onclick="WFAD.updateIssueStatus('${id}', 'delete'); return false;">I have fixed this issue</a>
1031 <a href="#" onclick="WFAD.updateIssueStatus('${id}', 'ignoreP'); return false;">Ignore this problem</a>
1032 {{/if}}
1033 {{if status == 'ignoreP' || status == 'ignoreC'}}
1034 <a href="#" onclick="WFAD.updateIssueStatus('${id}', 'delete'); return false;">Stop ignoring this issue</a>
1035 {{/if}}
1036 </div>
1037 </div>
1038 </div>
1039 </script>
1040
1041 <script type="text/x-jquery-template" id="issueTmpl_suspiciousAdminUsers">
1042 <div>
1043 <div class="wfIssue">
1044 <h2>${shortMsg}</h2>
1045 <p>
1046 <table border="0" class="wfIssue" cellspacing="0" cellpadding="0">
1047 <tr><th>Severity:</th><td>{{if severity == '1'}}Critical{{else}}Warning{{/if}}</td></tr>
1048 <tr><th>Status</th><td>
1049 {{if status == 'new' }}New{{/if}}
1050 {{if status == 'ignoreC' }}This issue will be ignored until it changes.{{/if}}
1051 {{if status == 'ignoreP' }}This issue is permanently ignored.{{/if}}
1052 </td></tr>
1053 </table>
1054 </p>
1055 <p>
1056 {{html longMsg}}
1057 </p>
1058 <div class="wfIssueOptions">
1059 {{if status == 'new'}}
1060 <strong>Resolve:</strong>
1061 <a href="#" onclick="WFAD.updateIssueStatus('${id}', 'delete'); return false;">I have fixed this issue</a>
1062 <a href="#" onclick="WFAD.deleteAdminUser('${id}'); return false;">Delete this user</a>
1063 <a href="#" onclick="WFAD.revokeAdminUser('${id}'); return false;">Revoke all capabilities from this user</a>
1064 <a href="#" onclick="WFAD.updateIssueStatus('${id}', 'ignoreP'); return false;">Ignore this problem</a>
1065 {{/if}}
1066 {{if status == 'ignoreP' || status == 'ignoreC'}}
1067 <a href="#" onclick="WFAD.updateIssueStatus('${id}', 'delete'); return false;">Stop ignoring this issue</a>
1068 {{/if}}
1069 </div>
1070 </div>
1071 </div>
1072 </script>
1073
1074
1075
1076
1077 <script type="text/x-jquery-template" id="wfNoScanYetTmpl">
1078 <div>
1079 <table class="wfSummaryParent" cellpadding="0" cellspacing="0">
1080 <tr><th class="wfHead">Your first scan is starting now</th></tr>
1081 <tr><td>
1082 <table class="wfSC1" cellpadding="0" cellspacing="0">
1083 <tr><td>
1084 Your first Wordfence scan should be automatically starting now
1085 and you will see the scan details in the "Activity Log" above in a few seconds.
1086 </td></tr>
1087 <tr><td>
1088 <div class="wordfenceScanButton"><button type="button" id="wfStartScanButton2" class="wfStartScanButton button-primary">Start a Wordfence Scan</button></div>
1089 </td></tr>
1090 </table>
1091 </td>
1092 </tr></table>
1093 </div>
1094 </script>
1095
1096
1097 <script type="text/x-jquery-template" id="wfWelcomeContent1">
1098 <div>
1099 <h3>Welcome to Wordfence</h3>
1100 <p>
1101 Wordfence is a robust and complete security system and performance enhancer for WordPress. It protects your WordPress site
1102 from security threats and keeps you off Google's SEO black-list by providing a firewall, brute force protection, continuous scanning and many other security enhancements.
1103 </p>
1104 <p>
1105 Wordfence also detects if there are any security problems on
1106 your site or if there has been an intrusion and will alert you via email.
1107 Wordfence can also help repair hacked sites, even if you don't have a backup of your site.
1108 </p>
1109 </div>
1110 </script>
1111 <script type="text/x-jquery-template" id="wfWelcomeContent2">
1112 <div>
1113 <h3>How Wordfence is different</h3>
1114 <p><strong>Powered by our Cloud Servers</strong></p>
1115 <p>
1116 Wordfence is not just a standalone plugin for WordPress. It is part of Feedjit Inc. and is powered by our cloud scanning servers based at our
1117 data center in Seattle, Washington in the USA. On these servers we keep an updated mirror of every version of WordPress ever released
1118 and every version of every plugin and theme ever released into the WordPress repository. That allows us to
1119 do an integrity check on your core files, plugins and themes. It also means that when we detect they have changed, we can show you the
1120 changes and we can give you the option to repair any corrupt files. Even if you don't have a backup of that file.
1121 </p>
1122 <p><strong>Keeping you off Google's SEO Black-List</strong></p>
1123 <p>
1124 We also maintain a real-time copy of the Google Safe Browsing list (the GSB) and use it to scan all your files, posts, pages and comments for dangerous URL's.
1125 If you accidentally link to a URL on the GSB, your site is often black-listed by Google and removed from search results.
1126 The GSB is constantly changing, so constant scanning of all your content is needed to keep you safe and off Google's SEO black-list.
1127 </p>
1128 <p><strong>Scans for back-doors, malware, viruses and other threats</strong></p>
1129 <p>
1130 Wordfence also maintains an updated threat and malware signature database which we use to scan your site for intrusions, malware, backdoors and more.
1131 </p>
1132 </div>
1133 </script>
1134 <script type="text/x-jquery-template" id="wfWelcomeContent3">
1135 <div>
1136 <h3>How to use Wordfence</h3>
1137 <strong><p>Start with a Scan</p></strong>
1138 <p>
1139 Using Wordfence is simple. Start by doing a scan.
1140 Once the scan is complete, a list of issues will appear at the bottom of this page. Work through each issue one at a time. If you know an
1141 issue is not a security problem, simply choose to ignore it. When you click "ignore" it will be moved to the list of ignored issues.
1142 </p>
1143 <strong><p>Use the tools we provide</p></strong>
1144 <p>
1145 You'll notice that with each issue we provide tools to help you repair problems you may find. For example, if a core file has been modified
1146 you can view how it has been changed, view the whole file or repair the file. If we find a back-door a hacker has left behind, we give
1147 you the option to delete the file. Using these tools is an essential part of the diagnostic and cleaning process if you have been hacked.
1148 </p>
1149 <p>
1150 Repair each security problem that you find. You may have to fix a weak password that we detected, upgrade a theme or plugin, delete a comment that
1151 contains an unsafe URL and so on. Once you're done, start another scan and your site should come back with no security issues.
1152 </p>
1153 <strong><p>Regular scheduled scans keep your site safe</p></strong>
1154 <p>
1155 Once you've done your initial scan and cleanup, Wordfence will automatically scan your site once a day.
1156 If you would like to scan your site more frequently or control when Wordfence does a scan, upgrade to the
1157 paid version of Wordfence which includes other features like country blocking.
1158 </p>
1159 </div>
1160 </script>
1161