Sucuri Security – Auditing, Malware Scanner and Security Hardening - Version 1.8.23

Version Description

  • Add Automatic Secret Keys Updater
  • Improve button's and link's messaging on Last Logins sections
  • Improve messaging on Hardening page
  • Improve messaging on IP Access page
Download this release

Release Info

Developer imgersonr
Plugin Icon 128x128 Sucuri Security – Auditing, Malware Scanner and Security Hardening
Version 1.8.23
Comparing to
See all releases

Code changes from version 1.8.22 to 1.8.23

inc/css/styles.css CHANGED
@@ -878,6 +878,23 @@ body.sucuri-security_page_sucuriscan_hardening {
878
  .sucuriscan-firewall-accesslog {
879
  word-break: break-all;
880
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
881
  .rtl .sucuriscan-header .sucuriscan-pull-left {
882
  float: right;
883
  }
878
  .sucuriscan-firewall-accesslog {
879
  word-break: break-all;
880
  }
881
+ .sucuriscan-double-box {
882
+ margin-top: 20px;
883
+ }
884
+ .sucuriscan-double-box p {
885
+ display: inline-block;
886
+ width: 70%;
887
+ margin: 0;
888
+ }
889
+ .sucuriscan-double-box form {
890
+ margin-top: 10px;
891
+ width: 30%;
892
+ text-align: right;
893
+ }
894
+ .sucuriscan-double-box select {
895
+ padding: 5px 25px 5px 10px;
896
+ margin-right: 5px;
897
+ }
898
  .rtl .sucuriscan-header .sucuriscan-pull-left {
899
  float: right;
900
  }
inc/tpl/firewall-ipaccess.html.tpl CHANGED
@@ -89,7 +89,8 @@ jQuery(document).ready(function ($) {
89
  <h3 class="sucuriscan-title">{{IP Address Access}}</h3>
90
 
91
  <div class="inside">
92
- <p>{{This tool allows you to whitelist and blacklist one or more IP addresses from accessing your website. You can also configure the plugin to automatically blacklist any IP address involved in a password guessing brute-force attack. If a legitimate user fails to submit the correct credentials of their account they will have to log into the Firewall dashboard in order to delete their IP address from the blacklist, or try to login once again through a VPN.}}</p>
 
93
 
94
  <div id="sucuriscan-ipaccess-response"></div>
95
 
89
  <h3 class="sucuriscan-title">{{IP Address Access}}</h3>
90
 
91
  <div class="inside">
92
+ <p>{{This tool allows you to blacklist one or more IP addresses from accessing your website.}}</p>
93
+ <p>{{To delete an IP from the blacklist you can use the form below or you can log into the Firewall dashboard.}}</p>
94
 
95
  <div id="sucuriscan-ipaccess-response"></div>
96
 
inc/tpl/lastlogins-admins.snippet.tpl CHANGED
@@ -24,6 +24,6 @@
24
  </td>
25
 
26
  <td>
27
- <a href="%%SUCURI.AdminUsers.UserURL%%" target="_blank" class="button button-primary" rel="noopener">{{Edit}}</a>
28
  </td>
29
  </tr>
24
  </td>
25
 
26
  <td>
27
+ <a href="%%SUCURI.AdminUsers.UserURL%%" target="_blank" class="button button-primary" rel="noopener">{{Edit User Profile}}</a>
28
  </td>
29
  </tr>
inc/tpl/lastlogins-all.html.tpl CHANGED
@@ -42,6 +42,6 @@
42
  <form action="%%SUCURI.URL.Lastlogins%%#allusers" method="post">
43
  <input type="hidden" name="sucuriscan_page_nonce" value="%%SUCURI.PageNonce%%" />
44
  <input type="hidden" name="sucuriscan_delete_lastlogins" value="1" />
45
- <input type="submit" value="{{Delete}}" class="button button-primary" />
46
  </form>
47
  </div>
42
  <form action="%%SUCURI.URL.Lastlogins%%#allusers" method="post">
43
  <input type="hidden" name="sucuriscan_page_nonce" value="%%SUCURI.PageNonce%%" />
44
  <input type="hidden" name="sucuriscan_delete_lastlogins" value="1" />
45
+ <input type="submit" value="{{Delete All Successful Logins}}" class="button button-primary" />
46
  </form>
47
  </div>
inc/tpl/lastlogins-failedlogins.html.tpl CHANGED
@@ -41,7 +41,7 @@
41
  <form action="%%SUCURI.URL.Lastlogins%%#failed" method="post">
42
  <input type="hidden" name="sucuriscan_page_nonce" value="%%SUCURI.PageNonce%%" />
43
  <input type="hidden" name="sucuriscan_delete_failedlogins" value="1" />
44
- <input type="submit" value="{{Delete}}" class="button button-primary" />
45
  </form>
46
  </div>
47
  </div>
41
  <form action="%%SUCURI.URL.Lastlogins%%#failed" method="post">
42
  <input type="hidden" name="sucuriscan_page_nonce" value="%%SUCURI.PageNonce%%" />
43
  <input type="hidden" name="sucuriscan_delete_failedlogins" value="1" />
44
+ <input type="submit" value="{{Delete All Failed Logins}}" class="button button-primary" />
45
  </form>
46
  </div>
47
  </div>
inc/tpl/lastlogins-loggedin.snippet.tpl CHANGED
@@ -10,5 +10,5 @@
10
 
11
  <td class="sucuriscan-monospace">%%SUCURI.LoggedInUsers.RemoteAddr%%</td>
12
 
13
- <td><a href="%%SUCURI.LoggedInUsers.UserURL%%" target="_blank">{{Edit}}</a></td>
14
  </tr>
10
 
11
  <td class="sucuriscan-monospace">%%SUCURI.LoggedInUsers.RemoteAddr%%</td>
12
 
13
+ <td><a href="%%SUCURI.LoggedInUsers.UserURL%%" target="_blank">{{Edit User Profile}}</a></td>
14
  </tr>
inc/tpl/settings-posthack-security-keys.html.tpl CHANGED
@@ -41,5 +41,22 @@
41
 
42
  <input type="submit" value="{{Generate New Security Keys}}" class="button button-primary" />
43
  </form>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
44
  </div>
45
  </div>
41
 
42
  <input type="submit" value="{{Generate New Security Keys}}" class="button button-primary" />
43
  </form>
44
+
45
+ <div class="sucuriscan-double-box sucuriscan-hstatus sucuriscan-hstatus-%%SUCURI.SecurityKeys.AutoStatusNum%%">
46
+ <p>
47
+ <strong>{{Automatic Secret Keys Updater}}</strong> &mdash; %%SUCURI.SecurityKeys.AutoStatus%%<br />
48
+ {{Changing the Secret Keys frequently will decrease the chances of misuse of sessions left open on unprotected devices.}}
49
+ </p>
50
+
51
+ <form action="%%SUCURI.URL.Settings%%#posthack" method="post">
52
+ <input type="hidden" name="sucuriscan_page_nonce" value="%%SUCURI.PageNonce%%" />
53
+ <input type="hidden" name="sucuriscan_autoseckeyupdater" value="1" />
54
+ <label><strong>{{Frequency:}}</strong></label>
55
+ <select name="sucuriscan_autoseckeyupdater_frequency">
56
+ %%%SUCURI.SecurityKeys.Schedules%%%
57
+ </select>
58
+ <input type="submit" value="{{Submit}}" class="button button-primary" />
59
+ </form>
60
+ </div>
61
  </div>
62
  </div>
inc/tpl/settings.html.tpl CHANGED
@@ -63,6 +63,8 @@
63
  %%%SUCURI.Settings.Hardening.AdminUser%%%
64
 
65
  %%%SUCURI.Settings.Hardening.FileEditor%%%
 
 
66
  </div>
67
  </div>
68
 
63
  %%%SUCURI.Settings.Hardening.AdminUser%%%
64
 
65
  %%%SUCURI.Settings.Hardening.FileEditor%%%
66
+
67
+ %%%SUCURI.Settings.Hardening.SecKeyUpdater%%%
68
  </div>
69
  </div>
70
 
lang/sucuri-scanner.pot CHANGED
@@ -1,23 +1,38 @@
1
- #, fuzzy
 
2
  msgid ""
3
  msgstr ""
4
- "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
5
- "Project-Id-Version: Sucuri Security - Auditing, Malware Scanner and Hardening\n"
6
- "POT-Creation-Date: 2019-08-26 17:12-0500\n"
7
- "PO-Revision-Date: 2019-02-07 02:39-0600\n"
8
- "Last-Translator: \n"
9
- "Language-Team: \n"
10
  "MIME-Version: 1.0\n"
11
  "Content-Type: text/plain; charset=UTF-8\n"
12
  "Content-Transfer-Encoding: 8bit\n"
13
- "X-Generator: Poedit 1.8.12\n"
14
- "X-Poedit-Basepath: ..\n"
15
- "X-Poedit-WPHeader: sucuri.php\n"
16
- "X-Poedit-SourceCharset: UTF-8\n"
17
- "X-Poedit-KeywordsList: __;_e;_n:1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;esc_attr__;esc_attr_e;esc_attr_x:1,2c;esc_html__;"
18
- "esc_html_e;esc_html_x:1,2c;_n_noop:1,2;_nx_noop:3c,1,2;__ngettext_noop:1,2\n"
19
- "X-Poedit-SearchPath-0: .\n"
20
- "X-Poedit-SearchPathExcluded-0: *.js\n"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
21
 
22
  #: src/api.lib.php:91
23
  msgid "URL is invalid"
@@ -32,7 +47,6 @@ msgid "Invalid API key format"
32
  msgstr ""
33
 
34
  #: src/api.lib.php:186
35
- #, php-format
36
  msgid "API key was successfully set: %s"
37
  msgstr ""
38
 
@@ -53,16 +67,15 @@ msgid "API key successfully generated and saved."
53
  msgstr ""
54
 
55
  #: src/api.lib.php:380
56
- #, php-format
57
  msgid "API key recovery for domain: %s"
58
  msgstr ""
59
 
60
  #: src/api.lib.php:648
61
- #, php-format
62
  msgid "WP Engine PHP Compatibility Checker: %s (created post #%d as cache)"
63
  msgstr ""
64
 
65
- #: src/api.lib.php:991 src/api.lib.php:996
 
66
  msgid "WordPress version is not supported anymore"
67
  msgstr ""
68
 
@@ -71,7 +84,6 @@ msgid "API is not available; using local queue"
71
  msgstr ""
72
 
73
  #: src/auditlogs.lib.php:114
74
- #, php-format
75
  msgid "API %s secs"
76
  msgstr ""
77
 
@@ -99,12 +111,26 @@ msgstr ""
99
  msgid "Info:"
100
  msgstr ""
101
 
102
- #: src/cache.lib.php:392 src/cache.lib.php:412 src/cache.lib.php:453 src/cache.lib.php:470
 
 
 
103
  msgid "Invalid cache key name"
104
  msgstr ""
105
 
 
 
 
 
 
 
 
 
 
 
 
 
106
  #: src/event.lib.php:89
107
- #, php-format
108
  msgid "%s (every %d seconds)"
109
  msgstr ""
110
 
@@ -112,83 +138,74 @@ msgstr ""
112
  msgid "Never (no execution)"
113
  msgstr ""
114
 
115
- #: src/event.lib.php:108 src/event.lib.php:158
 
116
  msgid "API key is not available"
117
  msgstr ""
118
 
119
- #: src/event.lib.php:116
120
  msgid "WordPress version was already reported"
121
  msgstr ""
122
 
123
- #: src/event.lib.php:119
124
- #, php-format
125
  msgid "WordPress version detected %s"
126
  msgstr ""
127
 
128
- #: src/event.lib.php:162
129
  msgid "Scanner ran a couple of minutes ago"
130
  msgstr ""
131
 
132
- #: src/event.lib.php:194
133
  msgid "Event identifier cannot be empty"
134
  msgstr ""
135
 
136
- #: src/event.lib.php:373 src/event.lib.php:377
 
137
  msgid "Info"
138
  msgstr ""
139
 
140
- #: src/event.lib.php:375
141
  msgid "Debug"
142
  msgstr ""
143
 
144
- #: src/event.lib.php:376
145
  msgid "Notice"
146
  msgstr ""
147
 
148
- #: src/event.lib.php:378
149
  msgid "Warning"
150
  msgstr ""
151
 
152
- #: src/event.lib.php:379
153
  msgid "Error"
154
  msgstr ""
155
 
156
- #: src/event.lib.php:380
157
  msgid "Critical"
158
  msgstr ""
159
 
160
- #: src/event.lib.php:510
161
- #, php-format
162
  msgid ""
163
  "<br><br>\n"
164
  "\n"
165
- "<em>Explanation: Someone failed to login to your site. If you are getting too many of these messages, it is likely your "
166
- "site is under a password guessing brute-force attack [1]. You can disable the failed login alerts from here [2]. "
167
- "Alternatively, you can consider to install a firewall between your website and your visitors to filter out these and other "
168
- "attacks, take a look at Sucuri Firewall [3].</em><br><br>\n"
169
  "\n"
170
- "[1] <a href='https://kb.sucuri.net/definitions/attacks/brute-force/password-guessing'>https://kb.sucuri.net/definitions/"
171
- "attacks/brute-force/password-guessing</a><br>\n"
172
  "[2] <a href='%s'>%s</a> <br>\n"
173
  "[3] <a href='https://sucuri.net/website-firewall/?wpalert'>https://sucuri.net/website-firewall/</a><br>\n"
 
174
  msgstr ""
175
 
176
- #: src/event.lib.php:642
177
  msgid "Password Change"
178
  msgstr ""
179
 
180
- #: src/event.lib.php:747
181
- #, php-format
182
  msgid "%s cannot be deleted."
183
  msgstr ""
184
 
185
- #: src/event.lib.php:759
186
- #, php-format
187
- msgid "%s was deleted."
188
- msgstr ""
189
-
190
- #: src/event.lib.php:765
191
- #, php-format
192
  msgid "%s was deleted."
193
  msgstr ""
194
 
@@ -232,8 +249,12 @@ msgstr ""
232
  msgid "caching disabled (use with caution)"
233
  msgstr ""
234
 
235
- #: src/firewall.lib.php:253 src/firewall.lib.php:349 src/firewall.lib.php:567 src/firewall.lib.php:602
236
- #: src/firewall.lib.php:643 src/firewall.lib.php:735
 
 
 
 
237
  msgid "Firewall API key was not found."
238
  msgstr ""
239
 
@@ -298,32 +319,38 @@ msgid "Failure connecting to the API service; try again."
298
  msgstr ""
299
 
300
  #: src/firewall.lib.php:617
301
- #, php-format
302
  msgid "IP has been blacklisted: %s"
303
  msgstr ""
304
 
305
  #: src/firewall.lib.php:656
306
- #, php-format
307
  msgid "IP has been unblacklisted: %s"
308
  msgstr ""
309
 
310
- #: src/globals.php:80 src/strings.php:39 src/strings.php:289
 
 
311
  msgid "Dashboard"
312
  msgstr ""
313
 
314
- #: src/globals.php:81 src/strings.php:40
 
315
  msgid "Firewall (WAF)"
316
  msgstr ""
317
 
318
- #: src/globals.php:82
319
  msgid "Last Logins"
320
  msgstr ""
321
 
322
- #: src/globals.php:83 src/strings.php:41 src/strings.php:95 src/strings.php:290
 
 
 
323
  msgid "Settings"
324
  msgstr ""
325
 
326
- #: src/globals.php:104 src/globals.php:105 src/strings.php:35
 
 
327
  msgid "Sucuri Security"
328
  msgstr ""
329
 
@@ -348,57 +375,70 @@ msgid "Cannot remove file from whitelist; no permissions."
348
  msgstr ""
349
 
350
  #: src/hook.lib.php:68
351
- #, php-format
352
  msgid "Media file added; ID: %s; name: %s; type: %s"
353
  msgstr ""
354
 
355
- #: src/hook.lib.php:82 src/hook.lib.php:108 src/hook.lib.php:197 src/hook.lib.php:1001 src/hook.lib.php:1012
356
- #: src/hook.lib.php:1042 src/settings-general.php:416 src/settings-general.php:417 src/settings-general.php:418
357
- #: src/settings-general.php:419 src/settings-general.php:420 src/settings-webinfo.php:40
 
 
 
 
 
 
 
 
 
358
  msgid "unknown"
359
  msgstr ""
360
 
361
- #: src/hook.lib.php:83 src/hook.lib.php:109 src/hook.lib.php:1002 src/hook.lib.php:1013 src/hook.lib.php:1043
 
 
 
 
362
  msgid "user@domain.com"
363
  msgstr ""
364
 
365
  #: src/hook.lib.php:91
366
- #, php-format
367
  msgid "User added to website; user_id: %s; role: %s; blog_id: %s; name: %s; email: %s"
368
  msgstr ""
369
 
370
  #: src/hook.lib.php:117
371
- #, php-format
372
  msgid "User removed from website; user_id: %s; blog_id: %s; name: %s; email: %s"
373
  msgstr ""
374
 
375
- #: src/hook.lib.php:134 src/hook.lib.php:229 src/hook.lib.php:296 src/hook.lib.php:408 src/hook.lib.php:533
376
- #: src/hook.lib.php:744 src/hook.lib.php:770 src/hook.lib.php:870 src/hook.lib.php:912 src/lastlogins-failed.php:251
 
 
 
 
 
 
 
 
377
  msgid "Unknown"
378
  msgstr ""
379
 
380
  #: src/hook.lib.php:136
381
- #, php-format
382
  msgid "Category created; ID: %s; name: %s"
383
  msgstr ""
384
 
385
  #: src/hook.lib.php:153
386
- #, php-format
387
  msgid "WordPress updated to version: %s"
388
  msgstr ""
389
 
390
  #: src/hook.lib.php:179
391
- #, php-format
392
  msgid "Bookmark link added; ID: %s; name: %s; url: %s; target: %s"
393
  msgstr ""
394
 
395
  #: src/hook.lib.php:209
396
- #, php-format
397
  msgid "Bookmark link edited; ID: %s; name: %s; url: %s; target: %s"
398
  msgstr ""
399
 
400
  #: src/hook.lib.php:230
401
- #, php-format
402
  msgid "User authentication failed: %s"
403
  msgstr ""
404
 
@@ -407,17 +447,16 @@ msgid "Attempt to reset password by attacking WP/2.8.3 bug"
407
  msgstr ""
408
 
409
  #: src/hook.lib.php:297
410
- #, php-format
411
  msgid "User authentication succeeded: %s"
412
  msgstr ""
413
 
414
  #: src/hook.lib.php:326
415
- #, php-format
416
- msgid "The value of the option <b>%s</b> was changed from <b>'%s'</b> to <b>'%s'</b>.<br>\n"
 
417
  msgstr ""
418
 
419
  #: src/hook.lib.php:332
420
- #, php-format
421
  msgid "%s: from '%s' to '%s',"
422
  msgstr ""
423
 
@@ -430,17 +469,14 @@ msgid "Global"
430
  msgstr ""
431
 
432
  #: src/hook.lib.php:359
433
- #, php-format
434
  msgid "%s settings changed"
435
  msgstr ""
436
 
437
  #: src/hook.lib.php:362
438
- #, php-format
439
  msgid "%s: (multiple entries): %s"
440
  msgstr ""
441
 
442
  #: src/hook.lib.php:420
443
- #, php-format
444
  msgid "Plugin %s: %s (v%s; %s%s)"
445
  msgstr ""
446
 
@@ -453,12 +489,10 @@ msgid "Plugin deleted:"
453
  msgstr ""
454
 
455
  #: src/hook.lib.php:510
456
- #, php-format
457
  msgid "Plugin editor used in: %s"
458
  msgstr ""
459
 
460
  #: src/hook.lib.php:534
461
- #, php-format
462
  msgid "Plugin installed: %s"
463
  msgstr ""
464
 
@@ -471,7 +505,6 @@ msgid "Plugin updated:"
471
  msgstr ""
472
 
473
  #: src/hook.lib.php:660
474
- #, php-format
475
  msgid "Post deleted: (multiple entries): %s"
476
  msgstr ""
477
 
@@ -496,32 +529,26 @@ msgid "Skip events for ignored post transitions"
496
  msgstr ""
497
 
498
  #: src/hook.lib.php:720
499
- #, php-format
500
  msgid "ID: %s"
501
  msgstr ""
502
 
503
  #: src/hook.lib.php:721
504
- #, php-format
505
  msgid "Old status: %s"
506
  msgstr ""
507
 
508
  #: src/hook.lib.php:722
509
- #, php-format
510
  msgid "New status: %s"
511
  msgstr ""
512
 
513
  #: src/hook.lib.php:725
514
- #, php-format
515
  msgid "Title: %s"
516
  msgstr ""
517
 
518
  #: src/hook.lib.php:728
519
- #, php-format
520
  msgid "%s status has been changed"
521
  msgstr ""
522
 
523
  #: src/hook.lib.php:754
524
- #, php-format
525
  msgid "Post moved to trash; ID: %s; name: %s; status: %s"
526
  msgstr ""
527
 
@@ -530,32 +557,26 @@ msgid "Publication"
530
  msgstr ""
531
 
532
  #: src/hook.lib.php:789
533
- #, php-format
534
  msgid "%s was %s; ID: %s; name: %s"
535
  msgstr ""
536
 
537
  #: src/hook.lib.php:854
538
- #, php-format
539
  msgid "Password retrieval attempt: %s"
540
  msgstr ""
541
 
542
  #: src/hook.lib.php:872
543
- #, php-format
544
  msgid "Theme deleted: %s"
545
  msgstr ""
546
 
547
  #: src/hook.lib.php:894
548
- #, php-format
549
  msgid "Theme editor used in: %s/%s"
550
  msgstr ""
551
 
552
  #: src/hook.lib.php:914
553
- #, php-format
554
  msgid "Theme installed: %s"
555
  msgstr ""
556
 
557
  #: src/hook.lib.php:929
558
- #, php-format
559
  msgid "Theme activated: %s"
560
  msgstr ""
561
 
@@ -568,26 +589,25 @@ msgid "Theme updated:"
568
  msgstr ""
569
 
570
  #: src/hook.lib.php:991
571
- #, php-format
572
  msgid "User account deleted; ID: %d"
573
  msgstr ""
574
 
575
  #: src/hook.lib.php:1022
576
- #, php-format
577
  msgid "User account edited; ID: %s; name: %s; old_name: %s; email: %s; old_email: %s; roles: %s; old_roles: %s"
578
  msgstr ""
579
 
580
  #: src/hook.lib.php:1054
581
- #, php-format
582
  msgid "User account created; ID: %s; name: %s; email: %s; roles: %s"
583
  msgstr ""
584
 
585
  #: src/hook.lib.php:1096
586
- #, php-format
587
  msgid "Widget %s (%s) %s %s (#%d; size %dx%d)"
588
  msgstr ""
589
 
590
- #: src/integrity.lib.php:113 src/settings-general.php:46 src/settings-general.php:602 src/settings-posthack.php:58
 
 
 
591
  msgid "You need to confirm that you understand the risk of this operation."
592
  msgstr ""
593
 
@@ -616,34 +636,28 @@ msgid "Server is not fast enough to process this action; maximum execution time
616
  msgstr ""
617
 
618
  #: src/integrity.lib.php:234
619
- #, php-format
620
  msgid "Only <b>%d</b> out of <b>%d</b> files were processed."
621
  msgstr ""
622
 
623
  #: src/integrity.lib.php:243
624
- #, php-format
625
  msgid "<b>%d</b> out of <b>%d</b> files were successfully processed."
626
  msgstr ""
627
 
628
  #: src/integrity.lib.php:321
629
- msgid ""
630
- "The plugin has no permission to delete this file because it was created by a different system user who has more privileges "
631
- "than your account. Please use FTP to delete it."
632
  msgstr ""
633
 
634
  #: src/integrity.lib.php:323
635
- msgid ""
636
- "The plugin has no permission to restore this file because it was modified by a different system user who has more "
637
- "privileges than your account. Please use FTP to restore it."
638
  msgstr ""
639
 
640
  #: src/integrity.lib.php:325
641
- msgid ""
642
- "The plugin has no permission to restore this file because its directory is owned by a different system user who has more "
643
- "privileges than your account. Please use FTP to restore it."
644
  msgstr ""
645
 
646
- #: src/integrity.lib.php:405 src/strings.php:477 src/strings.php:479
 
 
647
  msgid "WordPress Integrity Diff Utility"
648
  msgstr ""
649
 
@@ -652,20 +666,15 @@ msgid "The plugin requires PHP 5 >= 5.3.0 - OR - PHP 7"
652
  msgstr ""
653
 
654
  #: src/interface.lib.php:198
655
- #, php-format
656
  msgid "Storage is not writable: <code>%s</code>"
657
  msgstr ""
658
 
659
  #: src/interface.lib.php:240
660
- msgid ""
661
- "API service communication is disabled, if you just updated the plugin this might be a good opportunity to test this "
662
- "feature once again with the new code. Enable it again from the \"API Service\" panel located in the settings page."
663
  msgstr ""
664
 
665
  #: src/interface.lib.php:253
666
- msgid ""
667
- "Do you want to get vulnerability disclosures? Subscribe to our newsletter <a href=\"http://sucuri.hs-sites.com/subscribe-"
668
- "to-security\" target=\"_blank\" rel=\"noopener\">here</a>"
669
  msgstr ""
670
 
671
  #: src/interface.lib.php:266
@@ -673,7 +682,6 @@ msgid "Access denied; cannot manage options"
673
  msgstr ""
674
 
675
  #: src/interface.lib.php:267
676
- #, php-format
677
  msgid "Access denied by %s"
678
  msgstr ""
679
 
@@ -682,38 +690,46 @@ msgid "Nonce is invalid"
682
  msgstr ""
683
 
684
  #: src/interface.lib.php:288
685
- msgid ""
686
- "WordPress CSRF verification failed. The submitted form is missing an important unique code that prevents the execution of "
687
- "automated malicious scanners. Go back and try again. If you did not submit a form, this error message could be an "
688
- "indication of an incompatibility between this plugin and another add-on; one of them is inserting data into the global "
689
- "POST variable when the HTTP request is coming via GET. Disable them one by one (while reloading this page) to find the "
690
- "culprit."
691
  msgstr ""
692
 
693
- #: src/lastlogins-failed.php:349 src/lastlogins-failed.php:373 src/strings.php:154 src/strings.php:167 src/strings.php:180
694
- #: src/strings.php:192 src/strings.php:412
 
 
 
 
 
695
  msgid "Username"
696
  msgstr ""
697
 
698
- #: src/lastlogins-failed.php:350 src/lastlogins-failed.php:374
 
699
  msgid "Password"
700
  msgstr ""
701
 
702
- #: src/lastlogins-failed.php:351 src/lastlogins-failed.php:375 src/strings.php:81 src/strings.php:160 src/strings.php:168
703
- #: src/strings.php:181 src/strings.php:195 src/strings.php:274
 
 
 
 
 
 
704
  msgid "IP Address"
705
  msgstr ""
706
 
707
- #: src/lastlogins-failed.php:352 src/lastlogins-failed.php:376
 
708
  msgid "Attempt Timestamp"
709
  msgstr ""
710
 
711
- #: src/lastlogins-failed.php:353 src/lastlogins-failed.php:377
 
712
  msgid "Attempt Date/Time"
713
  msgstr ""
714
 
715
  #: src/lastlogins.php:129
716
- #, php-format
717
  msgid "Last-logins data file is not writable: <code>%s</code>"
718
  msgstr ""
719
 
@@ -726,7 +742,6 @@ msgid "No last-logins data is available"
726
  msgstr ""
727
 
728
  #: src/lastlogins.php:456
729
- #, php-format
730
  msgid "Last login was at <b>%s</b> from <b>%s</b> <em>(%s)</em> <a href=\"%s\" target=\"_self\">view all logs</a>"
731
  msgstr ""
732
 
@@ -735,7 +750,6 @@ msgid "Maximum number of emails per hour reached"
735
  msgstr ""
736
 
737
  #: src/mail.lib.php:184
738
- #, php-format
739
  msgid "User: %s (%s)"
740
  msgstr ""
741
 
@@ -743,8 +757,10 @@ msgstr ""
743
  msgid "Sucuri Alert"
744
  msgstr ""
745
 
746
- #: src/option.lib.php:148 src/settings-alerts.php:209 src/settings-alerts.php:210 src/settings-alerts.php:211
747
- #, php-format
 
 
748
  msgid "Sucuri Alert, %s, %s, %s"
749
  msgstr ""
750
 
@@ -760,9 +776,19 @@ msgstr ""
760
  msgid "Scripts"
761
  msgstr ""
762
 
763
- #: src/pagehandler.php:47 src/pagehandler.php:48 src/pagehandler.php:49 src/strings.php:26 src/strings.php:53
764
- #: src/strings.php:65 src/strings.php:76 src/strings.php:108 src/strings.php:143 src/strings.php:399 src/strings.php:409
765
- #: src/strings.php:420 src/strings.php:451
 
 
 
 
 
 
 
 
 
 
766
  msgid "Loading..."
767
  msgstr ""
768
 
@@ -775,12 +801,10 @@ msgid "Could not reset the last-logins data file."
775
  msgstr ""
776
 
777
  #: src/settings-alerts.php:56
778
- #, php-format
779
  msgid "The email alerts will be sent to: <code>%s</code>"
780
  msgstr ""
781
 
782
  #: src/settings-alerts.php:59
783
- #, php-format
784
  msgid "The email alerts will be sent to: %s"
785
  msgstr ""
786
 
@@ -789,12 +813,10 @@ msgid "Email format not supported."
789
  msgstr ""
790
 
791
  #: src/settings-alerts.php:82
792
- #, php-format
793
  msgid "These emails will stop receiving alerts: <code>%s</code>"
794
  msgstr ""
795
 
796
  #: src/settings-alerts.php:85
797
- #, php-format
798
  msgid "These emails will stop receiving alerts: %s"
799
  msgstr ""
800
 
@@ -803,7 +825,6 @@ msgid "Test Email Alert"
803
  msgstr ""
804
 
805
  #: src/settings-alerts.php:97
806
- #, php-format
807
  msgid "Test email alert sent at %s"
808
  msgstr ""
809
 
@@ -816,12 +837,10 @@ msgid "The IP specified address was already added."
816
  msgstr ""
817
 
818
  #: src/settings-alerts.php:148
819
- #, php-format
820
  msgid "IP has been trusted: %s"
821
  msgstr ""
822
 
823
  #: src/settings-alerts.php:149
824
- #, php-format
825
  msgid "Events generated from this IP will be ignored: <code>%s</code>"
826
  msgstr ""
827
 
@@ -837,13 +856,13 @@ msgstr ""
837
  msgid "n/a"
838
  msgstr ""
839
 
840
- #: src/settings-alerts.php:208 src/settings-alerts.php:212 src/settings-alerts.php:213
841
- #, php-format
 
842
  msgid "Sucuri Alert, %s, %s"
843
  msgstr ""
844
 
845
  #: src/settings-alerts.php:214
846
- #, php-format
847
  msgid "Sucuri Alert, %s"
848
  msgstr ""
849
 
@@ -852,7 +871,6 @@ msgid "Invalid characters in the email subject."
852
  msgstr ""
853
 
854
  #: src/settings-alerts.php:250
855
- #, php-format
856
  msgid "Email subject set to <code>%s</code>"
857
  msgstr ""
858
 
@@ -889,7 +907,6 @@ msgid "Unlimited alerts per hour"
889
  msgstr ""
890
 
891
  #: src/settings-alerts.php:320
892
- #, php-format
893
  msgid "Maximum alerts per hour set to <code>%s</code>"
894
  msgstr ""
895
 
@@ -922,15 +939,11 @@ msgid "480 failed logins per hour"
922
  msgstr ""
923
 
924
  #: src/settings-alerts.php:364
925
- #, php-format
926
  msgid "Consider brute-force attack after <code>%s</code> failed logins per hour"
927
  msgstr ""
928
 
929
  #: src/settings-alerts.php:369
930
- #, php-format
931
- msgid ""
932
- "The plugin will assume that your website is under a brute-force attack after %s failed logins are detected during the same "
933
- "hour"
934
  msgstr ""
935
 
936
  #: src/settings-alerts.php:371
@@ -1038,7 +1051,6 @@ msgid "Receive email alerts when a <b>theme is deleted</b>"
1038
  msgstr ""
1039
 
1040
  #: src/settings-alerts.php:464
1041
- #, php-format
1042
  msgid "A total of %s alert events were changed"
1043
  msgstr ""
1044
 
@@ -1059,7 +1071,6 @@ msgid "Post-type has been successfully ignored."
1059
  msgstr ""
1060
 
1061
  #: src/settings-alerts.php:550
1062
- #, php-format
1063
  msgid "Changes in <code>%s</code> post-type will be ignored"
1064
  msgstr ""
1065
 
@@ -1071,23 +1082,36 @@ msgstr ""
1071
  msgid "List of monitored post-types has been updated"
1072
  msgstr ""
1073
 
1074
- #: src/settings-alerts.php:574 src/settings-scanner.php:179 src/settings-scanner.php:239 src/strings.php:46
1075
- #: src/strings.php:159 src/strings.php:171 src/strings.php:184 src/strings.php:277 src/strings.php:382 src/strings.php:473
 
 
 
 
 
 
 
 
1076
  msgid "no data available"
1077
  msgstr ""
1078
 
1079
- #: src/settings-apiservice.php:36 src/settings-general.php:312 src/settings-general.php:378 src/settings-general.php:425
 
 
 
1080
  #: src/settings-integrity.php:80
1081
  msgid "Enabled"
1082
  msgstr ""
1083
 
1084
- #: src/settings-apiservice.php:37 src/settings-general.php:313 src/settings-general.php:379 src/settings-general.php:426
 
 
 
1085
  #: src/settings-integrity.php:81
1086
  msgid "Disable"
1087
  msgstr ""
1088
 
1089
  #: src/settings-apiservice.php:50
1090
- #, php-format
1091
  msgid "API service communication was <code>%s</code>"
1092
  msgstr ""
1093
 
@@ -1095,11 +1119,17 @@ msgstr ""
1095
  msgid "The status of the API service has been changed"
1096
  msgstr ""
1097
 
1098
- #: src/settings-apiservice.php:63 src/settings-general.php:355 src/settings-general.php:399 src/settings-general.php:460
 
 
 
1099
  msgid "Disabled"
1100
  msgstr ""
1101
 
1102
- #: src/settings-apiservice.php:64 src/settings-general.php:356 src/settings-general.php:400 src/settings-general.php:461
 
 
 
1103
  msgid "Enable"
1104
  msgstr ""
1105
 
@@ -1107,16 +1137,18 @@ msgstr ""
1107
  msgid "NONE"
1108
  msgstr ""
1109
 
1110
- #: src/settings-apiservice.php:131 src/settings-apiservice.php:138
1111
- #, php-format
1112
  msgid "Core integrity API changed: %s"
1113
  msgstr ""
1114
 
1115
- #: src/settings-apiservice.php:134 src/settings-apiservice.php:141
 
1116
  msgid "The URL to retrieve the WordPress checksums has been changed"
1117
  msgstr ""
1118
 
1119
- #: src/settings-general.php:38 src/settings-general.php:44
 
1120
  msgid "Local security logs, hardening and settings were deleted"
1121
  msgstr ""
1122
 
@@ -1129,7 +1161,6 @@ msgid "Sucuri API key removed"
1129
  msgstr ""
1130
 
1131
  #: src/settings-general.php:80
1132
- #, php-format
1133
  msgid "Sucuri API key has been deleted <code>%s</code>"
1134
  msgstr ""
1135
 
@@ -1166,7 +1197,6 @@ msgid "Directory used to store the plugin settings, cache and system logs"
1166
  msgstr ""
1167
 
1168
  #: src/settings-general.php:165
1169
- #, php-format
1170
  msgid "Cache to store the system logs obtained from the API service; expires after %s seconds."
1171
  msgstr ""
1172
 
@@ -1179,14 +1209,11 @@ msgid "Deprecated on 1.8.12; it was used to store a list of blocked user names."
1179
  msgstr ""
1180
 
1181
  #: src/settings-general.php:168
1182
- msgid ""
1183
- "Stores the data for every failed login attempt. The data is moved to \"oldfailedlogins\" every hour during a brute force "
1184
- "password attack."
1185
  msgstr ""
1186
 
1187
  #: src/settings-general.php:169
1188
- msgid ""
1189
- "Temporarily stores data to complement the logs during destructive operations like deleting a post, page, comment, etc."
1190
  msgstr ""
1191
 
1192
  #: src/settings-general.php:170
@@ -1198,19 +1225,14 @@ msgid "Stores a list of files marked as fixed by the user via the WordPress Inte
1198
  msgstr ""
1199
 
1200
  #: src/settings-general.php:172
1201
- msgid ""
1202
- "Stores the data associated to every successful user login. The data never expires; manually delete if the file is too "
1203
- "large."
1204
  msgstr ""
1205
 
1206
  #: src/settings-general.php:173
1207
- msgid ""
1208
- "Stores the data for every failed login attempt after the plugin sends a report about a brute force password attack via "
1209
- "email."
1210
  msgstr ""
1211
 
1212
  #: src/settings-general.php:174
1213
- #, php-format
1214
  msgid "Cache to store the data associated to the installed plugins listed in the Post-Hack page. Expires after %s seconds."
1215
  msgstr ""
1216
 
@@ -1219,27 +1241,23 @@ msgid "Stores all the options used to configure the functionality and behavior o
1219
  msgstr ""
1220
 
1221
  #: src/settings-general.php:176
1222
- #, php-format
1223
  msgid "Cache to store the result of the malware scanner. Expires after %s seconds, reset at any time to force a re-scan."
1224
  msgstr ""
1225
 
1226
  #: src/settings-general.php:177
1227
- msgid ""
1228
- "Stores a list of IP addresses trusted by the plugin, events triggered by one of these IPs will not be reported to the "
1229
- "remote monitoring API service."
1230
  msgstr ""
1231
 
1232
  #: src/settings-general.php:212
1233
- #, php-format
1234
  msgid "%s were deleted."
1235
  msgstr ""
1236
 
1237
  #: src/settings-general.php:219
1238
- #, php-format
1239
  msgid "%d out of %d files have been deleted."
1240
  msgstr ""
1241
 
1242
- #: src/settings-general.php:237 src/settings-posthack.php:308
 
1243
  msgid "Not Writable"
1244
  msgstr ""
1245
 
@@ -1251,7 +1269,8 @@ msgstr ""
1251
  msgid "Exists"
1252
  msgstr ""
1253
 
1254
- #: src/settings-general.php:250 src/strings.php:330
 
1255
  msgid "Writable"
1256
  msgstr ""
1257
 
@@ -1288,7 +1307,6 @@ msgid "INVALID"
1288
  msgstr ""
1289
 
1290
  #: src/settings-general.php:440
1291
- #, php-format
1292
  msgid "DNS lookups for reverse proxy detection <code>%s</code>"
1293
  msgstr ""
1294
 
@@ -1297,7 +1315,6 @@ msgid "The status of the DNS lookups for the reverse proxy detection has been ch
1297
  msgstr ""
1298
 
1299
  #: src/settings-general.php:593
1300
- #, php-format
1301
  msgid "%d out of %d option have been successfully imported"
1302
  msgstr ""
1303
 
@@ -1306,7 +1323,6 @@ msgid "Data is incorrectly encoded"
1306
  msgstr ""
1307
 
1308
  #: src/settings-general.php:657
1309
- #, php-format
1310
  msgid "Timezone override will use %s"
1311
  msgstr ""
1312
 
@@ -1315,32 +1331,40 @@ msgid "The timezone for the date and time in the audit logs has been changed"
1315
  msgstr ""
1316
 
1317
  #: src/settings-hardening.php:100
1318
- msgid ""
1319
- "The firewall is a premium service that you need purchase at - <a href=\"https://sucuri.net/website-firewall/signup\" "
1320
- "target=\"_blank\">Sucuri Firewall</a>"
1321
  msgstr ""
1322
 
1323
  #: src/settings-hardening.php:105
1324
- msgid "Website Firewall Protection"
1325
  msgstr ""
1326
 
1327
  #: src/settings-hardening.php:106
1328
- msgid ""
1329
- "A WAF is a protection layer for your web site, blocking all sort of attacks (brute force attempts, DDoS, SQL injections, "
1330
- "etc) and helping it remain malware and blacklist free. This test checks if your site is using Sucuri Firewall to protect "
1331
- "your site."
1332
  msgstr ""
1333
 
1334
- #: src/settings-hardening.php:110 src/settings-hardening.php:256 src/settings-hardening.php:315
1335
- #: src/settings-hardening.php:384 src/settings-hardening.php:416 src/settings-hardening.php:456
 
 
 
 
1336
  #: src/settings-hardening.php:549
 
1337
  msgid "Apply Hardening"
1338
  msgstr ""
1339
 
1340
- #: src/settings-hardening.php:114 src/settings-hardening.php:167 src/settings-hardening.php:248
1341
- #: src/settings-hardening.php:252 src/settings-hardening.php:307 src/settings-hardening.php:311
1342
- #: src/settings-hardening.php:376 src/settings-hardening.php:380 src/settings-hardening.php:419
1343
- #: src/settings-hardening.php:452 src/settings-hardening.php:545
 
 
 
 
 
 
 
 
1344
  msgid "Revert Hardening"
1345
  msgstr ""
1346
 
@@ -1353,10 +1377,7 @@ msgid "Verify WordPress Version"
1353
  msgstr ""
1354
 
1355
  #: src/settings-hardening.php:141
1356
- msgid ""
1357
- "Why keep your site updated? WordPress is an open-source project which means that with every update the details of the "
1358
- "changes made to the source code are made public, if there were security fixes then someone with malicious intent can use "
1359
- "this information to attack any site that has not been upgraded."
1360
  msgstr ""
1361
 
1362
  #: src/settings-hardening.php:145
@@ -1368,18 +1389,11 @@ msgid "Remove WordPress Version"
1368
  msgstr ""
1369
 
1370
  #: src/settings-hardening.php:169
1371
- msgid ""
1372
- "It checks if your WordPress version is being leaked to the public via a HTML meta-tag. Many web vulnerability scanners use "
1373
- "this to determine which version of the code is running in your website. They use this to find disclosed vulnerabilities "
1374
- "associated to this version number. A vulnerability scanner can still guess which version of WordPress is installed by "
1375
- "comparing the checksum of some static files."
1376
  msgstr ""
1377
 
1378
  #: src/settings-hardening.php:189
1379
- msgid ""
1380
- "Read the official WordPress guidelines to learn how to restrict access to PHP files in sensitive directories - <a href="
1381
- "\"https://codex.wordpress.org/Nginx#Global_restrictions_file\" target=\"_blank\" rel=\"noopener\">Nginx Global "
1382
- "Restrictions For WordPress</a>"
1383
  msgstr ""
1384
 
1385
  #: src/settings-hardening.php:193
@@ -1390,27 +1404,32 @@ msgstr ""
1390
  msgid "Check Hardening"
1391
  msgstr ""
1392
 
1393
- #: src/settings-hardening.php:197 src/settings-hardening.php:243 src/settings-hardening.php:302
 
 
1394
  #: src/settings-hardening.php:371
1395
- msgid ""
1396
- "Block the execution of PHP files in sensitive directories. Be careful while applying this hardening option as there are "
1397
- "many plugins and theme which rely on the ability to execute PHP files in the content directory to generate images or save "
1398
- "temporary data. Use the \"Whitelist PHP Files\" tool to add exceptions to individual files."
1399
  msgstr ""
1400
 
1401
- #: src/settings-hardening.php:224 src/settings-hardening.php:225
 
1402
  msgid "Hardening applied to the uploads directory"
1403
  msgstr ""
1404
 
1405
- #: src/settings-hardening.php:227 src/settings-hardening.php:286 src/settings-hardening.php:353
 
 
1406
  msgid "Error hardening directory, check the permissions."
1407
  msgstr ""
1408
 
1409
- #: src/settings-hardening.php:235 src/settings-hardening.php:236
 
1410
  msgid "Hardening reverted in the uploads directory"
1411
  msgstr ""
1412
 
1413
- #: src/settings-hardening.php:238 src/settings-hardening.php:297 src/settings-hardening.php:366
 
 
1414
  msgid "Access file is not writable, check the permissions."
1415
  msgstr ""
1416
 
@@ -1418,11 +1437,13 @@ msgstr ""
1418
  msgid "Block PHP Files in Uploads Directory"
1419
  msgstr ""
1420
 
1421
- #: src/settings-hardening.php:283 src/settings-hardening.php:284
 
1422
  msgid "Hardening applied to the content directory"
1423
  msgstr ""
1424
 
1425
- #: src/settings-hardening.php:294 src/settings-hardening.php:295
 
1426
  msgid "Hardening reverted in the content directory"
1427
  msgstr ""
1428
 
@@ -1430,11 +1451,13 @@ msgstr ""
1430
  msgid "Block PHP Files in WP-CONTENT Directory"
1431
  msgstr ""
1432
 
1433
- #: src/settings-hardening.php:347 src/settings-hardening.php:348
 
1434
  msgid "Hardening applied to the library directory"
1435
  msgstr ""
1436
 
1437
- #: src/settings-hardening.php:363 src/settings-hardening.php:364
 
1438
  msgid "Hardening reverted in the library directory"
1439
  msgstr ""
1440
 
@@ -1443,77 +1466,105 @@ msgid "Block PHP Files in WP-INCLUDES Directory"
1443
  msgstr ""
1444
 
1445
  #: src/settings-hardening.php:403
1446
- #, php-format
1447
  msgid "Cannot delete <code>%s/readme.html</code>"
1448
  msgstr ""
1449
 
1450
- #: src/settings-hardening.php:405 src/settings-hardening.php:406
 
1451
  msgid "Hardening applied to the <code>readme.html</code> file"
1452
  msgstr ""
1453
 
1454
  #: src/settings-hardening.php:410
1455
- msgid "Information Leakage"
1456
  msgstr ""
1457
 
1458
  #: src/settings-hardening.php:411
1459
- msgid ""
1460
- "Checks if the WordPress README file still exists in the website. The information in this file can be used by malicious "
1461
- "users to pin-point which disclosed vulnerabilities are associated to the website. Be aware that WordPress recreates this "
1462
- "file automatically with every update."
1463
  msgstr ""
1464
 
1465
  #: src/settings-hardening.php:446
1466
- msgid "Default Admin Account"
1467
  msgstr ""
1468
 
1469
  #: src/settings-hardening.php:447
1470
- msgid ""
1471
- "Check if the primary user account still uses the name \"admin\". This allows malicious users to easily identify which "
1472
- "account has the highest privileges to target an attack."
1473
  msgstr ""
1474
 
1475
- #: src/settings-hardening.php:476 src/settings-hardening.php:507 src/settings-posthack.php:63
 
 
1476
  msgid "WordPress configuration file was not found."
1477
  msgstr ""
1478
 
1479
- #: src/settings-hardening.php:478 src/settings-hardening.php:509 src/settings-posthack.php:76
 
 
1480
  msgid "WordPress configuration file is not writable."
1481
  msgstr ""
1482
 
1483
- #: src/settings-hardening.php:498 src/settings-hardening.php:499
 
1484
  msgid "Hardening applied to the plugin and theme editor"
1485
  msgstr ""
1486
 
1487
  #: src/settings-hardening.php:527
1488
- msgid ""
1489
- "File Editor was not disabled using this tool. You must scan your project for a constant defined as DISALLOW_FILE_EDIT, "
1490
- "then either delete it or set its value to False. Any plugin/theme can disable the file editor, so it is impossible to "
1491
- "determine the origin of the constant."
1492
  msgstr ""
1493
 
1494
- #: src/settings-hardening.php:533 src/settings-hardening.php:534
 
1495
  msgid "Hardening reverted in the plugin and theme editor"
1496
  msgstr ""
1497
 
1498
  #: src/settings-hardening.php:539
1499
- msgid "Plugin and Theme Editor"
1500
  msgstr ""
1501
 
1502
  #: src/settings-hardening.php:540
1503
- msgid ""
1504
- "Disables the theme and plugin editors to prevent unwanted modifications to the code. If you are having problems reverting "
1505
- "this please open the wp-config.php file and delete the line with the constant DISALLOW_FILE_EDIT."
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1506
  msgstr ""
1507
 
1508
  #: src/settings-hardening.php:591
 
 
 
 
 
 
 
 
1509
  msgid "The file has been whitelisted from the hardening"
1510
  msgstr ""
1511
 
1512
- #: src/settings-hardening.php:596
1513
  msgid "Specified folder is not hardened by this plugin"
1514
  msgstr ""
1515
 
1516
- #: src/settings-hardening.php:610
1517
  msgid "Selected files have been removed"
1518
  msgstr ""
1519
 
@@ -1522,7 +1573,6 @@ msgid "Your hosting provider has blocked the execution of external commands."
1522
  msgstr ""
1523
 
1524
  #: src/settings-integrity.php:68
1525
- #, php-format
1526
  msgid "Integrity diff utility has been <code>%s</code>"
1527
  msgstr ""
1528
 
@@ -1531,7 +1581,6 @@ msgid "The status of the integrity diff utility has been changed"
1531
  msgstr ""
1532
 
1533
  #: src/settings-integrity.php:112
1534
- #, php-format
1535
  msgid "Core files that will not be ignored anymore: (multiple entries): %s"
1536
  msgstr ""
1537
 
@@ -1559,75 +1608,71 @@ msgstr ""
1559
  msgid "Generate new security keys (failure)"
1560
  msgstr ""
1561
 
1562
- #: src/settings-posthack.php:203
1563
- #, php-format
 
 
 
1564
  msgid "Password changed for user #%d"
1565
  msgstr ""
1566
 
1567
- #: src/settings-posthack.php:298
1568
  msgid "not installed"
1569
  msgstr ""
1570
 
1571
- #: src/settings-posthack.php:305
1572
  msgid "Plugin is Premium"
1573
  msgstr ""
1574
 
1575
- #: src/settings-posthack.php:311
1576
  msgid "Missing Library"
1577
  msgstr ""
1578
 
1579
- #: src/settings-posthack.php:321
1580
  msgid "Cannot Download"
1581
  msgstr ""
1582
 
1583
- #: src/settings-posthack.php:324
1584
  msgid "Cannot Backup"
1585
  msgstr ""
1586
 
1587
- #: src/settings-posthack.php:337
1588
  msgid "Cannot Install"
1589
  msgstr ""
1590
 
1591
- #: src/settings-posthack.php:346
1592
- #, php-format
1593
  msgid "Installed v%s"
1594
  msgstr ""
1595
 
1596
- #: src/settings-posthack.php:420
1597
  msgid "Newest WordPress"
1598
  msgstr ""
1599
 
1600
- #: src/settings-posthack.php:458
1601
  msgid "There are no updates available."
1602
  msgstr ""
1603
 
1604
  #: src/settings-scanner.php:68
1605
- #, php-format
1606
  msgid "%d tasks has been scheduled to run in the next ten seconds."
1607
  msgstr ""
1608
 
1609
  #: src/settings-scanner.php:74
1610
- #, php-format
1611
  msgid "Force execution of scheduled tasks: (multiple entries): %s"
1612
  msgstr ""
1613
 
1614
  #: src/settings-scanner.php:86
1615
- #, php-format
1616
  msgid "%d scheduled tasks have been removed."
1617
  msgstr ""
1618
 
1619
  #: src/settings-scanner.php:92
1620
- #, php-format
1621
  msgid "Delete scheduled tasks: (multiple entries): %s"
1622
  msgstr ""
1623
 
1624
  #: src/settings-scanner.php:103
1625
- #, php-format
1626
  msgid "%d tasks has been re-scheduled to run <code>%s</code>."
1627
  msgstr ""
1628
 
1629
  #: src/settings-scanner.php:110
1630
- #, php-format
1631
  msgid "Re-configure scheduled tasks %s: (multiple entries): %s"
1632
  msgstr ""
1633
 
@@ -1639,12 +1684,12 @@ msgstr ""
1639
  msgid "Execute Now (in +10 seconds)"
1640
  msgstr ""
1641
 
1642
- #: src/settings-scanner.php:207 src/settings-scanner.php:216
 
1643
  msgid "Selected files have been successfully processed."
1644
  msgstr ""
1645
 
1646
  #: src/settings-scanner.php:208
1647
- #, php-format
1648
  msgid "This directory will not be scanned: %s"
1649
  msgstr ""
1650
 
@@ -1661,22 +1706,18 @@ msgid "active"
1661
  msgstr ""
1662
 
1663
  #: src/sitecheck.lib.php:178
1664
- #, php-format
1665
  msgid "PHP Version: %s"
1666
  msgstr ""
1667
 
1668
  #: src/sitecheck.lib.php:179
1669
- #, php-format
1670
  msgid "Version: %s"
1671
  msgstr ""
1672
 
1673
  #: src/sitecheck.lib.php:190
1674
- #, php-format
1675
  msgid "Hosting: %s"
1676
  msgstr ""
1677
 
1678
  #: src/sitecheck.lib.php:194
1679
- #, php-format
1680
  msgid "CMS: %s"
1681
  msgstr ""
1682
 
@@ -1696,18 +1737,15 @@ msgstr ""
1696
  msgid "Blacklisted"
1697
  msgstr ""
1698
 
1699
- #: src/sitecheck.lib.php:415
1700
- #, php-format
1701
  msgid "iFrames: %d"
1702
  msgstr ""
1703
 
1704
- #: src/sitecheck.lib.php:427
1705
- #, php-format
1706
  msgid "Links: %d"
1707
  msgstr ""
1708
 
1709
- #: src/sitecheck.lib.php:448
1710
- #, php-format
1711
  msgid "Scripts: %d"
1712
  msgstr ""
1713
 
@@ -1743,7 +1781,8 @@ msgstr ""
1743
  msgid "Review"
1744
  msgstr ""
1745
 
1746
- #: src/strings.php:38 src/template.lib.php:136
 
1747
  msgid "Generate API Key"
1748
  msgstr ""
1749
 
@@ -1755,7 +1794,8 @@ msgstr ""
1755
  msgid "Sucuri Inc. All Rights Reserved."
1756
  msgstr ""
1757
 
1758
- #: src/strings.php:47 src/strings.php:96
 
1759
  msgid "Audit Logs"
1760
  msgstr ""
1761
 
@@ -1764,26 +1804,42 @@ msgid "Firewall Audit Logs"
1764
  msgstr ""
1765
 
1766
  #: src/strings.php:51
1767
- msgid ""
1768
- "The firewall logs every request involved in an attack and separates them from the legitimate requests. You can analyze the "
1769
- "data from the latest entries in the logs using this tool and take action either enabling the advanced features of the IDS "
1770
- "<em>(Intrusion Detection System)</em> from the <a href=\"https://waf.sucuri.net/?settings\" target=\"_blank\" rel="
1771
- "\"noopener\">Firewall Dashboard</a> and/or blocking IP addresses and URL paths directly from the <a href=\"https://waf."
1772
- "sucuri.net/?audit\" target=\"_blank\" rel=\"noopener\">Firewall Audit Trails</a> page."
1773
  msgstr ""
1774
 
1775
  #: src/strings.php:52
1776
  msgid "Non-blocked requests are hidden from the logs, this is intentional."
1777
  msgstr ""
1778
 
1779
- #: src/strings.php:54 src/strings.php:75 src/strings.php:128 src/strings.php:215 src/strings.php:221 src/strings.php:228
1780
- #: src/strings.php:236 src/strings.php:248 src/strings.php:255 src/strings.php:265 src/strings.php:272 src/strings.php:284
1781
- #: src/strings.php:297 src/strings.php:337 src/strings.php:355 src/strings.php:365 src/strings.php:371 src/strings.php:377
1782
- #: src/strings.php:416 src/strings.php:429 src/strings.php:453 src/strings.php:460 src/strings.php:525
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1783
  msgid "Submit"
1784
  msgstr ""
1785
 
1786
- #: src/strings.php:57 src/strings.php:202
 
1787
  msgid "Date/Time:"
1788
  msgstr ""
1789
 
@@ -1815,41 +1871,30 @@ msgstr ""
1815
  msgid "Clear cache when a post or page is updated"
1816
  msgstr ""
1817
 
1818
- #: src/strings.php:68 src/strings.php:98
 
1819
  msgid "Clear Cache"
1820
  msgstr ""
1821
 
1822
  #: src/strings.php:69
1823
- msgid ""
1824
- "The firewall offers multiple options to configure the cache level applied to your website. You can either enable the full "
1825
- "cache which is the recommended setting, or you can set the cache level to minimal which will keep the pages static for a "
1826
- "couple of minutes, or force the usage of the website headers <em>(only for advanced users)</em>, or in extreme cases where "
1827
- "you do not need the cache you can simply disable it. Find more information about it in the <a href=\"https://kb.sucuri.net/"
1828
- "firewall/Performance/caching-options\" target=\"_blank\" rel=\"noopener\">Sucuri Knowledge Base</a> website."
1829
  msgstr ""
1830
 
1831
  #: src/strings.php:70
1832
- msgid ""
1833
- "Note that the firewall has <a href=\"https://kb.sucuri.net/firewall/Performance/cache-exceptions\" target=\"_blank\" rel="
1834
- "\"noopener\">special caching rules</a> for Images, CSS, PDF, TXT, JavaScript, media files and a few more extensions that "
1835
- "are stored on our <a href=\"https://en.wikipedia.org/wiki/Edge_device\" target=\"_blank\" rel=\"noopener\">edge</a>. The "
1836
- "only way to flush the cache for these files is by clearing the firewall’s cache completely <em>(for the whole website)</"
1837
- "em>. Due to our caching of JavaScript and CSS files, often, as is best practice, the use of versioning during development "
1838
- "will ensure updates going live as expected. This is done by adding a query string such as <code>?ver=1.2.3</code> and "
1839
- "incrementing on each update."
1840
  msgstr ""
1841
 
1842
  #: src/strings.php:71
1843
- msgid ""
1844
- "A web cache (or HTTP cache) is an information technology for the temporary storage (caching) of web documents, such as "
1845
- "HTML pages and images, to reduce bandwidth usage, server load, and perceived lag. A web cache system stores copies of "
1846
- "documents passing through it; subsequent requests may be satisfied from the cache if certain conditions are met. A web "
1847
- "cache system can refer either to an appliance, or to a computer program. &mdash; <a href=\"https://en.wikipedia.org/wiki/"
1848
- "Web_cache\" target=\"_blank\" rel=\"noopener\">WikiPedia - Web Cache</a>"
1849
  msgstr ""
1850
 
1851
- #: src/strings.php:74 src/strings.php:88 src/strings.php:172 src/strings.php:186 src/strings.php:258 src/strings.php:278
1852
- #: src/strings.php:320 src/strings.php:331 src/strings.php:383
 
 
 
 
 
1853
  msgid "Delete"
1854
  msgstr ""
1855
 
@@ -1858,1108 +1903,954 @@ msgid "IP Address Access"
1858
  msgstr ""
1859
 
1860
  #: src/strings.php:78
1861
- msgid ""
1862
- "This tool allows you to whitelist and blacklist one or more IP addresses from accessing your website. You can also "
1863
- "configure the plugin to automatically blacklist any IP address involved in a password guessing brute-force attack. If a "
1864
- "legitimate user fails to submit the correct credentials of their account they will have to log into the Firewall dashboard "
1865
- "in order to delete their IP address from the blacklist, or try to login once again through a VPN."
1866
  msgstr ""
1867
 
1868
  #: src/strings.php:79
1869
- msgid "Blacklist IP:"
1870
  msgstr ""
1871
 
1872
  #: src/strings.php:80
1873
- msgid "e.g. 192.168.1.54"
1874
  msgstr ""
1875
 
1876
- #: src/strings.php:84
1877
- msgid "Firewall Settings"
1878
  msgstr ""
1879
 
1880
  #: src/strings.php:85
1881
- msgid ""
1882
- "A powerful Web Application Firewall and <b>Intrusion Detection System</b> for any WordPress user and many other platforms. "
1883
- "This page will help you to configure and monitor your site through the <b>Sucuri Firewall</b>. Once enabled, our firewall "
1884
- "will act as a shield, protecting your site from attacks and preventing malware infections and reinfections. It will block "
1885
- "SQL injection attempts, brute force attacks, XSS, RFI, backdoors and many other threats against your site."
1886
  msgstr ""
1887
 
1888
  #: src/strings.php:86
1889
- msgid ""
1890
- "Add your <a href=\"https://waf.sucuri.net/?settings&panel=api\" target=\"_blank\" rel=\"noopener\">Firewall API key</a> in "
1891
- "the form below to start communicating with the firewall API service."
1892
  msgstr ""
1893
 
1894
  #: src/strings.php:87
 
 
 
 
1895
  msgid "Firewall API Key:"
1896
  msgstr ""
1897
 
1898
- #: src/strings.php:89
1899
  msgid "Save"
1900
  msgstr ""
1901
 
1902
- #: src/strings.php:90 src/strings.php:387 src/strings.php:395 src/strings.php:425 src/strings.php:436 src/strings.php:447
 
 
 
 
 
1903
  msgid "Name"
1904
  msgstr ""
1905
 
1906
- #: src/strings.php:91 src/strings.php:437
 
1907
  msgid "Value"
1908
  msgstr ""
1909
 
1910
- #: src/strings.php:92
1911
- msgid ""
1912
- "<em>[1]</em> More information about the <a href=\"https://sucuri.net/website-firewall/\" target=\"_blank\" rel=\"noopener"
1913
- "\">Sucuri Firewall</a>, features and pricing.<br><em>[2]</em> Instructions and videos in the official <a href=\"https://kb."
1914
- "sucuri.net/firewall\" target=\"_blank\" rel=\"noopener\">Knowledge Base</a> site.<br><em>[3]</em> <a href=\"https://login."
1915
- "sucuri.net/signup2/create?CloudProxy\" target=\"_blank\" rel=\"noopener\">Sign up</a> for a new account and start "
1916
- "protecting your site."
1917
  msgstr ""
1918
 
1919
- #: src/strings.php:97
1920
  msgid "IP Access"
1921
  msgstr ""
1922
 
1923
- #: src/strings.php:101 src/strings.php:112 src/strings.php:141
 
 
1924
  msgid "WordPress Integrity"
1925
  msgstr ""
1926
 
1927
- #: src/strings.php:102 src/strings.php:113 src/strings.php:142
1928
- #, php-format
1929
- msgid ""
1930
- "We inspect your WordPress installation and look for modifications on the core files as provided by WordPress.org. Files "
1931
- "located in the root directory, wp-admin and wp-includes will be compared against the files distributed with v%%SUCURI."
1932
- "WordPressVersion%%; all files with inconsistencies will be listed here. Any changes might indicate a hack."
1933
  msgstr ""
1934
 
1935
- #: src/strings.php:103
1936
  msgid "All Core WordPress Files Are Correct"
1937
  msgstr ""
1938
 
1939
- #: src/strings.php:104
1940
- msgid ""
1941
- "We have not identified additional files, deleted files, or relevant changes to the core files in your WordPress "
1942
- "installation. If you are experiencing other malware issues, please use a <a href=\"https://sucuri.net/website-security/"
1943
- "malware-removal\" target=\"_blank\" rel=\"noopener\">Server Side Scanner</a>."
1944
  msgstr ""
1945
 
1946
- #: src/strings.php:105 src/strings.php:116
 
1947
  msgid "Review False Positives"
1948
  msgstr ""
1949
 
1950
- #: src/strings.php:109
1951
- msgid ""
1952
- "Lines with a <b>minus</b> sign as the prefix <em>(here in red)</em> show the original code. Lines with a <b>plus</b> sign "
1953
- "as the prefix <em>(here in green)</em> show the modified code. You can read more about the DIFF format from the WikiPedia "
1954
- "article about the <a target=\"_blank\" href=\"https://en.wikipedia.org/wiki/Diff_utility\" rel=\"noopener\">Unix Diff "
1955
- "Utility</a>."
1956
  msgstr ""
1957
 
1958
- #: src/strings.php:114
1959
  msgid "Core WordPress Files Were Modified"
1960
  msgstr ""
1961
 
1962
- #: src/strings.php:115 src/strings.php:132
1963
- msgid ""
1964
- "We identified that some of your WordPress core files were modified. That might indicate a hack or a broken file on your "
1965
- "installation. If you are experiencing other malware issues, please use a <a href=\"https://sucuri.net/website-security/"
1966
- "malware-removal\" target=\"_blank\" rel=\"noopener\">Server Side Scanner</a>."
1967
  msgstr ""
1968
 
1969
- #: src/strings.php:117 src/strings.php:133
1970
- #, php-format
1971
  msgid "WordPress Integrity (%%SUCURI.Integrity.ListCount%%)"
1972
  msgstr ""
1973
 
1974
- #: src/strings.php:118
1975
- msgid ""
1976
- "The Unix Diff Utility is enabled. You can click the files in the table to see the differences detected by the scanner. If "
1977
- "you consider the differences to be harmless you can mark the file as fixed, otherwise it is advised to restore the "
1978
- "original content immediately."
1979
  msgstr ""
1980
 
1981
- #: src/strings.php:119 src/strings.php:226 src/strings.php:239 src/strings.php:256 src/strings.php:273 src/strings.php:326
1982
- #: src/strings.php:378 src/strings.php:411 src/strings.php:424 src/strings.php:446 src/strings.php:461 src/strings.php:469
 
 
 
 
 
 
 
 
 
 
1983
  msgid "Select All"
1984
  msgstr ""
1985
 
1986
- #: src/strings.php:120 src/strings.php:135 src/strings.php:328
 
 
1987
  msgid "File Size"
1988
  msgstr ""
1989
 
1990
- #: src/strings.php:121 src/strings.php:136
 
1991
  msgid "Modified At"
1992
  msgstr ""
1993
 
1994
- #: src/strings.php:122 src/strings.php:137 src/strings.php:327 src/strings.php:379 src/strings.php:462 src/strings.php:472
 
 
 
 
 
1995
  msgid "File Path"
1996
  msgstr ""
1997
 
1998
- #: src/strings.php:123 src/strings.php:336 src/strings.php:354 src/strings.php:438
 
 
 
1999
  msgid "I understand that this operation cannot be reverted."
2000
  msgstr ""
2001
 
2002
- #: src/strings.php:124 src/strings.php:452
 
2003
  msgid "Action:"
2004
  msgstr ""
2005
 
2006
- #: src/strings.php:125
2007
  msgid "Mark as Fixed"
2008
  msgstr ""
2009
 
2010
- #: src/strings.php:126
2011
  msgid "Restore File"
2012
  msgstr ""
2013
 
2014
- #: src/strings.php:127
2015
  msgid "Delete File"
2016
  msgstr ""
2017
 
2018
- #: src/strings.php:129 src/strings.php:138
2019
- msgid ""
2020
- "Marking one or more files as fixed will force the plugin to ignore them during the next scan, very useful when you find "
2021
- "false positives. Additionally you can restore the original content of the core files that appear as modified or deleted, "
2022
- "this will tell the plugin to download a copy of the original files from the official WordPress repository. Deleting a file "
2023
- "is an irreversible action, be careful."
2024
  msgstr ""
2025
 
2026
- #: src/strings.php:134 src/strings.php:329 src/strings.php:428 src/strings.php:435 src/strings.php:463
 
 
 
 
2027
  msgid "Status"
2028
  msgstr ""
2029
 
2030
- #: src/strings.php:146
2031
  msgid "All Users"
2032
  msgstr ""
2033
 
2034
- #: src/strings.php:147
2035
  msgid "Admins"
2036
  msgstr ""
2037
 
2038
- #: src/strings.php:148
2039
  msgid "Logged-in Users"
2040
  msgstr ""
2041
 
2042
- #: src/strings.php:149
2043
  msgid "Failed Logins"
2044
  msgstr ""
2045
 
2046
- #: src/strings.php:152
2047
  msgid "Successful Logins (admins)"
2048
  msgstr ""
2049
 
2050
- #: src/strings.php:153
2051
  msgid "Here you can see a list of all the successful logins of accounts with admin privileges."
2052
  msgstr ""
2053
 
2054
- #: src/strings.php:155
2055
  msgid "Registration"
2056
  msgstr ""
2057
 
2058
- #: src/strings.php:156
2059
  msgid "Newest To Oldest"
2060
  msgstr ""
2061
 
2062
- #: src/strings.php:161 src/strings.php:170 src/strings.php:182
 
 
2063
  msgid "Date/Time"
2064
  msgstr ""
2065
 
2066
- #: src/strings.php:162 src/strings.php:175 src/strings.php:198
2067
- msgid "Edit"
 
2068
  msgstr ""
2069
 
2070
- #: src/strings.php:165
2071
  msgid "Successful Logins (all)"
2072
  msgstr ""
2073
 
2074
- #: src/strings.php:166
2075
  msgid "Here you can see a list of all the successful user logins."
2076
  msgstr ""
2077
 
2078
- #: src/strings.php:169
2079
  msgid "Hostname"
2080
  msgstr ""
2081
 
2082
- #: src/strings.php:178
2083
- msgid "Failed logins"
 
 
 
 
2084
  msgstr ""
2085
 
2086
  #: src/strings.php:179
2087
- #, php-format
2088
- msgid ""
2089
- "This information will be used to determine if your site is being victim of <a href=\"https://kb.sucuri.net/definitions/"
2090
- "attacks/brute-force/password-guessing\" target=\"_blank\" rel=\"noopener\">Password Guessing Brute Force Attacks</a>. "
2091
- "These logs will be accumulated and the plugin will send a report via email if there are more than <code>%%SUCURI."
2092
- "FailedLogins.MaxFailedLogins%%</code> failed login attempts during the same hour, you can change this number from <a href="
2093
- "\"%%SUCURI.URL.Settings%%#alerts\">here</a>. <b>NOTE:</b> Some <em>\"Two-Factor Authentication\"</em> plugins do not "
2094
- "follow the same rules that WordPress have to report failed login attempts, so you may not see all the attempts in this "
2095
- "panel if you have one of these plugins installed."
2096
  msgstr ""
2097
 
2098
- #: src/strings.php:183
 
 
 
 
2099
  msgid "Web Browser"
2100
  msgstr ""
2101
 
2102
- #: src/strings.php:185
2103
  msgid "Block"
2104
  msgstr ""
2105
 
2106
- #: src/strings.php:189
2107
- msgid "Logged-in Users}"
2108
  msgstr ""
2109
 
2110
  #: src/strings.php:190
2111
- msgid "Here you can see a list of the users that are currently logged-in."
2112
  msgstr ""
2113
 
2114
  #: src/strings.php:191
 
 
 
 
2115
  msgid "ID"
2116
  msgstr ""
2117
 
2118
- #: src/strings.php:193
2119
  msgid "Last Activity"
2120
  msgstr ""
2121
 
2122
- #: src/strings.php:194 src/strings.php:414
 
2123
  msgid "Registered"
2124
  msgstr ""
2125
 
2126
- #: src/strings.php:199 src/strings.php:208 src/strings.php:345
 
 
2127
  msgid "Website:"
2128
  msgstr ""
2129
 
2130
- #: src/strings.php:200 src/strings.php:270
 
2131
  msgid "IP Address:"
2132
  msgstr ""
2133
 
2134
- #: src/strings.php:201
2135
  msgid "Reverse IP:"
2136
  msgstr ""
2137
 
2138
- #: src/strings.php:203
2139
  msgid "Message:"
2140
  msgstr ""
2141
 
2142
- #: src/strings.php:206
2143
- msgid ""
2144
- "An API key is required to activate some additional tools available in this plugin. The keys are free and you can virtually "
2145
- "generate an unlimited number of them as long as the domain name and email address are unique. The key is used to "
2146
- "authenticate the HTTP requests sent by the plugin to an API service managed by Sucuri Inc."
2147
- msgstr ""
2148
-
2149
  #: src/strings.php:207
2150
- msgid ""
2151
- "If you experience issues generating the API key you can request one by sending the domain name and email address that you "
2152
- "want to use to <a href=\"mailto:info@sucuri.net\">info@sucuri.net</a>. Note that generating a key for a website that is "
2153
- "not facing the Internet is not possible because the API service needs to validate that the domain name exists."
2154
  msgstr ""
2155
 
2156
- #: src/strings.php:209 src/strings.php:253
2157
- msgid "E-mail:"
2158
  msgstr ""
2159
 
2160
  #: src/strings.php:210
2161
- msgid "DNS Lookups"
 
2162
  msgstr ""
2163
 
2164
  #: src/strings.php:211
2165
- msgid ""
2166
- "Check the box if your website is behind a known firewall service, this guarantees that the IP address of your visitors "
2167
- "will be detected correctly for the security logs. You can change this later from the settings."
2168
  msgstr ""
2169
 
2170
  #: src/strings.php:212
2171
- msgid "Enable DNS Lookups On Startup"
2172
  msgstr ""
2173
 
2174
  #: src/strings.php:213
2175
- msgid "I agree to the <a target=\"_blank\" href=\"https://sucuri.net/terms\">Terms of Service</a>."
2176
  msgstr ""
2177
 
2178
  #: src/strings.php:214
2179
- msgid "I have read and understand the <a target=\"_blank\" href=\"https://sucuri.net/privacy\">Privacy Policy</a>."
2180
  msgstr ""
2181
 
2182
- #: src/strings.php:218
2183
- msgid "Password Guessing Brute Force Attacks"
2184
  msgstr ""
2185
 
2186
  #: src/strings.php:219
2187
- msgid ""
2188
- "<a href=\"https://kb.sucuri.net/definitions/attacks/brute-force/password-guessing\" target=\"_blank\" rel=\"noopener"
2189
- "\">Password guessing brute force attacks</a> are very common against web sites and web servers. They are one of the most "
2190
- "common vectors used to compromise web sites. The process is very simple and the attackers basically try multiple "
2191
- "combinations of usernames and passwords until they find one that works. Once they get in, they can compromise the web site "
2192
- "with malware, spam , phishing or anything else they want."
2193
  msgstr ""
2194
 
2195
  #: src/strings.php:220
2196
- msgid "Consider Brute-Force Attack After:"
2197
  msgstr ""
2198
 
2199
- #: src/strings.php:224
2200
- msgid "Security Alerts"
2201
  msgstr ""
2202
 
2203
  #: src/strings.php:225
2204
- msgid ""
2205
- "You have installed a plugin or theme that is not fully compatible with our plugin, some of the security alerts (like the "
2206
- "successful and failed logins) will not be sent to you. To prevent an infinite loop while detecting these changes in the "
2207
- "website and sending the email alerts via a custom SMTP plugin, we have decided to stop any attempt to send the emails to "
2208
- "prevent fatal errors."
2209
  msgstr ""
2210
 
2211
- #: src/strings.php:227
2212
- msgid "Event"
2213
  msgstr ""
2214
 
2215
- #: src/strings.php:231
2216
- msgid "Post-Type Alerts"
2217
  msgstr ""
2218
 
2219
  #: src/strings.php:232
2220
- msgid ""
2221
- "It seems that you disabled the email alerts for <b>new site content</b>, this panel is intended to provide a way to ignore "
2222
- "specific events in your site and with that the alerts reported to your email. Since you have deactivated the <b>new site "
2223
- "content</b> alerts, this panel will be disabled too."
2224
  msgstr ""
2225
 
2226
  #: src/strings.php:233
2227
- msgid ""
2228
- "This is a list of registered <a href=\"https://codex.wordpress.org/Post_Types\" target=\"_blank\" rel=\"noopener\">Post "
2229
- "Types</a>. You will receive an email alert when a custom page or post associated to any of these types is created or "
2230
- "updated. If you don’t want to receive one or more of these alerts, feel free to uncheck the boxes in the table below. If "
2231
- "you are receiving alerts for post types that are not listed in this table, it may be because there is an add-on that that "
2232
- "is generating a custom post-type on runtime, you will have to find out by yourself what is the unique ID of that post-type "
2233
- "and type it in the form below. The plugin will do its best to ignore these alerts as long as the unique ID is valid."
2234
  msgstr ""
2235
 
2236
  #: src/strings.php:234
2237
- msgid "Stop Alerts For This Post-Type:"
2238
  msgstr ""
2239
 
2240
  #: src/strings.php:235
 
 
 
 
2241
  msgid "e.g. unique_post_type_id"
2242
  msgstr ""
2243
 
2244
- #: src/strings.php:237
2245
  msgid "Show Post-Types Table"
2246
  msgstr ""
2247
 
2248
- #: src/strings.php:238
2249
  msgid "Hide Post-Types Table"
2250
  msgstr ""
2251
 
2252
- #: src/strings.php:240
2253
  msgid "Post Type"
2254
  msgstr ""
2255
 
2256
- #: src/strings.php:241
2257
  msgid "Post Type ID"
2258
  msgstr ""
2259
 
2260
- #: src/strings.php:242
2261
  msgid "Ignored At (optional)"
2262
  msgstr ""
2263
 
2264
- #: src/strings.php:245
2265
  msgid "Alerts Per Hour"
2266
  msgstr ""
2267
 
2268
- #: src/strings.php:246
2269
- msgid ""
2270
- "Configure the maximum number of email alerts per hour. If the number is exceeded and the plugin detects more events during "
2271
- "the same hour, it will still log the events into the audit logs but will not send the email alerts. Be careful with this "
2272
- "as you will miss important information."
2273
  msgstr ""
2274
 
2275
- #: src/strings.php:247
2276
  msgid "Maximum Alerts Per Hour:"
2277
  msgstr ""
2278
 
2279
- #: src/strings.php:251
2280
  msgid "Alerts Recipient"
2281
  msgstr ""
2282
 
2283
- #: src/strings.php:252
2284
- msgid ""
2285
- "By default, the plugin will send the email alerts to the primary admin account, the same account created during the "
2286
- "installation of WordPress in your web server. You can add more people to the list, they will receive a copy of the same "
2287
- "security alerts."
2288
  msgstr ""
2289
 
2290
- #: src/strings.php:254
2291
  msgid "e.g. user@example.com"
2292
  msgstr ""
2293
 
2294
- #: src/strings.php:257 src/strings.php:413
 
2295
  msgid "E-mail"
2296
  msgstr ""
2297
 
2298
- #: src/strings.php:259
2299
  msgid "Test Alerts"
2300
  msgstr ""
2301
 
2302
- #: src/strings.php:262
2303
  msgid "Alert Subject"
2304
  msgstr ""
2305
 
2306
- #: src/strings.php:263
2307
- msgid ""
2308
- "Format of the subject for the email alerts, by default the plugin will use the website name and the event identifier that "
2309
- "is being reported, you can use this panel to include the IP address of the user that triggered the event and some "
2310
- "additional data. You can create filters in your email client creating a custom email subject using the pseudo-tags shown "
2311
- "below."
2312
  msgstr ""
2313
 
2314
- #: src/strings.php:264
2315
  msgid "Custom Format"
2316
  msgstr ""
2317
 
2318
- #: src/strings.php:268
2319
  msgid "Trusted IP Addresses"
2320
  msgstr ""
2321
 
2322
- #: src/strings.php:269
2323
- msgid ""
2324
- "If you are working in a LAN <em>(Local Area Network)</em> you may want to include the IP addresses of all the nodes in the "
2325
- "subnet, this will force the plugin to stop sending email alerts about actions executed from trusted IP addresses. Use the "
2326
- "CIDR <em>(Classless Inter Domain Routing)</em> format to specify ranges of IP addresses <em>(only 8, 16, and 24)</em>."
2327
  msgstr ""
2328
 
2329
- #: src/strings.php:271
2330
  msgid "e.g. 182.120.56.0/24"
2331
  msgstr ""
2332
 
2333
- #: src/strings.php:275
2334
  msgid "CIDR Format"
2335
  msgstr ""
2336
 
2337
- #: src/strings.php:276
2338
  msgid "IP Added At"
2339
  msgstr ""
2340
 
2341
- #: src/strings.php:281
2342
- msgid ""
2343
- "If this operation was successful you will receive a message in the email used during the registration of the API key "
2344
- "<em>(usually the email of the main admin user)</em>. This message contains the key in plain text, copy and paste the key "
2345
- "in the form field below. The plugin will verify the authenticity of the key sending an initial HTTP request to the API "
2346
- "service, if this fails the key will be removed automatically and you will have to start the process all over again."
2347
- msgstr ""
2348
-
2349
  #: src/strings.php:282
2350
- msgid ""
2351
- "There are cases where this operation may fail, an example would be when the email address is not associated with the "
2352
- "domain anymore, this happens when the base URL changes <em>(from www to none or viceversa)</em>. If you are having issues "
2353
- "recovering the key please send an email explaining the situation to <a href=\"mailto:info@sucuri.net\">info@sucuri.net</a>"
2354
  msgstr ""
2355
 
2356
- #: src/strings.php:283 src/strings.php:321
2357
- msgid "API Key:"
2358
  msgstr ""
2359
 
2360
- #: src/strings.php:287
2361
- msgid ""
2362
- "Congratulations! The rest of the features available in the plugin have been enabled. This product is designed to "
2363
- "supplement existing security products. It’s not a silver bullet for your security needs, but it’ll give you greater "
2364
- "security awareness and better posture, all with the intent of reducing risk."
2365
  msgstr ""
2366
 
2367
  #: src/strings.php:288
2368
- msgid ""
2369
- "Your website has been granted a new API key and it was associated to the email address that you chose during the "
2370
- "registration process. You can use the same email to recover the key if you happen to lose it sometime. We encourage you to "
2371
- "check the rest of the settings page and configure the plugin to your own needs."
2372
  msgstr ""
2373
 
2374
- #: src/strings.php:293 src/strings.php:295
2375
- msgid "WordPress Checksums API"
2376
  msgstr ""
2377
 
2378
  #: src/strings.php:294
2379
- msgid ""
2380
- "The WordPress integrity tool uses a remote API service maintained by the WordPress organization to determine which files "
2381
- "in the installation were added, removed or modified. The API returns a list of files with their respective checksums, this "
2382
- "information guarantees that the installation is not corrupt. You can, however, point the integrity tool to a GitHub "
2383
- "repository in case that you are using a custom version of WordPress like the <a href=\"https://github.com/WordPress/"
2384
- "WordPress\" target=\"_blank\" rel=\"noopener\">development version of the code</a>."
2385
  msgstr ""
2386
 
2387
- #: src/strings.php:296
2388
- msgid "e.g. URL or user/repo"
2389
  msgstr ""
2390
 
2391
- #: src/strings.php:300
2392
- msgid "API Communication via Proxy"
2393
  msgstr ""
2394
 
2395
  #: src/strings.php:301
2396
- msgid ""
2397
- "All the HTTP requests used to communicate with the API service are being sent using the WordPress built-in functions, so "
2398
- "(almost) all its official features are inherited, this is useful if you need to pass these HTTP requests through a proxy. "
2399
- "According to the <a href=\"https://developer.wordpress.org/reference/classes/wp_http_proxy/\" target=\"_blank\" rel="
2400
- "\"noopener\">official documentation</a> you have to add some constants to the main configuration file: <em>WP_PROXY_HOST, "
2401
- "WP_PROXY_PORT, WP_PROXY_USERNAME, WP_PROXY_PASSWORD</em>."
2402
  msgstr ""
2403
 
2404
  #: src/strings.php:302
2405
- msgid "HTTP Proxy Hostname"
2406
  msgstr ""
2407
 
2408
  #: src/strings.php:303
2409
- msgid "HTTP Proxy Port num"
2410
  msgstr ""
2411
 
2412
  #: src/strings.php:304
2413
- msgid "HTTP Proxy Username"
2414
  msgstr ""
2415
 
2416
  #: src/strings.php:305
2417
- msgid "HTTP Proxy Password"
2418
  msgstr ""
2419
 
2420
- #: src/strings.php:308 src/strings.php:498
2421
- msgid "API Service Communication"
2422
  msgstr ""
2423
 
2424
  #: src/strings.php:309
2425
- msgid ""
2426
- "Once the API key is generate the plugin will communicate with a remote API service that will act as a safe data storage "
2427
- "for the audit logs generated when the website triggers certain events that the plugin monitors. If the website is hacked "
2428
- "the attacker will not have access to these logs and that way you can investigate what was modified <em>(for malware "
2429
- "infaction)</em> and/or how the malicious person was able to gain access to the website."
2430
  msgstr ""
2431
 
2432
  #: src/strings.php:310
2433
- #, php-format
2434
- msgid ""
2435
- "Disabling the API service communication will stop the event monitoring, consider to enable the <a href=\"%%SUCURI.URL."
2436
- "Settings%%#general\">Log Exporter</a> to keep the monitoring working while the HTTP requests are ignored, otherwise an "
2437
- "attacker may execute an action that will not be registered in the security logs and you will not have a way to investigate "
2438
- "the attack in the future."
2439
  msgstr ""
2440
 
2441
  #: src/strings.php:311
2442
- msgid ""
2443
- "<strong>Are you a developer?</strong> You may be interested in our API. Feel free to use the URL shown below to access the "
2444
- "latest 50 entries in your security log, change the value for the parameter <code>l=N</code> if you need more. Be aware "
2445
- "that the API doesn’t provides an offset parameter, so if you have the intention to query specific sections of the log you "
2446
- "will need to wrap the HTTP request around your own cache mechanism. We <strong>DO NOT</strong> take feature requests for "
2447
- "the API, this is a semi-private service tailored for the specific needs of the plugin and not intended to be used by 3rd-"
2448
- "party apps, we may change the behavior of each API endpoint without previous notice, use it at your own risk."
2449
  msgstr ""
2450
 
2451
- #: src/strings.php:314
2452
- msgid "API Key"
2453
  msgstr ""
2454
 
2455
  #: src/strings.php:315
2456
- msgid ""
2457
- "An API key is required to prevent attackers from deleting audit logs that can help you investigate and recover after a "
2458
- "hack, and allows the plugin to display statistics. By generating an API key, you agree that Sucuri will collect and store "
2459
- "anonymous data about your website. We take your privacy seriously."
2460
  msgstr ""
2461
 
2462
  #: src/strings.php:316
2463
- #, php-format
2464
- msgid ""
2465
- "Your domain <code>%%SUCURI.CleanDomain%%</code> does not seems to have a DNS <code>A</code> record so it will be "
2466
- "considered as <em>invalid</em> by the API interface when you request the generation of a new key. Adding <code>www</code> "
2467
- "at the beginning of the domain name may fix this issue. If you do not understand what is this then send an email to our "
2468
- "support team requesting the key."
2469
  msgstr ""
2470
 
2471
  #: src/strings.php:317
2472
- msgid "Recover Via E-mail"
2473
  msgstr ""
2474
 
2475
  #: src/strings.php:318
2476
- msgid "Manual Activation"
2477
  msgstr ""
2478
 
2479
  #: src/strings.php:319
2480
- msgid ""
2481
- "If you do not have access to the administrator email, you can reinstall the plugin. The API key is generated using an "
2482
- "administrator email and the domain of the website. Click the \"Manual Activation\" button if you already have a valid API "
2483
- "key to authenticate this website with the remote API web service."
2484
  msgstr ""
2485
 
2486
- #: src/strings.php:324
2487
- msgid "Data Storage"
2488
  msgstr ""
2489
 
2490
  #: src/strings.php:325
2491
- msgid ""
2492
- "This is the directory where the plugin will store the security logs, the list of files marked as fixed in the core "
2493
- "integrity tool, the cache for the malware scanner and 3rd-party plugin metadata. The plugin requires write permissions in "
2494
- "this directory as well as the files contained in it. If you prefer to keep these files in a non-public directory <em>(one "
2495
- "level up the document root)</em> please define a constant in the <em>\"wp-config.php\"</em> file named <em>"
2496
- "\"SUCURI_DATA_STORAGE\"</em> with the absolute path to the new directory."
2497
  msgstr ""
2498
 
2499
- #: src/strings.php:334
2500
- msgid "Import &amp; Export Settings"
2501
  msgstr ""
2502
 
2503
  #: src/strings.php:335
2504
- msgid ""
2505
- "Copy the JSON-encoded data from the box below, go to your other websites and click the <em>\"Import\"</em> button in the "
2506
- "settings page. The plugin will start using the same settings from this website. Notice that some options are omitted as "
2507
- "they contain values specific to this website. To import the settings from another website into this one, replace the JSON-"
2508
- "encoded data in the box below with the JSON-encoded data exported from the other website, then click the button <em>"
2509
- "\"Import\"</em>. Notice that some options will not be imported to reduce the security risk of writing arbitrary data into "
2510
- "the disk."
2511
  msgstr ""
2512
 
2513
- #: src/strings.php:340
2514
- msgid "IP Address Discoverer"
2515
  msgstr ""
2516
 
2517
  #: src/strings.php:341
2518
- msgid ""
2519
- "IP address discoverer will use DNS lookups to automatically detect if the website is behind the <a href=\"https://sucuri."
2520
- "net/website-firewall/\" target=\"_blank\" rel=\"noopener\">Sucuri Firewall</a>, in which case it will modify the global "
2521
- "server variable <em>Remote-Addr</em> to set the real IP of the website’s visitors. This check runs on every WordPress init "
2522
- "action and that is why it may slow down your website as some hosting providers rely on slow DNS servers which makes the "
2523
- "operation take more time than it should."
2524
  msgstr ""
2525
 
2526
  #: src/strings.php:342
2527
- msgid "HTTP Header:"
2528
  msgstr ""
2529
 
2530
  #: src/strings.php:343
2531
- msgid "Proceed"
2532
  msgstr ""
2533
 
2534
  #: src/strings.php:344
 
 
 
 
2535
  msgid "Sucuri Firewall"
2536
  msgstr ""
2537
 
2538
- #: src/strings.php:346
2539
  msgid "Top Level Domain:"
2540
  msgstr ""
2541
 
2542
- #: src/strings.php:347
2543
  msgid "Hostname:"
2544
  msgstr ""
2545
 
2546
- #: src/strings.php:348
2547
  msgid "IP Address (Hostname):"
2548
  msgstr ""
2549
 
2550
- #: src/strings.php:349
2551
  msgid "IP Address (Username):"
2552
  msgstr ""
2553
 
2554
- #: src/strings.php:352
2555
  msgid "Reset Security Logs, Hardening and Settings"
2556
  msgstr ""
2557
 
2558
- #: src/strings.php:353
2559
- msgid ""
2560
- "This action will trigger the deactivation / uninstallation process of the plugin. All local security logs, hardening and "
2561
- "settings will be deleted. Notice that the security logs stored in the API service will not be deleted, this is to prevent "
2562
- "tampering from a malicious user. You can request a new API key if you want to start from scratch."
2563
  msgstr ""
2564
 
2565
- #: src/strings.php:358
2566
  msgid "Reverse Proxy"
2567
  msgstr ""
2568
 
2569
- #: src/strings.php:359
2570
- msgid ""
2571
- "The event monitor uses the API address of the origin of the request to track the actions. The plugin uses two methods to "
2572
- "retrieve this: the main method uses the global server variable <em>Remote-Addr</em> available in most modern web servers, "
2573
- "and an alternative method uses custom HTTP headers <em>(which are unsafe by default)</em>. You should not worry about this "
2574
- "option unless you know what a reverse proxy is. Services like the <a href=\"https://sucuri.net/website-firewall/\" target="
2575
- "\"_blank\" rel=\"noopener\">Sucuri Firewall</a> &mdash; once active &mdash; force the network traffic to pass through them "
2576
- "to filter any security threat that may affect the original server. A side effect of this is that the real IP address is no "
2577
- "longer available in the global server variable <em>Remote-Addr</em> but in a custom HTTP header with a name provided by "
2578
- "the service."
2579
  msgstr ""
2580
 
2581
- #: src/strings.php:362
2582
  msgid "Log Exporter"
2583
  msgstr ""
2584
 
2585
- #: src/strings.php:363
2586
- msgid ""
2587
- "This option allows you to export the WordPress audit logs to a local log file that can be read by a SIEM or any log "
2588
- "analysis software <em>(we recommend OSSEC)</em>. That will give visibility from within WordPress to complement your log "
2589
- "monitoring infrastructure. <b>NOTE:</b> Do not use a publicly accessible file, you must use a file at least one level up "
2590
- "the document root to prevent leaks of information."
2591
  msgstr ""
2592
 
2593
- #: src/strings.php:364 src/strings.php:376
 
2594
  msgid "File Path:"
2595
  msgstr ""
2596
 
2597
- #: src/strings.php:368
2598
  msgid "Timezone Override"
2599
  msgstr ""
2600
 
2601
- #: src/strings.php:369
2602
- msgid ""
2603
- "This option defines the timezone that will be used through out the entire plugin to print the dates and times whenever is "
2604
- "necessary. This option also affects the date and time of the logs visible in the audit logs panel which is data that comes "
2605
- "from a remote server configured to use Eastern Daylight Time (EDT). WordPress offers an option in the general settings "
2606
- "page to allow you to configure the timezone for the entire website, however, if you are experiencing problems with the "
2607
- "time in the audit logs, this option will help you fix them."
2608
  msgstr ""
2609
 
2610
- #: src/strings.php:370
2611
  msgid "Timezone:"
2612
  msgstr ""
2613
 
2614
- #: src/strings.php:374
2615
  msgid "Whitelist Blocked PHP Files"
2616
  msgstr ""
2617
 
2618
- #: src/strings.php:375
2619
- msgid ""
2620
- "After you apply the hardening in either the includes, content, and/or uploads directories, the plugin will add a rule in "
2621
- "the access control file to deny access to any PHP file located in these folders. This is a good precaution in case an "
2622
- "attacker is able to upload a shell script. With a few exceptions the <em>\"index.php\"</em> file is the only one that "
2623
- "should be publicly accessible, however many theme/plugin developers decide to use these folders to process some "
2624
- "operations. In this case applying the hardening <strong>may break</strong> their functionality."
2625
  msgstr ""
2626
 
2627
- #: src/strings.php:380
2628
  msgid "Directory"
2629
  msgstr ""
2630
 
2631
- #: src/strings.php:381
2632
  msgid "Pattern"
2633
  msgstr ""
2634
 
2635
- #: src/strings.php:386 src/strings.php:394
2636
- msgid ""
2637
- "WordPress has a big user base in the public Internet, which brings interest to attackers to find vulnerabilities in the "
2638
- "code, 3rd-party extensions, and themes that other companies develop. You should keep every piece of code installed in your "
2639
- "website updated to prevent attacks as soon as disclosed vulnerabilities are patched."
2640
  msgstr ""
2641
 
2642
- #: src/strings.php:388 src/strings.php:396 src/strings.php:426
 
 
2643
  msgid "Version"
2644
  msgstr ""
2645
 
2646
- #: src/strings.php:389 src/strings.php:397
 
2647
  msgid "Update"
2648
  msgstr ""
2649
 
2650
- #: src/strings.php:390 src/strings.php:398
 
2651
  msgid "Tested With"
2652
  msgstr ""
2653
 
2654
- #: src/strings.php:393
2655
  msgid "Available Plugin and Theme Updates"
2656
  msgstr ""
2657
 
2658
- #: src/strings.php:402
2659
  msgid "Download"
2660
  msgstr ""
2661
 
2662
- #: src/strings.php:405
2663
- msgid ""
2664
- "WordPress has generated a new (random) password for your account <b>%%SUCURI.ResetPassword.UserName%%</b> at <a target="
2665
- "\"_blank\" href=\"http://%%SUCURI.ResetPassword.Website%%\" rel=\"noopener\">%%SUCURI.ResetPassword.Website%%</a>. The "
2666
- "change has been requested by one of the admins in this website for security reasons. Your new password is &mdash; <span "
2667
- "style=\"font-family:Menlo, Monaco, monospace, serif;font-weight:700\">%%%SUCURI.ResetPassword.Password%%%</span> &mdash; "
2668
- "please change it as soon as possible."
2669
  msgstr ""
2670
 
2671
- #: src/strings.php:408
2672
  msgid "Reset User Password"
2673
  msgstr ""
2674
 
2675
- #: src/strings.php:410
2676
- msgid ""
2677
- "You can generate a new random password for the user accounts that you select from the list. An email with the new password "
2678
- "will be sent to the email address of each chosen user. If you choose to change the password of your own user, then your "
2679
- "current session will expire immediately. You will need to log back into the admin panel with the new password that will be "
2680
- "sent to your email."
2681
  msgstr ""
2682
 
2683
- #: src/strings.php:415
2684
  msgid "Roles"
2685
  msgstr ""
2686
 
2687
- #: src/strings.php:419
2688
  msgid "Reset Installed Plugins"
2689
  msgstr ""
2690
 
2691
- #: src/strings.php:421
2692
- msgid ""
2693
- "In case you suspect having an infection in your site, or after you got rid of a malicious code, it’s recommended to "
2694
- "reinstall all the plugins installed in your site, including the ones you are not using. Notice that premium plugins will "
2695
- "not be automatically reinstalled to prevent backward compatibility issues and problems with licenses."
2696
- msgstr ""
2697
-
2698
  #: src/strings.php:422
2699
- #, php-format
2700
- msgid ""
2701
- "The information shown here is cached for %%SUCURI.ResetPlugin.CacheLifeTime%% seconds. This is necessary to reduce the "
2702
- "quantity of HTTP requests sent to the WordPress servers and the bandwidth of your site. Currently there is no option to "
2703
- "recreate this cache."
2704
  msgstr ""
2705
 
2706
  #: src/strings.php:423
2707
- msgid ""
2708
- "<b>WARNING!</b> This procedure can break your website. The reset will not affect the database nor the settings of each "
2709
- "plugin, but depending on how they were written the reset action might break them. Be sure to create a backup of the "
2710
- "plugins directory before the execution of this tool."
2711
  msgstr ""
2712
 
2713
- #: src/strings.php:427
2714
- msgid "Type"
2715
  msgstr ""
2716
 
2717
- #: src/strings.php:432
2718
- msgid "Update Secret Keys"
2719
  msgstr ""
2720
 
2721
  #: src/strings.php:433
2722
- msgid ""
2723
- "The secret or security keys are a list of constants added to your site to ensure better encryption of information stored "
2724
- "in the user’s cookies. A secret key makes your site harder to hack by adding random elements to the password. You do not "
2725
- "have to remember the keys, just write a random, complicated, and long string in the <code>wp-config.php</code> file. You "
2726
- "can change these keys at any point in time. Changing them will invalidate all existing cookies, forcing all logged in "
2727
- "users to login again."
2728
  msgstr ""
2729
 
2730
  #: src/strings.php:434
 
 
 
 
2731
  msgid "Your current session will expire once the form is submitted."
2732
  msgstr ""
2733
 
2734
- #: src/strings.php:439
2735
  msgid "Generate New Security Keys"
2736
  msgstr ""
2737
 
 
 
 
 
2738
  #: src/strings.php:442
2739
- msgid "Scheduled Tasks"
2740
  msgstr ""
2741
 
2742
  #: src/strings.php:443
2743
- msgid ""
2744
- "The plugin scans your entire website looking for changes which are later reported via the API in the audit logs page. By "
2745
- "default the scanner runs daily but you can change the frequency to meet your requirements. Notice that scanning your "
2746
- "project files too frequently may affect the performance of your website. Be sure to have enough server resources before "
2747
- "changing this option. The memory limit and maximum execution time are two of the PHP options that your server will set to "
2748
- "stop your website from consuming too much resources."
2749
  msgstr ""
2750
 
2751
- #: src/strings.php:444
2752
- msgid ""
2753
- "The scanner uses the <a href=\"http://php.net/manual/en/class.splfileobject.php\" target=\"_blank\" rel=\"noopener\">PHP "
2754
- "SPL library</a> and the <a target=\"_blank\" href=\"http://php.net/manual/en/class.filesystemiterator.php\" rel=\"noopener"
2755
- "\">Filesystem Iterator</a> class to scan the directory tree where your website is located in the server. This library is "
2756
- "only available on PHP 5 >= 5.3.0 &mdash; OR &mdash; PHP 7; if you have an older version of PHP the plugin will not work as "
2757
- "expected. Please ask your hosting provider to advise you on this matter."
2758
  msgstr ""
2759
 
2760
- #: src/strings.php:445
2761
- msgid ""
2762
- "Scheduled tasks are rules registered in your database by a plugin, theme, or the base system itself; they are used to "
2763
- "automatically execute actions defined in the code every certain amount of time. A good use of these rules is to generate "
2764
- "backup files of your site, execute a security scanner, or remove unused elements like drafts. <b>Note:</b> Scheduled tasks "
2765
- "can be re-installed by any plugin/theme automatically."
2766
  msgstr ""
2767
 
2768
- #: src/strings.php:448
 
 
 
 
 
 
 
 
2769
  msgid "Schedule"
2770
  msgstr ""
2771
 
2772
- #: src/strings.php:449
2773
  msgid "Next Due"
2774
  msgstr ""
2775
 
2776
- #: src/strings.php:450
2777
  msgid "Arguments"
2778
  msgstr ""
2779
 
2780
- #: src/strings.php:456
2781
  msgid "Ignore Files And Folders During The Scans"
2782
  msgstr ""
2783
 
2784
- #: src/strings.php:457
2785
- msgid ""
2786
- "Use this tool to select the files and/or folders that are too heavy for the scanner to process. These are usually folders "
2787
- "with images, media files like videos and audios, backups and &mdash; in general &mdash; anything that is not code-related. "
2788
- "Ignoring these files or folders will reduce the memory consumption of the PHP script."
2789
  msgstr ""
2790
 
2791
- #: src/strings.php:458
2792
  msgid "Ignore a file or directory:"
2793
  msgstr ""
2794
 
2795
- #: src/strings.php:459
2796
  msgid "e.g. /private/directory/"
2797
  msgstr ""
2798
 
2799
- #: src/strings.php:464
2800
  msgid "Unignore Selected Directories"
2801
  msgstr ""
2802
 
2803
- #: src/strings.php:467
2804
  msgid "WordPress Integrity (False Positives)"
2805
  msgstr ""
2806
 
2807
- #: src/strings.php:468
2808
- msgid ""
2809
- "Since the scanner doesn’t read the files during the execution of the integrity check, it is possible to find false "
2810
- "positives. Files listed here have been marked as false positives and will be ignored by the scanner in subsequent scans."
2811
  msgstr ""
2812
 
2813
- #: src/strings.php:470
2814
  msgid "Reason"
2815
  msgstr ""
2816
 
2817
- #: src/strings.php:471
2818
  msgid "Ignored At"
2819
  msgstr ""
2820
 
2821
- #: src/strings.php:474
2822
  msgid "Stop Ignoring the Selected Files"
2823
  msgstr ""
2824
 
2825
- #: src/strings.php:478
2826
- msgid ""
2827
- "If your server allows the execution of system commands, you can configure the plugin to use the <a href=\"https://en."
2828
- "wikipedia.org/wiki/Diff_utility\" target=\"_blank\" rel=\"noopener\">Unix Diff Utility</a> to compare the actual content "
2829
- "of the file installed in the website and the original file provided by WordPress. This will show the differences between "
2830
- "both files and then you can act upon the information provided."
2831
  msgstr ""
2832
 
2833
- #: src/strings.php:482
2834
  msgid "Environment Variables"
2835
  msgstr ""
2836
 
2837
- #: src/strings.php:485
2838
  msgid "Access File Integrity"
2839
  msgstr ""
2840
 
2841
- #: src/strings.php:486
2842
- msgid ""
2843
- "The <code>.htaccess</code> file is a distributed configuration file, and is how the Apache web server handles "
2844
- "configuration changes on a per-directory basis. WordPress uses this file to manipulate how Apache serves files from its "
2845
- "root directory and subdirectories thereof; most notably, it modifies this file to be able to handle pretty permalinks."
2846
  msgstr ""
2847
 
2848
- #: src/strings.php:487
2849
  msgid "Htaccess file found in"
2850
  msgstr ""
2851
 
2852
- #: src/strings.php:488
2853
  msgid "Your website has no <code>.htaccess</code> file or it was not found in the default location."
2854
  msgstr ""
2855
 
2856
- #: src/strings.php:489
2857
  msgid "Your web server does not support .htaccess files."
2858
  msgstr ""
2859
 
2860
- #: src/strings.php:490
2861
- msgid ""
2862
- "The main <code>.htaccess</code> file in your site has the standard rules for a WordPress installation. You can customize "
2863
- "it to improve the performance and change the behaviour of the redirections for pages and posts in your site. To get more "
2864
- "information visit the official documentation at <a target=\"_blank\" rel=\"noopener\" href=\"https://codex.wordpress.org/"
2865
- "Using_Permalinks#Creating_and_editing_.28.htaccess.29\"> Codex WordPress - Creating and editing (.htaccess)</a>"
2866
  msgstr ""
2867
 
2868
- #: src/strings.php:491
2869
  msgid "Codex WordPress HTAccess"
2870
  msgstr ""
2871
 
2872
- #: src/strings.php:493
2873
  msgid "General Settings"
2874
  msgstr ""
2875
 
2876
- #: src/strings.php:494
2877
  msgid "Scanner"
2878
  msgstr ""
2879
 
2880
- #: src/strings.php:495
2881
  msgid "Hardening"
2882
  msgstr ""
2883
 
2884
- #: src/strings.php:496
2885
  msgid "Post-Hack"
2886
  msgstr ""
2887
 
2888
- #: src/strings.php:497
2889
  msgid "Alerts"
2890
  msgstr ""
2891
 
2892
- #: src/strings.php:499
2893
  msgid "Website Info"
2894
  msgstr ""
2895
 
2896
- #: src/strings.php:500
2897
  msgid "Hardening Options"
2898
  msgstr ""
2899
 
2900
- #: src/strings.php:503
2901
- #, php-format
2902
  msgid "This information will be updated %%SUCURI.SiteCheck.Lifetime%%"
2903
  msgstr ""
2904
 
2905
- #: src/strings.php:504
2906
  msgid "Refresh Malware Scan"
2907
  msgstr ""
2908
 
2909
- #: src/strings.php:507
2910
  msgid "No malicious JavaScript"
2911
  msgstr ""
2912
 
2913
- #: src/strings.php:508
2914
  msgid "No malicious iFrames"
2915
  msgstr ""
2916
 
2917
- #: src/strings.php:509
2918
  msgid "No suspicious redirections"
2919
  msgstr ""
2920
 
2921
- #: src/strings.php:510
2922
  msgid "No blackhat SEO spam"
2923
  msgstr ""
2924
 
2925
- #: src/strings.php:511
2926
  msgid "No anomaly detection"
2927
  msgstr ""
2928
 
2929
- #: src/strings.php:512
2930
- msgid ""
2931
- "Some types of problems cannot be detected by this scanner. If this scanner did not detect any issue and you still suspect "
2932
- "a problem exists, you can <a href=\"https://sucuri.net/website-security-platform/signup\" target=\"_blank\" rel=\"noopener"
2933
- "\">sign up with Sucuri</a> for a complete and in-depth scan + cleanup (not included in the free checks)."
2934
  msgstr ""
2935
 
2936
- #: src/strings.php:515
2937
  msgid "Hover to see the Payload"
2938
  msgstr ""
2939
 
2940
- #: src/strings.php:518
2941
  msgid "Recommendations"
2942
  msgstr ""
2943
 
2944
- #: src/strings.php:521 src/strings.php:523
 
2945
  msgid "Malware Scan Target"
2946
  msgstr ""
2947
 
2948
- #: src/strings.php:522
2949
- msgid ""
2950
- "The remote malware scanner provided by the plugin is powered by <a href=\"https://sitecheck.sucuri.net/\" target=\"_blank"
2951
- "\" rel=\"noopener\">Sucuri SiteCheck</a>, a service that takes a publicly accessible URL and scans it for malicious code. "
2952
- "If your website is not visible to the Internet, for example, if it is hosted in a local development environment or a "
2953
- "restricted network, the scanner will not be able to work on it. Additionally, if the website was installed in a non-"
2954
- "standard directory the scanner will report a \"404 Not Found\" error. You can use this option to change the URL that will "
2955
- "be scanned."
2956
  msgstr ""
2957
 
2958
- #: src/strings.php:524
2959
  msgid "Malware Scan Target:"
2960
  msgstr ""
2961
 
2962
- #: src/strings.php:528
2963
  msgid "WordPress Security Recommendations"
2964
  msgstr ""
2965
 
@@ -2967,154 +2858,98 @@ msgstr ""
2967
  msgid "Invalid template type"
2968
  msgstr ""
2969
 
2970
- #: src/wordpress-recommendations.lib.php:63
2971
  msgid "Implement an SSL Certificate"
2972
  msgstr ""
2973
 
2974
- #: src/wordpress-recommendations.lib.php:63
2975
- msgid ""
2976
- "SSL certificates help protect the integrity of the data in transit between the host (web server or firewall) and the "
2977
- "client (web browser)."
2978
  msgstr ""
2979
 
2980
- #: src/wordpress-recommendations.lib.php:75
2981
  msgid "Upgrade PHP to a supported version"
2982
  msgstr ""
2983
 
2984
- #: src/wordpress-recommendations.lib.php:75
2985
- msgid ""
2986
- "The PHP version you are using no longer receives security support and could be exposed to unpatched security "
2987
- "vulnerabilities."
2988
  msgstr ""
2989
 
2990
- #: src/wordpress-recommendations.lib.php:88
2991
  msgid "Missing WordPress Salt & Security Keys"
2992
  msgstr ""
2993
 
2994
- #: src/wordpress-recommendations.lib.php:88
2995
- msgid ""
2996
- "Consider using WordPress Salt & Security Keys to add an extra layer of protection to the session cookies and credentials."
2997
  msgstr ""
2998
 
2999
- #: src/wordpress-recommendations.lib.php:95
3000
  msgid "WordPress Salt & Security Keys should be updated"
3001
  msgstr ""
3002
 
3003
- #: src/wordpress-recommendations.lib.php:95
3004
- msgid ""
3005
- "Updating WordPress Salt & Security Keys after a compromise and on a regular basis, at least once a year, reduces the risks "
3006
- "of session hijacking."
3007
  msgstr ""
3008
 
3009
- #: src/wordpress-recommendations.lib.php:108
3010
  msgid "Admin/Administrator username still exists"
3011
  msgstr ""
3012
 
3013
- #: src/wordpress-recommendations.lib.php:108
3014
- msgid ""
3015
- "Using a unique username and removing the default admin/administrator account make it more difficult for attackers to brute "
3016
- "force your WordPress."
3017
  msgstr ""
3018
 
3019
- #: src/wordpress-recommendations.lib.php:121
3020
  msgid "Use super admin account only when needed"
3021
  msgstr ""
3022
 
3023
- #: src/wordpress-recommendations.lib.php:121
3024
  msgid "Create an Editor account instead of always using the super-admin to reduce the damage in case of session hijacking."
3025
  msgstr ""
3026
 
3027
- #: src/wordpress-recommendations.lib.php:149
3028
- msgid "Unable to detect a popular 2FA plugin"
3029
- msgstr ""
3030
-
3031
- #: src/wordpress-recommendations.lib.php:149
3032
- msgid "Do you have another 2FA solution in place? If not, it's recommended that you add a 2FA plugin to protect your website."
3033
- msgstr ""
3034
-
3035
- #: src/wordpress-recommendations.lib.php:167
3036
  msgid "Remove unwanted/unused extensions"
3037
  msgstr ""
3038
 
3039
- #: src/wordpress-recommendations.lib.php:167
3040
  msgid "Keeping unwanted themes and plugins increases the chance of a compromise, even if they are disabled."
3041
  msgstr ""
3042
 
3043
- #: src/wordpress-recommendations.lib.php:179
3044
  msgid "Decrease the number of plugins"
3045
  msgstr ""
3046
 
3047
- #: src/wordpress-recommendations.lib.php:179
3048
  msgid "The greater the number of plugins installed, the greater the risk of infection and performance issues."
3049
  msgstr ""
3050
 
3051
- #: src/wordpress-recommendations.lib.php:195
3052
- msgid "Unable to detect a popular backup plugin"
3053
- msgstr ""
3054
-
3055
- #: src/wordpress-recommendations.lib.php:195
3056
- msgid "Do you have another backup solution in place? If not, it\'s recommended that you add a backup plugin "
3057
- "to recover your website when needed."
3058
- msgstr ""
3059
-
3060
- #: src/wordpress-recommendations.lib.php:207
3061
  msgid "Disable file editing"
3062
  msgstr ""
3063
 
3064
- #: src/wordpress-recommendations.lib.php:207
3065
  msgid "Using \"DISALLOW_FILE_EDIT\" helps prevent an attacker from changing your files through WordPress backend."
3066
  msgstr ""
3067
 
3068
- #: src/wordpress-recommendations.lib.php:219
3069
  msgid "Disable WordPress debug mode"
3070
  msgstr ""
3071
 
3072
- #: src/wordpress-recommendations.lib.php:219
3073
- msgid ""
3074
- "When \"WP_DEBUG\" is set to true, it will cause all PHP errors, notices and warnings to be displayed which can expose "
3075
- "sensitive information."
3076
  msgstr ""
3077
 
3078
- #: src/wordpress-recommendations.lib.php:236
3079
  msgid "Prevent PHP direct execution on sensitive directories"
3080
  msgstr ""
3081
 
3082
- #: src/wordpress-recommendations.lib.php:236
3083
- msgid ""
3084
- "Directories such as \"wp-content\" and \"wp-includes\" are generally not intended to be accessed by any user, consider "
3085
- "hardening them via Sucuri Security -> Settings -> Hardening."
3086
  msgstr ""
3087
 
3088
- #: src/wordpress-recommendations.lib.php:249
3089
- msgid ""
3090
- "Your WordPress install is following <a href=\"https://sucuri.net/guides/wordpress-security\" target=\"_blank\" rel="
3091
- "\"noopener\">the security best practices</a>."
3092
  msgstr ""
3093
 
3094
- #: sucuri.php:317
3095
  msgid "Sucuri plugin has been uninstalled"
3096
  msgstr ""
3097
-
3098
- #. Plugin Name of the plugin/theme
3099
- msgid "Sucuri Security - Auditing, Malware Scanner and Hardening"
3100
- msgstr ""
3101
-
3102
- #. Plugin URI of the plugin/theme
3103
- msgid "https://wordpress.sucuri.net/"
3104
- msgstr ""
3105
-
3106
- #. Description of the plugin/theme
3107
- msgid ""
3108
- "The <a href=\"https://sucuri.net/\" target=\"_blank\">Sucuri</a> plugin provides the website owner the best Activity "
3109
- "Auditing, SiteCheck Remote Malware Scanning, Effective Security Hardening and Post-Hack features. SiteCheck will check for "
3110
- "malware, spam, blacklisting and other security issues like .htaccess redirects, hidden eval code, etc. The best thing "
3111
- "about it is it's completely free."
3112
- msgstr ""
3113
-
3114
- #. Author of the plugin/theme
3115
- msgid "Sucuri Inc."
3116
- msgstr ""
3117
-
3118
- #. Author URI of the plugin/theme
3119
- msgid "https://sucuri.net/"
3120
- msgstr ""
1
+ # Copyright (C) 2020 Sucuri Inc.
2
+ # This file is distributed under the same license as the Sucuri Security - Auditing, Malware Scanner and Hardening plugin.
3
  msgid ""
4
  msgstr ""
5
+ "Project-Id-Version: Sucuri Security - Auditing, Malware Scanner and Hardening 1.8.23\n"
6
+ "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/sucuri-scanner\n"
7
+ "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
8
+ "Language-Team: LANGUAGE <LL@li.org>\n"
 
 
9
  "MIME-Version: 1.0\n"
10
  "Content-Type: text/plain; charset=UTF-8\n"
11
  "Content-Transfer-Encoding: 8bit\n"
12
+ "POT-Creation-Date: 2020-01-22T17:55:39+00:00\n"
13
+ "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
14
+ "X-Generator: WP-CLI 2.4.0\n"
15
+ "X-Domain: sucuri-scanner\n"
16
+
17
+ #. Plugin Name of the plugin
18
+ msgid "Sucuri Security - Auditing, Malware Scanner and Hardening"
19
+ msgstr ""
20
+
21
+ #. Plugin URI of the plugin
22
+ msgid "https://wordpress.sucuri.net/"
23
+ msgstr ""
24
+
25
+ #. Description of the plugin
26
+ msgid "The <a href=\"https://sucuri.net/\" target=\"_blank\">Sucuri</a> plugin provides the website owner the best Activity Auditing, SiteCheck Remote Malware Scanning, Effective Security Hardening and Post-Hack features. SiteCheck will check for malware, spam, blacklisting and other security issues like .htaccess redirects, hidden eval code, etc. The best thing about it is it's completely free."
27
+ msgstr ""
28
+
29
+ #. Author of the plugin
30
+ msgid "Sucuri Inc."
31
+ msgstr ""
32
+
33
+ #. Author URI of the plugin
34
+ msgid "https://sucuri.net/"
35
+ msgstr ""
36
 
37
  #: src/api.lib.php:91
38
  msgid "URL is invalid"
47
  msgstr ""
48
 
49
  #: src/api.lib.php:186
 
50
  msgid "API key was successfully set: %s"
51
  msgstr ""
52
 
67
  msgstr ""
68
 
69
  #: src/api.lib.php:380
 
70
  msgid "API key recovery for domain: %s"
71
  msgstr ""
72
 
73
  #: src/api.lib.php:648
 
74
  msgid "WP Engine PHP Compatibility Checker: %s (created post #%d as cache)"
75
  msgstr ""
76
 
77
+ #: src/api.lib.php:991
78
+ #: src/api.lib.php:996
79
  msgid "WordPress version is not supported anymore"
80
  msgstr ""
81
 
84
  msgstr ""
85
 
86
  #: src/auditlogs.lib.php:114
 
87
  msgid "API %s secs"
88
  msgstr ""
89
 
111
  msgid "Info:"
112
  msgstr ""
113
 
114
+ #: src/cache.lib.php:392
115
+ #: src/cache.lib.php:412
116
+ #: src/cache.lib.php:453
117
+ #: src/cache.lib.php:470
118
  msgid "Invalid cache key name"
119
  msgstr ""
120
 
121
+ #: src/cron.lib.php:49
122
+ msgid "Automatic update of security keys failed. WordPress configuration file was not found."
123
+ msgstr ""
124
+
125
+ #: src/cron.lib.php:51
126
+ msgid "Automatic update of security keys succeeded."
127
+ msgstr ""
128
+
129
+ #: src/cron.lib.php:53
130
+ msgid "Automatic update of security keys failed. Something went wrong!"
131
+ msgstr ""
132
+
133
  #: src/event.lib.php:89
 
134
  msgid "%s (every %d seconds)"
135
  msgstr ""
136
 
138
  msgid "Never (no execution)"
139
  msgstr ""
140
 
141
+ #: src/event.lib.php:211
142
+ #: src/event.lib.php:261
143
  msgid "API key is not available"
144
  msgstr ""
145
 
146
+ #: src/event.lib.php:219
147
  msgid "WordPress version was already reported"
148
  msgstr ""
149
 
150
+ #: src/event.lib.php:222
 
151
  msgid "WordPress version detected %s"
152
  msgstr ""
153
 
154
+ #: src/event.lib.php:265
155
  msgid "Scanner ran a couple of minutes ago"
156
  msgstr ""
157
 
158
+ #: src/event.lib.php:297
159
  msgid "Event identifier cannot be empty"
160
  msgstr ""
161
 
162
+ #: src/event.lib.php:478
163
+ #: src/event.lib.php:482
164
  msgid "Info"
165
  msgstr ""
166
 
167
+ #: src/event.lib.php:480
168
  msgid "Debug"
169
  msgstr ""
170
 
171
+ #: src/event.lib.php:481
172
  msgid "Notice"
173
  msgstr ""
174
 
175
+ #: src/event.lib.php:483
176
  msgid "Warning"
177
  msgstr ""
178
 
179
+ #: src/event.lib.php:484
180
  msgid "Error"
181
  msgstr ""
182
 
183
+ #: src/event.lib.php:485
184
  msgid "Critical"
185
  msgstr ""
186
 
187
+ #: src/event.lib.php:615
 
188
  msgid ""
189
  "<br><br>\n"
190
  "\n"
191
+ "<em>Explanation: Someone failed to login to your site. If you are getting too many of these messages, it is likely your site is under a password guessing brute-force attack [1]. You can disable the failed login alerts from here [2]. Alternatively, you can consider to install a firewall between your website and your visitors to filter out these and other attacks, take a look at Sucuri Firewall [3].</em><br><br>\n"
 
 
 
192
  "\n"
193
+ "[1] <a href='https://kb.sucuri.net/definitions/attacks/brute-force/password-guessing'>https://kb.sucuri.net/definitions/attacks/brute-force/password-guessing</a><br>\n"
 
194
  "[2] <a href='%s'>%s</a> <br>\n"
195
  "[3] <a href='https://sucuri.net/website-firewall/?wpalert'>https://sucuri.net/website-firewall/</a><br>\n"
196
+ ""
197
  msgstr ""
198
 
199
+ #: src/event.lib.php:747
200
  msgid "Password Change"
201
  msgstr ""
202
 
203
+ #: src/event.lib.php:852
 
204
  msgid "%s cannot be deleted."
205
  msgstr ""
206
 
207
+ #: src/event.lib.php:864
208
+ #: src/event.lib.php:870
 
 
 
 
 
209
  msgid "%s was deleted."
210
  msgstr ""
211
 
249
  msgid "caching disabled (use with caution)"
250
  msgstr ""
251
 
252
+ #: src/firewall.lib.php:253
253
+ #: src/firewall.lib.php:349
254
+ #: src/firewall.lib.php:567
255
+ #: src/firewall.lib.php:602
256
+ #: src/firewall.lib.php:643
257
+ #: src/firewall.lib.php:735
258
  msgid "Firewall API key was not found."
259
  msgstr ""
260
 
319
  msgstr ""
320
 
321
  #: src/firewall.lib.php:617
 
322
  msgid "IP has been blacklisted: %s"
323
  msgstr ""
324
 
325
  #: src/firewall.lib.php:656
 
326
  msgid "IP has been unblacklisted: %s"
327
  msgstr ""
328
 
329
+ #: src/globals.php:102
330
+ #: src/strings.php:39
331
+ #: src/strings.php:290
332
  msgid "Dashboard"
333
  msgstr ""
334
 
335
+ #: src/globals.php:103
336
+ #: src/strings.php:40
337
  msgid "Firewall (WAF)"
338
  msgstr ""
339
 
340
+ #: src/globals.php:104
341
  msgid "Last Logins"
342
  msgstr ""
343
 
344
+ #: src/globals.php:105
345
+ #: src/strings.php:41
346
+ #: src/strings.php:96
347
+ #: src/strings.php:291
348
  msgid "Settings"
349
  msgstr ""
350
 
351
+ #: src/globals.php:126
352
+ #: src/globals.php:127
353
+ #: src/strings.php:35
354
  msgid "Sucuri Security"
355
  msgstr ""
356
 
375
  msgstr ""
376
 
377
  #: src/hook.lib.php:68
 
378
  msgid "Media file added; ID: %s; name: %s; type: %s"
379
  msgstr ""
380
 
381
+ #: src/hook.lib.php:82
382
+ #: src/hook.lib.php:108
383
+ #: src/hook.lib.php:197
384
+ #: src/hook.lib.php:1001
385
+ #: src/hook.lib.php:1012
386
+ #: src/hook.lib.php:1042
387
+ #: src/settings-general.php:416
388
+ #: src/settings-general.php:417
389
+ #: src/settings-general.php:418
390
+ #: src/settings-general.php:419
391
+ #: src/settings-general.php:420
392
+ #: src/settings-webinfo.php:40
393
  msgid "unknown"
394
  msgstr ""
395
 
396
+ #: src/hook.lib.php:83
397
+ #: src/hook.lib.php:109
398
+ #: src/hook.lib.php:1002
399
+ #: src/hook.lib.php:1013
400
+ #: src/hook.lib.php:1043
401
  msgid "user@domain.com"
402
  msgstr ""
403
 
404
  #: src/hook.lib.php:91
 
405
  msgid "User added to website; user_id: %s; role: %s; blog_id: %s; name: %s; email: %s"
406
  msgstr ""
407
 
408
  #: src/hook.lib.php:117
 
409
  msgid "User removed from website; user_id: %s; blog_id: %s; name: %s; email: %s"
410
  msgstr ""
411
 
412
+ #: src/hook.lib.php:134
413
+ #: src/hook.lib.php:229
414
+ #: src/hook.lib.php:296
415
+ #: src/hook.lib.php:408
416
+ #: src/hook.lib.php:533
417
+ #: src/hook.lib.php:744
418
+ #: src/hook.lib.php:770
419
+ #: src/hook.lib.php:870
420
+ #: src/hook.lib.php:912
421
+ #: src/lastlogins-failed.php:251
422
  msgid "Unknown"
423
  msgstr ""
424
 
425
  #: src/hook.lib.php:136
 
426
  msgid "Category created; ID: %s; name: %s"
427
  msgstr ""
428
 
429
  #: src/hook.lib.php:153
 
430
  msgid "WordPress updated to version: %s"
431
  msgstr ""
432
 
433
  #: src/hook.lib.php:179
 
434
  msgid "Bookmark link added; ID: %s; name: %s; url: %s; target: %s"
435
  msgstr ""
436
 
437
  #: src/hook.lib.php:209
 
438
  msgid "Bookmark link edited; ID: %s; name: %s; url: %s; target: %s"
439
  msgstr ""
440
 
441
  #: src/hook.lib.php:230
 
442
  msgid "User authentication failed: %s"
443
  msgstr ""
444
 
447
  msgstr ""
448
 
449
  #: src/hook.lib.php:297
 
450
  msgid "User authentication succeeded: %s"
451
  msgstr ""
452
 
453
  #: src/hook.lib.php:326
454
+ msgid ""
455
+ "The value of the option <b>%s</b> was changed from <b>'%s'</b> to <b>'%s'</b>.<br>\n"
456
+ ""
457
  msgstr ""
458
 
459
  #: src/hook.lib.php:332
 
460
  msgid "%s: from '%s' to '%s',"
461
  msgstr ""
462
 
469
  msgstr ""
470
 
471
  #: src/hook.lib.php:359
 
472
  msgid "%s settings changed"
473
  msgstr ""
474
 
475
  #: src/hook.lib.php:362
 
476
  msgid "%s: (multiple entries): %s"
477
  msgstr ""
478
 
479
  #: src/hook.lib.php:420
 
480
  msgid "Plugin %s: %s (v%s; %s%s)"
481
  msgstr ""
482
 
489
  msgstr ""
490
 
491
  #: src/hook.lib.php:510
 
492
  msgid "Plugin editor used in: %s"
493
  msgstr ""
494
 
495
  #: src/hook.lib.php:534
 
496
  msgid "Plugin installed: %s"
497
  msgstr ""
498
 
505
  msgstr ""
506
 
507
  #: src/hook.lib.php:660
 
508
  msgid "Post deleted: (multiple entries): %s"
509
  msgstr ""
510
 
529
  msgstr ""
530
 
531
  #: src/hook.lib.php:720
 
532
  msgid "ID: %s"
533
  msgstr ""
534
 
535
  #: src/hook.lib.php:721
 
536
  msgid "Old status: %s"
537
  msgstr ""
538
 
539
  #: src/hook.lib.php:722
 
540
  msgid "New status: %s"
541
  msgstr ""
542
 
543
  #: src/hook.lib.php:725
 
544
  msgid "Title: %s"
545
  msgstr ""
546
 
547
  #: src/hook.lib.php:728
 
548
  msgid "%s status has been changed"
549
  msgstr ""
550
 
551
  #: src/hook.lib.php:754
 
552
  msgid "Post moved to trash; ID: %s; name: %s; status: %s"
553
  msgstr ""
554
 
557
  msgstr ""
558
 
559
  #: src/hook.lib.php:789
 
560
  msgid "%s was %s; ID: %s; name: %s"
561
  msgstr ""
562
 
563
  #: src/hook.lib.php:854
 
564
  msgid "Password retrieval attempt: %s"
565
  msgstr ""
566
 
567
  #: src/hook.lib.php:872
 
568
  msgid "Theme deleted: %s"
569
  msgstr ""
570
 
571
  #: src/hook.lib.php:894
 
572
  msgid "Theme editor used in: %s/%s"
573
  msgstr ""
574
 
575
  #: src/hook.lib.php:914
 
576
  msgid "Theme installed: %s"
577
  msgstr ""
578
 
579
  #: src/hook.lib.php:929
 
580
  msgid "Theme activated: %s"
581
  msgstr ""
582
 
589
  msgstr ""
590
 
591
  #: src/hook.lib.php:991
 
592
  msgid "User account deleted; ID: %d"
593
  msgstr ""
594
 
595
  #: src/hook.lib.php:1022
 
596
  msgid "User account edited; ID: %s; name: %s; old_name: %s; email: %s; old_email: %s; roles: %s; old_roles: %s"
597
  msgstr ""
598
 
599
  #: src/hook.lib.php:1054
 
600
  msgid "User account created; ID: %s; name: %s; email: %s; roles: %s"
601
  msgstr ""
602
 
603
  #: src/hook.lib.php:1096
 
604
  msgid "Widget %s (%s) %s %s (#%d; size %dx%d)"
605
  msgstr ""
606
 
607
+ #: src/integrity.lib.php:113
608
+ #: src/settings-general.php:46
609
+ #: src/settings-general.php:602
610
+ #: src/settings-posthack.php:58
611
  msgid "You need to confirm that you understand the risk of this operation."
612
  msgstr ""
613
 
636
  msgstr ""
637
 
638
  #: src/integrity.lib.php:234
 
639
  msgid "Only <b>%d</b> out of <b>%d</b> files were processed."
640
  msgstr ""
641
 
642
  #: src/integrity.lib.php:243
 
643
  msgid "<b>%d</b> out of <b>%d</b> files were successfully processed."
644
  msgstr ""
645
 
646
  #: src/integrity.lib.php:321
647
+ msgid "The plugin has no permission to delete this file because it was created by a different system user who has more privileges than your account. Please use FTP to delete it."
 
 
648
  msgstr ""
649
 
650
  #: src/integrity.lib.php:323
651
+ msgid "The plugin has no permission to restore this file because it was modified by a different system user who has more privileges than your account. Please use FTP to restore it."
 
 
652
  msgstr ""
653
 
654
  #: src/integrity.lib.php:325
655
+ msgid "The plugin has no permission to restore this file because its directory is owned by a different system user who has more privileges than your account. Please use FTP to restore it."
 
 
656
  msgstr ""
657
 
658
+ #: src/integrity.lib.php:405
659
+ #: src/strings.php:482
660
+ #: src/strings.php:484
661
  msgid "WordPress Integrity Diff Utility"
662
  msgstr ""
663
 
666
  msgstr ""
667
 
668
  #: src/interface.lib.php:198
 
669
  msgid "Storage is not writable: <code>%s</code>"
670
  msgstr ""
671
 
672
  #: src/interface.lib.php:240
673
+ msgid "API service communication is disabled, if you just updated the plugin this might be a good opportunity to test this feature once again with the new code. Enable it again from the \"API Service\" panel located in the settings page."
 
 
674
  msgstr ""
675
 
676
  #: src/interface.lib.php:253
677
+ msgid "Do you want to get vulnerability disclosures? Subscribe to our newsletter <a href=\"http://sucuri.hs-sites.com/subscribe-to-security\" target=\"_blank\" rel=\"noopener\">here</a>"
 
 
678
  msgstr ""
679
 
680
  #: src/interface.lib.php:266
682
  msgstr ""
683
 
684
  #: src/interface.lib.php:267
 
685
  msgid "Access denied by %s"
686
  msgstr ""
687
 
690
  msgstr ""
691
 
692
  #: src/interface.lib.php:288
693
+ msgid "WordPress CSRF verification failed. The submitted form is missing an important unique code that prevents the execution of automated malicious scanners. Go back and try again. If you did not submit a form, this error message could be an indication of an incompatibility between this plugin and another add-on; one of them is inserting data into the global POST variable when the HTTP request is coming via GET. Disable them one by one (while reloading this page) to find the culprit."
 
 
 
 
 
694
  msgstr ""
695
 
696
+ #: src/lastlogins-failed.php:349
697
+ #: src/lastlogins-failed.php:373
698
+ #: src/strings.php:155
699
+ #: src/strings.php:168
700
+ #: src/strings.php:181
701
+ #: src/strings.php:193
702
+ #: src/strings.php:413
703
  msgid "Username"
704
  msgstr ""
705
 
706
+ #: src/lastlogins-failed.php:350
707
+ #: src/lastlogins-failed.php:374
708
  msgid "Password"
709
  msgstr ""
710
 
711
+ #: src/lastlogins-failed.php:351
712
+ #: src/lastlogins-failed.php:375
713
+ #: src/strings.php:82
714
+ #: src/strings.php:161
715
+ #: src/strings.php:169
716
+ #: src/strings.php:182
717
+ #: src/strings.php:196
718
+ #: src/strings.php:275
719
  msgid "IP Address"
720
  msgstr ""
721
 
722
+ #: src/lastlogins-failed.php:352
723
+ #: src/lastlogins-failed.php:376
724
  msgid "Attempt Timestamp"
725
  msgstr ""
726
 
727
+ #: src/lastlogins-failed.php:353
728
+ #: src/lastlogins-failed.php:377
729
  msgid "Attempt Date/Time"
730
  msgstr ""
731
 
732
  #: src/lastlogins.php:129
 
733
  msgid "Last-logins data file is not writable: <code>%s</code>"
734
  msgstr ""
735
 
742
  msgstr ""
743
 
744
  #: src/lastlogins.php:456
 
745
  msgid "Last login was at <b>%s</b> from <b>%s</b> <em>(%s)</em> <a href=\"%s\" target=\"_self\">view all logs</a>"
746
  msgstr ""
747
 
750
  msgstr ""
751
 
752
  #: src/mail.lib.php:184
 
753
  msgid "User: %s (%s)"
754
  msgstr ""
755
 
757
  msgid "Sucuri Alert"
758
  msgstr ""
759
 
760
+ #: src/option.lib.php:148
761
+ #: src/settings-alerts.php:209
762
+ #: src/settings-alerts.php:210
763
+ #: src/settings-alerts.php:211
764
  msgid "Sucuri Alert, %s, %s, %s"
765
  msgstr ""
766
 
776
  msgid "Scripts"
777
  msgstr ""
778
 
779
+ #: src/pagehandler.php:47
780
+ #: src/pagehandler.php:48
781
+ #: src/pagehandler.php:49
782
+ #: src/strings.php:26
783
+ #: src/strings.php:53
784
+ #: src/strings.php:65
785
+ #: src/strings.php:76
786
+ #: src/strings.php:109
787
+ #: src/strings.php:144
788
+ #: src/strings.php:400
789
+ #: src/strings.php:410
790
+ #: src/strings.php:421
791
+ #: src/strings.php:456
792
  msgid "Loading..."
793
  msgstr ""
794
 
801
  msgstr ""
802
 
803
  #: src/settings-alerts.php:56
 
804
  msgid "The email alerts will be sent to: <code>%s</code>"
805
  msgstr ""
806
 
807
  #: src/settings-alerts.php:59
 
808
  msgid "The email alerts will be sent to: %s"
809
  msgstr ""
810
 
813
  msgstr ""
814
 
815
  #: src/settings-alerts.php:82
 
816
  msgid "These emails will stop receiving alerts: <code>%s</code>"
817
  msgstr ""
818
 
819
  #: src/settings-alerts.php:85
 
820
  msgid "These emails will stop receiving alerts: %s"
821
  msgstr ""
822
 
825
  msgstr ""
826
 
827
  #: src/settings-alerts.php:97
 
828
  msgid "Test email alert sent at %s"
829
  msgstr ""
830
 
837
  msgstr ""
838
 
839
  #: src/settings-alerts.php:148
 
840
  msgid "IP has been trusted: %s"
841
  msgstr ""
842
 
843
  #: src/settings-alerts.php:149
 
844
  msgid "Events generated from this IP will be ignored: <code>%s</code>"
845
  msgstr ""
846
 
856
  msgid "n/a"
857
  msgstr ""
858
 
859
+ #: src/settings-alerts.php:208
860
+ #: src/settings-alerts.php:212
861
+ #: src/settings-alerts.php:213
862
  msgid "Sucuri Alert, %s, %s"
863
  msgstr ""
864
 
865
  #: src/settings-alerts.php:214
 
866
  msgid "Sucuri Alert, %s"
867
  msgstr ""
868
 
871
  msgstr ""
872
 
873
  #: src/settings-alerts.php:250
 
874
  msgid "Email subject set to <code>%s</code>"
875
  msgstr ""
876
 
907
  msgstr ""
908
 
909
  #: src/settings-alerts.php:320
 
910
  msgid "Maximum alerts per hour set to <code>%s</code>"
911
  msgstr ""
912
 
939
  msgstr ""
940
 
941
  #: src/settings-alerts.php:364
 
942
  msgid "Consider brute-force attack after <code>%s</code> failed logins per hour"
943
  msgstr ""
944
 
945
  #: src/settings-alerts.php:369
946
+ msgid "The plugin will assume that your website is under a brute-force attack after %s failed logins are detected during the same hour"
 
 
 
947
  msgstr ""
948
 
949
  #: src/settings-alerts.php:371
1051
  msgstr ""
1052
 
1053
  #: src/settings-alerts.php:464
 
1054
  msgid "A total of %s alert events were changed"
1055
  msgstr ""
1056
 
1071
  msgstr ""
1072
 
1073
  #: src/settings-alerts.php:550
 
1074
  msgid "Changes in <code>%s</code> post-type will be ignored"
1075
  msgstr ""
1076
 
1082
  msgid "List of monitored post-types has been updated"
1083
  msgstr ""
1084
 
1085
+ #: src/settings-alerts.php:574
1086
+ #: src/settings-scanner.php:179
1087
+ #: src/settings-scanner.php:239
1088
+ #: src/strings.php:46
1089
+ #: src/strings.php:160
1090
+ #: src/strings.php:172
1091
+ #: src/strings.php:185
1092
+ #: src/strings.php:278
1093
+ #: src/strings.php:383
1094
+ #: src/strings.php:478
1095
  msgid "no data available"
1096
  msgstr ""
1097
 
1098
+ #: src/settings-apiservice.php:36
1099
+ #: src/settings-general.php:312
1100
+ #: src/settings-general.php:378
1101
+ #: src/settings-general.php:425
1102
  #: src/settings-integrity.php:80
1103
  msgid "Enabled"
1104
  msgstr ""
1105
 
1106
+ #: src/settings-apiservice.php:37
1107
+ #: src/settings-general.php:313
1108
+ #: src/settings-general.php:379
1109
+ #: src/settings-general.php:426
1110
  #: src/settings-integrity.php:81
1111
  msgid "Disable"
1112
  msgstr ""
1113
 
1114
  #: src/settings-apiservice.php:50
 
1115
  msgid "API service communication was <code>%s</code>"
1116
  msgstr ""
1117
 
1119
  msgid "The status of the API service has been changed"
1120
  msgstr ""
1121
 
1122
+ #: src/settings-apiservice.php:63
1123
+ #: src/settings-general.php:355
1124
+ #: src/settings-general.php:399
1125
+ #: src/settings-general.php:460
1126
  msgid "Disabled"
1127
  msgstr ""
1128
 
1129
+ #: src/settings-apiservice.php:64
1130
+ #: src/settings-general.php:356
1131
+ #: src/settings-general.php:400
1132
+ #: src/settings-general.php:461
1133
  msgid "Enable"
1134
  msgstr ""
1135
 
1137
  msgid "NONE"
1138
  msgstr ""
1139
 
1140
+ #: src/settings-apiservice.php:131
1141
+ #: src/settings-apiservice.php:138
1142
  msgid "Core integrity API changed: %s"
1143
  msgstr ""
1144
 
1145
+ #: src/settings-apiservice.php:134
1146
+ #: src/settings-apiservice.php:141
1147
  msgid "The URL to retrieve the WordPress checksums has been changed"
1148
  msgstr ""
1149
 
1150
+ #: src/settings-general.php:38
1151
+ #: src/settings-general.php:44
1152
  msgid "Local security logs, hardening and settings were deleted"
1153
  msgstr ""
1154
 
1161
  msgstr ""
1162
 
1163
  #: src/settings-general.php:80
 
1164
  msgid "Sucuri API key has been deleted <code>%s</code>"
1165
  msgstr ""
1166
 
1197
  msgstr ""
1198
 
1199
  #: src/settings-general.php:165
 
1200
  msgid "Cache to store the system logs obtained from the API service; expires after %s seconds."
1201
  msgstr ""
1202
 
1209
  msgstr ""
1210
 
1211
  #: src/settings-general.php:168
1212
+ msgid "Stores the data for every failed login attempt. The data is moved to \"oldfailedlogins\" every hour during a brute force password attack."
 
 
1213
  msgstr ""
1214
 
1215
  #: src/settings-general.php:169
1216
+ msgid "Temporarily stores data to complement the logs during destructive operations like deleting a post, page, comment, etc."
 
1217
  msgstr ""
1218
 
1219
  #: src/settings-general.php:170
1225
  msgstr ""
1226
 
1227
  #: src/settings-general.php:172
1228
+ msgid "Stores the data associated to every successful user login. The data never expires; manually delete if the file is too large."
 
 
1229
  msgstr ""
1230
 
1231
  #: src/settings-general.php:173
1232
+ msgid "Stores the data for every failed login attempt after the plugin sends a report about a brute force password attack via email."
 
 
1233
  msgstr ""
1234
 
1235
  #: src/settings-general.php:174
 
1236
  msgid "Cache to store the data associated to the installed plugins listed in the Post-Hack page. Expires after %s seconds."
1237
  msgstr ""
1238
 
1241
  msgstr ""
1242
 
1243
  #: src/settings-general.php:176
 
1244
  msgid "Cache to store the result of the malware scanner. Expires after %s seconds, reset at any time to force a re-scan."
1245
  msgstr ""
1246
 
1247
  #: src/settings-general.php:177
1248
+ msgid "Stores a list of IP addresses trusted by the plugin, events triggered by one of these IPs will not be reported to the remote monitoring API service."
 
 
1249
  msgstr ""
1250
 
1251
  #: src/settings-general.php:212
 
1252
  msgid "%s were deleted."
1253
  msgstr ""
1254
 
1255
  #: src/settings-general.php:219
 
1256
  msgid "%d out of %d files have been deleted."
1257
  msgstr ""
1258
 
1259
+ #: src/settings-general.php:237
1260
+ #: src/settings-posthack.php:363
1261
  msgid "Not Writable"
1262
  msgstr ""
1263
 
1269
  msgid "Exists"
1270
  msgstr ""
1271
 
1272
+ #: src/settings-general.php:250
1273
+ #: src/strings.php:331
1274
  msgid "Writable"
1275
  msgstr ""
1276
 
1307
  msgstr ""
1308
 
1309
  #: src/settings-general.php:440
 
1310
  msgid "DNS lookups for reverse proxy detection <code>%s</code>"
1311
  msgstr ""
1312
 
1315
  msgstr ""
1316
 
1317
  #: src/settings-general.php:593
 
1318
  msgid "%d out of %d option have been successfully imported"
1319
  msgstr ""
1320
 
1323
  msgstr ""
1324
 
1325
  #: src/settings-general.php:657
 
1326
  msgid "Timezone override will use %s"
1327
  msgstr ""
1328
 
1331
  msgstr ""
1332
 
1333
  #: src/settings-hardening.php:100
1334
+ msgid "The firewall is a premium service that you need purchase at - <a href=\"https://sucuri.net/website-firewall/signup\" target=\"_blank\">Sucuri Firewall</a>"
 
 
1335
  msgstr ""
1336
 
1337
  #: src/settings-hardening.php:105
1338
+ msgid "Enable Website Firewall Protection"
1339
  msgstr ""
1340
 
1341
  #: src/settings-hardening.php:106
1342
+ msgid "A WAF is a protection layer for your web site, blocking all sort of attacks (brute force attempts, DDoS, SQL injections, etc) and helping it remain malware and blacklist free. This test checks if your site is using Sucuri Firewall to protect your site."
 
 
 
1343
  msgstr ""
1344
 
1345
+ #: src/settings-hardening.php:110
1346
+ #: src/settings-hardening.php:256
1347
+ #: src/settings-hardening.php:315
1348
+ #: src/settings-hardening.php:384
1349
+ #: src/settings-hardening.php:416
1350
+ #: src/settings-hardening.php:456
1351
  #: src/settings-hardening.php:549
1352
+ #: src/settings-hardening.php:596
1353
  msgid "Apply Hardening"
1354
  msgstr ""
1355
 
1356
+ #: src/settings-hardening.php:114
1357
+ #: src/settings-hardening.php:167
1358
+ #: src/settings-hardening.php:248
1359
+ #: src/settings-hardening.php:252
1360
+ #: src/settings-hardening.php:307
1361
+ #: src/settings-hardening.php:311
1362
+ #: src/settings-hardening.php:376
1363
+ #: src/settings-hardening.php:380
1364
+ #: src/settings-hardening.php:419
1365
+ #: src/settings-hardening.php:452
1366
+ #: src/settings-hardening.php:545
1367
+ #: src/settings-hardening.php:601
1368
  msgid "Revert Hardening"
1369
  msgstr ""
1370
 
1377
  msgstr ""
1378
 
1379
  #: src/settings-hardening.php:141
1380
+ msgid "Why keep your site updated? WordPress is an open-source project which means that with every update the details of the changes made to the source code are made public, if there were security fixes then someone with malicious intent can use this information to attack any site that has not been upgraded."
 
 
 
1381
  msgstr ""
1382
 
1383
  #: src/settings-hardening.php:145
1389
  msgstr ""
1390
 
1391
  #: src/settings-hardening.php:169
1392
+ msgid "It checks if your WordPress version is being leaked to the public via a HTML meta-tag. Many web vulnerability scanners use this to determine which version of the code is running in your website. They use this to find disclosed vulnerabilities associated to this version number. A vulnerability scanner can still guess which version of WordPress is installed by comparing the checksum of some static files."
 
 
 
 
1393
  msgstr ""
1394
 
1395
  #: src/settings-hardening.php:189
1396
+ msgid "Read the official WordPress guidelines to learn how to restrict access to PHP files in sensitive directories - <a href=\"https://codex.wordpress.org/Nginx#Global_restrictions_file\" target=\"_blank\" rel=\"noopener\">Nginx Global Restrictions For WordPress</a>"
 
 
 
1397
  msgstr ""
1398
 
1399
  #: src/settings-hardening.php:193
1404
  msgid "Check Hardening"
1405
  msgstr ""
1406
 
1407
+ #: src/settings-hardening.php:197
1408
+ #: src/settings-hardening.php:243
1409
+ #: src/settings-hardening.php:302
1410
  #: src/settings-hardening.php:371
1411
+ msgid "Block the execution of PHP files in sensitive directories. Be careful while applying this hardening option as there are many plugins and theme which rely on the ability to execute PHP files in the content directory to generate images or save temporary data. Use the \"Whitelist PHP Files\" tool to add exceptions to individual files."
 
 
 
1412
  msgstr ""
1413
 
1414
+ #: src/settings-hardening.php:224
1415
+ #: src/settings-hardening.php:225
1416
  msgid "Hardening applied to the uploads directory"
1417
  msgstr ""
1418
 
1419
+ #: src/settings-hardening.php:227
1420
+ #: src/settings-hardening.php:286
1421
+ #: src/settings-hardening.php:353
1422
  msgid "Error hardening directory, check the permissions."
1423
  msgstr ""
1424
 
1425
+ #: src/settings-hardening.php:235
1426
+ #: src/settings-hardening.php:236
1427
  msgid "Hardening reverted in the uploads directory"
1428
  msgstr ""
1429
 
1430
+ #: src/settings-hardening.php:238
1431
+ #: src/settings-hardening.php:297
1432
+ #: src/settings-hardening.php:366
1433
  msgid "Access file is not writable, check the permissions."
1434
  msgstr ""
1435
 
1437
  msgid "Block PHP Files in Uploads Directory"
1438
  msgstr ""
1439
 
1440
+ #: src/settings-hardening.php:283
1441
+ #: src/settings-hardening.php:284
1442
  msgid "Hardening applied to the content directory"
1443
  msgstr ""
1444
 
1445
+ #: src/settings-hardening.php:294
1446
+ #: src/settings-hardening.php:295
1447
  msgid "Hardening reverted in the content directory"
1448
  msgstr ""
1449
 
1451
  msgid "Block PHP Files in WP-CONTENT Directory"
1452
  msgstr ""
1453
 
1454
+ #: src/settings-hardening.php:347
1455
+ #: src/settings-hardening.php:348
1456
  msgid "Hardening applied to the library directory"
1457
  msgstr ""
1458
 
1459
+ #: src/settings-hardening.php:363
1460
+ #: src/settings-hardening.php:364
1461
  msgid "Hardening reverted in the library directory"
1462
  msgstr ""
1463
 
1466
  msgstr ""
1467
 
1468
  #: src/settings-hardening.php:403
 
1469
  msgid "Cannot delete <code>%s/readme.html</code>"
1470
  msgstr ""
1471
 
1472
+ #: src/settings-hardening.php:405
1473
+ #: src/settings-hardening.php:406
1474
  msgid "Hardening applied to the <code>readme.html</code> file"
1475
  msgstr ""
1476
 
1477
  #: src/settings-hardening.php:410
1478
+ msgid "Avoid Information Leakage"
1479
  msgstr ""
1480
 
1481
  #: src/settings-hardening.php:411
1482
+ msgid "Checks if the WordPress README file still exists in the website. The information in this file can be used by malicious users to pin-point which disclosed vulnerabilities are associated to the website. Be aware that WordPress recreates this file automatically with every update."
 
 
 
1483
  msgstr ""
1484
 
1485
  #: src/settings-hardening.php:446
1486
+ msgid "Verify Default Admin Account"
1487
  msgstr ""
1488
 
1489
  #: src/settings-hardening.php:447
1490
+ msgid "Check if the primary user account still uses the name \"admin\". This allows malicious users to easily identify which account has the highest privileges to target an attack."
 
 
1491
  msgstr ""
1492
 
1493
+ #: src/settings-hardening.php:476
1494
+ #: src/settings-hardening.php:507
1495
+ #: src/settings-posthack.php:63
1496
  msgid "WordPress configuration file was not found."
1497
  msgstr ""
1498
 
1499
+ #: src/settings-hardening.php:478
1500
+ #: src/settings-hardening.php:509
1501
+ #: src/settings-posthack.php:76
1502
  msgid "WordPress configuration file is not writable."
1503
  msgstr ""
1504
 
1505
+ #: src/settings-hardening.php:498
1506
+ #: src/settings-hardening.php:499
1507
  msgid "Hardening applied to the plugin and theme editor"
1508
  msgstr ""
1509
 
1510
  #: src/settings-hardening.php:527
1511
+ msgid "File Editor was not disabled using this tool. You must scan your project for a constant defined as DISALLOW_FILE_EDIT, then either delete it or set its value to False. Any plugin/theme can disable the file editor, so it is impossible to determine the origin of the constant."
 
 
 
1512
  msgstr ""
1513
 
1514
+ #: src/settings-hardening.php:533
1515
+ #: src/settings-hardening.php:534
1516
  msgid "Hardening reverted in the plugin and theme editor"
1517
  msgstr ""
1518
 
1519
  #: src/settings-hardening.php:539
1520
+ msgid "Disable Plugin and Theme Editor"
1521
  msgstr ""
1522
 
1523
  #: src/settings-hardening.php:540
1524
+ msgid "Disables the theme and plugin editors to prevent unwanted modifications to the code. If you are having problems reverting this please open the wp-config.php file and delete the line with the constant DISALLOW_FILE_EDIT."
1525
+ msgstr ""
1526
+
1527
+ #: src/settings-hardening.php:572
1528
+ msgid "Automatic Secret Keys Updater enabled. The default frequency is \"Weekly\", but you can change the frequency on Settings -> Post-Hack -> Update Secret Keys section."
1529
+ msgstr ""
1530
+
1531
+ #: src/settings-hardening.php:573
1532
+ #: src/settings-posthack.php:158
1533
+ #: src/settings-posthack.php:159
1534
+ msgid "Automatic Secret Keys Updater enabled."
1535
+ msgstr ""
1536
+
1537
+ #: src/settings-hardening.php:575
1538
+ #: src/settings-hardening.php:585
1539
+ #: src/settings-posthack.php:150
1540
+ #: src/settings-posthack.php:161
1541
+ msgid "Something went wrong."
1542
+ msgstr ""
1543
+
1544
+ #: src/settings-hardening.php:582
1545
+ #: src/settings-hardening.php:583
1546
+ #: src/settings-posthack.php:147
1547
+ #: src/settings-posthack.php:148
1548
+ msgid "Automatic Secret Keys Updater disabled."
1549
  msgstr ""
1550
 
1551
  #: src/settings-hardening.php:591
1552
+ msgid "Activate Automatic Secret Keys Updater"
1553
+ msgstr ""
1554
+
1555
+ #: src/settings-hardening.php:592
1556
+ msgid "Changing the Secret Keys will invalidate all existing cookies, forcing all logged in users to login again. Doing this frequently will decrease the chances of misuse of sessions left open on unprotected devices."
1557
+ msgstr ""
1558
+
1559
+ #: src/settings-hardening.php:643
1560
  msgid "The file has been whitelisted from the hardening"
1561
  msgstr ""
1562
 
1563
+ #: src/settings-hardening.php:648
1564
  msgid "Specified folder is not hardened by this plugin"
1565
  msgstr ""
1566
 
1567
+ #: src/settings-hardening.php:662
1568
  msgid "Selected files have been removed"
1569
  msgstr ""
1570
 
1573
  msgstr ""
1574
 
1575
  #: src/settings-integrity.php:68
 
1576
  msgid "Integrity diff utility has been <code>%s</code>"
1577
  msgstr ""
1578
 
1581
  msgstr ""
1582
 
1583
  #: src/settings-integrity.php:112
 
1584
  msgid "Core files that will not be ignored anymore: (multiple entries): %s"
1585
  msgstr ""
1586
 
1608
  msgid "Generate new security keys (failure)"
1609
  msgstr ""
1610
 
1611
+ #: src/settings-posthack.php:140
1612
+ msgid "No frequency selected for the automatic secret key updater."
1613
+ msgstr ""
1614
+
1615
+ #: src/settings-posthack.php:258
1616
  msgid "Password changed for user #%d"
1617
  msgstr ""
1618
 
1619
+ #: src/settings-posthack.php:353
1620
  msgid "not installed"
1621
  msgstr ""
1622
 
1623
+ #: src/settings-posthack.php:360
1624
  msgid "Plugin is Premium"
1625
  msgstr ""
1626
 
1627
+ #: src/settings-posthack.php:366
1628
  msgid "Missing Library"
1629
  msgstr ""
1630
 
1631
+ #: src/settings-posthack.php:376
1632
  msgid "Cannot Download"
1633
  msgstr ""
1634
 
1635
+ #: src/settings-posthack.php:379
1636
  msgid "Cannot Backup"
1637
  msgstr ""
1638
 
1639
+ #: src/settings-posthack.php:392
1640
  msgid "Cannot Install"
1641
  msgstr ""
1642
 
1643
+ #: src/settings-posthack.php:401
 
1644
  msgid "Installed v%s"
1645
  msgstr ""
1646
 
1647
+ #: src/settings-posthack.php:475
1648
  msgid "Newest WordPress"
1649
  msgstr ""
1650
 
1651
+ #: src/settings-posthack.php:513
1652
  msgid "There are no updates available."
1653
  msgstr ""
1654
 
1655
  #: src/settings-scanner.php:68
 
1656
  msgid "%d tasks has been scheduled to run in the next ten seconds."
1657
  msgstr ""
1658
 
1659
  #: src/settings-scanner.php:74
 
1660
  msgid "Force execution of scheduled tasks: (multiple entries): %s"
1661
  msgstr ""
1662
 
1663
  #: src/settings-scanner.php:86
 
1664
  msgid "%d scheduled tasks have been removed."
1665
  msgstr ""
1666
 
1667
  #: src/settings-scanner.php:92
 
1668
  msgid "Delete scheduled tasks: (multiple entries): %s"
1669
  msgstr ""
1670
 
1671
  #: src/settings-scanner.php:103
 
1672
  msgid "%d tasks has been re-scheduled to run <code>%s</code>."
1673
  msgstr ""
1674
 
1675
  #: src/settings-scanner.php:110
 
1676
  msgid "Re-configure scheduled tasks %s: (multiple entries): %s"
1677
  msgstr ""
1678
 
1684
  msgid "Execute Now (in +10 seconds)"
1685
  msgstr ""
1686
 
1687
+ #: src/settings-scanner.php:207
1688
+ #: src/settings-scanner.php:216
1689
  msgid "Selected files have been successfully processed."
1690
  msgstr ""
1691
 
1692
  #: src/settings-scanner.php:208
 
1693
  msgid "This directory will not be scanned: %s"
1694
  msgstr ""
1695
 
1706
  msgstr ""
1707
 
1708
  #: src/sitecheck.lib.php:178
 
1709
  msgid "PHP Version: %s"
1710
  msgstr ""
1711
 
1712
  #: src/sitecheck.lib.php:179
 
1713
  msgid "Version: %s"
1714
  msgstr ""
1715
 
1716
  #: src/sitecheck.lib.php:190
 
1717
  msgid "Hosting: %s"
1718
  msgstr ""
1719
 
1720
  #: src/sitecheck.lib.php:194
 
1721
  msgid "CMS: %s"
1722
  msgstr ""
1723
 
1737
  msgid "Blacklisted"
1738
  msgstr ""
1739
 
1740
+ #: src/sitecheck.lib.php:393
 
1741
  msgid "iFrames: %d"
1742
  msgstr ""
1743
 
1744
+ #: src/sitecheck.lib.php:405
 
1745
  msgid "Links: %d"
1746
  msgstr ""
1747
 
1748
+ #: src/sitecheck.lib.php:426
 
1749
  msgid "Scripts: %d"
1750
  msgstr ""
1751
 
1781
  msgid "Review"
1782
  msgstr ""
1783
 
1784
+ #: src/strings.php:38
1785
+ #: src/template.lib.php:136
1786
  msgid "Generate API Key"
1787
  msgstr ""
1788
 
1794
  msgid "Sucuri Inc. All Rights Reserved."
1795
  msgstr ""
1796
 
1797
+ #: src/strings.php:47
1798
+ #: src/strings.php:97
1799
  msgid "Audit Logs"
1800
  msgstr ""
1801
 
1804
  msgstr ""
1805
 
1806
  #: src/strings.php:51
1807
+ msgid "The firewall logs every request involved in an attack and separates them from the legitimate requests. You can analyze the data from the latest entries in the logs using this tool and take action either enabling the advanced features of the IDS <em>(Intrusion Detection System)</em> from the <a href=\"https://waf.sucuri.net/?settings\" target=\"_blank\" rel=\"noopener\">Firewall Dashboard</a> and/or blocking IP addresses and URL paths directly from the <a href=\"https://waf.sucuri.net/?audit\" target=\"_blank\" rel=\"noopener\">Firewall Audit Trails</a> page."
 
 
 
 
 
1808
  msgstr ""
1809
 
1810
  #: src/strings.php:52
1811
  msgid "Non-blocked requests are hidden from the logs, this is intentional."
1812
  msgstr ""
1813
 
1814
+ #: src/strings.php:54
1815
+ #: src/strings.php:75
1816
+ #: src/strings.php:129
1817
+ #: src/strings.php:216
1818
+ #: src/strings.php:222
1819
+ #: src/strings.php:229
1820
+ #: src/strings.php:237
1821
+ #: src/strings.php:249
1822
+ #: src/strings.php:256
1823
+ #: src/strings.php:266
1824
+ #: src/strings.php:273
1825
+ #: src/strings.php:285
1826
+ #: src/strings.php:298
1827
+ #: src/strings.php:338
1828
+ #: src/strings.php:356
1829
+ #: src/strings.php:366
1830
+ #: src/strings.php:372
1831
+ #: src/strings.php:378
1832
+ #: src/strings.php:417
1833
+ #: src/strings.php:430
1834
+ #: src/strings.php:444
1835
+ #: src/strings.php:458
1836
+ #: src/strings.php:465
1837
+ #: src/strings.php:531
1838
  msgid "Submit"
1839
  msgstr ""
1840
 
1841
+ #: src/strings.php:57
1842
+ #: src/strings.php:203
1843
  msgid "Date/Time:"
1844
  msgstr ""
1845
 
1871
  msgid "Clear cache when a post or page is updated"
1872
  msgstr ""
1873
 
1874
+ #: src/strings.php:68
1875
+ #: src/strings.php:99
1876
  msgid "Clear Cache"
1877
  msgstr ""
1878
 
1879
  #: src/strings.php:69
1880
+ msgid "The firewall offers multiple options to configure the cache level applied to your website. You can either enable the full cache which is the recommended setting, or you can set the cache level to minimal which will keep the pages static for a couple of minutes, or force the usage of the website headers <em>(only for advanced users)</em>, or in extreme cases where you do not need the cache you can simply disable it. Find more information about it in the <a href=\"https://kb.sucuri.net/firewall/Performance/caching-options\" target=\"_blank\" rel=\"noopener\">Sucuri Knowledge Base</a> website."
 
 
 
 
 
1881
  msgstr ""
1882
 
1883
  #: src/strings.php:70
1884
+ msgid "Note that the firewall has <a href=\"https://kb.sucuri.net/firewall/Performance/cache-exceptions\" target=\"_blank\" rel=\"noopener\">special caching rules</a> for Images, CSS, PDF, TXT, JavaScript, media files and a few more extensions that are stored on our <a href=\"https://en.wikipedia.org/wiki/Edge_device\" target=\"_blank\" rel=\"noopener\">edge</a>. The only way to flush the cache for these files is by clearing the firewall’s cache completely <em>(for the whole website)</em>. Due to our caching of JavaScript and CSS files, often, as is best practice, the use of versioning during development will ensure updates going live as expected. This is done by adding a query string such as <code>?ver=1.2.3</code> and incrementing on each update."
 
 
 
 
 
 
 
1885
  msgstr ""
1886
 
1887
  #: src/strings.php:71
1888
+ msgid "A web cache (or HTTP cache) is an information technology for the temporary storage (caching) of web documents, such as HTML pages and images, to reduce bandwidth usage, server load, and perceived lag. A web cache system stores copies of documents passing through it; subsequent requests may be satisfied from the cache if certain conditions are met. A web cache system can refer either to an appliance, or to a computer program. &mdash; <a href=\"https://en.wikipedia.org/wiki/Web_cache\" target=\"_blank\" rel=\"noopener\">WikiPedia - Web Cache</a>"
 
 
 
 
 
1889
  msgstr ""
1890
 
1891
+ #: src/strings.php:74
1892
+ #: src/strings.php:89
1893
+ #: src/strings.php:259
1894
+ #: src/strings.php:279
1895
+ #: src/strings.php:321
1896
+ #: src/strings.php:332
1897
+ #: src/strings.php:384
1898
  msgid "Delete"
1899
  msgstr ""
1900
 
1903
  msgstr ""
1904
 
1905
  #: src/strings.php:78
1906
+ msgid "This tool allows you to blacklist one or more IP addresses from accessing your website."
 
 
 
 
1907
  msgstr ""
1908
 
1909
  #: src/strings.php:79
1910
+ msgid "To delete an IP from the blacklist you can use the form below or you can log into the Firewall dashboard."
1911
  msgstr ""
1912
 
1913
  #: src/strings.php:80
1914
+ msgid "Blacklist IP:"
1915
  msgstr ""
1916
 
1917
+ #: src/strings.php:81
1918
+ msgid "e.g. 192.168.1.54"
1919
  msgstr ""
1920
 
1921
  #: src/strings.php:85
1922
+ msgid "Firewall Settings"
 
 
 
 
1923
  msgstr ""
1924
 
1925
  #: src/strings.php:86
1926
+ msgid "A powerful Web Application Firewall and <b>Intrusion Detection System</b> for any WordPress user and many other platforms. This page will help you to configure and monitor your site through the <b>Sucuri Firewall</b>. Once enabled, our firewall will act as a shield, protecting your site from attacks and preventing malware infections and reinfections. It will block SQL injection attempts, brute force attacks, XSS, RFI, backdoors and many other threats against your site."
 
 
1927
  msgstr ""
1928
 
1929
  #: src/strings.php:87
1930
+ msgid "Add your <a href=\"https://waf.sucuri.net/?settings&panel=api\" target=\"_blank\" rel=\"noopener\">Firewall API key</a> in the form below to start communicating with the firewall API service."
1931
+ msgstr ""
1932
+
1933
+ #: src/strings.php:88
1934
  msgid "Firewall API Key:"
1935
  msgstr ""
1936
 
1937
+ #: src/strings.php:90
1938
  msgid "Save"
1939
  msgstr ""
1940
 
1941
+ #: src/strings.php:91
1942
+ #: src/strings.php:388
1943
+ #: src/strings.php:396
1944
+ #: src/strings.php:426
1945
+ #: src/strings.php:437
1946
+ #: src/strings.php:452
1947
  msgid "Name"
1948
  msgstr ""
1949
 
1950
+ #: src/strings.php:92
1951
+ #: src/strings.php:438
1952
  msgid "Value"
1953
  msgstr ""
1954
 
1955
+ #: src/strings.php:93
1956
+ msgid "<em>[1]</em> More information about the <a href=\"https://sucuri.net/website-firewall/\" target=\"_blank\" rel=\"noopener\">Sucuri Firewall</a>, features and pricing.<br><em>[2]</em> Instructions and videos in the official <a href=\"https://kb.sucuri.net/firewall\" target=\"_blank\" rel=\"noopener\">Knowledge Base</a> site.<br><em>[3]</em> <a href=\"https://login.sucuri.net/signup2/create?CloudProxy\" target=\"_blank\" rel=\"noopener\">Sign up</a> for a new account and start protecting your site."
 
 
 
 
 
1957
  msgstr ""
1958
 
1959
+ #: src/strings.php:98
1960
  msgid "IP Access"
1961
  msgstr ""
1962
 
1963
+ #: src/strings.php:102
1964
+ #: src/strings.php:113
1965
+ #: src/strings.php:142
1966
  msgid "WordPress Integrity"
1967
  msgstr ""
1968
 
1969
+ #: src/strings.php:103
1970
+ #: src/strings.php:114
1971
+ #: src/strings.php:143
1972
+ msgid "We inspect your WordPress installation and look for modifications on the core files as provided by WordPress.org. Files located in the root directory, wp-admin and wp-includes will be compared against the files distributed with v%%SUCURI.WordPressVersion%%; all files with inconsistencies will be listed here. Any changes might indicate a hack."
 
 
1973
  msgstr ""
1974
 
1975
+ #: src/strings.php:104
1976
  msgid "All Core WordPress Files Are Correct"
1977
  msgstr ""
1978
 
1979
+ #: src/strings.php:105
1980
+ msgid "We have not identified additional files, deleted files, or relevant changes to the core files in your WordPress installation. If you are experiencing other malware issues, please use a <a href=\"https://sucuri.net/website-security/malware-removal\" target=\"_blank\" rel=\"noopener\">Server Side Scanner</a>."
 
 
 
1981
  msgstr ""
1982
 
1983
+ #: src/strings.php:106
1984
+ #: src/strings.php:117
1985
  msgid "Review False Positives"
1986
  msgstr ""
1987
 
1988
+ #: src/strings.php:110
1989
+ msgid "Lines with a <b>minus</b> sign as the prefix <em>(here in red)</em> show the original code. Lines with a <b>plus</b> sign as the prefix <em>(here in green)</em> show the modified code. You can read more about the DIFF format from the WikiPedia article about the <a target=\"_blank\" href=\"https://en.wikipedia.org/wiki/Diff_utility\" rel=\"noopener\">Unix Diff Utility</a>."
 
 
 
 
1990
  msgstr ""
1991
 
1992
+ #: src/strings.php:115
1993
  msgid "Core WordPress Files Were Modified"
1994
  msgstr ""
1995
 
1996
+ #: src/strings.php:116
1997
+ #: src/strings.php:133
1998
+ msgid "We identified that some of your WordPress core files were modified. That might indicate a hack or a broken file on your installation. If you are experiencing other malware issues, please use a <a href=\"https://sucuri.net/website-security/malware-removal\" target=\"_blank\" rel=\"noopener\">Server Side Scanner</a>."
 
 
1999
  msgstr ""
2000
 
2001
+ #: src/strings.php:118
2002
+ #: src/strings.php:134
2003
  msgid "WordPress Integrity (%%SUCURI.Integrity.ListCount%%)"
2004
  msgstr ""
2005
 
2006
+ #: src/strings.php:119
2007
+ msgid "The Unix Diff Utility is enabled. You can click the files in the table to see the differences detected by the scanner. If you consider the differences to be harmless you can mark the file as fixed, otherwise it is advised to restore the original content immediately."
 
 
 
2008
  msgstr ""
2009
 
2010
+ #: src/strings.php:120
2011
+ #: src/strings.php:227
2012
+ #: src/strings.php:240
2013
+ #: src/strings.php:257
2014
+ #: src/strings.php:274
2015
+ #: src/strings.php:327
2016
+ #: src/strings.php:379
2017
+ #: src/strings.php:412
2018
+ #: src/strings.php:425
2019
+ #: src/strings.php:451
2020
+ #: src/strings.php:466
2021
+ #: src/strings.php:474
2022
  msgid "Select All"
2023
  msgstr ""
2024
 
2025
+ #: src/strings.php:121
2026
+ #: src/strings.php:136
2027
+ #: src/strings.php:329
2028
  msgid "File Size"
2029
  msgstr ""
2030
 
2031
+ #: src/strings.php:122
2032
+ #: src/strings.php:137
2033
  msgid "Modified At"
2034
  msgstr ""
2035
 
2036
+ #: src/strings.php:123
2037
+ #: src/strings.php:138
2038
+ #: src/strings.php:328
2039
+ #: src/strings.php:380
2040
+ #: src/strings.php:467
2041
+ #: src/strings.php:477
2042
  msgid "File Path"
2043
  msgstr ""
2044
 
2045
+ #: src/strings.php:124
2046
+ #: src/strings.php:337
2047
+ #: src/strings.php:355
2048
+ #: src/strings.php:439
2049
  msgid "I understand that this operation cannot be reverted."
2050
  msgstr ""
2051
 
2052
+ #: src/strings.php:125
2053
+ #: src/strings.php:457
2054
  msgid "Action:"
2055
  msgstr ""
2056
 
2057
+ #: src/strings.php:126
2058
  msgid "Mark as Fixed"
2059
  msgstr ""
2060
 
2061
+ #: src/strings.php:127
2062
  msgid "Restore File"
2063
  msgstr ""
2064
 
2065
+ #: src/strings.php:128
2066
  msgid "Delete File"
2067
  msgstr ""
2068
 
2069
+ #: src/strings.php:130
2070
+ #: src/strings.php:139
2071
+ msgid "Marking one or more files as fixed will force the plugin to ignore them during the next scan, very useful when you find false positives. Additionally you can restore the original content of the core files that appear as modified or deleted, this will tell the plugin to download a copy of the original files from the official WordPress repository. Deleting a file is an irreversible action, be careful."
 
 
 
2072
  msgstr ""
2073
 
2074
+ #: src/strings.php:135
2075
+ #: src/strings.php:330
2076
+ #: src/strings.php:429
2077
+ #: src/strings.php:436
2078
+ #: src/strings.php:468
2079
  msgid "Status"
2080
  msgstr ""
2081
 
2082
+ #: src/strings.php:147
2083
  msgid "All Users"
2084
  msgstr ""
2085
 
2086
+ #: src/strings.php:148
2087
  msgid "Admins"
2088
  msgstr ""
2089
 
2090
+ #: src/strings.php:149
2091
  msgid "Logged-in Users"
2092
  msgstr ""
2093
 
2094
+ #: src/strings.php:150
2095
  msgid "Failed Logins"
2096
  msgstr ""
2097
 
2098
+ #: src/strings.php:153
2099
  msgid "Successful Logins (admins)"
2100
  msgstr ""
2101
 
2102
+ #: src/strings.php:154
2103
  msgid "Here you can see a list of all the successful logins of accounts with admin privileges."
2104
  msgstr ""
2105
 
2106
+ #: src/strings.php:156
2107
  msgid "Registration"
2108
  msgstr ""
2109
 
2110
+ #: src/strings.php:157
2111
  msgid "Newest To Oldest"
2112
  msgstr ""
2113
 
2114
+ #: src/strings.php:162
2115
+ #: src/strings.php:171
2116
+ #: src/strings.php:183
2117
  msgid "Date/Time"
2118
  msgstr ""
2119
 
2120
+ #: src/strings.php:163
2121
+ #: src/strings.php:199
2122
+ msgid "Edit User Profile"
2123
  msgstr ""
2124
 
2125
+ #: src/strings.php:166
2126
  msgid "Successful Logins (all)"
2127
  msgstr ""
2128
 
2129
+ #: src/strings.php:167
2130
  msgid "Here you can see a list of all the successful user logins."
2131
  msgstr ""
2132
 
2133
+ #: src/strings.php:170
2134
  msgid "Hostname"
2135
  msgstr ""
2136
 
2137
+ #: src/strings.php:173
2138
+ msgid "Delete All Successful Logins"
2139
+ msgstr ""
2140
+
2141
+ #: src/strings.php:176
2142
+ msgid "Edit"
2143
  msgstr ""
2144
 
2145
  #: src/strings.php:179
2146
+ msgid "Failed logins"
 
 
 
 
 
 
 
 
2147
  msgstr ""
2148
 
2149
+ #: src/strings.php:180
2150
+ msgid "This information will be used to determine if your site is being victim of <a href=\"https://kb.sucuri.net/definitions/attacks/brute-force/password-guessing\" target=\"_blank\" rel=\"noopener\">Password Guessing Brute Force Attacks</a>. These logs will be accumulated and the plugin will send a report via email if there are more than <code>%%SUCURI.FailedLogins.MaxFailedLogins%%</code> failed login attempts during the same hour, you can change this number from <a href=\"%%SUCURI.URL.Settings%%#alerts\">here</a>. <b>NOTE:</b> Some <em>\"Two-Factor Authentication\"</em> plugins do not follow the same rules that WordPress have to report failed login attempts, so you may not see all the attempts in this panel if you have one of these plugins installed."
2151
+ msgstr ""
2152
+
2153
+ #: src/strings.php:184
2154
  msgid "Web Browser"
2155
  msgstr ""
2156
 
2157
+ #: src/strings.php:186
2158
  msgid "Block"
2159
  msgstr ""
2160
 
2161
+ #: src/strings.php:187
2162
+ msgid "Delete All Failed Logins"
2163
  msgstr ""
2164
 
2165
  #: src/strings.php:190
2166
+ msgid "Logged-in Users}"
2167
  msgstr ""
2168
 
2169
  #: src/strings.php:191
2170
+ msgid "Here you can see a list of the users that are currently logged-in."
2171
+ msgstr ""
2172
+
2173
+ #: src/strings.php:192
2174
  msgid "ID"
2175
  msgstr ""
2176
 
2177
+ #: src/strings.php:194
2178
  msgid "Last Activity"
2179
  msgstr ""
2180
 
2181
+ #: src/strings.php:195
2182
+ #: src/strings.php:415
2183
  msgid "Registered"
2184
  msgstr ""
2185
 
2186
+ #: src/strings.php:200
2187
+ #: src/strings.php:209
2188
+ #: src/strings.php:346
2189
  msgid "Website:"
2190
  msgstr ""
2191
 
2192
+ #: src/strings.php:201
2193
+ #: src/strings.php:271
2194
  msgid "IP Address:"
2195
  msgstr ""
2196
 
2197
+ #: src/strings.php:202
2198
  msgid "Reverse IP:"
2199
  msgstr ""
2200
 
2201
+ #: src/strings.php:204
2202
  msgid "Message:"
2203
  msgstr ""
2204
 
 
 
 
 
 
 
 
2205
  #: src/strings.php:207
2206
+ msgid "An API key is required to activate some additional tools available in this plugin. The keys are free and you can virtually generate an unlimited number of them as long as the domain name and email address are unique. The key is used to authenticate the HTTP requests sent by the plugin to an API service managed by Sucuri Inc."
 
 
 
2207
  msgstr ""
2208
 
2209
+ #: src/strings.php:208
2210
+ msgid "If you experience issues generating the API key you can request one by sending the domain name and email address that you want to use to <a href=\"mailto:info@sucuri.net\">info@sucuri.net</a>. Note that generating a key for a website that is not facing the Internet is not possible because the API service needs to validate that the domain name exists."
2211
  msgstr ""
2212
 
2213
  #: src/strings.php:210
2214
+ #: src/strings.php:254
2215
+ msgid "E-mail:"
2216
  msgstr ""
2217
 
2218
  #: src/strings.php:211
2219
+ msgid "DNS Lookups"
 
 
2220
  msgstr ""
2221
 
2222
  #: src/strings.php:212
2223
+ msgid "Check the box if your website is behind a known firewall service, this guarantees that the IP address of your visitors will be detected correctly for the security logs. You can change this later from the settings."
2224
  msgstr ""
2225
 
2226
  #: src/strings.php:213
2227
+ msgid "Enable DNS Lookups On Startup"
2228
  msgstr ""
2229
 
2230
  #: src/strings.php:214
2231
+ msgid "I agree to the <a target=\"_blank\" href=\"https://sucuri.net/terms\">Terms of Service</a>."
2232
  msgstr ""
2233
 
2234
+ #: src/strings.php:215
2235
+ msgid "I have read and understand the <a target=\"_blank\" href=\"https://sucuri.net/privacy\">Privacy Policy</a>."
2236
  msgstr ""
2237
 
2238
  #: src/strings.php:219
2239
+ msgid "Password Guessing Brute Force Attacks"
 
 
 
 
 
2240
  msgstr ""
2241
 
2242
  #: src/strings.php:220
2243
+ msgid "<a href=\"https://kb.sucuri.net/definitions/attacks/brute-force/password-guessing\" target=\"_blank\" rel=\"noopener\">Password guessing brute force attacks</a> are very common against web sites and web servers. They are one of the most common vectors used to compromise web sites. The process is very simple and the attackers basically try multiple combinations of usernames and passwords until they find one that works. Once they get in, they can compromise the web site with malware, spam , phishing or anything else they want."
2244
  msgstr ""
2245
 
2246
+ #: src/strings.php:221
2247
+ msgid "Consider Brute-Force Attack After:"
2248
  msgstr ""
2249
 
2250
  #: src/strings.php:225
2251
+ msgid "Security Alerts"
 
 
 
 
2252
  msgstr ""
2253
 
2254
+ #: src/strings.php:226
2255
+ msgid "You have installed a plugin or theme that is not fully compatible with our plugin, some of the security alerts (like the successful and failed logins) will not be sent to you. To prevent an infinite loop while detecting these changes in the website and sending the email alerts via a custom SMTP plugin, we have decided to stop any attempt to send the emails to prevent fatal errors."
2256
  msgstr ""
2257
 
2258
+ #: src/strings.php:228
2259
+ msgid "Event"
2260
  msgstr ""
2261
 
2262
  #: src/strings.php:232
2263
+ msgid "Post-Type Alerts"
 
 
 
2264
  msgstr ""
2265
 
2266
  #: src/strings.php:233
2267
+ msgid "It seems that you disabled the email alerts for <b>new site content</b>, this panel is intended to provide a way to ignore specific events in your site and with that the alerts reported to your email. Since you have deactivated the <b>new site content</b> alerts, this panel will be disabled too."
 
 
 
 
 
 
2268
  msgstr ""
2269
 
2270
  #: src/strings.php:234
2271
+ msgid "This is a list of registered <a href=\"https://codex.wordpress.org/Post_Types\" target=\"_blank\" rel=\"noopener\">Post Types</a>. You will receive an email alert when a custom page or post associated to any of these types is created or updated. If you don’t want to receive one or more of these alerts, feel free to uncheck the boxes in the table below. If you are receiving alerts for post types that are not listed in this table, it may be because there is an add-on that that is generating a custom post-type on runtime, you will have to find out by yourself what is the unique ID of that post-type and type it in the form below. The plugin will do its best to ignore these alerts as long as the unique ID is valid."
2272
  msgstr ""
2273
 
2274
  #: src/strings.php:235
2275
+ msgid "Stop Alerts For This Post-Type:"
2276
+ msgstr ""
2277
+
2278
+ #: src/strings.php:236
2279
  msgid "e.g. unique_post_type_id"
2280
  msgstr ""
2281
 
2282
+ #: src/strings.php:238
2283
  msgid "Show Post-Types Table"
2284
  msgstr ""
2285
 
2286
+ #: src/strings.php:239
2287
  msgid "Hide Post-Types Table"
2288
  msgstr ""
2289
 
2290
+ #: src/strings.php:241
2291
  msgid "Post Type"
2292
  msgstr ""
2293
 
2294
+ #: src/strings.php:242
2295
  msgid "Post Type ID"
2296
  msgstr ""
2297
 
2298
+ #: src/strings.php:243
2299
  msgid "Ignored At (optional)"
2300
  msgstr ""
2301
 
2302
+ #: src/strings.php:246
2303
  msgid "Alerts Per Hour"
2304
  msgstr ""
2305
 
2306
+ #: src/strings.php:247
2307
+ msgid "Configure the maximum number of email alerts per hour. If the number is exceeded and the plugin detects more events during the same hour, it will still log the events into the audit logs but will not send the email alerts. Be careful with this as you will miss important information."
 
 
 
2308
  msgstr ""
2309
 
2310
+ #: src/strings.php:248
2311
  msgid "Maximum Alerts Per Hour:"
2312
  msgstr ""
2313
 
2314
+ #: src/strings.php:252
2315
  msgid "Alerts Recipient"
2316
  msgstr ""
2317
 
2318
+ #: src/strings.php:253
2319
+ msgid "By default, the plugin will send the email alerts to the primary admin account, the same account created during the installation of WordPress in your web server. You can add more people to the list, they will receive a copy of the same security alerts."
 
 
 
2320
  msgstr ""
2321
 
2322
+ #: src/strings.php:255
2323
  msgid "e.g. user@example.com"
2324
  msgstr ""
2325
 
2326
+ #: src/strings.php:258
2327
+ #: src/strings.php:414
2328
  msgid "E-mail"
2329
  msgstr ""
2330
 
2331
+ #: src/strings.php:260
2332
  msgid "Test Alerts"
2333
  msgstr ""
2334
 
2335
+ #: src/strings.php:263
2336
  msgid "Alert Subject"
2337
  msgstr ""
2338
 
2339
+ #: src/strings.php:264
2340
+ msgid "Format of the subject for the email alerts, by default the plugin will use the website name and the event identifier that is being reported, you can use this panel to include the IP address of the user that triggered the event and some additional data. You can create filters in your email client creating a custom email subject using the pseudo-tags shown below."
 
 
 
 
2341
  msgstr ""
2342
 
2343
+ #: src/strings.php:265
2344
  msgid "Custom Format"
2345
  msgstr ""
2346
 
2347
+ #: src/strings.php:269
2348
  msgid "Trusted IP Addresses"
2349
  msgstr ""
2350
 
2351
+ #: src/strings.php:270
2352
+ msgid "If you are working in a LAN <em>(Local Area Network)</em> you may want to include the IP addresses of all the nodes in the subnet, this will force the plugin to stop sending email alerts about actions executed from trusted IP addresses. Use the CIDR <em>(Classless Inter Domain Routing)</em> format to specify ranges of IP addresses <em>(only 8, 16, and 24)</em>."
 
 
 
2353
  msgstr ""
2354
 
2355
+ #: src/strings.php:272
2356
  msgid "e.g. 182.120.56.0/24"
2357
  msgstr ""
2358
 
2359
+ #: src/strings.php:276
2360
  msgid "CIDR Format"
2361
  msgstr ""
2362
 
2363
+ #: src/strings.php:277
2364
  msgid "IP Added At"
2365
  msgstr ""
2366
 
 
 
 
 
 
 
 
 
2367
  #: src/strings.php:282
2368
+ msgid "If this operation was successful you will receive a message in the email used during the registration of the API key <em>(usually the email of the main admin user)</em>. This message contains the key in plain text, copy and paste the key in the form field below. The plugin will verify the authenticity of the key sending an initial HTTP request to the API service, if this fails the key will be removed automatically and you will have to start the process all over again."
 
 
 
2369
  msgstr ""
2370
 
2371
+ #: src/strings.php:283
2372
+ msgid "There are cases where this operation may fail, an example would be when the email address is not associated with the domain anymore, this happens when the base URL changes <em>(from www to none or viceversa)</em>. If you are having issues recovering the key please send an email explaining the situation to <a href=\"mailto:info@sucuri.net\">info@sucuri.net</a>"
2373
  msgstr ""
2374
 
2375
+ #: src/strings.php:284
2376
+ #: src/strings.php:322
2377
+ msgid "API Key:"
 
 
2378
  msgstr ""
2379
 
2380
  #: src/strings.php:288
2381
+ msgid "Congratulations! The rest of the features available in the plugin have been enabled. This product is designed to supplement existing security products. It’s not a silver bullet for your security needs, but it’ll give you greater security awareness and better posture, all with the intent of reducing risk."
 
 
 
2382
  msgstr ""
2383
 
2384
+ #: src/strings.php:289
2385
+ msgid "Your website has been granted a new API key and it was associated to the email address that you chose during the registration process. You can use the same email to recover the key if you happen to lose it sometime. We encourage you to check the rest of the settings page and configure the plugin to your own needs."
2386
  msgstr ""
2387
 
2388
  #: src/strings.php:294
2389
+ #: src/strings.php:296
2390
+ msgid "WordPress Checksums API"
 
 
 
 
2391
  msgstr ""
2392
 
2393
+ #: src/strings.php:295
2394
+ msgid "The WordPress integrity tool uses a remote API service maintained by the WordPress organization to determine which files in the installation were added, removed or modified. The API returns a list of files with their respective checksums, this information guarantees that the installation is not corrupt. You can, however, point the integrity tool to a GitHub repository in case that you are using a custom version of WordPress like the <a href=\"https://github.com/WordPress/WordPress\" target=\"_blank\" rel=\"noopener\">development version of the code</a>."
2395
  msgstr ""
2396
 
2397
+ #: src/strings.php:297
2398
+ msgid "e.g. URL or — user/repo"
2399
  msgstr ""
2400
 
2401
  #: src/strings.php:301
2402
+ msgid "API Communication via Proxy"
 
 
 
 
 
2403
  msgstr ""
2404
 
2405
  #: src/strings.php:302
2406
+ msgid "All the HTTP requests used to communicate with the API service are being sent using the WordPress built-in functions, so (almost) all its official features are inherited, this is useful if you need to pass these HTTP requests through a proxy. According to the <a href=\"https://developer.wordpress.org/reference/classes/wp_http_proxy/\" target=\"_blank\" rel=\"noopener\">official documentation</a> you have to add some constants to the main configuration file: <em>WP_PROXY_HOST, WP_PROXY_PORT, WP_PROXY_USERNAME, WP_PROXY_PASSWORD</em>."
2407
  msgstr ""
2408
 
2409
  #: src/strings.php:303
2410
+ msgid "HTTP Proxy Hostname"
2411
  msgstr ""
2412
 
2413
  #: src/strings.php:304
2414
+ msgid "HTTP Proxy Port num"
2415
  msgstr ""
2416
 
2417
  #: src/strings.php:305
2418
+ msgid "HTTP Proxy Username"
2419
  msgstr ""
2420
 
2421
+ #: src/strings.php:306
2422
+ msgid "HTTP Proxy Password"
2423
  msgstr ""
2424
 
2425
  #: src/strings.php:309
2426
+ #: src/strings.php:504
2427
+ msgid "API Service Communication"
 
 
 
2428
  msgstr ""
2429
 
2430
  #: src/strings.php:310
2431
+ msgid "Once the API key is generate the plugin will communicate with a remote API service that will act as a safe data storage for the audit logs generated when the website triggers certain events that the plugin monitors. If the website is hacked the attacker will not have access to these logs and that way you can investigate what was modified <em>(for malware infaction)</em> and/or how the malicious person was able to gain access to the website."
 
 
 
 
 
2432
  msgstr ""
2433
 
2434
  #: src/strings.php:311
2435
+ msgid "Disabling the API service communication will stop the event monitoring, consider to enable the <a href=\"%%SUCURI.URL.Settings%%#general\">Log Exporter</a> to keep the monitoring working while the HTTP requests are ignored, otherwise an attacker may execute an action that will not be registered in the security logs and you will not have a way to investigate the attack in the future."
 
 
 
 
 
 
2436
  msgstr ""
2437
 
2438
+ #: src/strings.php:312
2439
+ msgid "<strong>Are you a developer?</strong> You may be interested in our API. Feel free to use the URL shown below to access the latest 50 entries in your security log, change the value for the parameter <code>l=N</code> if you need more. Be aware that the API doesn’t provides an offset parameter, so if you have the intention to query specific sections of the log you will need to wrap the HTTP request around your own cache mechanism. We <strong>DO NOT</strong> take feature requests for the API, this is a semi-private service tailored for the specific needs of the plugin and not intended to be used by 3rd-party apps, we may change the behavior of each API endpoint without previous notice, use it at your own risk."
2440
  msgstr ""
2441
 
2442
  #: src/strings.php:315
2443
+ msgid "API Key"
 
 
 
2444
  msgstr ""
2445
 
2446
  #: src/strings.php:316
2447
+ msgid "An API key is required to prevent attackers from deleting audit logs that can help you investigate and recover after a hack, and allows the plugin to display statistics. By generating an API key, you agree that Sucuri will collect and store anonymous data about your website. We take your privacy seriously."
 
 
 
 
 
2448
  msgstr ""
2449
 
2450
  #: src/strings.php:317
2451
+ msgid "Your domain <code>%%SUCURI.CleanDomain%%</code> does not seems to have a DNS <code>A</code> record so it will be considered as <em>invalid</em> by the API interface when you request the generation of a new key. Adding <code>www</code> at the beginning of the domain name may fix this issue. If you do not understand what is this then send an email to our support team requesting the key."
2452
  msgstr ""
2453
 
2454
  #: src/strings.php:318
2455
+ msgid "Recover Via E-mail"
2456
  msgstr ""
2457
 
2458
  #: src/strings.php:319
2459
+ msgid "Manual Activation"
 
 
 
2460
  msgstr ""
2461
 
2462
+ #: src/strings.php:320
2463
+ msgid "If you do not have access to the administrator email, you can reinstall the plugin. The API key is generated using an administrator email and the domain of the website. Click the \"Manual Activation\" button if you already have a valid API key to authenticate this website with the remote API web service."
2464
  msgstr ""
2465
 
2466
  #: src/strings.php:325
2467
+ msgid "Data Storage"
 
 
 
 
 
2468
  msgstr ""
2469
 
2470
+ #: src/strings.php:326
2471
+ msgid "This is the directory where the plugin will store the security logs, the list of files marked as fixed in the core integrity tool, the cache for the malware scanner and 3rd-party plugin metadata. The plugin requires write permissions in this directory as well as the files contained in it. If you prefer to keep these files in a non-public directory <em>(one level up the document root)</em> please define a constant in the <em>\"wp-config.php\"</em> file named <em>\"SUCURI_DATA_STORAGE\"</em> with the absolute path to the new directory."
2472
  msgstr ""
2473
 
2474
  #: src/strings.php:335
2475
+ msgid "Import &amp; Export Settings"
 
 
 
 
 
 
2476
  msgstr ""
2477
 
2478
+ #: src/strings.php:336
2479
+ msgid "Copy the JSON-encoded data from the box below, go to your other websites and click the <em>\"Import\"</em> button in the settings page. The plugin will start using the same settings from this website. Notice that some options are omitted as they contain values specific to this website. To import the settings from another website into this one, replace the JSON-encoded data in the box below with the JSON-encoded data exported from the other website, then click the button <em>\"Import\"</em>. Notice that some options will not be imported to reduce the security risk of writing arbitrary data into the disk."
2480
  msgstr ""
2481
 
2482
  #: src/strings.php:341
2483
+ msgid "IP Address Discoverer"
 
 
 
 
 
2484
  msgstr ""
2485
 
2486
  #: src/strings.php:342
2487
+ msgid "IP address discoverer will use DNS lookups to automatically detect if the website is behind the <a href=\"https://sucuri.net/website-firewall/\" target=\"_blank\" rel=\"noopener\">Sucuri Firewall</a>, in which case it will modify the global server variable <em>Remote-Addr</em> to set the real IP of the website’s visitors. This check runs on every WordPress init action and that is why it may slow down your website as some hosting providers rely on slow DNS servers which makes the operation take more time than it should."
2488
  msgstr ""
2489
 
2490
  #: src/strings.php:343
2491
+ msgid "HTTP Header:"
2492
  msgstr ""
2493
 
2494
  #: src/strings.php:344
2495
+ msgid "Proceed"
2496
+ msgstr ""
2497
+
2498
+ #: src/strings.php:345
2499
  msgid "Sucuri Firewall"
2500
  msgstr ""
2501
 
2502
+ #: src/strings.php:347
2503
  msgid "Top Level Domain:"
2504
  msgstr ""
2505
 
2506
+ #: src/strings.php:348
2507
  msgid "Hostname:"
2508
  msgstr ""
2509
 
2510
+ #: src/strings.php:349
2511
  msgid "IP Address (Hostname):"
2512
  msgstr ""
2513
 
2514
+ #: src/strings.php:350
2515
  msgid "IP Address (Username):"
2516
  msgstr ""
2517
 
2518
+ #: src/strings.php:353
2519
  msgid "Reset Security Logs, Hardening and Settings"
2520
  msgstr ""
2521
 
2522
+ #: src/strings.php:354
2523
+ msgid "This action will trigger the deactivation / uninstallation process of the plugin. All local security logs, hardening and settings will be deleted. Notice that the security logs stored in the API service will not be deleted, this is to prevent tampering from a malicious user. You can request a new API key if you want to start from scratch."
 
 
 
2524
  msgstr ""
2525
 
2526
+ #: src/strings.php:359
2527
  msgid "Reverse Proxy"
2528
  msgstr ""
2529
 
2530
+ #: src/strings.php:360
2531
+ msgid "The event monitor uses the API address of the origin of the request to track the actions. The plugin uses two methods to retrieve this: the main method uses the global server variable <em>Remote-Addr</em> available in most modern web servers, and an alternative method uses custom HTTP headers <em>(which are unsafe by default)</em>. You should not worry about this option unless you know what a reverse proxy is. Services like the <a href=\"https://sucuri.net/website-firewall/\" target=\"_blank\" rel=\"noopener\">Sucuri Firewall</a> &mdash; once active &mdash; force the network traffic to pass through them to filter any security threat that may affect the original server. A side effect of this is that the real IP address is no longer available in the global server variable <em>Remote-Addr</em> but in a custom HTTP header with a name provided by the service."
 
 
 
 
 
 
 
 
2532
  msgstr ""
2533
 
2534
+ #: src/strings.php:363
2535
  msgid "Log Exporter"
2536
  msgstr ""
2537
 
2538
+ #: src/strings.php:364
2539
+ msgid "This option allows you to export the WordPress audit logs to a local log file that can be read by a SIEM or any log analysis software <em>(we recommend OSSEC)</em>. That will give visibility from within WordPress to complement your log monitoring infrastructure. <b>NOTE:</b> Do not use a publicly accessible file, you must use a file at least one level up the document root to prevent leaks of information."
 
 
 
 
2540
  msgstr ""
2541
 
2542
+ #: src/strings.php:365
2543
+ #: src/strings.php:377
2544
  msgid "File Path:"
2545
  msgstr ""
2546
 
2547
+ #: src/strings.php:369
2548
  msgid "Timezone Override"
2549
  msgstr ""
2550
 
2551
+ #: src/strings.php:370
2552
+ msgid "This option defines the timezone that will be used through out the entire plugin to print the dates and times whenever is necessary. This option also affects the date and time of the logs visible in the audit logs panel which is data that comes from a remote server configured to use Eastern Daylight Time (EDT). WordPress offers an option in the general settings page to allow you to configure the timezone for the entire website, however, if you are experiencing problems with the time in the audit logs, this option will help you fix them."
 
 
 
 
 
2553
  msgstr ""
2554
 
2555
+ #: src/strings.php:371
2556
  msgid "Timezone:"
2557
  msgstr ""
2558
 
2559
+ #: src/strings.php:375
2560
  msgid "Whitelist Blocked PHP Files"
2561
  msgstr ""
2562
 
2563
+ #: src/strings.php:376
2564
+ msgid "After you apply the hardening in either the includes, content, and/or uploads directories, the plugin will add a rule in the access control file to deny access to any PHP file located in these folders. This is a good precaution in case an attacker is able to upload a shell script. With a few exceptions the <em>\"index.php\"</em> file is the only one that should be publicly accessible, however many theme/plugin developers decide to use these folders to process some operations. In this case applying the hardening <strong>may break</strong> their functionality."
 
 
 
 
 
2565
  msgstr ""
2566
 
2567
+ #: src/strings.php:381
2568
  msgid "Directory"
2569
  msgstr ""
2570
 
2571
+ #: src/strings.php:382
2572
  msgid "Pattern"
2573
  msgstr ""
2574
 
2575
+ #: src/strings.php:387
2576
+ #: src/strings.php:395
2577
+ msgid "WordPress has a big user base in the public Internet, which brings interest to attackers to find vulnerabilities in the code, 3rd-party extensions, and themes that other companies develop. You should keep every piece of code installed in your website updated to prevent attacks as soon as disclosed vulnerabilities are patched."
 
 
2578
  msgstr ""
2579
 
2580
+ #: src/strings.php:389
2581
+ #: src/strings.php:397
2582
+ #: src/strings.php:427
2583
  msgid "Version"
2584
  msgstr ""
2585
 
2586
+ #: src/strings.php:390
2587
+ #: src/strings.php:398
2588
  msgid "Update"
2589
  msgstr ""
2590
 
2591
+ #: src/strings.php:391
2592
+ #: src/strings.php:399
2593
  msgid "Tested With"
2594
  msgstr ""
2595
 
2596
+ #: src/strings.php:394
2597
  msgid "Available Plugin and Theme Updates"
2598
  msgstr ""
2599
 
2600
+ #: src/strings.php:403
2601
  msgid "Download"
2602
  msgstr ""
2603
 
2604
+ #: src/strings.php:406
2605
+ msgid "WordPress has generated a new (random) password for your account <b>%%SUCURI.ResetPassword.UserName%%</b> at <a target=\"_blank\" href=\"http://%%SUCURI.ResetPassword.Website%%\" rel=\"noopener\">%%SUCURI.ResetPassword.Website%%</a>. The change has been requested by one of the admins in this website for security reasons. Your new password is &mdash; <span style=\"font-family:Menlo, Monaco, monospace, serif;font-weight:700\">%%%SUCURI.ResetPassword.Password%%%</span> &mdash; please change it as soon as possible."
 
 
 
 
 
2606
  msgstr ""
2607
 
2608
+ #: src/strings.php:409
2609
  msgid "Reset User Password"
2610
  msgstr ""
2611
 
2612
+ #: src/strings.php:411
2613
+ msgid "You can generate a new random password for the user accounts that you select from the list. An email with the new password will be sent to the email address of each chosen user. If you choose to change the password of your own user, then your current session will expire immediately. You will need to log back into the admin panel with the new password that will be sent to your email."
 
 
 
 
2614
  msgstr ""
2615
 
2616
+ #: src/strings.php:416
2617
  msgid "Roles"
2618
  msgstr ""
2619
 
2620
+ #: src/strings.php:420
2621
  msgid "Reset Installed Plugins"
2622
  msgstr ""
2623
 
 
 
 
 
 
 
 
2624
  #: src/strings.php:422
2625
+ msgid "In case you suspect having an infection in your site, or after you got rid of a malicious code, it’s recommended to reinstall all the plugins installed in your site, including the ones you are not using. Notice that premium plugins will not be automatically reinstalled to prevent backward compatibility issues and problems with licenses."
 
 
 
 
2626
  msgstr ""
2627
 
2628
  #: src/strings.php:423
2629
+ msgid "The information shown here is cached for %%SUCURI.ResetPlugin.CacheLifeTime%% seconds. This is necessary to reduce the quantity of HTTP requests sent to the WordPress servers and the bandwidth of your site. Currently there is no option to recreate this cache."
 
 
 
2630
  msgstr ""
2631
 
2632
+ #: src/strings.php:424
2633
+ msgid "<b>WARNING!</b> This procedure can break your website. The reset will not affect the database nor the settings of each plugin, but depending on how they were written the reset action might break them. Be sure to create a backup of the plugins directory before the execution of this tool."
2634
  msgstr ""
2635
 
2636
+ #: src/strings.php:428
2637
+ msgid "Type"
2638
  msgstr ""
2639
 
2640
  #: src/strings.php:433
2641
+ msgid "Update Secret Keys"
 
 
 
 
 
2642
  msgstr ""
2643
 
2644
  #: src/strings.php:434
2645
+ msgid "The secret or security keys are a list of constants added to your site to ensure better encryption of information stored in the user’s cookies. A secret key makes your site harder to hack by adding random elements to the password. You do not have to remember the keys, just write a random, complicated, and long string in the <code>wp-config.php</code> file. You can change these keys at any point in time. Changing them will invalidate all existing cookies, forcing all logged in users to login again."
2646
+ msgstr ""
2647
+
2648
+ #: src/strings.php:435
2649
  msgid "Your current session will expire once the form is submitted."
2650
  msgstr ""
2651
 
2652
+ #: src/strings.php:440
2653
  msgid "Generate New Security Keys"
2654
  msgstr ""
2655
 
2656
+ #: src/strings.php:441
2657
+ msgid "Automatic Secret Keys Updater"
2658
+ msgstr ""
2659
+
2660
  #: src/strings.php:442
2661
+ msgid "Changing the Secret Keys frequently will decrease the chances of misuse of sessions left open on unprotected devices."
2662
  msgstr ""
2663
 
2664
  #: src/strings.php:443
2665
+ msgid "Frequency:"
 
 
 
 
 
2666
  msgstr ""
2667
 
2668
+ #: src/strings.php:447
2669
+ msgid "Scheduled Tasks"
 
 
 
 
 
2670
  msgstr ""
2671
 
2672
+ #: src/strings.php:448
2673
+ msgid "The plugin scans your entire website looking for changes which are later reported via the API in the audit logs page. By default the scanner runs daily but you can change the frequency to meet your requirements. Notice that scanning your project files too frequently may affect the performance of your website. Be sure to have enough server resources before changing this option. The memory limit and maximum execution time are two of the PHP options that your server will set to stop your website from consuming too much resources."
 
 
 
 
2674
  msgstr ""
2675
 
2676
+ #: src/strings.php:449
2677
+ msgid "The scanner uses the <a href=\"http://php.net/manual/en/class.splfileobject.php\" target=\"_blank\" rel=\"noopener\">PHP SPL library</a> and the <a target=\"_blank\" href=\"http://php.net/manual/en/class.filesystemiterator.php\" rel=\"noopener\">Filesystem Iterator</a> class to scan the directory tree where your website is located in the server. This library is only available on PHP 5 >= 5.3.0 &mdash; OR &mdash; PHP 7; if you have an older version of PHP the plugin will not work as expected. Please ask your hosting provider to advise you on this matter."
2678
+ msgstr ""
2679
+
2680
+ #: src/strings.php:450
2681
+ msgid "Scheduled tasks are rules registered in your database by a plugin, theme, or the base system itself; they are used to automatically execute actions defined in the code every certain amount of time. A good use of these rules is to generate backup files of your site, execute a security scanner, or remove unused elements like drafts. <b>Note:</b> Scheduled tasks can be re-installed by any plugin/theme automatically."
2682
+ msgstr ""
2683
+
2684
+ #: src/strings.php:453
2685
  msgid "Schedule"
2686
  msgstr ""
2687
 
2688
+ #: src/strings.php:454
2689
  msgid "Next Due"
2690
  msgstr ""
2691
 
2692
+ #: src/strings.php:455
2693
  msgid "Arguments"
2694
  msgstr ""
2695
 
2696
+ #: src/strings.php:461
2697
  msgid "Ignore Files And Folders During The Scans"
2698
  msgstr ""
2699
 
2700
+ #: src/strings.php:462
2701
+ msgid "Use this tool to select the files and/or folders that are too heavy for the scanner to process. These are usually folders with images, media files like videos and audios, backups and &mdash; in general &mdash; anything that is not code-related. Ignoring these files or folders will reduce the memory consumption of the PHP script."
 
 
 
2702
  msgstr ""
2703
 
2704
+ #: src/strings.php:463
2705
  msgid "Ignore a file or directory:"
2706
  msgstr ""
2707
 
2708
+ #: src/strings.php:464
2709
  msgid "e.g. /private/directory/"
2710
  msgstr ""
2711
 
2712
+ #: src/strings.php:469
2713
  msgid "Unignore Selected Directories"
2714
  msgstr ""
2715
 
2716
+ #: src/strings.php:472
2717
  msgid "WordPress Integrity (False Positives)"
2718
  msgstr ""
2719
 
2720
+ #: src/strings.php:473
2721
+ msgid "Since the scanner doesn’t read the files during the execution of the integrity check, it is possible to find false positives. Files listed here have been marked as false positives and will be ignored by the scanner in subsequent scans."
 
 
2722
  msgstr ""
2723
 
2724
+ #: src/strings.php:475
2725
  msgid "Reason"
2726
  msgstr ""
2727
 
2728
+ #: src/strings.php:476
2729
  msgid "Ignored At"
2730
  msgstr ""
2731
 
2732
+ #: src/strings.php:479
2733
  msgid "Stop Ignoring the Selected Files"
2734
  msgstr ""
2735
 
2736
+ #: src/strings.php:483
2737
+ msgid "If your server allows the execution of system commands, you can configure the plugin to use the <a href=\"https://en.wikipedia.org/wiki/Diff_utility\" target=\"_blank\" rel=\"noopener\">Unix Diff Utility</a> to compare the actual content of the file installed in the website and the original file provided by WordPress. This will show the differences between both files and then you can act upon the information provided."
 
 
 
 
2738
  msgstr ""
2739
 
2740
+ #: src/strings.php:487
2741
  msgid "Environment Variables"
2742
  msgstr ""
2743
 
2744
+ #: src/strings.php:490
2745
  msgid "Access File Integrity"
2746
  msgstr ""
2747
 
2748
+ #: src/strings.php:491
2749
+ msgid "The <code>.htaccess</code> file is a distributed configuration file, and is how the Apache web server handles configuration changes on a per-directory basis. WordPress uses this file to manipulate how Apache serves files from its root directory and subdirectories thereof; most notably, it modifies this file to be able to handle pretty permalinks."
 
 
 
2750
  msgstr ""
2751
 
2752
+ #: src/strings.php:492
2753
  msgid "Htaccess file found in"
2754
  msgstr ""
2755
 
2756
+ #: src/strings.php:493
2757
  msgid "Your website has no <code>.htaccess</code> file or it was not found in the default location."
2758
  msgstr ""
2759
 
2760
+ #: src/strings.php:494
2761
  msgid "Your web server does not support .htaccess files."
2762
  msgstr ""
2763
 
2764
+ #: src/strings.php:495
2765
+ msgid "The main <code>.htaccess</code> file in your site has the standard rules for a WordPress installation. You can customize it to improve the performance and change the behaviour of the redirections for pages and posts in your site. To get more information visit the official documentation at <a target=\"_blank\" rel=\"noopener\" href=\"https://codex.wordpress.org/Using_Permalinks#Creating_and_editing_.28.htaccess.29\"> Codex WordPress - Creating and editing (.htaccess)</a>"
 
 
 
 
2766
  msgstr ""
2767
 
2768
+ #: src/strings.php:496
2769
  msgid "Codex WordPress HTAccess"
2770
  msgstr ""
2771
 
2772
+ #: src/strings.php:499
2773
  msgid "General Settings"
2774
  msgstr ""
2775
 
2776
+ #: src/strings.php:500
2777
  msgid "Scanner"
2778
  msgstr ""
2779
 
2780
+ #: src/strings.php:501
2781
  msgid "Hardening"
2782
  msgstr ""
2783
 
2784
+ #: src/strings.php:502
2785
  msgid "Post-Hack"
2786
  msgstr ""
2787
 
2788
+ #: src/strings.php:503
2789
  msgid "Alerts"
2790
  msgstr ""
2791
 
2792
+ #: src/strings.php:505
2793
  msgid "Website Info"
2794
  msgstr ""
2795
 
2796
+ #: src/strings.php:506
2797
  msgid "Hardening Options"
2798
  msgstr ""
2799
 
2800
+ #: src/strings.php:509
 
2801
  msgid "This information will be updated %%SUCURI.SiteCheck.Lifetime%%"
2802
  msgstr ""
2803
 
2804
+ #: src/strings.php:510
2805
  msgid "Refresh Malware Scan"
2806
  msgstr ""
2807
 
2808
+ #: src/strings.php:513
2809
  msgid "No malicious JavaScript"
2810
  msgstr ""
2811
 
2812
+ #: src/strings.php:514
2813
  msgid "No malicious iFrames"
2814
  msgstr ""
2815
 
2816
+ #: src/strings.php:515
2817
  msgid "No suspicious redirections"
2818
  msgstr ""
2819
 
2820
+ #: src/strings.php:516
2821
  msgid "No blackhat SEO spam"
2822
  msgstr ""
2823
 
2824
+ #: src/strings.php:517
2825
  msgid "No anomaly detection"
2826
  msgstr ""
2827
 
2828
+ #: src/strings.php:518
2829
+ msgid "Some types of problems cannot be detected by this scanner. If this scanner did not detect any issue and you still suspect a problem exists, you can <a href=\"https://sucuri.net/website-security-platform/signup\" target=\"_blank\" rel=\"noopener\">sign up with Sucuri</a> for a complete and in-depth scan + cleanup (not included in the free checks)."
 
 
 
2830
  msgstr ""
2831
 
2832
+ #: src/strings.php:521
2833
  msgid "Hover to see the Payload"
2834
  msgstr ""
2835
 
2836
+ #: src/strings.php:524
2837
  msgid "Recommendations"
2838
  msgstr ""
2839
 
2840
+ #: src/strings.php:527
2841
+ #: src/strings.php:529
2842
  msgid "Malware Scan Target"
2843
  msgstr ""
2844
 
2845
+ #: src/strings.php:528
2846
+ msgid "The remote malware scanner provided by the plugin is powered by <a href=\"https://sitecheck.sucuri.net/\" target=\"_blank\" rel=\"noopener\">Sucuri SiteCheck</a>, a service that takes a publicly accessible URL and scans it for malicious code. If your website is not visible to the Internet, for example, if it is hosted in a local development environment or a restricted network, the scanner will not be able to work on it. Additionally, if the website was installed in a non-standard directory the scanner will report a \"404 Not Found\" error. You can use this option to change the URL that will be scanned."
 
 
 
 
 
 
2847
  msgstr ""
2848
 
2849
+ #: src/strings.php:530
2850
  msgid "Malware Scan Target:"
2851
  msgstr ""
2852
 
2853
+ #: src/strings.php:534
2854
  msgid "WordPress Security Recommendations"
2855
  msgstr ""
2856
 
2858
  msgid "Invalid template type"
2859
  msgstr ""
2860
 
2861
+ #: src/wordpress-recommendations.lib.php:54
2862
  msgid "Implement an SSL Certificate"
2863
  msgstr ""
2864
 
2865
+ #: src/wordpress-recommendations.lib.php:54
2866
+ msgid "SSL certificates help protect the integrity of the data in transit between the host (web server or firewall) and the client (web browser)."
 
 
2867
  msgstr ""
2868
 
2869
+ #: src/wordpress-recommendations.lib.php:57
2870
  msgid "Upgrade PHP to a supported version"
2871
  msgstr ""
2872
 
2873
+ #: src/wordpress-recommendations.lib.php:57
2874
+ msgid "The PHP version you are using no longer receives security support and could be exposed to unpatched security vulnerabilities."
 
 
2875
  msgstr ""
2876
 
2877
+ #: src/wordpress-recommendations.lib.php:60
2878
  msgid "Missing WordPress Salt & Security Keys"
2879
  msgstr ""
2880
 
2881
+ #: src/wordpress-recommendations.lib.php:60
2882
+ msgid "Consider using WordPress Salt & Security Keys to add an extra layer of protection to the session cookies and credentials."
 
2883
  msgstr ""
2884
 
2885
+ #: src/wordpress-recommendations.lib.php:63
2886
  msgid "WordPress Salt & Security Keys should be updated"
2887
  msgstr ""
2888
 
2889
+ #: src/wordpress-recommendations.lib.php:63
2890
+ msgid "Updating WordPress Salt & Security Keys after a compromise and on a regular basis, at least once a year, reduces the risks of session hijacking."
 
 
2891
  msgstr ""
2892
 
2893
+ #: src/wordpress-recommendations.lib.php:66
2894
  msgid "Admin/Administrator username still exists"
2895
  msgstr ""
2896
 
2897
+ #: src/wordpress-recommendations.lib.php:66
2898
+ msgid "Using a unique username and removing the default admin/administrator account make it more difficult for attackers to brute force your WordPress."
 
 
2899
  msgstr ""
2900
 
2901
+ #: src/wordpress-recommendations.lib.php:69
2902
  msgid "Use super admin account only when needed"
2903
  msgstr ""
2904
 
2905
+ #: src/wordpress-recommendations.lib.php:69
2906
  msgid "Create an Editor account instead of always using the super-admin to reduce the damage in case of session hijacking."
2907
  msgstr ""
2908
 
2909
+ #: src/wordpress-recommendations.lib.php:72
 
 
 
 
 
 
 
 
2910
  msgid "Remove unwanted/unused extensions"
2911
  msgstr ""
2912
 
2913
+ #: src/wordpress-recommendations.lib.php:72
2914
  msgid "Keeping unwanted themes and plugins increases the chance of a compromise, even if they are disabled."
2915
  msgstr ""
2916
 
2917
+ #: src/wordpress-recommendations.lib.php:75
2918
  msgid "Decrease the number of plugins"
2919
  msgstr ""
2920
 
2921
+ #: src/wordpress-recommendations.lib.php:75
2922
  msgid "The greater the number of plugins installed, the greater the risk of infection and performance issues."
2923
  msgstr ""
2924
 
2925
+ #: src/wordpress-recommendations.lib.php:78
 
 
 
 
 
 
 
 
 
2926
  msgid "Disable file editing"
2927
  msgstr ""
2928
 
2929
+ #: src/wordpress-recommendations.lib.php:78
2930
  msgid "Using \"DISALLOW_FILE_EDIT\" helps prevent an attacker from changing your files through WordPress backend."
2931
  msgstr ""
2932
 
2933
+ #: src/wordpress-recommendations.lib.php:81
2934
  msgid "Disable WordPress debug mode"
2935
  msgstr ""
2936
 
2937
+ #: src/wordpress-recommendations.lib.php:81
2938
+ msgid "When \"WP_DEBUG\" is set to true, it will cause all PHP errors, notices and warnings to be displayed which can expose sensitive information."
 
 
2939
  msgstr ""
2940
 
2941
+ #: src/wordpress-recommendations.lib.php:84
2942
  msgid "Prevent PHP direct execution on sensitive directories"
2943
  msgstr ""
2944
 
2945
+ #: src/wordpress-recommendations.lib.php:84
2946
+ msgid "Directories such as \"wp-content\" and \"wp-includes\" are generally not intended to be accessed by any user, consider hardening them via Sucuri Security -> Settings -> Hardening."
 
 
2947
  msgstr ""
2948
 
2949
+ #: src/wordpress-recommendations.lib.php:226
2950
+ msgid "Your WordPress install is following <a href=\"https://sucuri.net/guides/wordpress-security\" target=\"_blank\" rel=\"noopener\">the security best practices</a>."
 
 
2951
  msgstr ""
2952
 
2953
+ #: sucuri.php:319
2954
  msgid "Sucuri plugin has been uninstalled"
2955
  msgstr ""
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
readme.txt CHANGED
@@ -3,8 +3,8 @@ Contributors: dd@sucuri.net
3
  Donate Link: https://sucuri.net/
4
  Tags: malware, security, firewall, scan, spam, virus, sucuri, protection, blacklist, detection, hardening, file integrity
5
  Requires at least: 3.6
6
- Tested up to: 5.2.3
7
- Stable tag: 1.8.22
8
 
9
  The Sucuri WordPress Security plugin is a security toolset for security integrity monitoring, malware detection and security hardening.
10
 
@@ -190,6 +190,12 @@ This version adds an option to refresh the malware scan results on demand, as we
190
 
191
  == Changelog ==
192
 
 
 
 
 
 
 
193
  = 1.8.22 =
194
  * Add "SSL existence check" to WordPress Security Recommendations
195
  * Add "Salt & Security Keys existence check" to WordPress Security Recommendations
3
  Donate Link: https://sucuri.net/
4
  Tags: malware, security, firewall, scan, spam, virus, sucuri, protection, blacklist, detection, hardening, file integrity
5
  Requires at least: 3.6
6
+ Tested up to: 5.3.2
7
+ Stable tag: 1.8.23
8
 
9
  The Sucuri WordPress Security plugin is a security toolset for security integrity monitoring, malware detection and security hardening.
10
 
190
 
191
  == Changelog ==
192
 
193
+ = 1.8.23 =
194
+ * Add Automatic Secret Keys Updater
195
+ * Improve button's and link's messaging on Last Logins sections
196
+ * Improve messaging on Hardening page
197
+ * Improve messaging on IP Access page
198
+
199
  = 1.8.22 =
200
  * Add "SSL existence check" to WordPress Security Recommendations
201
  * Add "Salt & Security Keys existence check" to WordPress Security Recommendations
src/auditlogs.lib.php CHANGED
@@ -254,10 +254,7 @@ class SucuriScanAuditLogs
254
  }
255
  }
256
 
257
- $cache = new SucuriScanCache('auditqueue');
258
- $finfo = $cache->getDatastoreInfo();
259
- $events = $cache->getAll();
260
- $response['queueSize'] = count($events);
261
 
262
  wp_send_json($response, 200);
263
  }
254
  }
255
  }
256
 
257
+ $response['queueSize'] = $auditlogs['total_entries'];
 
 
 
258
 
259
  wp_send_json($response, 200);
260
  }
src/base.lib.php CHANGED
@@ -581,32 +581,20 @@ class SucuriScan
581
  }
582
 
583
  /**
584
- * Checks if the server IP is part of the Firewall network.
585
  *
586
- * Assumming that the website is being protected by the Sucuri Firewall, we
587
- * will check if the client IP address is part of the range of addresses
588
- * that we know are ours.
589
  *
590
- * @return boolean True if the website is using one of our IP addresses.
591
  */
592
- private static function isFirewallAddr()
593
  {
594
- if (!array_key_exists('HTTP_X_SUCURI_CLIENTIP', $_SERVER)) {
595
- return false;
596
- }
597
-
598
- if (SucuriScanFirewall::getKey()
599
- || preg_match('/^192\.88\.13[45]/', $_SERVER['REMOTE_ADDR'])
600
- || preg_match('/^185\.93\.(228|229|230|231)/', $_SERVER['REMOTE_ADDR'])
601
- ) {
602
- return true;
603
- }
604
-
605
- return false;
606
  }
607
 
608
  /**
609
- * Check whether the site is behind the firewall network.
610
  *
611
  * @param bool $verbose Return array with HTTP and HOST information.
612
  * @return array|bool True if the firewall is in use, false otherwise.
@@ -614,7 +602,7 @@ class SucuriScan
614
  public static function isBehindFirewall($verbose = false)
615
  {
616
  if (!$verbose) {
617
- return (bool) self::isFirewallAddr();
618
  }
619
 
620
  $http_host = self::getTopLevelDomain();
@@ -622,7 +610,7 @@ class SucuriScan
622
  $host_by_name = @gethostbyaddr($host_by_addr);
623
 
624
  return array(
625
- 'status' => self::isFirewallAddr(),
626
  'http_host' => self::getTopLevelDomain(),
627
  'host_name' => $host_by_name,
628
  'host_addr' => $host_by_addr,
581
  }
582
 
583
  /**
584
+ * Checks the existence of the HTTP_X_SUCURI_CLIENTIP header in the request headers
585
  *
586
+ * Once active, the Sucuri Firewall sends custom headers to the server with information
587
+ * about the original request.
 
588
  *
589
+ * @return boolean True if the website is being reached with our HTTP_X_SUCURI_CLIENTIP header.
590
  */
591
+ private static function hasSucuriClientIPHeader()
592
  {
593
+ return array_key_exists('HTTP_X_SUCURI_CLIENTIP', $_SERVER);
 
 
 
 
 
 
 
 
 
 
 
594
  }
595
 
596
  /**
597
+ * Checks whether the site is behind the firewall network.
598
  *
599
  * @param bool $verbose Return array with HTTP and HOST information.
600
  * @return array|bool True if the firewall is in use, false otherwise.
602
  public static function isBehindFirewall($verbose = false)
603
  {
604
  if (!$verbose) {
605
+ return (bool) self::hasSucuriClientIPHeader();
606
  }
607
 
608
  $http_host = self::getTopLevelDomain();
610
  $host_by_name = @gethostbyaddr($host_by_addr);
611
 
612
  return array(
613
+ 'status' => self::hasSucuriClientIPHeader(),
614
  'http_host' => self::getTopLevelDomain(),
615
  'host_name' => $host_by_name,
616
  'host_addr' => $host_by_addr,
src/cron.lib.php ADDED
@@ -0,0 +1,56 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * Code related to the cron.lib.php interface.
5
+ *
6
+ * PHP version 5
7
+ *
8
+ * @category Library
9
+ * @package Sucuri
10
+ * @subpackage SucuriScanner
11
+ * @author Northon Torga <northon.torga@sucuri.net>
12
+ * @copyright 2010-2019 Sucuri Inc.
13
+ * @license https://www.gnu.org/licenses/gpl-2.0.txt GPL2
14
+ * @link https://wordpress.org/plugins/sucuri-scanner
15
+ */
16
+
17
+ if (!defined('SUCURISCAN_INIT') || SUCURISCAN_INIT !== true) {
18
+ if (!headers_sent()) {
19
+ /* Report invalid access if possible. */
20
+ header('HTTP/1.1 403 Forbidden');
21
+ }
22
+ exit(1);
23
+ }
24
+
25
+ /**
26
+ * Class to process Sucuri custom cronjobs.
27
+ *
28
+ * Here are implemented the cronjob methods used by the plugin.
29
+ *
30
+ * Remember: methods must be static and their name must match the cron hook.
31
+ *
32
+ * @category Library
33
+ * @package Sucuri
34
+ * @subpackage SucuriScanner
35
+ * @author Northon Torga <northon.torga@sucuri.net>
36
+ * @copyright 2010-2019 Sucuri Inc.
37
+ * @license https://www.gnu.org/licenses/gpl-2.0.txt GPL2
38
+ * @link https://wordpress.org/plugins/sucuri-scanner
39
+ */
40
+ class SucuriScanCrons extends SucuriScan
41
+ {
42
+ /**
43
+ * Update secret keys.
44
+ */
45
+ public static function sucuriscan_autoseckeyupdater()
46
+ {
47
+ $wpconfig_process = SucuriScanEvent::setNewConfigKeys();
48
+ if (!$wpconfig_process) {
49
+ SucuriScanEvent::reportNoticeEvent(__('Automatic update of security keys failed. WordPress configuration file was not found.', 'sucuri-scanner'));
50
+ } elseif ($wpconfig_process['updated']) {
51
+ SucuriScanEvent::reportNoticeEvent(__('Automatic update of security keys succeeded.', 'sucuri-scanner'));
52
+ } else {
53
+ SucuriScanEvent::reportNoticeEvent(__('Automatic update of security keys failed. Something went wrong!', 'sucuri-scanner'));
54
+ }
55
+ }
56
+ }
src/event.lib.php CHANGED
@@ -97,6 +97,109 @@ class SucuriScanEvent extends SucuriScan
97
  return $schedules;
98
  }
99
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
100
  /**
101
  * Reports the WordPress version number to the API.
102
  *
@@ -355,7 +458,9 @@ class SucuriScanEvent extends SucuriScan
355
  */
356
  private static function reportEvent($severity = 0, $message = '')
357
  {
358
- if (!function_exists('wp_get_current_user')) return;
 
 
359
 
360
  $user = wp_get_current_user();
361
  $remote_ip = self::getRemoteAddr();
@@ -725,12 +830,12 @@ class SucuriScanEvent extends SucuriScan
725
 
726
  /**
727
  * Clear last logins or failed login logs.
728
- *
729
  * This can also be done via Sucuri Security -> Settings -> Data Storage,
730
  * however to improve the user experience, a button on Last Logins and on
731
  * Failed logins sections was added and it triggers the removal of
732
  * sucuri/sucuri-lastlogins.php and sucuri/sucuri-failedlogins.php.
733
- *
734
  * @param string $filename Name of the file to be deleted.
735
  *
736
  * @return HTML Message with the delete action outcome.
97
  return $schedules;
98
  }
99
 
100
+ /**
101
+ * Returns a list of active cronjobs.
102
+ *
103
+ * This method will return not only the default WordPress cronjobs but also
104
+ * the custom ones defined by 3rd-party plugins or themes.
105
+ *
106
+ * @see https://developer.wordpress.org/reference/functions/_get_cron_array/
107
+ *
108
+ * @return array List of available cronjobs.
109
+ */
110
+ public static function activeSchedules()
111
+ {
112
+ $activeCrons = array();
113
+ foreach ((array) _get_cron_array() as $timestamp => $cronhooks) {
114
+ foreach ((array) $cronhooks as $hook => $events) {
115
+ foreach ((array) $events as $key => $event) {
116
+ if (empty($event['args'])) {
117
+ $event['args'] = array('[]');
118
+ }
119
+ $activeCrons[$hook] = array(
120
+ 'schedule' => $event['schedule'],
121
+ 'nextTime' => SucuriScan::datetime($timestamp),
122
+ 'nextTimeHuman' => SucuriScan::humanTime($timestamp),
123
+ 'arguments' => SucuriScan::implode(', ', $event['args']),
124
+ );
125
+ }
126
+ }
127
+ }
128
+ return $activeCrons;
129
+ }
130
+
131
+ /**
132
+ * Creates the cronjob weekly, monthly and quarterly frequencies.
133
+ *
134
+ * A few Sucuri services require additional cronjob frequencies that are not
135
+ * available on WordPress by default. This function will add these schedules
136
+ * frequency if they were not yet register by any a 3rd party extension.
137
+ *
138
+ * @return void
139
+ */
140
+ public static function additionalSchedulesFrequencies($schedules)
141
+ {
142
+ if (!isset($schedules['weekly'])) {
143
+ $schedules['weekly'] = array(
144
+ 'display' => __('Weekly', 'sucuriscan'),
145
+ 'interval' => WEEK_IN_SECONDS,
146
+ );
147
+ }
148
+ if (!isset($schedules['monthly'])) {
149
+ $schedules['monthly'] = array(
150
+ 'display' => __('Monthly', 'sucuriscan'),
151
+ 'interval' => MONTH_IN_SECONDS,
152
+ );
153
+ }
154
+ if (!isset($schedules['quarterly'])) {
155
+ $schedules['quarterly'] = array(
156
+ 'display' => __('Quarterly', 'sucuriscan'),
157
+ 'interval' => 3 * MONTH_IN_SECONDS,
158
+ );
159
+ }
160
+ return $schedules;
161
+ }
162
+
163
+ /**
164
+ * Creates a cronjob.
165
+ *
166
+ * @return bool True if the cronjob is correctly created.
167
+ */
168
+ public static function addScheduledTask($hookName, $frequency)
169
+ {
170
+ // Return false if schedule frequency does not exist.
171
+ if (!in_array($frequency, array_keys(self::availableSchedules()))) {
172
+ return false;
173
+ }
174
+
175
+ // Remove cron first if already exists.
176
+ if (wp_next_scheduled($hookName)) {
177
+ self::deleteScheduledTask($hookName);
178
+ }
179
+
180
+ // Add cron job hook.
181
+ wp_schedule_event(time() + 10, $frequency, $hookName);
182
+ return true;
183
+ }
184
+
185
+ /**
186
+ * Deletes a cronjob.
187
+ *
188
+ * @return bool True if the cronjob is correctly removed.
189
+ */
190
+ public static function deleteScheduledTask($hookName)
191
+ {
192
+ // Return false if task does not exist.
193
+ if (!wp_next_scheduled($hookName)) {
194
+ return false;
195
+ }
196
+
197
+ // Remove cron job hook.
198
+ wp_clear_scheduled_hook($hookName);
199
+
200
+ return true;
201
+ }
202
+
203
  /**
204
  * Reports the WordPress version number to the API.
205
  *
458
  */
459
  private static function reportEvent($severity = 0, $message = '')
460
  {
461
+ if (!function_exists('wp_get_current_user')) {
462
+ return;
463
+ }
464
 
465
  $user = wp_get_current_user();
466
  $remote_ip = self::getRemoteAddr();
830
 
831
  /**
832
  * Clear last logins or failed login logs.
833
+ *
834
  * This can also be done via Sucuri Security -> Settings -> Data Storage,
835
  * however to improve the user experience, a button on Last Logins and on
836
  * Failed logins sections was added and it triggers the removal of
837
  * sucuri/sucuri-lastlogins.php and sucuri/sucuri-failedlogins.php.
838
+ *
839
  * @param string $filename Name of the file to be deleted.
840
  *
841
  * @return HTML Message with the delete action outcome.
src/globals.php CHANGED
@@ -69,6 +69,28 @@ if (defined('SUCURISCAN')) {
69
  add_action('admin_init', 'SucuriScanInterface::createStorageFolder');
70
  }
71
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
72
  /**
73
  * List an associative array with the sub-pages of this plugin.
74
  *
69
  add_action('admin_init', 'SucuriScanInterface::createStorageFolder');
70
  }
71
 
72
+ /**
73
+ * Add cronjob weekly, monthly and quarterly frequencies.
74
+ */
75
+ add_filter('cron_schedules', 'SucuriScanEvent::additionalSchedulesFrequencies');
76
+
77
+ /**
78
+ * Add cronjob hooks methods.
79
+ *
80
+ * This is necessary because using add_action inside the feature class/method
81
+ * will not be persistent. The hooks must be declared on every page load.
82
+ */
83
+ foreach (SucuriScanEvent::activeSchedules() as $hook => $details) {
84
+ if (substr($hook, 0, strlen('sucuriscan_')) === 'sucuriscan_') {
85
+ if (!has_action($hook)) {
86
+ $methodLocation = array('SucuriScanCrons', $hook);
87
+ if (method_exists($methodLocation[0], $methodLocation[1])) {
88
+ add_action($hook, $methodLocation);
89
+ }
90
+ }
91
+ }
92
+ }
93
+
94
  /**
95
  * List an associative array with the sub-pages of this plugin.
96
  *
src/pagehandler.php CHANGED
@@ -155,6 +155,7 @@ function sucuriscan_settings_page()
155
  $params['Settings.Hardening.Readme'] = SucuriScanHardeningPage::readme();
156
  $params['Settings.Hardening.AdminUser'] = SucuriScanHardeningPage::adminuser();
157
  $params['Settings.Hardening.FileEditor'] = SucuriScanHardeningPage::fileeditor();
 
158
  $params['Settings.Hardening.WhitelistPHPFiles'] = SucuriScanHardeningPage::whitelistPHPFiles();
159
 
160
  /* settings - posthack */
155
  $params['Settings.Hardening.Readme'] = SucuriScanHardeningPage::readme();
156
  $params['Settings.Hardening.AdminUser'] = SucuriScanHardeningPage::adminuser();
157
  $params['Settings.Hardening.FileEditor'] = SucuriScanHardeningPage::fileeditor();
158
+ $params['Settings.Hardening.SecKeyUpdater'] = SucuriScanHardeningPage::autoSecretKeyUpdater();
159
  $params['Settings.Hardening.WhitelistPHPFiles'] = SucuriScanHardeningPage::whitelistPHPFiles();
160
 
161
  /* settings - posthack */
src/settings-hardening.php CHANGED
@@ -102,7 +102,7 @@ class SucuriScanHardeningPage extends SucuriScan
102
  }
103
 
104
  $params['Hardening.FieldName'] = __FUNCTION__;
105
- $params['Hardening.Title'] = __('Website Firewall Protection', 'sucuri-scanner');
106
  $params['Hardening.Description'] = __('A WAF is a protection layer for your web site, blocking all sort of attacks (brute force attempts, DDoS, SQL injections, etc) and helping it remain malware and blacklist free. This test checks if your site is using Sucuri Firewall to protect your site.', 'sucuri-scanner');
107
 
108
  if (!SucuriScan::isBehindFirewall()) {
@@ -407,7 +407,7 @@ class SucuriScanHardeningPage extends SucuriScan
407
  }
408
  }
409
 
410
- $params['Hardening.Title'] = __('Information Leakage', 'sucuri-scanner');
411
  $params['Hardening.Description'] = __('Checks if the WordPress README file still exists in the website. The information in this file can be used by malicious users to pin-point which disclosed vulnerabilities are associated to the website. Be aware that WordPress recreates this file automatically with every update.', 'sucuri-scanner');
412
 
413
  if (file_exists(ABSPATH . '/readme.html')) {
@@ -443,7 +443,7 @@ class SucuriScanHardeningPage extends SucuriScan
443
  $results = $user_query->get_results();
444
 
445
  $params['URL.Settings'] = admin_url('users.php?role=administrator');
446
- $params['Hardening.Title'] = __('Default Admin Account', 'sucuri-scanner');
447
  $params['Hardening.Description'] = __('Check if the primary user account still uses the name "admin". This allows malicious users to easily identify which account has the highest privileges to target an attack.', 'sucuri-scanner');
448
 
449
  if (count($results) === 0) {
@@ -536,7 +536,7 @@ class SucuriScanHardeningPage extends SucuriScan
536
  }
537
  }
538
 
539
- $params['Hardening.Title'] = __('Plugin and Theme Editor', 'sucuri-scanner');
540
  $params['Hardening.Description'] = __('Disables the theme and plugin editors to prevent unwanted modifications to the code. If you are having problems reverting this please open the wp-config.php file and delete the line with the constant DISALLOW_FILE_EDIT.', 'sucuri-scanner');
541
 
542
  if ($fileEditorWasDisabled) {
@@ -552,6 +552,58 @@ class SucuriScanHardeningPage extends SucuriScan
552
  return self::drawSection($params);
553
  }
554
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
555
  /**
556
  * Whitelist individual PHP files.
557
  *
102
  }
103
 
104
  $params['Hardening.FieldName'] = __FUNCTION__;
105
+ $params['Hardening.Title'] = __('Enable Website Firewall Protection', 'sucuri-scanner');
106
  $params['Hardening.Description'] = __('A WAF is a protection layer for your web site, blocking all sort of attacks (brute force attempts, DDoS, SQL injections, etc) and helping it remain malware and blacklist free. This test checks if your site is using Sucuri Firewall to protect your site.', 'sucuri-scanner');
107
 
108
  if (!SucuriScan::isBehindFirewall()) {
407
  }
408
  }
409
 
410
+ $params['Hardening.Title'] = __('Avoid Information Leakage', 'sucuri-scanner');
411
  $params['Hardening.Description'] = __('Checks if the WordPress README file still exists in the website. The information in this file can be used by malicious users to pin-point which disclosed vulnerabilities are associated to the website. Be aware that WordPress recreates this file automatically with every update.', 'sucuri-scanner');
412
 
413
  if (file_exists(ABSPATH . '/readme.html')) {
443
  $results = $user_query->get_results();
444
 
445
  $params['URL.Settings'] = admin_url('users.php?role=administrator');
446
+ $params['Hardening.Title'] = __('Verify Default Admin Account', 'sucuri-scanner');
447
  $params['Hardening.Description'] = __('Check if the primary user account still uses the name "admin". This allows malicious users to easily identify which account has the highest privileges to target an attack.', 'sucuri-scanner');
448
 
449
  if (count($results) === 0) {
536
  }
537
  }
538
 
539
+ $params['Hardening.Title'] = __('Disable Plugin and Theme Editor', 'sucuri-scanner');
540
  $params['Hardening.Description'] = __('Disables the theme and plugin editors to prevent unwanted modifications to the code. If you are having problems reverting this please open the wp-config.php file and delete the line with the constant DISALLOW_FILE_EDIT.', 'sucuri-scanner');
541
 
542
  if ($fileEditorWasDisabled) {
552
  return self::drawSection($params);
553
  }
554
 
555
+ /**
556
+ * Checks if the Automatic Secret Keys Updater is enabled.
557
+ *
558
+ * Changing the Secret Keys will invalidate all existing cookies, forcing all
559
+ * logged in users to login again. Doing this frequently will decrease the
560
+ * chances of misuse of sessions left open on unprotected devices.
561
+ *
562
+ * @return string HTML code with the replaced template variables
563
+ */
564
+ public static function autoSecretKeyUpdater()
565
+ {
566
+ $cronName = 'sucuriscan_autoseckeyupdater';
567
+ $cronFrequency = 'weekly';
568
+
569
+ // Activate auto secret key update.
570
+ if (self::processRequest(__FUNCTION__)) {
571
+ if (SucuriScanEvent::addScheduledTask($cronName, $cronFrequency)) {
572
+ SucuriScanInterface::info(__('Automatic Secret Keys Updater enabled. The default frequency is "Weekly", but you can change the frequency on Settings -> Post-Hack -> Update Secret Keys section.', 'sucuri-scanner'));
573
+ SucuriScanEvent::reportNoticeEvent(__('Automatic Secret Keys Updater enabled.', 'sucuri-scanner'));
574
+ } else {
575
+ SucuriScanInterface::error(__('Something went wrong.', 'sucuri-scanner'));
576
+ }
577
+ }
578
+
579
+ // Deactivate auto secret key update.
580
+ if (self::processRequest(__FUNCTION__ . '_revert')) {
581
+ if (SucuriScanEvent::deleteScheduledTask($cronName)) {
582
+ SucuriScanInterface::info(__('Automatic Secret Keys Updater disabled.', 'sucuri-scanner'));
583
+ SucuriScanEvent::reportNoticeEvent(__('Automatic Secret Keys Updater disabled.', 'sucuri-scanner'));
584
+ } else {
585
+ SucuriScanInterface::error(__('Something went wrong.', 'sucuri-scanner'));
586
+ }
587
+ }
588
+
589
+ // Set status of auto secret key update.
590
+ $params = array();
591
+ $params['Hardening.Title'] = __('Activate Automatic Secret Keys Updater', 'sucuri-scanner');
592
+ $params['Hardening.Description'] = __('Changing the Secret Keys will invalidate all existing cookies, forcing all logged in users to login again. Doing this frequently will decrease the chances of misuse of sessions left open on unprotected devices.', 'sucuri-scanner');
593
+
594
+ $params['Hardening.Status'] = 0;
595
+ $params['Hardening.FieldName'] = __FUNCTION__;
596
+ $params['Hardening.FieldText'] = __('Apply Hardening', 'sucuri-scanner');
597
+
598
+ if (wp_next_scheduled($cronName)) {
599
+ $params['Hardening.Status'] = 1;
600
+ $params['Hardening.FieldName'] = __FUNCTION__.'_revert';
601
+ $params['Hardening.FieldText'] = __('Revert Hardening', 'sucuri-scanner');
602
+ }
603
+
604
+ return self::drawSection($params);
605
+ }
606
+
607
  /**
608
  * Whitelist individual PHP files.
609
  *
src/settings-posthack.php CHANGED
@@ -114,6 +114,61 @@ class SucuriScanSettingsPosthack extends SucuriScanSettings
114
  }
115
  }
116
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
117
  return SucuriScanTemplate::getSection('settings-posthack-security-keys', $params);
118
  }
119
 
@@ -252,8 +307,8 @@ class SucuriScanSettingsPosthack extends SucuriScanSettings
252
  $allPlugins = SucuriScanAPI::getPlugins();
253
 
254
  foreach ($allPlugins as $plugin_path => $plugin_data) {
255
- $plugin_type_class = ( $plugin_data['PluginType'] == 'free' ) ? 'primary' : 'warning';
256
- $input_disabled = ( $plugin_data['PluginType'] == 'free' ) ? '' : 'disabled="disabled"';
257
  $plugin_status_class = $plugin_data['IsPluginActive'] ? 'success' : 'default';
258
  $plugin_status = $plugin_data['IsPluginActive'] ? 'active' : 'not active';
259
 
114
  }
115
  }
116
 
117
+ // Automatic Secret Keys Updater
118
+ $cronName = 'sucuriscan_autoseckeyupdater';
119
+ $params['SecurityKeys.AutoStatusNum'] = 0;
120
+ $params['SecurityKeys.AutoStatus'] = "Disabled";
121
+ $params['SecurityKeys.Schedules'] = '';
122
+ $availableSchedules = array('disabled', 'daily', 'weekly', 'monthly', 'quarterly');
123
+
124
+ // Populate frequency selection box
125
+ foreach ($availableSchedules as $freq) {
126
+ $params['SecurityKeys.Schedules'] .= sprintf('<option value="%s">%s</option>', $freq, ucfirst($freq));
127
+ }
128
+ // Set to enabled if cron is found
129
+ if (wp_next_scheduled($cronName)) {
130
+ $params['SecurityKeys.AutoStatusNum'] = 1;
131
+ $params['SecurityKeys.AutoStatus'] = "Enabled";
132
+ }
133
+
134
+ // Activate/Deactivate the Automatic Secret Keys Updater
135
+ if (SucuriScanInterface::checkNonce() && SucuriScanRequest::post(':autoseckeyupdater')) {
136
+ $cronFrequency = SucuriScanRequest::post(':autoseckeyupdater_frequency');
137
+
138
+ // Deny action if cron frequency is invalid
139
+ if (empty($cronFrequency) || !in_array($cronFrequency, array_keys($availableSchedules))) {
140
+ SucuriScanInterface::error(__('No frequency selected for the automatic secret key updater.', 'sucuri-scanner'));
141
+ } elseif ($cronFrequency === "disabled") {
142
+ // Disable Automatic Secret Keys Updater
143
+ if (SucuriScanEvent::deleteScheduledTask($cronName)) {
144
+ $params['SecurityKeys.Schedules'] = str_replace('option value="'.$cronFrequency.'"', 'option value="'.$cronFrequency.'" selected', $params['SecurityKeys.Schedules']);
145
+ $params['SecurityKeys.AutoStatusNum'] = 0;
146
+ $params['SecurityKeys.AutoStatus'] = "Disabled";
147
+ SucuriScanInterface::info(__('Automatic Secret Keys Updater disabled.', 'sucuri-scanner'));
148
+ SucuriScanEvent::reportNoticeEvent(__('Automatic Secret Keys Updater disabled.', 'sucuri-scanner'));
149
+ } else {
150
+ SucuriScanInterface::error(__('Something went wrong.', 'sucuri-scanner'));
151
+ }
152
+ } else {
153
+ // Enable Automatic Secret Keys Updater
154
+ if (SucuriScanEvent::addScheduledTask($cronName, $cronFrequency)) {
155
+ $params['SecurityKeys.Schedules'] = str_replace('option value="'.$cronFrequency.'"', 'option value="'.$cronFrequency.'" selected', $params['SecurityKeys.Schedules']);
156
+ $params['SecurityKeys.AutoStatusNum'] = 1;
157
+ $params['SecurityKeys.AutoStatus'] = "Enabled";
158
+ SucuriScanInterface::info(__('Automatic Secret Keys Updater enabled.', 'sucuri-scanner'));
159
+ SucuriScanEvent::reportNoticeEvent(__('Automatic Secret Keys Updater enabled.', 'sucuri-scanner'));
160
+ } else {
161
+ SucuriScanInterface::error(__('Something went wrong.', 'sucuri-scanner'));
162
+ }
163
+ }
164
+ } else {
165
+ // Re-order selection box with the current cron frequency
166
+ if (wp_next_scheduled($cronName)) {
167
+ $currentCronFrequency = SucuriScanEvent::activeSchedules()[$cronName]['schedule'];
168
+ $params['SecurityKeys.Schedules'] = str_replace('option value="'.$currentCronFrequency.'"', 'option value="'.$currentCronFrequency.'" selected', $params['SecurityKeys.Schedules']);
169
+ }
170
+ }
171
+
172
  return SucuriScanTemplate::getSection('settings-posthack-security-keys', $params);
173
  }
174
 
307
  $allPlugins = SucuriScanAPI::getPlugins();
308
 
309
  foreach ($allPlugins as $plugin_path => $plugin_data) {
310
+ $plugin_type_class = ($plugin_data['PluginType'] == 'free') ? 'primary' : 'warning';
311
+ $input_disabled = ($plugin_data['PluginType'] == 'free') ? '' : 'disabled="disabled"';
312
  $plugin_status_class = $plugin_data['IsPluginActive'] ? 'success' : 'default';
313
  $plugin_status = $plugin_data['IsPluginActive'] ? 'active' : 'not active';
314
 
src/sitecheck.lib.php CHANGED
@@ -129,7 +129,7 @@ class SucuriScanSiteCheck extends SucuriScanAPI
129
  $cache->delete('scan_results');
130
 
131
  /* send HTTP request to SiteCheck's API service. */
132
- $results = self::runMalwareScan();
133
 
134
  /* check for error in the request's response. */
135
  if (is_string($results) || isset($results['SYSTEM']['ERROR'])) {
129
  $cache->delete('scan_results');
130
 
131
  /* send HTTP request to SiteCheck's API service. */
132
+ $results = self::runMalwareScan(true);
133
 
134
  /* check for error in the request's response. */
135
  if (is_string($results) || isset($results['SYSTEM']['ERROR'])) {
src/strings.php CHANGED
@@ -75,7 +75,8 @@ __('Delete', 'sucuri-scanner');
75
  __('Submit', 'sucuri-scanner');
76
  __('Loading...', 'sucuri-scanner');
77
  __('IP Address Access', 'sucuri-scanner');
78
- __('This tool allows you to whitelist and blacklist one or more IP addresses from accessing your website. You can also configure the plugin to automatically blacklist any IP address involved in a password guessing brute-force attack. If a legitimate user fails to submit the correct credentials of their account they will have to log into the Firewall dashboard in order to delete their IP address from the blacklist, or try to login once again through a VPN.', 'sucuri-scanner');
 
79
  __('Blacklist IP:', 'sucuri-scanner');
80
  __('e.g. 192.168.1.54', 'sucuri-scanner');
81
  __('IP Address', 'sucuri-scanner');
@@ -159,7 +160,7 @@ __('Newest To Oldest', 'sucuri-scanner');
159
  __('no data available', 'sucuri-scanner');
160
  __('IP Address', 'sucuri-scanner');
161
  __('Date/Time', 'sucuri-scanner');
162
- __('Edit', 'sucuri-scanner');
163
 
164
  // lastlogins-all.html.tpl
165
  __('Successful Logins (all)', 'sucuri-scanner');
@@ -169,7 +170,7 @@ __('IP Address', 'sucuri-scanner');
169
  __('Hostname', 'sucuri-scanner');
170
  __('Date/Time', 'sucuri-scanner');
171
  __('no data available', 'sucuri-scanner');
172
- __('Delete', 'sucuri-scanner');
173
 
174
  // lastlogins-all.snippet.tpl
175
  __('Edit', 'sucuri-scanner');
@@ -183,7 +184,7 @@ __('Date/Time', 'sucuri-scanner');
183
  __('Web Browser', 'sucuri-scanner');
184
  __('no data available', 'sucuri-scanner');
185
  __('Block', 'sucuri-scanner');
186
- __('Delete', 'sucuri-scanner');
187
 
188
  // lastlogins-loggedin.html.tpl
189
  __('Logged-in Users}', 'sucuri-scanner');
@@ -195,7 +196,7 @@ __('Registered', 'sucuri-scanner');
195
  __('IP Address', 'sucuri-scanner');
196
 
197
  // lastlogins-loggedin.snippet.tpl
198
- __('Edit', 'sucuri-scanner');
199
  __('Website:', 'sucuri-scanner');
200
  __('IP Address:', 'sucuri-scanner');
201
  __('Reverse IP:', 'sucuri-scanner');
@@ -437,6 +438,10 @@ __('Name', 'sucuri-scanner');
437
  __('Value', 'sucuri-scanner');
438
  __('I understand that this operation cannot be reverted.', 'sucuri-scanner');
439
  __('Generate New Security Keys', 'sucuri-scanner');
 
 
 
 
440
 
441
  // settings-scanner-cronjobs.html.tpl
442
  __('Scheduled Tasks', 'sucuri-scanner');
@@ -526,4 +531,4 @@ __('Malware Scan Target:', 'sucuri-scanner');
526
  __('Submit', 'sucuri-scanner');
527
 
528
  // wordpress-recommendations.html.tpl
529
- __('WordPress Security Recommendations', 'sucuri-scanner');
75
  __('Submit', 'sucuri-scanner');
76
  __('Loading...', 'sucuri-scanner');
77
  __('IP Address Access', 'sucuri-scanner');
78
+ __('This tool allows you to blacklist one or more IP addresses from accessing your website.', 'sucuri-scanner');
79
+ __('To delete an IP from the blacklist you can use the form below or you can log into the Firewall dashboard.', 'sucuri-scanner');
80
  __('Blacklist IP:', 'sucuri-scanner');
81
  __('e.g. 192.168.1.54', 'sucuri-scanner');
82
  __('IP Address', 'sucuri-scanner');
160
  __('no data available', 'sucuri-scanner');
161
  __('IP Address', 'sucuri-scanner');
162
  __('Date/Time', 'sucuri-scanner');
163
+ __('Edit User Profile', 'sucuri-scanner');
164
 
165
  // lastlogins-all.html.tpl
166
  __('Successful Logins (all)', 'sucuri-scanner');
170
  __('Hostname', 'sucuri-scanner');
171
  __('Date/Time', 'sucuri-scanner');
172
  __('no data available', 'sucuri-scanner');
173
+ __('Delete All Successful Logins', 'sucuri-scanner');
174
 
175
  // lastlogins-all.snippet.tpl
176
  __('Edit', 'sucuri-scanner');
184
  __('Web Browser', 'sucuri-scanner');
185
  __('no data available', 'sucuri-scanner');
186
  __('Block', 'sucuri-scanner');
187
+ __('Delete All Failed Logins', 'sucuri-scanner');
188
 
189
  // lastlogins-loggedin.html.tpl
190
  __('Logged-in Users}', 'sucuri-scanner');
196
  __('IP Address', 'sucuri-scanner');
197
 
198
  // lastlogins-loggedin.snippet.tpl
199
+ __('Edit User Profile', 'sucuri-scanner');
200
  __('Website:', 'sucuri-scanner');
201
  __('IP Address:', 'sucuri-scanner');
202
  __('Reverse IP:', 'sucuri-scanner');
438
  __('Value', 'sucuri-scanner');
439
  __('I understand that this operation cannot be reverted.', 'sucuri-scanner');
440
  __('Generate New Security Keys', 'sucuri-scanner');
441
+ __('Automatic Secret Keys Updater', 'sucuri-scanner');
442
+ __('Changing the Secret Keys frequently will decrease the chances of misuse of sessions left open on unprotected devices.', 'sucuri-scanner');
443
+ __('Frequency:', 'sucuri-scanner');
444
+ __('Submit', 'sucuri-scanner');
445
 
446
  // settings-scanner-cronjobs.html.tpl
447
  __('Scheduled Tasks', 'sucuri-scanner');
531
  __('Submit', 'sucuri-scanner');
532
 
533
  // wordpress-recommendations.html.tpl
534
+ __('WordPress Security Recommendations', 'sucuri-scanner');
sucuri.php CHANGED
@@ -8,7 +8,7 @@
8
  * Author: Sucuri Inc.
9
  * Text Domain: sucuri-scanner
10
  * Domain Path: /lang
11
- * Version: 1.8.22
12
  *
13
  * PHP version 5
14
  *
@@ -85,7 +85,7 @@ define('SUCURISCAN', 'sucuriscan');
85
  /**
86
  * Current version of the plugin's code.
87
  */
88
- define('SUCURISCAN_VERSION', '1.8.22');
89
 
90
  /**
91
  * Defines the human readable name of the plugin.
@@ -196,8 +196,9 @@ if (!array_key_exists('SERVER_NAME', $_SERVER)) {
196
  }
197
 
198
  /* Load plugin translations */
199
- function sucuriscan_load_plugin_textdomain() {
200
- load_plugin_textdomain( 'sucuri-scanner', false, basename( dirname( __FILE__ ) ) . '/lang/' );
 
201
  }
202
  add_action('plugins_loaded', 'sucuriscan_load_plugin_textdomain');
203
 
@@ -207,6 +208,7 @@ require_once 'src/request.lib.php';
207
  require_once 'src/fileinfo.lib.php';
208
  require_once 'src/cache.lib.php';
209
  require_once 'src/option.lib.php';
 
210
  require_once 'src/event.lib.php';
211
  require_once 'src/hook.lib.php';
212
  require_once 'src/api.lib.php';
@@ -282,7 +284,7 @@ function sucuriscanUninstall()
282
  /* Delete all plugin related options from the database */
283
  $options = $GLOBALS['wpdb']->get_results(
284
  'SELECT option_id, option_name FROM ' . $GLOBALS['wpdb']->options
285
- . ' WHERE option_name LIKE "' . SUCURISCAN . '%"'
286
  );
287
 
288
  foreach ($options as $option) {
8
  * Author: Sucuri Inc.
9
  * Text Domain: sucuri-scanner
10
  * Domain Path: /lang
11
+ * Version: 1.8.23
12
  *
13
  * PHP version 5
14
  *
85
  /**
86
  * Current version of the plugin's code.
87
  */
88
+ define('SUCURISCAN_VERSION', '1.8.23');
89
 
90
  /**
91
  * Defines the human readable name of the plugin.
196
  }
197
 
198
  /* Load plugin translations */
199
+ function sucuriscan_load_plugin_textdomain()
200
+ {
201
+ load_plugin_textdomain('sucuri-scanner', false, basename(dirname(__FILE__)) . '/lang/');
202
  }
203
  add_action('plugins_loaded', 'sucuriscan_load_plugin_textdomain');
204
 
208
  require_once 'src/fileinfo.lib.php';
209
  require_once 'src/cache.lib.php';
210
  require_once 'src/option.lib.php';
211
+ require_once 'src/cron.lib.php';
212
  require_once 'src/event.lib.php';
213
  require_once 'src/hook.lib.php';
214
  require_once 'src/api.lib.php';
284
  /* Delete all plugin related options from the database */
285
  $options = $GLOBALS['wpdb']->get_results(
286
  'SELECT option_id, option_name FROM ' . $GLOBALS['wpdb']->options
287
+ . ' WHERE option_name LIKE "' . SUCURISCAN . '%"'
288
  );
289
 
290
  foreach ($options as $option) {