NinjaFirewall (WP Edition) - Version 4.4.1

Version Description

  • Added support for MySQL/MariaDB database connection over SSL.
  • NinjaFirewall will permanently monitor its scheduled tasks (cron) to make sure they are working. If they stopped, it would restart them and write the incident to its error log (which can be viewed from the "NinjaFirewall > Dashboard" page).
  • Uninstalled plugins and themes will be removed from the cache used for security updates notifications.
  • Error messages were rewritten for better understanding.
  • The "Block attempts to publish, edit or delete a published post by users who do not have the right capabilities" policy will only apply if the content or the title of the post has been changed, so that plugins that are used to modify metadata such as the date and time will not be blocked.
  • Users who do not have access to a WordPress installation any longer but keep receiving the firewall's email notifications, can remove their email address by clicking on the corresponding link found in every notification sent by NinjaFirewall.
  • WP+ Edition (Premium): Updated GeoIP databases.
  • Many additional small fixes and adjustments.
Download this release

Release Info

Developer nintechnet
Plugin Icon 128x128 NinjaFirewall (WP Edition)
Version 4.4.1
Comparing to
See all releases

Code changes from version 4.4 to 4.4.1

languages/ninjafirewall-fr_FR.mo CHANGED
Binary file
languages/ninjafirewall-fr_FR.po CHANGED
@@ -4,8 +4,8 @@ msgid ""
4
  msgstr ""
5
  "Project-Id-Version: Stable (latest release)\n"
6
  "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/ninjafirewall\n"
7
- "POT-Creation-Date: 2021-07-25 16:01+0700\n"
8
- "PO-Revision-Date: 2021-07-25 16:03+0700\n"
9
  "Last-Translator: NinTechNet <contact@nintechnet.com>\n"
10
  "Language-Team: NinTechNet <nintechnet.com>\n"
11
  "Language: fr_FR\n"
@@ -16,7 +16,7 @@ msgstr ""
16
  "X-Poedit-SourceCharset: UTF-8\n"
17
  "Plural-Forms: nplurals=2; plural=(n > 1);\n"
18
 
19
- #: lib/anti_malware.php:24 ninjafirewall.php:916
20
  msgid "Anti-Malware"
21
  msgstr "Anti-Malware"
22
 
@@ -113,7 +113,7 @@ msgstr "NinjaFirewall (WP Edition)"
113
  msgid "Your changes have been saved."
114
  msgstr "Les modifications ont été enregistrées."
115
 
116
- #: lib/dashboard.php:132 ninjafirewall.php:894
117
  msgid "Dashboard"
118
  msgstr "Tableau de Bord"
119
 
@@ -347,7 +347,7 @@ msgstr ""
347
  msgid "Centralized Logging"
348
  msgstr "Centralisation des Logs"
349
 
350
- #: lib/dashboard.php:331 lib/security_rules_update.php:434
351
  #, php-format
352
  msgid "Error: %s"
353
  msgstr "Erreur : %s"
@@ -356,6 +356,18 @@ msgstr "Erreur : %s"
356
  msgid "Source IP"
357
  msgstr "IP source"
358
 
 
 
 
 
 
 
 
 
 
 
 
 
359
  #: lib/dashboard.php:347
360
  #, php-format
361
  msgid "You have a private IP : %s"
@@ -451,6 +463,12 @@ msgstr ""
451
  msgid "Help &amp; configuration"
452
  msgstr "Aide &amp; configuration"
453
 
 
 
 
 
 
 
454
  #: lib/dashboard_about.php:29
455
  msgid "Our blog:"
456
  msgstr "Notre blog :"
@@ -500,6 +518,16 @@ msgstr "Niveau des menaces"
500
  msgid "Benchmarks"
501
  msgstr "Performances"
502
 
 
 
 
 
 
 
 
 
 
 
503
  #: lib/dashboard_statistics.php:110
504
  msgid "Average time per request"
505
  msgstr "Durée moyenne par requête"
@@ -517,15 +545,15 @@ msgstr "Requête la plus rapide"
517
  msgid "Slowest request"
518
  msgstr "Requête la plus lente"
519
 
520
- #: lib/dashboard_statistics.php:130 lib/i18n-extra.php:271
521
  msgid "Critical"
522
  msgstr "Critique"
523
 
524
- #: lib/dashboard_statistics.php:131 lib/i18n-extra.php:127
525
  msgid "High"
526
  msgstr "Élevé"
527
 
528
- #: lib/dashboard_statistics.php:132 lib/i18n-extra.php:126
529
  msgid "Medium"
530
  msgstr "Moyen"
531
 
@@ -533,7 +561,79 @@ msgstr "Moyen"
533
  msgid "Select monthly stats to view..."
534
  msgstr "Sélectionnez les statistiques à afficher..."
535
 
536
- #: lib/event_notifications.php:34 lib/help.php:377 ninjafirewall.php:924
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
537
  msgid "Event Notifications"
538
  msgstr "Notifications d'Événement"
539
 
@@ -655,22 +755,6 @@ msgstr "Rapport quotidien"
655
  msgid "Send me a daily activity report"
656
  msgstr "Envoyer un rapport d'activité quotidien"
657
 
658
- #: lib/event_notifications.php:154 lib/event_notifications.php:166
659
- #: lib/firewall_options.php:78 lib/firewall_options.php:113
660
- #: lib/firewall_policies.php:25 lib/login_protection.php:309
661
- #: lib/login_protection.php:324 lib/login_protection.php:345
662
- #: lib/login_protection.php:352 lib/network.php:70
663
- msgid "Yes"
664
- msgstr "Oui"
665
-
666
- #: lib/event_notifications.php:154 lib/event_notifications.php:166
667
- #: lib/firewall_options.php:78 lib/firewall_options.php:113
668
- #: lib/firewall_policies.php:26 lib/login_protection.php:309
669
- #: lib/login_protection.php:324 lib/login_protection.php:345
670
- #: lib/login_protection.php:352 lib/network.php:70
671
- msgid "No"
672
- msgstr "Non"
673
-
674
  #: lib/event_notifications.php:161
675
  msgid "Log"
676
  msgstr "Journal"
@@ -741,40 +825,40 @@ msgstr "Autre(s) :"
741
  msgid "Save Event Notifications"
742
  msgstr "Sauvegarder les options"
743
 
744
- #: lib/event_notifications.php:490
745
  msgid "[NinjaFirewall] Daily Activity Report"
746
  msgstr "[NinjaFirewall] Rapport d'activité quotidien"
747
 
748
- #: lib/event_notifications.php:500
749
  #, php-format
750
  msgid "Daily activity report for: %s"
751
  msgstr "Rapport d'activité quotidien pour : %s"
752
 
753
- #: lib/event_notifications.php:501
754
  msgid "Date Range Processed: Yesterday"
755
  msgstr "Plage de date traitée : Hier"
756
 
757
- #: lib/event_notifications.php:503
758
  msgid "Blocked threats:"
759
  msgstr "Menaces bloquées :"
760
 
761
- #: lib/event_notifications.php:505
762
  msgid "critical:"
763
  msgstr "Critique :"
764
 
765
- #: lib/event_notifications.php:506
766
  msgid "high:"
767
  msgstr "Élevé :"
768
 
769
- #: lib/event_notifications.php:507
770
  msgid "medium:"
771
  msgstr "Moyen :"
772
 
773
- #: lib/event_notifications.php:509
774
  msgid "Blocked brute-force attacks:"
775
  msgstr "Attaques par force brute bloquées :"
776
 
777
- #: lib/event_notifications.php:510 lib/event_updates.php:225 lib/utils.php:1112
778
  msgid ""
779
  "This notification can be turned off from NinjaFirewall \"Event Notifications"
780
  "\" page."
@@ -782,11 +866,15 @@ msgstr ""
782
  "Cette notification peut être désactivée depuis la page \"Notifications "
783
  "d’Événement\" de NinjaFirewall."
784
 
785
- #: lib/event_updates.php:160
 
 
 
 
786
  msgid "[NinjaFirewall] Warning: Security update available"
787
  msgstr "[NinjaFirewall] Mise à jour de sécurité en attente"
788
 
789
- #: lib/event_updates.php:162
790
  msgid ""
791
  "NinjaFirewall has detected that there are security updates available for "
792
  "your website:"
@@ -794,59 +882,64 @@ msgstr ""
794
  "NinjaFirewall a détecté que des mises à jour de sécurité sont disponibles "
795
  "pour votre site Web :"
796
 
797
- #: lib/event_updates.php:163 lib/utils.php:233 lib/utils.php:318
798
- #: lib/utils.php:440 lib/utils.php:1101 lib/utils.php:1290 lib/utils.php:1562
799
- msgid "Date:"
800
- msgstr "Date :"
801
-
802
- #: lib/event_updates.php:166 lib/event_updates.php:168
803
  #, php-format
804
  msgid "Blog: %s"
805
  msgstr "Blog : %s"
806
 
807
- #: lib/event_updates.php:174 lib/event_updates.php:190
808
- #: lib/event_updates.php:209
809
  #, php-format
810
  msgid "Your version: %s"
811
  msgstr "Votre version : %s"
812
 
813
- #: lib/event_updates.php:175 lib/event_updates.php:191
814
- #: lib/event_updates.php:210
815
  #, php-format
816
  msgid "New version: %s"
817
  msgstr "Nouvelle version : %s"
818
 
819
- #: lib/event_updates.php:177 lib/event_updates.php:194
820
- #: lib/event_updates.php:213
821
  msgid "Severity: This is an important security update"
822
  msgstr "Sévérité : Ceci est une mise à jour de sécurité importante"
823
 
824
- #: lib/event_updates.php:179 lib/event_updates.php:196
825
- #: lib/event_updates.php:215
826
  msgid "Severity: **This is a critical security update**"
827
  msgstr "Sévérité : **Ceci est une mise à jour de sécurité critique**"
828
 
829
- #: lib/event_updates.php:181 lib/event_updates.php:198
830
- #: lib/event_updates.php:217
831
  msgid "Type: Security fix"
832
  msgstr "Type : Correctif de sécurité"
833
 
834
- #: lib/event_updates.php:189
835
  #, php-format
836
  msgid "Plugin: %s"
837
  msgstr "Extension : %s"
838
 
839
- #: lib/event_updates.php:208
840
  #, php-format
841
  msgid "Theme: %s"
842
  msgstr "Theme : %s"
843
 
844
- #: lib/event_updates.php:223 lib/utils.php:1625
845
  msgid "Don't leave your blog at risk, make sure to update as soon as possible."
846
  msgstr ""
847
  "Ne laissez pas votre blog en danger, lancez cette mise à jour dès que "
848
  "possible."
849
 
 
 
 
 
 
 
 
 
 
 
850
  #: lib/events.php:27
851
  msgid "Name:"
852
  msgstr "Nom :"
@@ -888,32 +981,32 @@ msgstr "installé(e)"
888
  msgid "uploaded"
889
  msgstr "téléchargé(e)"
890
 
891
- #: lib/events.php:201
892
  #, php-format
893
  msgid "[NinjaFirewall] Alert: %s"
894
  msgstr "[NinjaFirewall] Alerte : %s"
895
 
896
- #: lib/events.php:203 lib/events.php:205 lib/utils.php:842
897
  msgid "-Blog:"
898
  msgstr "- Blog :"
899
 
900
- #: lib/events.php:208
901
  msgid "NinjaFirewall has detected the following activity on your account:"
902
  msgstr "NinjaFirewall a détecté l'activité suivante sur votre compte :"
903
 
904
- #: lib/events.php:210 lib/utils.php:847
905
  msgid "-User:"
906
  msgstr "- Nom :"
907
 
908
- #: lib/events.php:211 lib/utils.php:848
909
  msgid "-IP:"
910
  msgstr "- IP :"
911
 
912
- #: lib/events.php:212 lib/utils.php:849
913
  msgid "-Date:"
914
  msgstr "-Date :"
915
 
916
- #: lib/firewall_options.php:29 ninjafirewall.php:898
917
  msgid "Firewall Options"
918
  msgstr "Options du Pare-feu"
919
 
@@ -1062,33 +1155,33 @@ msgstr ""
1062
  msgid "There are no backup available yet, check back later."
1063
  msgstr "Il n'y a pas encore de sauvegarde disponible, revenez plus tard."
1064
 
1065
- #: lib/firewall_options.php:376
1066
  #, php-format
1067
  msgid "Uploaded file is either corrupted or its format is not supported (#%s)"
1068
  msgstr ""
1069
  "Le fichier importé est illisible ou son format n'est pas supporté (#%s)"
1070
 
1071
- #: lib/firewall_options.php:412
1072
  msgid "The imported file is not compatible with that version of NinjaFirewall"
1073
  msgstr ""
1074
  "Le fichier importé n'est pas compatible avec cette version de NinjaFirewall"
1075
 
1076
- #: lib/firewall_options.php:557 ninjafirewall.php:234
1077
  msgid "[NinjaFirewall] Alert: Firewall is disabled"
1078
  msgstr "[NinjaFirewall] Alerte : Le pare-feu a été désactivé"
1079
 
1080
- #: lib/firewall_options.php:559 lib/firewall_options.php:561
1081
- #: ninjafirewall.php:236 ninjafirewall.php:238
1082
  msgid "-Blog :"
1083
  msgstr "- Blog :"
1084
 
1085
- #: lib/firewall_options.php:565 ninjafirewall.php:240
1086
  msgid "Someone disabled NinjaFirewall from your WordPress admin dashboard:"
1087
  msgstr ""
1088
  "Quelqu'un a désactivé NinjaFirewall depuis votre Tableau de bord de "
1089
  "WordPress :"
1090
 
1091
- #: lib/firewall_options.php:568
1092
  msgid ""
1093
  "NinjaFirewall is disabled because someone enabled debugging mode from your "
1094
  "WordPress admin dashboard:"
@@ -1096,26 +1189,26 @@ msgstr ""
1096
  "NinjaFirewall est désactivé car quelqu'un activé son \"Mode débogage\" "
1097
  "depuis votre tableau de bord de WordPress :"
1098
 
1099
- #: lib/firewall_options.php:571
1100
  msgid "[NinjaFirewall] Alert: Firewall override settings"
1101
  msgstr "[NinjaFirewall] Alerte : Modification des paramètres du pare-feu"
1102
 
1103
- #: lib/firewall_options.php:572
1104
  msgid ""
1105
  "Someone imported a new configuration which overrode the firewall settings:"
1106
  msgstr ""
1107
  "Quelqu'un a importé une nouvelle configuration qui a modifié tous les "
1108
  "paramètres du pare-feu :"
1109
 
1110
- #: lib/firewall_options.php:578 ninjafirewall.php:241
1111
  msgid "-User :"
1112
  msgstr "- Nom :"
1113
 
1114
- #: lib/firewall_options.php:579 ninjafirewall.php:242
1115
  msgid "-IP :"
1116
  msgstr "- IP :"
1117
 
1118
- #: lib/firewall_options.php:580 ninjafirewall.php:243
1119
  msgid "-Date :"
1120
  msgstr "- Date :"
1121
 
@@ -1128,7 +1221,7 @@ msgstr ""
1128
  "Pour utiliser cette option, allez dans le <a href=\"%s\">Tableau de Bord</a> "
1129
  "et activez le mode Full WAF de NinjaFirewall."
1130
 
1131
- #: lib/firewall_policies.php:62 ninjafirewall.php:902
1132
  msgid "Firewall Policies"
1133
  msgstr "Politiques du Pare-feu"
1134
 
@@ -1176,6 +1269,25 @@ msgstr "Téléchargements"
1176
  msgid "File Uploads"
1177
  msgstr "Autoriser les téléchargements (uploads)"
1178
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1179
  #: lib/firewall_policies.php:147
1180
  msgid "Allow uploads"
1181
  msgstr "Autoriser"
@@ -1378,6 +1490,15 @@ msgstr "Désactiver le gestionnaire d'erreurs fatales"
1378
  msgid "Users Whitelist"
1379
  msgstr "Liste Blanche"
1380
 
 
 
 
 
 
 
 
 
 
1381
  #: lib/firewall_policies.php:518
1382
  msgid "Add the Administrator to the whitelist (default)."
1383
  msgstr "Ajouter l'Administrateur à la liste blanche (défaut)."
@@ -1473,6 +1594,14 @@ msgstr "Nettoyer <code>HTTP_USER_AGENT</code>"
1473
  msgid "Block suspicious bots/scanners"
1474
  msgstr "Bloquer les requêtes provenant de bots/scanners malveillants"
1475
 
 
 
 
 
 
 
 
 
1476
  #: lib/firewall_policies.php:713 lib/help.php:240
1477
  msgid "HTTP_REFERER server variable"
1478
  msgstr "Variable HTTP_REFERER"
@@ -2856,7 +2985,7 @@ msgstr ""
2856
  "intercepter les requêtes HTTP envoyées à tout script PHP, même si ce dernier "
2857
  "ne fait pas partie de WordPress (logiciel tiers, backdoor, etc)."
2858
 
2859
- #: lib/help.php:360 lib/network.php:32 ninjafirewall.php:920
2860
  msgid "Network"
2861
  msgstr "Réseau"
2862
 
@@ -2909,7 +3038,7 @@ msgstr ""
2909
  "après avoir pénétré dans votre Tableau de bord de WordPress, d'y installer "
2910
  "une porte dérobée (backdoor) afin de prendre le contrôle de votre blog."
2911
 
2912
- #: lib/help.php:389 lib/login_protection.php:21 ninjafirewall.php:928
2913
  msgid "Login Protection"
2914
  msgstr "Page de Connexion"
2915
 
@@ -4052,7 +4181,7 @@ msgstr "Niveau de protection"
4052
  msgid "Low (default)"
4053
  msgstr "Bas (défaut)"
4054
 
4055
- #: lib/i18n-extra.php:128
4056
  msgid ""
4057
  "If you are using a caching plugin, consult the contextual help before "
4058
  "enabling the antispam."
@@ -4060,31 +4189,31 @@ msgstr ""
4060
  "Si vous utilisez une extension de mise en cache, veuillez consulter l'aide "
4061
  "contextuelle avant d'activer l'anti-spam."
4062
 
4063
- #: lib/i18n-extra.php:129
4064
  msgid "Apply protection to"
4065
  msgstr "Appliquer la protection au"
4066
 
4067
- #: lib/i18n-extra.php:130
4068
  msgid "Comment forms (defaut)"
4069
  msgstr "Formulaire de commentaire (défaut)"
4070
 
4071
- #: lib/i18n-extra.php:131
4072
  msgid "User Registration form"
4073
  msgstr "Formulaire d'inscription"
4074
 
4075
- #: lib/i18n-extra.php:132
4076
  msgid "Save Antispam options"
4077
  msgstr "Sauvegarder les options"
4078
 
4079
- #: lib/i18n-extra.php:133
4080
  msgid "Please enable JavaScript"
4081
  msgstr "Veuillez activer JavaScript"
4082
 
4083
- #: lib/i18n-extra.php:134
4084
  msgid "Sorry, this looks like spam to me."
4085
  msgstr "Désolé, mais cela ressemble à du spam."
4086
 
4087
- #: lib/i18n-extra.php:135
4088
  msgid ""
4089
  "Error: You must be whitelisted in order to use that feature: click on the <a "
4090
  "href=\"?page=nfsubaccess\">Access Control</a> menu and ensure that the \"Do "
@@ -4095,7 +4224,7 @@ msgstr ""
4095
  "et assurez vous que l'option \"Ne pas bloquer les utilisateurs suivants\" "
4096
  "est activée pour l'Administrateur/Super Admin."
4097
 
4098
- #: lib/i18n-extra.php:136
4099
  msgid ""
4100
  "Your license is valid until the indicated expiration date. If you don't "
4101
  "renew it after this date, NinjaFirewall will keep working and protecting "
@@ -4106,7 +4235,7 @@ msgstr ""
4106
  "et à protéger votre site comme d'habitude, mais les mises à jour / mises à "
4107
  "niveau ne pourront plus être effectuées."
4108
 
4109
- #: lib/i18n-extra.php:137
4110
  #, php-format
4111
  msgid ""
4112
  "You can renew your license from <a href=\"%s\">NinTechNet.com</a> website."
@@ -4114,11 +4243,11 @@ msgstr ""
4114
  "Vous pouvez renouveler votre licence depuis le site <a href=\"%s"
4115
  "\">NinTechNet.com</a>."
4116
 
4117
- #: lib/i18n-extra.php:138
4118
  msgid "Use shared memory"
4119
  msgstr "Utiliser la mémoire partagée"
4120
 
4121
- #: lib/i18n-extra.php:139
4122
  msgid ""
4123
  "This feature allows NinjaFirewall to use Unix shared memory segments in "
4124
  "order to speed up all operations. The firewall will no longer need to "
@@ -4137,7 +4266,7 @@ msgstr ""
4137
  "réseau multi-site, la vitesse de traitement de pare-feu va augmenter de 25% "
4138
  "à 30%."
4139
 
4140
- #: lib/i18n-extra.php:140
4141
  msgid ""
4142
  "This option requires that your PHP version was compiled with the <code>--"
4143
  "enable-shmop</code> parameter, otherwise, if it is not compatible with your "
@@ -4146,7 +4275,7 @@ msgstr ""
4146
  "Cette fonction nécessite que PHP soit compilé avec le paramètre <code>--"
4147
  "enable-shmop</code>."
4148
 
4149
- #: lib/i18n-extra.php:141
4150
  #, php-format
4151
  msgid ""
4152
  "If you are using <a href=\"%s\">GB2312</a> character set (A.K.A <code>GBK</"
@@ -4161,11 +4290,11 @@ msgstr ""
4161
  "être en mesure de nettoyer correctement les caractères multi-octets, car il "
4162
  "n'aura pas accès à la base de données."
4163
 
4164
- #: lib/i18n-extra.php:142
4165
  msgid "Language"
4166
  msgstr "Langue"
4167
 
4168
- #: lib/i18n-extra.php:143
4169
  msgid ""
4170
  "When this option is enabled, NinjaFirewall will download, if available, the "
4171
  "corresponding language files from the WordPress repo. Then, every hour, it "
@@ -4176,7 +4305,7 @@ msgstr ""
4176
  "les heures, il vérifiera s'il existe une nouvelle version et la téléchargera "
4177
  "le cas échéant."
4178
 
4179
- #: lib/i18n-extra.php:144
4180
  msgid ""
4181
  "Note that this does not apply to <code>en_US</code> and <code>fr_FR</code> "
4182
  "locales because they are already included with NinjaFirewall."
@@ -4184,7 +4313,7 @@ msgstr ""
4184
  "Notez que cela ne s'applique pas aux locales <code>en_US</code> et "
4185
  "<code>fr_FR</code> car elles sont déjà incluses avec NinjaFirewall."
4186
 
4187
- #: lib/i18n-extra.php:145
4188
  #, php-format
4189
  msgid ""
4190
  "This options lets you export you current configuration or import it from "
@@ -4198,7 +4327,7 @@ msgstr ""
4198
  "(%s), sinon il sera rejeté. Notez que l'importation effacera toute votre "
4199
  "configuration (options et règles du pare-feu), sauf votre licence WP+."
4200
 
4201
- #: lib/i18n-extra.php:146
4202
  msgid ""
4203
  "You can allow/disallow uploads, or allow uploads but block scripts (PHP, "
4204
  "CGI, Ruby, Python, bash/shell, JavaScript), C/C++ source code, binaries (MZ/"
@@ -4212,11 +4341,11 @@ msgstr ""
4212
  "systèmes (.htaccess, .htpasswd et PHP INI) et les fichiers SVG contenant du "
4213
  "Javascript ou des Événements XML."
4214
 
4215
- #: lib/i18n-extra.php:147
4216
  msgid "Maximum allowed file size"
4217
  msgstr "Taille maximale autorisée"
4218
 
4219
- #: lib/i18n-extra.php:148
4220
  msgid ""
4221
  "If you allow uploads, you can select the maximum size of an uploaded file. "
4222
  "Any file bigger than this value will be rejected. Note that if your PHP "
@@ -4228,13 +4357,13 @@ msgstr ""
4228
  "configuration de PHP utilise la directive<code>upload_max_filesize</code>, "
4229
  "celle-ci sera prioritaire."
4230
 
4231
- #: lib/i18n-extra.php:149
4232
  msgid "Decode Base64-encoded <code>POST</code> variable:"
4233
  msgstr ""
4234
  "Décoder les chaîne encodées en Base64 dans la variable <code>POST</"
4235
  "code>&nbsp;:"
4236
 
4237
- #: lib/i18n-extra.php:150
4238
  #, php-format
4239
  msgid ""
4240
  "Object Serialization is a PHP feature used by many applications to generate "
@@ -4253,7 +4382,7 @@ msgstr ""
4253
  "<code>POST</code>, les cookies, ou dans les variables <code>HTTP_REFERER</"
4254
  "code> et <code>HTTP_USER_AGENT</code>."
4255
 
4256
- #: lib/i18n-extra.php:151
4257
  msgid ""
4258
  "This option will reject any <code>GET</code> or <code>POST</code> request, "
4259
  "<code>COOKIE</code>, <code>HTTP_USER_AGENT</code>, <code>REQUEST_URI</code>, "
@@ -4267,7 +4396,7 @@ msgstr ""
4267
  "contenant le caractère ASCI 0x00 (NULL byte) sera bloquée immédiatement. Ce "
4268
  "caractère est dangereux et devrait toujours être rejeté."
4269
 
4270
- #: lib/i18n-extra.php:152
4271
  msgid ""
4272
  "This option will block any <code>GET</code> or <code>POST</code> request "
4273
  "containing the localhost IP (127.0.0.1). It can be useful to block SQL "
@@ -4278,7 +4407,7 @@ msgstr ""
4278
  "les programmes malveillants. Attention toutefois à ne pas bloquer certains "
4279
  "scripts d'installation ou de configuration si vous l'activez."
4280
 
4281
- #: lib/i18n-extra.php:153
4282
  msgid ""
4283
  "Access Control is a powerful set of directives that can be used to allow or "
4284
  "restrict access to your website based on many criteria."
@@ -4287,7 +4416,7 @@ msgstr ""
4287
  "utilisé pour autoriser ou restreindre l'accès à votre site selon de nombreux "
4288
  "critères."
4289
 
4290
- #: lib/i18n-extra.php:154
4291
  msgid ""
4292
  "To make better use of them, it is important to understand NinjaFirewall's "
4293
  "directives processing order."
@@ -4295,7 +4424,7 @@ msgstr ""
4295
  "Afin de pouvoir optimiser son utilisation, il est important de bien "
4296
  "comprendre l'ordre dans lequel NinjaFirewall traite ces directives."
4297
 
4298
- #: lib/i18n-extra.php:155
4299
  msgid ""
4300
  "Because NinjaFirewall is a PHP firewall, its Access Control options apply to "
4301
  "PHP scripts, not to static elements (e.g., images, JS, CSS etc). Depending "
@@ -4306,81 +4435,81 @@ msgstr ""
4306
  "(images, JS, CSS, etc). Selon votre configuration, elle peuvent également "
4307
  "s'appliquer aux pages HTML."
4308
 
4309
- #: lib/i18n-extra.php:156
4310
  msgid "Processing order:"
4311
  msgstr "Ordre de traitement des directives :"
4312
 
4313
- #: lib/i18n-extra.php:157
4314
  msgid "Incoming HTTP request"
4315
  msgstr "Requête HTTP entrante"
4316
 
4317
- #: lib/i18n-extra.php:158
4318
  #, php-format
4319
  msgid "%s file"
4320
  msgstr "Fichier %s"
4321
 
4322
- #: lib/i18n-extra.php:159
4323
  msgid "Login Protection."
4324
  msgstr "Page de Connexion."
4325
 
4326
- #: lib/i18n-extra.php:160
4327
  msgid "Access Control (except User Input Access Control):"
4328
  msgstr "Contrôle d'Accès (sauf Contrôle d'accès d'entrée utilisateur) :"
4329
 
4330
- #: lib/i18n-extra.php:161
4331
  msgid "Role-based Access Control."
4332
  msgstr "Contrôle d'Accès par Rôle."
4333
 
4334
- #: lib/i18n-extra.php:162
4335
  msgid "Allowed IPs."
4336
  msgstr "Adresses IP autorisées."
4337
 
4338
- #: lib/i18n-extra.php:163
4339
  msgid "Blocked IPs."
4340
  msgstr "Adresses IP bloquées."
4341
 
4342
- #: lib/i18n-extra.php:164
4343
  msgid "Allowed URLs."
4344
  msgstr "URL autorisées."
4345
 
4346
- #: lib/i18n-extra.php:165
4347
  msgid "Blocked URLs."
4348
  msgstr "URL bloquées."
4349
 
4350
- #: lib/i18n-extra.php:166
4351
  msgid "Bot Access Control."
4352
  msgstr "Contrôle d'accès par Bot."
4353
 
4354
- #: lib/i18n-extra.php:167
4355
  msgid "Geolocation."
4356
  msgstr "Géolocalisation."
4357
 
4358
- #: lib/i18n-extra.php:168
4359
  msgid "Rate Limiting."
4360
  msgstr "Limitation du trafic."
4361
 
4362
- #: lib/i18n-extra.php:169
4363
  msgid "File Guard."
4364
  msgstr "File Guard."
4365
 
4366
- #: lib/i18n-extra.php:170
4367
  msgid "NinjaFirewall built-in rules and policies + User Input Access Control."
4368
  msgstr ""
4369
  "Règles et politiques du pare-feu + Contrôle d'accès d'entrée utilisateur."
4370
 
4371
- #: lib/i18n-extra.php:171
4372
  msgid "Response body"
4373
  msgstr "Requête HTTP sortante"
4374
 
4375
- #: lib/i18n-extra.php:172
4376
  msgid "HTTP response headers (Firewall Policies)."
4377
  msgstr "En-têtes de réponse HTTP (Politiques du Pare-feu)."
4378
 
4379
- #: lib/i18n-extra.php:173
4380
  msgid "Web Filter."
4381
  msgstr "Web Filter."
4382
 
4383
- #: lib/i18n-extra.php:174
4384
  #, php-format
4385
  msgid ""
4386
  "By default, any logged in WordPress administrator will not be blocked by "
@@ -4399,13 +4528,13 @@ msgstr ""
4399
  "options de la <a href=\"%s\">Page de Connexion</a> qui, si elle sont "
4400
  "activées, seront toujours appliquées."
4401
 
4402
- #: lib/i18n-extra.php:175
4403
  msgid "You can also add other users to the whitelist, depending on their role."
4404
  msgstr ""
4405
  "Vous pouvez ajouter d'autres utilisateurs à votre liste blanche en se basant "
4406
  "sur leur Rôle."
4407
 
4408
- #: lib/i18n-extra.php:176
4409
  #, php-format
4410
  msgid ""
4411
  "this option should be used if you are behind a reverse proxy, a load "
@@ -4429,7 +4558,7 @@ msgstr ""
4429
  "sera vérifiée. Si elle ne comprend aucune IP utilisable, NinjaFirewall "
4430
  "utilisera <code>REMOTE_ADDR</code>."
4431
 
4432
- #: lib/i18n-extra.php:177
4433
  msgid ""
4434
  "This option lets you select the HTTP method(s). All Access Control "
4435
  "directives (Geolocation, IPs, bots and URLs) will only apply to the selected "
@@ -4439,20 +4568,20 @@ msgstr ""
4439
  "Contrôle d'Accès (Geolocalisation, IP, bots et URL) ne s'appliqueront qu'aux "
4440
  "méthodes sélectionnées."
4441
 
4442
- #: lib/i18n-extra.php:178
4443
  msgid ""
4444
  "It does not apply to the \"Firewall Policies\" options, which use their own "
4445
  "ones."
4446
  msgstr "Cette option ne concerne pas les \"Politiques du Pare-feu\"."
4447
 
4448
- #: lib/i18n-extra.php:179
4449
  msgid ""
4450
  "You can filter and block traffic coming from specific countries/territories."
4451
  msgstr ""
4452
  "Vous pouvez filtrer et bloquer le trafic en provenance de pays ou "
4453
  "territoires spécifiques."
4454
 
4455
- #: lib/i18n-extra.php:180
4456
  msgid ""
4457
  "This is the two-letter code that is used to define a country/territory (e."
4458
  "g., US, UK, FR, DE etc), based on the visitors IP. NinjaFirewall can either "
@@ -4465,7 +4594,7 @@ msgstr ""
4465
  "données, ou à partir d'une variable PHP prédéfinie ajoutée par votre serveur "
4466
  "HTTP (par exemple, <code>GEOIP_COUNTRY_CODE</code>)."
4467
 
4468
- #: lib/i18n-extra.php:181
4469
  #, php-format
4470
  msgid ""
4471
  "You can add/remove any country/territory from the two listboxes. For more "
@@ -4477,7 +4606,7 @@ msgstr ""
4477
  "spécifiques (A1, A2, AP, EU etc),vous pouvez consulter l'aide en ligne de <a "
4478
  "href=\"%s\">MaxMind GeoIP</a>."
4479
 
4480
- #: lib/i18n-extra.php:182
4481
  msgid ""
4482
  "Whether geolocation should apply to the whole site or to specific URLs only "
4483
  "(e.g., /wp-login.php, /xmlrpc.php etc). Leave all fields empty if you want "
@@ -4487,11 +4616,11 @@ msgstr ""
4487
  "uniquement (ex: /wp-login.php, /xmlrpc.php etc). Laissez ce champ vide pour "
4488
  "l'appliquer à tout le site."
4489
 
4490
- #: lib/i18n-extra.php:183
4491
  msgid "Add <code>NINJA_COUNTRY_CODE</code> to PHP headers?"
4492
  msgstr "Ajouter <code>NINJA_COUNTRY_CODE</code> aux en-têtes PHP?"
4493
 
4494
- #: lib/i18n-extra.php:184
4495
  msgid ""
4496
  "After retrieving the two-letter country/territory code, NinjaFirewall can "
4497
  "add it to the PHP headers in the <code>$_SERVER[\"NINJA_COUNTRY_CODE\"]</"
@@ -4503,7 +4632,7 @@ msgstr ""
4503
  "code>. Si vous avez une application PHP qui nécessite de géolocaliser vos "
4504
  "visiteurs, activez cette option."
4505
 
4506
- #: lib/i18n-extra.php:185
4507
  msgid ""
4508
  "If NinjaFirewall cannot find the two-letter ISO 3166 code, it will replace "
4509
  "it with 2 hyphens (<code>--</code>)."
@@ -4511,13 +4640,13 @@ msgstr ""
4511
  "Si NinjaFirewall ne peut pas identifier le code à deux lettres ISO 3166, il "
4512
  "le remplacera par deux traits d'union (<code>--</code>)."
4513
 
4514
- #: lib/i18n-extra.php:186
4515
  msgid ""
4516
  "PHP code example to use in your theme or plugin to geolocate your visitors:"
4517
  msgstr ""
4518
  "Exemple de code PHP à ajouter à vos scripts pour géolocaliser vos visiteurs :"
4519
 
4520
- #: lib/i18n-extra.php:187
4521
  msgid ""
4522
  "NinjaFirewall includes GeoLite data created by MaxMind, available from "
4523
  "http://www.maxmind.com"
@@ -4525,11 +4654,11 @@ msgstr ""
4525
  "NinjaFirewall includes GeoLite data created by MaxMind, available from "
4526
  "http://www.maxmind.com"
4527
 
4528
- #: lib/i18n-extra.php:188
4529
  msgid "IP / URL / Bot Access Control"
4530
  msgstr "Contrôle d'Accès par IP / URL / Bots"
4531
 
4532
- #: lib/i18n-extra.php:189
4533
  msgid ""
4534
  "You can permanently allow/block an IP, a whole range of IP addresses or AS "
4535
  "numbers (Autonomous System number). IPv4 and IPv6 are fully supported by "
@@ -4539,20 +4668,20 @@ msgstr ""
4539
  "numéro AS (Autonomous System). NinjaFirewall est compatible avec l'IPv4 et "
4540
  "l'IPv6."
4541
 
4542
- #: lib/i18n-extra.php:190
4543
  msgid "Full IP:"
4544
  msgstr "IP complète :"
4545
 
4546
- #: lib/i18n-extra.php:191
4547
  #, php-format
4548
  msgid "IP ranges using CIDR notation: %s or %s."
4549
  msgstr "Plages IP utilisant la notation CIDR : %s ou %s."
4550
 
4551
- #: lib/i18n-extra.php:192
4552
  msgid "Autonomous System number:"
4553
  msgstr "Numéro AS (Autonomous System) :"
4554
 
4555
- #: lib/i18n-extra.php:193
4556
  msgid ""
4557
  "This option allows you to slow down aggressive bots, crawlers, web scrapers "
4558
  "or even small HTTP attacks. Any IP reaching the defined threshold will be "
@@ -4571,7 +4700,7 @@ msgstr ""
4571
  "adresse IP, utilisez l'option \"Contrôle d'accès par IP\". Par défaut, la "
4572
  "limitation du trafic n'est pas activée."
4573
 
4574
- #: lib/i18n-extra.php:194
4575
  msgid ""
4576
  "IPs temporarily banned by the Rate Limiting option can be unblocked "
4577
  "immediately by clicking either the \"Save Access Control Directives\" or "
@@ -4581,7 +4710,7 @@ msgstr ""
4581
  "débloquées simplement en cliquant sur les boutons \"Sauvegarder les options"
4582
  "\" ou \"Rétablir les valeurs par défaut\" situés en bas de la page."
4583
 
4584
- #: lib/i18n-extra.php:195
4585
  msgid ""
4586
  "Because NinjaFirewall can handle a lot of HTTP requests per second and block "
4587
  "IPs even before your blog is loaded, we strongly recommend that you disable "
@@ -4595,7 +4724,7 @@ msgstr ""
4595
  "seconde, NinjaFirewall vous fera économiser de la bande passante et "
4596
  "permettra de réduire la charge du serveur."
4597
 
4598
- #: lib/i18n-extra.php:196
4599
  msgid ""
4600
  "You can permanently allow/block any access to one or more PHP scripts based "
4601
  "on their path, relative to the web root (<code>SCRIPT_NAME</code>). You can "
@@ -4606,7 +4735,7 @@ msgstr ""
4606
  "(<code>SCRIPT_NAME</code>). Vous pouvez entrer l'URL complète ou partielle, "
4607
  "sensible à la casse."
4608
 
4609
- #: lib/i18n-extra.php:197
4610
  msgid ""
4611
  "<code>/foo/bar.php</code> will block any access to the <code>bar.php</code> "
4612
  "script located inside a <code>/foo/</code> directory"
@@ -4614,11 +4743,11 @@ msgstr ""
4614
  "<code>/foo/bar.php</code> autorisera/bloquera tout accès au script PHP "
4615
  "<code>bar.php</code> situé dans un répertoire <code>/foo/</code>"
4616
 
4617
- #: lib/i18n-extra.php:198
4618
  msgid "etc"
4619
  msgstr "etc"
4620
 
4621
- #: lib/i18n-extra.php:199
4622
  msgid ""
4623
  "<code>/foo/</code> will block access to all PHP scripts located inside a "
4624
  "<code>/foo/</code> directory and its sub-directories."
@@ -4626,7 +4755,7 @@ msgstr ""
4626
  "<code>/foo/</code> autorisera/bloquera l'accès à tous les scripts PHP situés "
4627
  "dans un répertoire <code>/foo/</code> et ses sous-répertoires."
4628
 
4629
- #: lib/i18n-extra.php:200
4630
  msgid ""
4631
  "Note that the \"Firewall Policies\" page already includes restrictions to "
4632
  "some WordPress directories."
@@ -4634,7 +4763,7 @@ msgstr ""
4634
  "Notez que le menu des \"Politiques du pare-feu\" comporte déjà des "
4635
  "restrictions à certains répertoires de WordPress."
4636
 
4637
- #: lib/i18n-extra.php:201
4638
  msgid ""
4639
  "You can block bots, scanners and various crawlers based on the "
4640
  "<code>HTTP_USER_AGENT</code> variable. You can enter either a full or "
@@ -4644,7 +4773,7 @@ msgstr ""
4644
  "nom (<code>HTTP_USER_AGENT</code>) ou partie de celui-ci. La chaîne de "
4645
  "caractères est insensible à la casse."
4646
 
4647
- #: lib/i18n-extra.php:202
4648
  msgid ""
4649
  "You can select to ignore or block some specific user input. It applies to "
4650
  "the <code>GET</code>, <code>POST</code> and <code>COOKIE</code> global "
@@ -4656,7 +4785,7 @@ msgstr ""
4656
  "<code>COOKIE</code>, par exemple <code>$_GET[\"foo\"]</code> ou <code>"
4657
  "$_POST[\"bar\"]</code> :"
4658
 
4659
- #: lib/i18n-extra.php:203
4660
  msgid ""
4661
  "When an input is added to the \"Unfiltered input\" list, it will not be "
4662
  "filtered or sanitised. All other input present in the request will be "
@@ -4666,7 +4795,7 @@ msgstr ""
4666
  "sera ni filtrée ni nettoyée. Toutes les autres entrées présentes dans la "
4667
  "demande seront filtrées."
4668
 
4669
- #: lib/i18n-extra.php:204
4670
  msgid ""
4671
  "When an input is added to the \"Blocked input\", NinjaFirewall will block "
4672
  "the request and close the connection if that input is found in the request."
@@ -4675,11 +4804,11 @@ msgstr ""
4675
  "bloquera la requête et fermera la connexion si cette entrée est présente "
4676
  "dans la requête."
4677
 
4678
- #: lib/i18n-extra.php:205
4679
  msgid "Log Event"
4680
  msgstr "Journaliser"
4681
 
4682
- #: lib/i18n-extra.php:206
4683
  msgid ""
4684
  "You can enable/disable firewall logging for each access control directive "
4685
  "separately."
@@ -4687,11 +4816,11 @@ msgstr ""
4687
  "Vous pouvez activer/désactiver la journalisation des directives "
4688
  "indépendamment les unes des autres."
4689
 
4690
- #: lib/i18n-extra.php:207
4691
  msgid "Web Filter"
4692
  msgstr "Web Filter"
4693
 
4694
- #: lib/i18n-extra.php:208
4695
  msgid ""
4696
  "If NinjaFirewall can hook and scan incoming requests, it can also hook the "
4697
  "response body (i.e., the output of the HTML page right before it is sent to "
@@ -4708,7 +4837,7 @@ msgstr ""
4708
  "etc), des scripts utilisés par les hackers (shell, backdoor) et même des "
4709
  "erreurs (PHP, MySQL)."
4710
 
4711
- #: lib/i18n-extra.php:209
4712
  msgid ""
4713
  "In the case of a positive detection, NinjaFirewall will not block the "
4714
  "response body but will send you an alert by email."
@@ -4716,11 +4845,11 @@ msgstr ""
4716
  "En cas de détection positive, NinjaFirewall ne bloquera pas la requête mais "
4717
  "vous enverra immédiatement une alerte par e-mail."
4718
 
4719
- #: lib/i18n-extra.php:210
4720
  msgid "Search HTML page for the following keywords"
4721
  msgstr "Rechercher les mots suivants dans la page HTML"
4722
 
4723
- #: lib/i18n-extra.php:211
4724
  msgid ""
4725
  "You can enter any keyword from 4 to 150 characters and select whether the "
4726
  "search will be case sensitive or not."
@@ -4728,11 +4857,11 @@ msgstr ""
4728
  "Vous pouvez entrer de 4 à 150 caractères et sélectionner si la recherche est "
4729
  "sensible à la casse."
4730
 
4731
- #: lib/i18n-extra.php:212
4732
  msgid "Email Alerts"
4733
  msgstr "Alertes E-mail"
4734
 
4735
- #: lib/i18n-extra.php:213
4736
  msgid ""
4737
  "You can use the notification throttling option to limit the frequency of "
4738
  "alerts sent to you (and written to the firewall log) and select whether you "
@@ -4744,7 +4873,7 @@ msgstr ""
4744
  "d'Événement \". La page HTML ayant déclenché cette alerte peut être jointe à "
4745
  "l'e-mail."
4746
 
4747
- #: lib/i18n-extra.php:214
4748
  msgid ""
4749
  "Response body filtering can be resource-intensive. Try to limit the number "
4750
  "of keywords to what you really need (less than 10) and, if possible, prefer "
@@ -4754,7 +4883,7 @@ msgstr ""
4754
  "limiter le nombre de mots-clés (moins de 10) et, si possible, préférez la "
4755
  "recherche sensible à la casse."
4756
 
4757
- #: lib/i18n-extra.php:215
4758
  msgid ""
4759
  "NinjaFirewall can protect your blog against spam without user interaction (e."
4760
  "g., CAPTCHA, math puzzles etc). The protection is totally transparent to "
@@ -4769,11 +4898,11 @@ msgstr ""
4769
  "vous utilisez une extension tierce pour créer vos formulaires, ils ne seront "
4770
  "pas protégés contre le spam."
4771
 
4772
- #: lib/i18n-extra.php:216
4773
  msgid "Protection level:"
4774
  msgstr "Niveau de protection :"
4775
 
4776
- #: lib/i18n-extra.php:217
4777
  msgid ""
4778
  "Select the level of protection. In most cases, <strong>Low</strong> should "
4779
  "be enough."
@@ -4781,21 +4910,21 @@ msgstr ""
4781
  "Sélectionnez le niveau de protection. Dans la plupart des cas \"Bas\" est "
4782
  "suffisant."
4783
 
4784
- #: lib/i18n-extra.php:218
4785
  msgid "Apply protection to:"
4786
  msgstr "Appliquer la protection à :"
4787
 
4788
- #: lib/i18n-extra.php:219
4789
  msgid "Whether to protect comment and/or registration forms."
4790
  msgstr "S'il faut protéger les formulaires de commentaire et d'inscription."
4791
 
4792
- #: lib/i18n-extra.php:220
4793
  msgid "If you are using a caching plugin, ensure you follow these steps:"
4794
  msgstr ""
4795
  "Si vous utilisez une extension de mise en cache, veuillez procéder de la "
4796
  "sorte :"
4797
 
4798
- #: lib/i18n-extra.php:221
4799
  msgid ""
4800
  "Set the Protection Level to \"Low\" only. Do not use another value, "
4801
  "otherwise the antispam could behave erratically after a while."
@@ -4803,14 +4932,14 @@ msgstr ""
4803
  "Réglez le niveau de protection sur \"Bas\" uniquement. N'utilisez pas "
4804
  "d'autre niveau, sinon l'anti-spam pourrait se comporter de façon erratique."
4805
 
4806
- #: lib/i18n-extra.php:222
4807
  msgid ""
4808
  "Flush/clear your cache immediately after enabling or disabling the antispam."
4809
  msgstr ""
4810
  "Videz / effacez votre cache immédiatement après l'activation ou la "
4811
  "désactivation de l'anti-spam."
4812
 
4813
- #: lib/i18n-extra.php:223
4814
  msgid ""
4815
  "The firewall log displays blocked and sanitised requests as well as some "
4816
  "useful information. It has 6 columns:"
@@ -4818,7 +4947,7 @@ msgstr ""
4818
  "Le journal du pare-feu affiche les requêtes HTTP qui ont été bloquées ou "
4819
  "nettoyées ainsi que d'autres informations utiles. Il a six colonnes :"
4820
 
4821
- #: lib/i18n-extra.php:224
4822
  msgid ""
4823
  "RULE : reference of the NinjaFirewall built-in security rule that triggered "
4824
  "the action. A hyphen (<code>-</code>) instead of a number means it was a "
@@ -4829,23 +4958,23 @@ msgstr ""
4829
  "d'un numéro signifie que la règle provient de votre configuration "
4830
  "personnelle de la page \"Politiques du Pare-feu\" ou \"Contrôle d'Accès\"."
4831
 
4832
- #: lib/i18n-extra.php:225
4833
  msgid "The log can also be exported as a TSV (tab-separated values) text file."
4834
  msgstr ""
4835
  "Le journal peut aussi être exporté au format TSV (valeurs séparées par des "
4836
  "tabulations)."
4837
 
4838
- #: lib/i18n-extra.php:226
4839
  msgid "Enable firewall log"
4840
  msgstr "Activer le journal du pare-feu"
4841
 
4842
- #: lib/i18n-extra.php:227
4843
  msgid "You can disable/enable the firewall log from this page."
4844
  msgstr ""
4845
  "Vous pouvez activer / désactiver le journal du pare-feu à partir de cette "
4846
  "page."
4847
 
4848
- #: lib/i18n-extra.php:228
4849
  msgid ""
4850
  "Brute-force attacks will still be written to the firewall log, even if you "
4851
  "disable it."
@@ -4853,11 +4982,11 @@ msgstr ""
4853
  "Les attaques par force brute seront toujours enregistrées dans le journal du "
4854
  "pare-feu, même si vous désactivez celui-ci."
4855
 
4856
- #: lib/i18n-extra.php:229
4857
  msgid "Auto-rotate log"
4858
  msgstr "Rotation automatique du journal"
4859
 
4860
- #: lib/i18n-extra.php:230
4861
  msgid ""
4862
  "NinjaFirewall will rotate its log automatically on the very first day of "
4863
  "each month. If your site is very busy, you may want to allow it to rotate "
@@ -4868,24 +4997,24 @@ msgstr ""
4868
  "effectuée plus tôt, dans le cas où le journal aurait atteint une certaine "
4869
  "taille (Mo)."
4870
 
4871
- #: lib/i18n-extra.php:231
4872
  msgid ""
4873
  "By default, if will rotate the log each month or earlier, if it reaches 2 "
4874
  "megabytes."
4875
  msgstr "Par défaut, cette taille est fixée à 2 Mo."
4876
 
4877
- #: lib/i18n-extra.php:232
4878
  msgid ""
4879
  "Rotated logs, if any, can be selected and viewed from the dropdown menu."
4880
  msgstr ""
4881
  "Les journaux des mois précédents sont accessibles depuis le menu déroulant "
4882
  "situé au dessus de la fenêtre."
4883
 
4884
- #: lib/i18n-extra.php:233
4885
  msgid "Syslog"
4886
  msgstr "Syslog"
4887
 
4888
- #: lib/i18n-extra.php:234
4889
  msgid ""
4890
  "In addition to the firewall log, events can also be redirected to the syslog "
4891
  "server (<code>LOG_USER</code> facility)."
@@ -4893,7 +5022,7 @@ msgstr ""
4893
  "En plus d'écrire dans son journal, le pare-feu peut aussi utiliser le "
4894
  "serveur Syslog (catégorie <code>LOG_USER</code>)."
4895
 
4896
- #: lib/i18n-extra.php:235
4897
  msgid ""
4898
  "If you have a shared hosting account, keep this option disabled as you do "
4899
  "not have any access to the server logs."
@@ -4901,11 +5030,11 @@ msgstr ""
4901
  "Si vous avez un hébergement mutualisé, laissez cette option désactivée car "
4902
  "vous n'avez pas accès aux journaux du serveur."
4903
 
4904
- #: lib/i18n-extra.php:236
4905
  msgid "The logline uses the following format:"
4906
  msgstr "Le format utilisé est le suivant :"
4907
 
4908
- #: lib/i18n-extra.php:237
4909
  msgid ""
4910
  "BB: the level of severity as it appears in the firewall log. It can be "
4911
  "<code>CRITICAL</CODE>, <CODE>HIGH</CODE>, <CODE>MEDIUM</CODE>, <CODE>INFO</"
@@ -4916,19 +5045,19 @@ msgstr ""
4916
  "<CODE>MEDIUM</CODE>, <CODE>INFO</CODE>, <CODE>UPLOAD</CODE> ou "
4917
  "<CODE>DEBUG_ON</CODE>."
4918
 
4919
- #: lib/i18n-extra.php:238
4920
  msgid "CCCCCC: the 7-digit incident ID."
4921
  msgstr "CCCCCC : le numéro d'incident à sept chiffres."
4922
 
4923
- #: lib/i18n-extra.php:239
4924
  msgid "DD: the user IPv4 or IPv6 address."
4925
  msgstr "DD : L'adresse IPv4 ou IPv6 de l'utilisateur."
4926
 
4927
- #: lib/i18n-extra.php:240
4928
  msgid "EE: the blog (sub-)domain name."
4929
  msgstr "EE : le nom de (sous-)domaine du blog."
4930
 
4931
- #: lib/i18n-extra.php:241
4932
  #, php-format
4933
  msgid ""
4934
  "This logging option does not apply to the brute-force protection which can "
@@ -4940,7 +5069,7 @@ msgstr ""
4940
  "d'authentification du serveur. Voir le menu de la <a href=\"%s\">Page de "
4941
  "Connexion</a>."
4942
 
4943
- #: lib/i18n-extra.php:242
4944
  msgid ""
4945
  "Secret key: The secret key will be used to generate your public key. Enter "
4946
  "at least 30 ASCII characters, or use the one randomly created by "
@@ -4950,7 +5079,7 @@ msgstr ""
4950
  "de 30 à 100 caractères ASCII, ou bien utilisez la clé générée aléatoirement "
4951
  "par NinjaFirewall."
4952
 
4953
- #: lib/i18n-extra.php:243
4954
  msgid ""
4955
  "This server IP address: As an additional protection layer, you can restrict "
4956
  "access to the remote website(s) to the main server IP only. You can use IPv4 "
@@ -4961,7 +5090,7 @@ msgstr ""
4961
  "à se connecter aux sites distants. Si vous ne souhaitez pas de restriction "
4962
  "d’accès par IP, veuillez entrer le caractère <code>*</code>."
4963
 
4964
- #: lib/i18n-extra.php:244
4965
  #, php-format
4966
  msgid ""
4967
  "Public key: This is the public key that you will need to upload to each "
@@ -4970,7 +5099,7 @@ msgstr ""
4970
  "Clé publique : Vous devez configurer vos sites distants avec cette clé. <a "
4971
  "href=\"%s\">Consultez notre blog</a> pour plus d'info."
4972
 
4973
- #: lib/i18n-extra.php:245
4974
  msgid ""
4975
  "Remote websites URL: Enter the full URL of your NinjaFirewall protected "
4976
  "website(s) that you want to remotely access from the main server."
@@ -4979,7 +5108,7 @@ msgstr ""
4979
  "NinjaFirewall auxquels vous souhaitez accéder à distance à partir du serveur "
4980
  "principal."
4981
 
4982
- #: lib/i18n-extra.php:246
4983
  msgid ""
4984
  "Centralized Logging will keep working even if NinjaFirewall is disabled. Use "
4985
  "the menu below if you want to disable it."
@@ -4988,172 +5117,172 @@ msgstr ""
4988
  "NinjaFirewall. Si vous souhaitez complètement désactiver cette option, "
4989
  "faites-le ci-dessous."
4990
 
4991
- #: lib/i18n-extra.php:247
4992
  msgid "Enable Web Filter"
4993
  msgstr "Activer Web Filter"
4994
 
4995
- #: lib/i18n-extra.php:248
4996
  msgid "A full or partial string."
4997
  msgstr "Chaîne de caractère complète ou partielle."
4998
 
4999
- #: lib/i18n-extra.php:249
5000
  msgid "From 4 to maximum 150 characters."
5001
  msgstr "De 4 à 150 caractères."
5002
 
5003
- #: lib/i18n-extra.php:250
5004
  msgid "Any character, except the vertical bar <code>|</code>"
5005
  msgstr "Tout caractère, sauf la barre verticale <code>|</code>"
5006
 
5007
- #: lib/i18n-extra.php:251
5008
  msgid "Keywords to search:"
5009
  msgstr "Mots-clés recherchés :"
5010
 
5011
- #: lib/i18n-extra.php:252
5012
  msgid "Case-sensitive search"
5013
  msgstr "Recherche sensible à la casse"
5014
 
5015
- #: lib/i18n-extra.php:253
5016
  #, php-format
5017
  msgid "Do not send me more than one email alert in a %s interval"
5018
  msgstr "Ne pas envoyer plus d'un e-mail par tranche de %s"
5019
 
5020
- #: lib/i18n-extra.php:254
5021
  msgid "5-minute"
5022
  msgstr "5 minutes"
5023
 
5024
- #: lib/i18n-extra.php:255
5025
  msgid "15-minute"
5026
  msgstr "15 minutes"
5027
 
5028
- #: lib/i18n-extra.php:256
5029
  msgid "30-minute"
5030
  msgstr "30 minutes"
5031
 
5032
- #: lib/i18n-extra.php:257
5033
  msgid "1-hour"
5034
  msgstr "1 heure"
5035
 
5036
- #: lib/i18n-extra.php:258
5037
  msgid "3-hour"
5038
  msgstr "3 heures"
5039
 
5040
- #: lib/i18n-extra.php:259
5041
  msgid "6-hour"
5042
  msgstr "6 heures"
5043
 
5044
- #: lib/i18n-extra.php:260
5045
  msgid "12-hour"
5046
  msgstr "12 heures"
5047
 
5048
- #: lib/i18n-extra.php:261
5049
  msgid "24-hour"
5050
  msgstr "24 heures"
5051
 
5052
- #: lib/i18n-extra.php:262
5053
  msgid ""
5054
  "Clicking the \"Save Web Filter options\" button below will reset the current "
5055
  "timer."
5056
  msgstr "Cliquer sur \"Sauvegarder les options\" réinitialisera le compteur."
5057
 
5058
- #: lib/i18n-extra.php:263
5059
  msgid "Attach the HTML page output to email alerts"
5060
  msgstr "Joindre la page HTML à l'e-mail"
5061
 
5062
- #: lib/i18n-extra.php:264
5063
  msgid "Save Web Filter options"
5064
  msgstr "Sauvegarder les options"
5065
 
5066
- #: lib/i18n-extra.php:265
5067
  msgid "Help Desk:"
5068
  msgstr "Help Desk :"
5069
 
5070
- #: lib/i18n-extra.php:266
5071
  msgid "The selected log was deleted"
5072
  msgstr "Le journal sélectionné a été supprimé"
5073
 
5074
- #: lib/i18n-extra.php:267
5075
  msgid "Export"
5076
  msgstr "Exporter"
5077
 
5078
- #: lib/i18n-extra.php:268
5079
  msgid "Delete"
5080
  msgstr "Supprimer"
5081
 
5082
- #: lib/i18n-extra.php:269
5083
  msgid "Delete log?"
5084
  msgstr "Supprimer le journal ?"
5085
 
5086
- #: lib/i18n-extra.php:270
5087
  msgid "Today"
5088
  msgstr "Aujourd'hui"
5089
 
5090
- #: lib/i18n-extra.php:272
5091
  msgid "Upload"
5092
  msgstr "Téléchargement"
5093
 
5094
- #: lib/i18n-extra.php:273
5095
  msgid "Info"
5096
  msgstr "Info"
5097
 
5098
- #: lib/i18n-extra.php:274
5099
  msgid "Debug"
5100
  msgstr "Débogage"
5101
 
5102
- #: lib/i18n-extra.php:275
5103
  msgid "IP address:"
5104
  msgstr "Adresse IP :"
5105
 
5106
- #: lib/i18n-extra.php:276
5107
  msgid "e.g., 1.2.3.4"
5108
  msgstr "ex : 1.2.3.4"
5109
 
5110
- #: lib/i18n-extra.php:277
5111
  msgid "Add IP to blacklist"
5112
  msgstr "Ajouter à la liste noire"
5113
 
5114
- #: lib/i18n-extra.php:278
5115
  msgid "Add IP to whitelist"
5116
  msgstr "Ajouter à la liste blanche"
5117
 
5118
- #: lib/i18n-extra.php:279
5119
  msgid "Add"
5120
  msgstr "Ajouter"
5121
 
5122
- #: lib/i18n-extra.php:280
5123
  msgid "The address wad added to your IP Access Control list."
5124
  msgstr "L'adresse a été ajoutée à votre liste du Contrôle d'accès par IP."
5125
 
5126
- #: lib/i18n-extra.php:281
5127
  #, php-format
5128
  msgid "1st day of the month, or if bigger than %s MB"
5129
  msgstr "Le 1er de chaque mois, ou si sa taille dépasse %s Mo"
5130
 
5131
- #: lib/i18n-extra.php:282
5132
  msgid "1st day of the month, regardless of its size"
5133
  msgstr "Le 1er de chaque mois, quelle que soit sa taille"
5134
 
5135
- #: lib/i18n-extra.php:283
5136
  msgid "Show the most recent"
5137
  msgstr "Afficher les dernières"
5138
 
5139
- #: lib/i18n-extra.php:284
5140
  msgid "lines"
5141
  msgstr "lignes"
5142
 
5143
- #: lib/i18n-extra.php:285
5144
  msgid "Write events to the Syslog server too"
5145
  msgstr "Enregistrer aussi les événements dans le journal syslog"
5146
 
5147
- #: lib/i18n-extra.php:286
5148
  msgid "Your server configuration is not compatible with this option."
5149
  msgstr ""
5150
  "La configuration de votre serveur n'est pas compatible avec cette option."
5151
 
5152
- #: lib/i18n-extra.php:287
5153
  msgid "See contextual help before enabling this option."
5154
  msgstr "Consultez l'aide contextuelle avant d'activer cette option."
5155
 
5156
- #: lib/i18n-extra.php:288
5157
  msgid ""
5158
  "The remote server rejected your request. Make sure that you uploaded the "
5159
  "correct public key."
@@ -5161,29 +5290,29 @@ msgstr ""
5161
  "Le serveur distant a rejeté votre requête. Veuillez vous assurer que la clé "
5162
  "publique est correcte."
5163
 
5164
- #: lib/i18n-extra.php:289
5165
  #, php-format
5166
  msgid "The remote server returned the following HTTP error: %s"
5167
  msgstr "Le serveur HTTP a retourné le code d'erreur suivant : %s"
5168
 
5169
- #: lib/i18n-extra.php:290
5170
  msgid "The requested log does not exist on the remote website."
5171
  msgstr "Le journal demandé n'existe pas sur le site distant."
5172
 
5173
- #: lib/i18n-extra.php:291
5174
  msgid "The remote website did not return the expected response."
5175
  msgstr "Le site distant n'a pas retourné la réponse attendue."
5176
 
5177
- #: lib/i18n-extra.php:292
5178
  msgid "Your server does not seem to be compatible with this option."
5179
  msgstr ""
5180
  "La configuration de votre serveur n'est pas compatible avec cette option."
5181
 
5182
- #: lib/i18n-extra.php:293
5183
  msgid "Load language files from the WordPress repo"
5184
  msgstr "Charger les fichiers de langue depuis le WordPress.org"
5185
 
5186
- #: lib/i18n-extra.php:294
5187
  #, php-format
5188
  msgid ""
5189
  "If available, NinjaFirewall will download the language files from <a "
@@ -5192,15 +5321,15 @@ msgstr ""
5192
  "Si disponible, NinjaFirewall téléchargera le fichier de langue à partir de "
5193
  "<a %s>translate.wordpress.org</a>."
5194
 
5195
- #: lib/i18n-extra.php:295
5196
  msgid "Error: you do not have any license."
5197
  msgstr "Erreur : vous n'avez pas de licence."
5198
 
5199
- #: lib/i18n-extra.php:296
5200
  msgid "You have a valid license."
5201
  msgstr "Votre licence est valide."
5202
 
5203
- #: lib/i18n-extra.php:297
5204
  msgid ""
5205
  "An unknown error occured while connecting to NinjaFirewall servers. Please "
5206
  "try again in a few minutes"
@@ -5208,7 +5337,7 @@ msgstr ""
5208
  "Une erreur inattendue s'est produite lors de la connexion au serveur de "
5209
  "NinjaFirewall. Merci d'essayer à nouveau dans quelques minutes"
5210
 
5211
- #: lib/i18n-extra.php:298
5212
  msgid ""
5213
  "An error occured while connecting to NinjaFirewall servers. Please try again "
5214
  "in a few minutes"
@@ -5216,90 +5345,90 @@ msgstr ""
5216
  "Une erreur inattendue s'est produite lors de la connexion au serveur de "
5217
  "NinjaFirewall. Merci d'essayer à nouveau dans quelques minutes"
5218
 
5219
- #: lib/i18n-extra.php:299
5220
  msgid "Enter a valid license to save!"
5221
  msgstr "Veuillez entrer un numéro de licence valide !"
5222
 
5223
- #: lib/i18n-extra.php:300
5224
  msgid "This is already your current license!"
5225
  msgstr "Cette licence est la même que l'actuelle !"
5226
 
5227
- #: lib/i18n-extra.php:301
5228
  msgid "Your new license has been accepted and saved."
5229
  msgstr "Votre nouvelle licence a été acceptée et sauvegardée."
5230
 
5231
- #: lib/i18n-extra.php:302
5232
  msgid "This license is not valid"
5233
  msgstr "Cette licence n'est pas valide"
5234
 
5235
- #: lib/i18n-extra.php:303
5236
  msgid "WP+ Edition License"
5237
  msgstr "Licence WP+ Edition"
5238
 
5239
- #: lib/i18n-extra.php:304
5240
  msgid "License Number"
5241
  msgstr "Numéro de Licence"
5242
 
5243
- #: lib/i18n-extra.php:305
5244
  msgid "No license found"
5245
  msgstr "Aucune licence trouvée"
5246
 
5247
- #: lib/i18n-extra.php:306
5248
  msgid "Click to check your license validity"
5249
  msgstr "Cliquez pour tester la validité de votre licence"
5250
 
5251
- #: lib/i18n-extra.php:307
5252
  msgid "Expiration date"
5253
  msgstr "Date d'expiration"
5254
 
5255
- #: lib/i18n-extra.php:308
5256
  msgid "Unknown expiration date"
5257
  msgstr "Date d'expiration inconnue"
5258
 
5259
- #: lib/i18n-extra.php:309
5260
  msgid "Use the \"Check License Validity\" button to attempt to fix this error."
5261
  msgstr ""
5262
  "Selectionnez \"Cliquez pour tester la validité de votre licence\" pour "
5263
  "tenter de réparer cette erreur."
5264
 
5265
- #: lib/i18n-extra.php:310
5266
  msgid "Your license will expire soon!"
5267
  msgstr "Votre licence va bientôt expirer !"
5268
 
5269
- #: lib/i18n-extra.php:311
5270
  msgid "Your license has expired."
5271
  msgstr "Votre licence a expiré."
5272
 
5273
- #: lib/i18n-extra.php:312
5274
  msgid "License renewal"
5275
  msgstr "Renouvellement de licence"
5276
 
5277
- #: lib/i18n-extra.php:313
5278
  msgid "Click here to get a license!"
5279
  msgstr "Cliquez ici pour obtenir une licence !"
5280
 
5281
- #: lib/i18n-extra.php:314
5282
  msgid "Enter your new license and click on the save button"
5283
  msgstr "Entrez votre licence et cliquez sur le bouton pour l'enregistrer"
5284
 
5285
- #: lib/i18n-extra.php:315
5286
  msgid "Save New License"
5287
  msgstr "Sauvegarder la Licence"
5288
 
5289
- #: lib/i18n-extra.php:316
5290
  msgid "Allow, but block dangerous files"
5291
  msgstr "Autoriser, mais bloquer les fichiers dangereux"
5292
 
5293
- #: lib/i18n-extra.php:317
5294
  msgid "See contextual help for the list of files."
5295
  msgstr ""
5296
  "Consultez l'aide contextuelle pour voir la liste des fichiers concernés."
5297
 
5298
- #: lib/i18n-extra.php:318
5299
  msgid "Apply to ZIP archives file contents"
5300
  msgstr "Appliquer au contenu des fichiers ZIP"
5301
 
5302
- #: lib/i18n-extra.php:319
5303
  msgid ""
5304
  "Keep this option disabled if you are using scripts such as Paypal IPN or "
5305
  "WordPress WP-Cron, unless you added their IP address or URL to your Access "
@@ -5309,7 +5438,7 @@ msgstr ""
5309
  "WordPress WP-Cron, sauf si vous avez ajouté leur adresse IP ou URL dans la "
5310
  "section \"Contrôle d'Accès\"."
5311
 
5312
- #: lib/i18n-extra.php:320
5313
  #, php-format
5314
  msgid ""
5315
  "Do not send a notification if the user is in the <a href=\"%s\">IP Access "
@@ -5326,7 +5455,7 @@ msgstr ""
5326
  "Erreur : Votre fichier .htaccess n'est pas accessible en écriture. Veuillez "
5327
  "modifier ses autorisations : %s"
5328
 
5329
- #: lib/install.php:110 ninjafirewall.php:658 ninjafirewall.php:662
5330
  #, php-format
5331
  msgid "Error: wrong parameter value (%s)."
5332
  msgstr "Erreur : Mauvais paramètre (%s)."
@@ -5375,7 +5504,7 @@ msgstr "La page d'accueil du site a retourné une erreur fatale : %s."
5375
  msgid "File is not writable"
5376
  msgstr "Le fichier n'est pas accessible en écriture"
5377
 
5378
- #: lib/install_default.php:182
5379
  msgid ""
5380
  "Error: The installer cannot download the security rules from wordpress.org "
5381
  "website."
@@ -5383,7 +5512,7 @@ msgstr ""
5383
  "Erreur : Impossible de télécharger les règles de sécurité depuis le site de "
5384
  "wordpress.org."
5385
 
5386
- #: lib/install_default.php:183
5387
  msgid ""
5388
  "The server may be temporarily down or you may have network connectivity "
5389
  "problems? Please try again in a few minutes."
@@ -5392,7 +5521,7 @@ msgstr ""
5392
  "problèmes de connectivité réseau ? Veuillez ré-essayer d'ici quelques "
5393
  "minutes."
5394
 
5395
- #: lib/install_default.php:184
5396
  msgid ""
5397
  "NinjaFirewall downloads its rules over an HTTPS secure connection. Maybe "
5398
  "your server does not support SSL? You can force NinjaFirewall to use a non-"
@@ -5405,7 +5534,7 @@ msgstr ""
5405
  "connexion non-sécurisée (HTTP) en ajoutant la ligne suivante dans votre "
5406
  "fichier <strong>wp-config.php</strong> :"
5407
 
5408
- #: lib/install_default.php:259
5409
  #, php-format
5410
  msgid ""
5411
  "NinjaFirewall cannot create its <code>nfwlog/</code>log and cache folder; "
@@ -5604,10 +5733,37 @@ msgstr "Erreur : le mot de passe doit comporter de 6 à 255 caractères."
5604
  msgid "Error: unable to write to the %s configuration file"
5605
  msgstr "Erreur : impossible d’écrire dans le fichier de configuration %s"
5606
 
5607
- #: lib/logs.php:36 ninjafirewall.php:932
5608
  msgid "Logs"
5609
  msgstr "Journaux"
5610
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5611
  #: lib/logs_firewall_log.php:35
5612
  #, php-format
5613
  msgid ""
@@ -5632,10 +5788,6 @@ msgstr "Votre clé publique a été supprimée"
5632
  msgid "Your public key has been saved"
5633
  msgstr "Votre clé publique a été sauvegardée"
5634
 
5635
- #: lib/logs_firewall_log.php:85
5636
- msgid "Error"
5637
- msgstr "Erreur"
5638
-
5639
  #: lib/logs_firewall_log.php:92
5640
  msgid "Note"
5641
  msgstr "Notice"
@@ -5728,7 +5880,7 @@ msgstr ""
5728
  "et assurez vous que l'option \"Ajouter l'Administrateur à la liste blanche\" "
5729
  "est activée."
5730
 
5731
- #: lib/logs_live_log.php:96 ninjafirewall.php:375
5732
  msgid ""
5733
  "Live Log lets you watch your blog traffic in real time. To enable it, click "
5734
  "on the button below."
@@ -5837,10 +5989,23 @@ msgstr "Sauvegarder les options"
5837
  msgid "Error: please enter the custom log format."
5838
  msgstr "Erreur : veuillez entrer le format d'affichage."
5839
 
5840
- #: lib/monitoring.php:43 ninjafirewall.php:906
5841
  msgid "Monitoring"
5842
  msgstr "Monitoring"
5843
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5844
  #: lib/monitoring_file_check.php:62
5845
  msgid "Snapshot successfully created."
5846
  msgstr "L'instantané a bien été créé."
@@ -5853,7 +6018,7 @@ msgstr "L'instantané a bien été supprimé."
5853
  msgid "You must create a snapshot first."
5854
  msgstr "Vous devez d'abord créer un instantané."
5855
 
5856
- #: lib/monitoring_file_check.php:102 lib/monitoring_file_check.php:775
5857
  msgid "NinjaFirewall detected that changes were made to your files."
5858
  msgstr "NinjaFirewall a détecté des changements dans vos fichiers."
5859
 
@@ -5951,17 +6116,17 @@ msgstr "Supprimer l'instantané"
5951
  msgid "Last changes"
5952
  msgstr "Dernières modifications"
5953
 
5954
- #: lib/monitoring_file_check.php:281 lib/monitoring_file_check.php:783
5955
  #, php-format
5956
  msgid "New files: %s"
5957
  msgstr "Nouveaux fichiers : %s"
5958
 
5959
- #: lib/monitoring_file_check.php:282 lib/monitoring_file_check.php:785
5960
  #, php-format
5961
  msgid "Deleted files: %s"
5962
  msgstr "Fichiers supprimés : %s"
5963
 
5964
- #: lib/monitoring_file_check.php:283 lib/monitoring_file_check.php:784
5965
  #, php-format
5966
  msgid "Modified files: %s"
5967
  msgstr "Fichiers modifiés : %s"
@@ -6142,45 +6307,37 @@ msgstr "Erreur lors de la lecture du fichier de l'ancien instantané."
6142
  msgid "Error reading new snapshot file."
6143
  msgstr "Erreur lors de la lecture du fichier du nouvel instantané."
6144
 
6145
- #: lib/monitoring_file_check.php:748 ninjafirewall.php:479
6146
  msgid "New file"
6147
  msgstr "Nouveau fichier"
6148
 
6149
- #: lib/monitoring_file_check.php:749 ninjafirewall.php:480
6150
  msgid "Modified file"
6151
  msgstr "Fichier modifié"
6152
 
6153
- #: lib/monitoring_file_check.php:750 ninjafirewall.php:481
6154
  msgid "Deleted file"
6155
  msgstr "Fichier supprimé"
6156
 
6157
- #: lib/monitoring_file_check.php:774
6158
  msgid "[NinjaFirewall] Alert: File Check detection"
6159
  msgstr "[NinjaFirewall] Alerte: Détection File Check"
6160
 
6161
- #: lib/monitoring_file_check.php:777 lib/monitoring_file_check.php:779
6162
- #: lib/monitoring_file_check.php:799 lib/monitoring_file_check.php:801
6163
- #: lib/security_rules_update.php:572 lib/security_rules_update.php:574
6164
- #: lib/utils.php:225 lib/utils.php:311 lib/utils.php:435 lib/utils.php:1100
6165
- #: lib/utils.php:1279 lib/utils.php:1558
6166
- msgid "Blog:"
6167
- msgstr "Blog :"
6168
-
6169
- #: lib/monitoring_file_check.php:781 lib/monitoring_file_check.php:803
6170
- #: lib/security_rules_update.php:577
6171
  #, php-format
6172
  msgid "Date: %s"
6173
  msgstr "Date : %s"
6174
 
6175
- #: lib/monitoring_file_check.php:787
6176
  msgid "See attached file for details."
6177
  msgstr "Voir le fichier joint pour plus de détails."
6178
 
6179
- #: lib/monitoring_file_check.php:796
6180
  msgid "[NinjaFirewall] File Check report"
6181
  msgstr "[NinjaFirewall] Rapport de File Check"
6182
 
6183
- #: lib/monitoring_file_check.php:797
6184
  msgid "NinjaFirewall did not detect changes in your files."
6185
  msgstr "NinjaFirewall n'a pas détecté de changements dans vos fichiers."
6186
 
@@ -6237,7 +6394,7 @@ msgstr ""
6237
  msgid "Save File Guard options"
6238
  msgstr "Sauvegarder les options"
6239
 
6240
- #: lib/network.php:24 ninjafirewall.php:1193 ninjafirewall.php:1197
6241
  #, php-format
6242
  msgid "You are not allowed to perform this task (%s)."
6243
  msgstr "Vous n'êtes pas autorisé à effectuer cette tâche (%s)."
@@ -6262,8 +6419,14 @@ msgstr ""
6262
  msgid "Save Network options"
6263
  msgstr "Sauvegarder les options"
6264
 
6265
- #: lib/security_rules.php:44 lib/security_rules_update.php:578
6266
- #: ninjafirewall.php:936
 
 
 
 
 
 
6267
  msgid "Security Rules"
6268
  msgstr "Règles de Sécurité"
6269
 
@@ -6374,7 +6537,7 @@ msgstr ""
6374
  msgid "Security rules have been updated."
6375
  msgstr "Les règles de sécurité ont été mises à jour."
6376
 
6377
- #: lib/security_rules_update.php:91 lib/security_rules_update.php:454
6378
  msgid "No security rules update available."
6379
  msgstr "Aucune mise à jour des règles de sécurité disponible."
6380
 
@@ -6395,6 +6558,16 @@ msgstr "Activer la mise à jour automatique des règles de sécurité"
6395
  msgid "Check for updates"
6396
  msgstr "Vérifier les mises à jour"
6397
 
 
 
 
 
 
 
 
 
 
 
6398
  #: lib/security_rules_update.php:151
6399
  msgid "Every 15 minutes"
6400
  msgstr "Toutes les 15 minutes"
@@ -6464,47 +6637,47 @@ msgstr "Vérifier les mises à jour maintenant !"
6464
  msgid "Delete Log"
6465
  msgstr "Supprimer le journal"
6466
 
6467
- #: lib/security_rules_update.php:321
6468
  msgid "Error: Wrong rules format."
6469
  msgstr "Erreur : Le format des règles téléchargées ne correspond pas."
6470
 
6471
- #: lib/security_rules_update.php:330
6472
  msgid "Error: Unable to unserialize the new rules."
6473
  msgstr ""
6474
  "Erreur : Impossible d'extraire les règles du fichier téléchargé (unable to "
6475
  "unserialize the new rules)."
6476
 
6477
- #: lib/security_rules_update.php:338
6478
  msgid "Error: Unserialized rules seem corrupted."
6479
  msgstr ""
6480
  "Erreur : Le fichier des règles téléchargé semblent corrompu (unserialized "
6481
  "rules seem corrupted)."
6482
 
6483
- #: lib/security_rules_update.php:397
6484
  #, php-format
6485
  msgid "Security rules updated to version %s."
6486
  msgstr "Les règles de sécurité ont été mises à jour vers la version %s."
6487
 
6488
- #: lib/security_rules_update.php:443
6489
  msgid "Error: Unable to retrieve the new rules version."
6490
  msgstr "Erreur : Impossible de récupérer la nouvelle version des règles."
6491
 
6492
- #: lib/security_rules_update.php:461
6493
  #, php-format
6494
  msgid "Error: Server returned a %s HTTP error code (#1)."
6495
  msgstr "Erreur : Le serveur a retourné un code d'erreur HTTP %s (#1)."
6496
 
6497
- #: lib/security_rules_update.php:468 lib/security_rules_update.php:534
6498
  msgid "Error: Unable to connect to the remote server"
6499
  msgstr "Erreur : Impossible de se connecter au serveur distant"
6500
 
6501
- #: lib/security_rules_update.php:498
6502
  #, php-format
6503
  msgid "Error: The new rules versions do not match (%s != %s)."
6504
  msgstr ""
6505
  "Erreur : La versions des nouvelles règles ne correspond pas (%s != %s)."
6506
 
6507
- #: lib/security_rules_update.php:512
6508
  #, php-format
6509
  msgid ""
6510
  "Error: The new rules %s digital signature is not correct. Aborting update, "
@@ -6513,24 +6686,24 @@ msgstr ""
6513
  "Erreur : La signature numérique des nouvelles règles %s n'est pas correcte. "
6514
  "Annulation de la mise à jour, les règles ont peut-être été altérées."
6515
 
6516
- #: lib/security_rules_update.php:527
6517
  #, php-format
6518
  msgid "Error: Server returned a %s HTTP error code (#2)."
6519
  msgstr "Erreur : Le serveur a retourné un code d'erreur HTTP %s (#2)."
6520
 
6521
- #: lib/security_rules_update.php:569
6522
  msgid "[NinjaFirewall] Security rules update"
6523
  msgstr "[NinjaFirewall] Mise à jour des règles de sécurité"
6524
 
6525
- #: lib/security_rules_update.php:570
6526
  msgid "NinjaFirewall security rules have been updated:"
6527
  msgstr "Les règles de sécurité de NinjaFirewall ont été mises à jour :"
6528
 
6529
- #: lib/security_rules_update.php:576
6530
  msgid "Rules version:"
6531
  msgstr "Version des règles :"
6532
 
6533
- #: lib/security_rules_update.php:578
6534
  #, php-format
6535
  msgid "This notification can be turned off from NinjaFirewall \"%s\" page."
6536
  msgstr ""
@@ -6737,25 +6910,25 @@ msgstr ""
6737
  msgid "Cancel and Close"
6738
  msgstr "Annuler et Fermer"
6739
 
6740
- #: lib/utils.php:183 lib/utils.php:191 lib/utils.php:295
6741
  msgid "N/A"
6742
  msgstr "N/A"
6743
 
6744
- #: lib/utils.php:197
6745
  #, php-format
6746
  msgid "Attempt to create a new %s"
6747
  msgstr "Tentative de création de %s"
6748
 
6749
- #: lib/utils.php:201
6750
  #, php-format
6751
  msgid "Attempt to edit a published %s (ID: %s)"
6752
  msgstr "Tentative de modification de %s (ID: %s)"
6753
 
6754
- #: lib/utils.php:207 lib/utils.php:287
6755
  msgid "Unauthenticated user"
6756
  msgstr "Utilisateur non authentifié"
6757
 
6758
- #: lib/utils.php:212
6759
  msgid "Blocked post/page edition attempt"
6760
  msgstr "Tentative d'édition de page/article bloquée"
6761
 
@@ -6767,7 +6940,7 @@ msgstr ""
6767
  "NinjaFirewall a bloqué une tentative de modification/création d'une page ou "
6768
  "d'un article par un utilisateur qui n'avait pas les capacités nécessaires :"
6769
 
6770
- #: lib/utils.php:226 lib/utils.php:312 lib/utils.php:436 lib/utils.php:1283
6771
  msgid "Username:"
6772
  msgstr "Utilisateur :"
6773
 
@@ -6775,18 +6948,13 @@ msgstr "Utilisateur :"
6775
  msgid "Action:"
6776
  msgstr "Action :"
6777
 
6778
- #: lib/utils.php:230 lib/utils.php:315 lib/utils.php:437 lib/utils.php:1287
6779
- #: lib/utils.php:1559
6780
- msgid "User IP:"
6781
- msgstr "IP utilisateur :"
6782
-
6783
- #: lib/utils.php:242 lib/utils.php:327 lib/utils.php:449 lib/utils.php:1299
6784
- #: lib/utils.php:1554
6785
  msgid "A PHP backtrace has been attached to this message for your convenience."
6786
  msgstr ""
6787
  "La pile d'exécution de PHP est jointe à ce message pour votre commodité."
6788
 
6789
- #: lib/utils.php:244 lib/utils.php:329 lib/utils.php:1302 lib/utils.php:1564
6790
  msgid ""
6791
  "This protection (and notification) can be turned off from NinjaFirewall "
6792
  "\"Firewall Policies\" page."
@@ -6794,8 +6962,8 @@ msgstr ""
6794
  "Cette protection (et notification) peut être désactivée à partir de la page "
6795
  "\"Politiques du Pare-feu\" de NinjaFirewall."
6796
 
6797
- #: lib/utils.php:259 lib/utils.php:260 lib/utils.php:344 lib/utils.php:345
6798
- #: lib/utils.php:466 lib/utils.php:467 lib/utils.php:1318 lib/utils.php:1319
6799
  msgid "You are not allowed to perform this task."
6800
  msgstr "Vous n'êtes pas autorisé à effectuer cette tâche."
6801
 
@@ -6803,7 +6971,7 @@ msgstr "Vous n'êtes pas autorisé à effectuer cette tâche."
6803
  msgid "Blocked post/page deletion attempt"
6804
  msgstr "Tentative de suppression de page/article bloquée"
6805
 
6806
- #: lib/utils.php:310
6807
  msgid ""
6808
  "NinjaFirewall has blocked an attempt to delete a post by a user who doesn't "
6809
  "have the right capabilities:"
@@ -6811,16 +6979,38 @@ msgstr ""
6811
  "NinjaFirewall a bloqué une tentative de suppression d'une page ou d'un "
6812
  "article par un utilisateur qui n'avait pas les capacités nécessaires :"
6813
 
6814
- #: lib/utils.php:421
6815
  msgid "Blocked user account creation"
6816
  msgstr "Création de compte d'utilisateur bloquée"
6817
 
6818
- #: lib/utils.php:433
6819
  msgid "NinjaFirewall has blocked an attempt to create a user account:"
6820
  msgstr ""
6821
  "NinjaFirewall a bloqué une tentative de création d'un compte d'utilisateur :"
6822
 
6823
- #: lib/utils.php:767
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6824
  msgid ""
6825
  "Warning: Because NinjaFirewall's Login Protection is enabled, Site Health "
6826
  "may return an error message regarding the loopback test (e.g., 404 or 401 "
@@ -6831,11 +7021,11 @@ msgstr ""
6831
  "concernant le test de la requête de bouclage (ex.: code d’état HTTP 404 ou "
6832
  "401). Vous pouvez l'ignorer en toute sécurité."
6833
 
6834
- #: lib/utils.php:790 lib/utils.php:794
6835
  msgid "NinjaFirewall error"
6836
  msgstr "NinjaFirewall Erreur"
6837
 
6838
- #: lib/utils.php:791
6839
  #, php-format
6840
  msgid ""
6841
  "%s directory cannot be created. Please review your installation and ensure "
@@ -6844,7 +7034,7 @@ msgstr ""
6844
  "Le répertoire %s ne peut pas être créé. Vérifiez votre installation et "
6845
  "assurez vous que %s n'est pas en lecture seule."
6846
 
6847
- #: lib/utils.php:795
6848
  #, php-format
6849
  msgid ""
6850
  "%s directory is read-only. Please review your installation and ensure that "
@@ -6853,31 +7043,31 @@ msgstr ""
6853
  "Le répertoire %s est en lecture seule. Vérifiez votre installation et les "
6854
  "permissions de %s."
6855
 
6856
- #: lib/utils.php:810
6857
  msgid "unknown error"
6858
  msgstr "erreur inconnue"
6859
 
6860
- #: lib/utils.php:812
6861
  msgid "NinjaFirewall fatal error:"
6862
  msgstr "NinjaFirewall erreur fatale :"
6863
 
6864
- #: lib/utils.php:813
6865
  msgid "Review your installation, your site is not protected."
6866
  msgstr "Vérifiez votre installation, votre site n'est pas protégé."
6867
 
6868
- #: lib/utils.php:840
6869
  msgid "Alert: WordPress console login"
6870
  msgstr "Alerte : Connexion à WordPress"
6871
 
6872
- #: lib/utils.php:846
6873
  msgid "Someone just logged in to your WordPress admin console:"
6874
  msgstr "Quelqu'un vient de se connecter à votre Tableau de bord de WordPress:"
6875
 
6876
- #: lib/utils.php:966 lib/utils.php:993
6877
  msgid "Forbidden access"
6878
  msgstr "Accès interdit"
6879
 
6880
- #: lib/utils.php:1012
6881
  #, php-format
6882
  msgid ""
6883
  "<strong>ERROR</strong>: Invalid username, email address or password.<br /><a "
@@ -6886,11 +7076,11 @@ msgstr ""
6886
  "<strong>ERREUR</strong>: Identifiant, email ou mot de passe invalide.<br /"
6887
  "><a href=\"%s\">Mot de passe perdu</a> ?"
6888
 
6889
- #: lib/utils.php:1096
6890
  msgid "[NinjaFirewall] Alert: Database changes detected"
6891
  msgstr "[NinjaFirewall] Alerte: Modification dans la base de données"
6892
 
6893
- #: lib/utils.php:1097
6894
  msgid ""
6895
  "NinjaFirewall has detected that one or more administrator accounts were "
6896
  "modified in the database:"
@@ -6898,12 +7088,12 @@ msgstr ""
6898
  "NinjaFirewall a détecté que un ou plusieurs comptes d'administrateur ont été "
6899
  "modifiés dans la base de données:"
6900
 
6901
- #: lib/utils.php:1102
6902
  #, php-format
6903
  msgid "Total administrators : %s"
6904
  msgstr "Nombre d'administrateurs : %s"
6905
 
6906
- #: lib/utils.php:1111
6907
  msgid ""
6908
  "If you cannot see any modifications in the above fields, it is possible that "
6909
  "the administrator password was changed."
@@ -6911,11 +7101,11 @@ msgstr ""
6911
  "Si vous ne voyez pas de modifications dans les données ci-dessus, il est "
6912
  "possible que le mot de passe administrateur ait été changé."
6913
 
6914
- #: lib/utils.php:1264
6915
  msgid "Blocked privilege escalation attempt"
6916
  msgstr "Tentatives d'élévation des privilèges"
6917
 
6918
- #: lib/utils.php:1277
6919
  msgid ""
6920
  "NinjaFirewall has blocked an attempt to modify a user capability by someone "
6921
  "who does not have administrative privileges:"
@@ -6923,7 +7113,7 @@ msgstr ""
6923
  "NinjaFirewall a bloqué une tentative de modification de certaines Capacités "
6924
  "par un utilisateur ne disposant pas de privilèges administratifs :"
6925
 
6926
- #: lib/utils.php:1330
6927
  msgid ""
6928
  "NinjaFirewall brute-force protection is enabled and you are temporarily "
6929
  "whitelisted."
@@ -6931,7 +7121,7 @@ msgstr ""
6931
  "La protection de NinjaFirewall contre les attaques par force brute est "
6932
  "activée. Vous êtes temporairement dans la liste blanche."
6933
 
6934
- #: lib/utils.php:1345
6935
  #, php-format
6936
  msgid ""
6937
  "Hey, it seems that you've been using NinjaFirewall for some time. If you "
@@ -6944,17 +7134,17 @@ msgstr ""
6944
  "a>. Il a fallu des milliers d'heures pour le développer, mais il suffit "
6945
  "seulement de quelques minutes pour le noter. Merci !"
6946
 
6947
- #: lib/utils.php:1526
6948
  msgid ""
6949
  "The attempt was blocked and the option was reversed to its original value."
6950
  msgstr ""
6951
  "La tentative a été bloquée et l'option a été remise à sa valeur d'origine."
6952
 
6953
- #: lib/utils.php:1531
6954
  msgid "Attempt to modify WordPress settings"
6955
  msgstr "Tentative de modification des paramètres de WordPress"
6956
 
6957
- #: lib/utils.php:1532
6958
  msgid ""
6959
  "NinjaFirewall has blocked an attempt to modify some important WordPress "
6960
  "settings by a user that does not have administrative privileges:"
@@ -6963,31 +7153,31 @@ msgstr ""
6963
  "importants de WordPress par un utilisateur ne disposant pas de privilèges "
6964
  "administratifs :"
6965
 
6966
- #: lib/utils.php:1533 lib/utils.php:1542
6967
  #, php-format
6968
  msgid "Option: %s"
6969
  msgstr "Option: %s"
6970
 
6971
- #: lib/utils.php:1534
6972
  #, php-format
6973
  msgid "Original value: %s"
6974
  msgstr "Valeur originale : %s"
6975
 
6976
- #: lib/utils.php:1535
6977
  #, php-format
6978
  msgid "Modified value: %s"
6979
  msgstr "Valeur modifiée : %s"
6980
 
6981
- #: lib/utils.php:1536 lib/utils.php:1544
6982
  #, php-format
6983
  msgid "Action taken: %s"
6984
  msgstr "Action prise : %s"
6985
 
6986
- #: lib/utils.php:1540
6987
  msgid "Code injection attempt in WordPress options table"
6988
  msgstr "Tentative d'injection de code dans la table des options de WordPress"
6989
 
6990
- #: lib/utils.php:1541
6991
  msgid ""
6992
  "NinjaFirewall has blocked an attempt to inject code in the WordPress options "
6993
  "table by a user that does not have administrative privileges:"
@@ -6996,35 +7186,51 @@ msgstr ""
6996
  "options de WordPress par un utilisateur ne disposant pas de privilèges "
6997
  "administratifs :"
6998
 
6999
- #: lib/utils.php:1543
7000
  #, php-format
7001
  msgid "Code: %s"
7002
  msgstr "Code : %s"
7003
 
7004
- #: lib/utils.php:1624
7005
  msgid "Important: NinjaFirewall has detected that this is a security update."
7006
  msgstr ""
7007
  "Important : NinjaFirewall a détecté que ceci est un mise à jour de sécurité."
7008
 
7009
- #: lib/utils.php:1627
7010
  msgid "More info about this warning."
7011
  msgstr "En savoir plus."
7012
 
7013
- #: lib/utils.php:1647
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7014
  #, php-format
7015
  msgid "Error, cannot create the %s folder."
7016
  msgstr "Erreur, impossible de créer le répertoire %s."
7017
 
7018
- #: lib/utils.php:1648 lib/utils.php:1657 lib/utils.php:1666
7019
  msgid "Check your server permissions and try again."
7020
  msgstr "Vérifiez les autorisations de votre serveur et réessayez."
7021
 
7022
- #: lib/utils.php:1656
7023
  #, php-format
7024
  msgid "Error, the %s folder is not writable."
7025
  msgstr "Erreur, le répertoire %s est en lecture seule."
7026
 
7027
- #: lib/utils.php:1665
7028
  #, php-format
7029
  msgid "Error, cannot write %s."
7030
  msgstr "Erreur, impossible d'écrire dans %s."
@@ -7232,16 +7438,15 @@ msgstr ""
7232
 
7233
  #: lib/wpplus.php:143
7234
  msgid ""
7235
- "The Web Filter can hook the response body, i.e., the output of the HTML "
7236
- "page, and search it for some specific keywords. Such filter can be useful to "
7237
  "identify errors, hacked content and data leakage issues in the response body "
7238
  "sent to your visitors."
7239
  msgstr ""
7240
- "Le Web Filter peut intercepter les requêtes sortantes, c'est à dire le "
7241
- "contenu de la page HTML, et rechercher des mots clés spécifiques. Un tel "
7242
- "filtre peut être utile pour identifier les erreurs, les contenus piratés et "
7243
- "les problèmes de fuite de données dans le corps de la réponse envoyée à vos "
7244
- "visiteurs."
7245
 
7246
  #: lib/wpplus.php:144
7247
  msgid ""
@@ -7545,7 +7750,7 @@ msgstr ""
7545
  "Impossible de récupérer les règles de l'utilisateur dans la base de données "
7546
  "(#4)"
7547
 
7548
- #: ninjafirewall.php:119
7549
  msgid ""
7550
  "You do not have \"unfiltered_html\" capability. Please enable it in order to "
7551
  "run NinjaFirewall (or make sure you do not have \"DISALLOW_UNFILTERED_HTML\" "
@@ -7556,7 +7761,7 @@ msgstr ""
7556
  "la directive \"DISALLOW_UNFILTERED_HTML\" activée dans votre fichier wp-"
7557
  "config.php)."
7558
 
7559
- #: ninjafirewall.php:126
7560
  #, php-format
7561
  msgid ""
7562
  "NinjaFirewall requires WordPress %s or greater but your current version is "
@@ -7564,19 +7769,19 @@ msgid ""
7564
  msgstr ""
7565
  "NinjaFirewall nécessite au moins WordPress %s mais votre version est %s."
7566
 
7567
- #: ninjafirewall.php:130
7568
  #, php-format
7569
  msgid ""
7570
  "NinjaFirewall requires PHP 5.3 or greater but your current version is %s."
7571
  msgstr ""
7572
  "NinjaFirewall nécessite au moins PHP 5.3 mais votre version de PHP est %s."
7573
 
7574
- #: ninjafirewall.php:134
7575
  #, php-format
7576
  msgid "NinjaFirewall requires the PHP %s extension."
7577
  msgstr "NinjaFirewall nécessite l'extension PHP %s."
7578
 
7579
- #: ninjafirewall.php:138
7580
  msgid ""
7581
  "You have SAFE_MODE enabled. Please disable it, it is deprecated as of PHP "
7582
  "5.3.0 (see http://php.net/safe-mode)."
@@ -7585,15 +7790,15 @@ msgstr ""
7585
  "devenue obsolète depuis PHP 5.3 et a été supprimée depuis PHP 5.4 (cf. "
7586
  "http://php.net/safe-mode)."
7587
 
7588
- #: ninjafirewall.php:142
7589
  msgid "You are not allowed to activate NinjaFirewall."
7590
  msgstr "Vous n’êtes pas autorisé à activer NinjaFirewall."
7591
 
7592
- #: ninjafirewall.php:146
7593
  msgid "NinjaFirewall is not compatible with Microsoft Windows."
7594
  msgstr "NinjaFirewall n'est pas compatible avec Microsoft Windows."
7595
 
7596
- #: ninjafirewall.php:326
7597
  msgid ""
7598
  "All fields will be restored to their default values and any changes you made "
7599
  "will be lost. Continue?"
@@ -7601,19 +7806,19 @@ msgstr ""
7601
  "Tous les champs vont être re-initialisés et vos changements seront perdus. "
7602
  "Continuer ?"
7603
 
7604
- #: ninjafirewall.php:330
7605
  msgid "Missing security nonce, try to reload the page."
7606
  msgstr "La nonce de sécurité est manquante, essayer de recharger cette page."
7607
 
7608
- #: ninjafirewall.php:332
7609
  msgid "Please select the HTTP server in the list."
7610
  msgstr "Sélectionnez votre serveur HTTP dans la list."
7611
 
7612
- #: ninjafirewall.php:335
7613
  msgid "Delete the firewall's error log ?"
7614
  msgstr "Supprimer le journal des erreurs ?"
7615
 
7616
- #: ninjafirewall.php:339
7617
  msgid ""
7618
  "This action will restore the selected configuration file and will override "
7619
  "all your current firewall options, policies and rules. Continue?"
@@ -7622,7 +7827,7 @@ msgstr ""
7622
  "remplacera toutes les options, politiques et règles de pare-feu actuelles. "
7623
  "Continuer ?"
7624
 
7625
- #: ninjafirewall.php:343
7626
  msgid ""
7627
  "Any character that is not a letter [a-zA-Z], a digit [0-9], a dot [.], a "
7628
  "hyphen [-] or an underscore [_] will be removed from the filename and "
@@ -7632,7 +7837,7 @@ msgstr ""
7632
  "[.], un trait d'union[-] ou un caractère de soulignement[_], sera supprimé "
7633
  "du nom du fichier et remplacé par le caractère de substitution. Continuer ?"
7634
 
7635
- #: ninjafirewall.php:345
7636
  msgid ""
7637
  "Ensure that you can access your admin console over HTTPS before enabling "
7638
  "this option, otherwise you will lock yourself out of your site. Continue?"
@@ -7641,7 +7846,7 @@ msgstr ""
7641
  "option, sinon vous risqueriez de ne plus pouvoir accéder à l'interface "
7642
  "d'administration. Continuer ?"
7643
 
7644
- #: ninjafirewall.php:347
7645
  msgid ""
7646
  "WooCommerce is running: if you block accounts creation, your customers won't "
7647
  "be able to sign up. Continue?"
@@ -7649,7 +7854,7 @@ msgstr ""
7649
  "WooCommerce est activé : si vous bloquez la création de comptes, vos clients "
7650
  "ne pourront pas s'enregistrer. Continuer ?"
7651
 
7652
- #: ninjafirewall.php:349
7653
  msgid ""
7654
  "Your blog has user registration enabled: if you block accounts creation, "
7655
  "your customers won't be able to sign up. Continue?"
@@ -7657,7 +7862,7 @@ msgstr ""
7657
  "Votre blog accepte les inscriptions : si vous bloquez la création de "
7658
  "comptes, vos clients ne pourront plus s'inscrire. Continuer ?"
7659
 
7660
- #: ninjafirewall.php:351
7661
  msgid ""
7662
  "Your multisite installation allows users to register new sites: if you "
7663
  "enable this option, they will likely get blocked when creating their blog. "
@@ -7666,143 +7871,171 @@ msgstr ""
7666
  "Les utilisateurs sont autorisés a créer des nouveaux sites : si vous activez "
7667
  "cette option, ils ne pourront plus le faire. Continuer ?"
7668
 
7669
- #: ninjafirewall.php:355
7670
  msgid "Delete the current snapshot ?"
7671
  msgstr "Supprimer l'instantané actuel ?"
7672
 
7673
- #: ninjafirewall.php:359
7674
  msgid "Invalid character."
7675
  msgstr "Caractère invalide."
7676
 
7677
- #: ninjafirewall.php:361
7678
  msgid "\"admin\" is not acceptable, please choose another user name."
7679
  msgstr ""
7680
  "\"admin\" n\\'est pas acceptable, merci de bien vouloir choisir un autre "
7681
  "identifiant."
7682
 
7683
- #: ninjafirewall.php:363
7684
  msgid "Please enter max 1024 character only."
7685
  msgstr "Veuillez ne pas entrer plus de 1 024 caractères."
7686
 
7687
- #: ninjafirewall.php:365
7688
  msgid "Select when to enable the login protection."
7689
  msgstr "Veuillez sélectionner quand activer la protection."
7690
 
7691
- #: ninjafirewall.php:367
7692
  msgid "Enter a name and a password for the HTTP authentication."
7693
  msgstr ""
7694
  "Veuillez entrer un nom d'utilisateur et mot de passe pour l'authentification "
7695
  "HTTP."
7696
 
7697
- #: ninjafirewall.php:371
7698
  msgid "Your public key is not valid."
7699
  msgstr "Votre clé publique n\\'est pas valide."
7700
 
7701
- #: ninjafirewall.php:377
7702
  msgid "No traffic yet, please wait"
7703
  msgstr "Aucun visiteur actuellement, veuillez patienter"
7704
 
7705
- #: ninjafirewall.php:379
7706
  msgid "seconds..."
7707
  msgstr "secondes..."
7708
 
7709
- #: ninjafirewall.php:381
7710
  msgid "Error: Live Log did not receive the expected response from your server:"
7711
  msgstr "Erreur : le serveur distant n\\'a pas retourné la réponse attendue :"
7712
 
7713
- #: ninjafirewall.php:383
7714
  msgid "Error: URL does not seem to exist (404 Not Found):"
7715
  msgstr "Erreur : l'URL ne semble pas exister (404 Not Found) :"
7716
 
7717
- #: ninjafirewall.php:385
7718
  msgid "Error: Cannot find your log file. Try to reload this page."
7719
  msgstr ""
7720
  "Erreur : Impossible de trouver le fichier log. Essayez de recharger cette "
7721
  "page."
7722
 
7723
- #: ninjafirewall.php:387
7724
  msgid "Error: The HTTP server returned the following error code:"
7725
  msgstr "Erreur : Le serveur HTTP a retourné le code d'erreur suivant :"
7726
 
7727
- #: ninjafirewall.php:643 ninjafirewall.php:763 ninjafirewall.php:832
7728
  msgid "Error: Security nonces do not match. Reload the page and try again."
7729
  msgstr ""
7730
  "Erreur : Les nonces de sécurité ne correspondent pas. Veuillez recharger "
7731
  "cette page."
7732
 
7733
- #: ninjafirewall.php:649
7734
  msgid "Error: NinjaFirewall is disabled"
7735
  msgstr "Erreur : NinjaFirewall est désactivé"
7736
 
7737
- #: ninjafirewall.php:654 ninjafirewall.php:768 ninjafirewall.php:798
7738
  #, php-format
7739
  msgid "Error: missing parameter (%s)."
7740
  msgstr "Erreur : Paramètre manquant (%s)."
7741
 
7742
- #: ninjafirewall.php:894
7743
  msgid "NinjaFirewall: Dashboard"
7744
  msgstr "NinjaFirewall : Tableau de Bord"
7745
 
7746
- #: ninjafirewall.php:898
7747
  msgid "NinjaFirewall: Firewall Options"
7748
  msgstr "NinjaFirewall : Options du Pare-feu"
7749
 
7750
- #: ninjafirewall.php:902
7751
  msgid "NinjaFirewall: Firewall Policies"
7752
  msgstr "NinjaFirewall : Politiques du Pare-feu"
7753
 
7754
- #: ninjafirewall.php:906
7755
  msgid "NinjaFirewall: Monitoring"
7756
  msgstr "NinjaFirewall : Monitoring"
7757
 
7758
- #: ninjafirewall.php:916
7759
  msgid "NinjaFirewall: Anti-Malware"
7760
  msgstr "NinjaFirewall : Anti-Malware"
7761
 
7762
- #: ninjafirewall.php:920
7763
  msgid "NinjaFirewall: Network"
7764
  msgstr "NinjaFirewall : Réseau"
7765
 
7766
- #: ninjafirewall.php:924
7767
  msgid "NinjaFirewall: Event Notifications"
7768
  msgstr "NinjaFirewall : Notifications d’Événement"
7769
 
7770
- #: ninjafirewall.php:928
7771
  msgid "NinjaFirewall: Log-in Protection"
7772
  msgstr "NinjaFirewall : Page de Connexion"
7773
 
7774
- #: ninjafirewall.php:932
7775
  msgid "NinjaFirewall: Logs"
7776
  msgstr "NinjaFirewall : Journaux"
7777
 
7778
- #: ninjafirewall.php:936
7779
  msgid "NinjaFirewall: Security Rules"
7780
  msgstr "NinjaFirewall : Règles de Sécurité"
7781
 
7782
- #: ninjafirewall.php:980
7783
  msgid "NinjaFirewall Settings"
7784
  msgstr "Réglages de NinjaFirewall"
7785
 
7786
- #: ninjafirewall.php:988
7787
  msgid "NinjaFirewall is enabled"
7788
  msgstr "NinjaFirewall est activé"
7789
 
7790
- #: ninjafirewall.php:1128
7791
  msgid "Access Restricted"
7792
  msgstr "Accès limité"
7793
 
7794
- #: ninjafirewall.php:1134
7795
  msgid "Settings"
7796
  msgstr "Réglages"
7797
 
7798
- #: ninjafirewall.php:1135
7799
  msgid "Upgrade to Premium"
7800
  msgstr "Passez Premium !"
7801
 
7802
- #: ninjafirewall.php:1136
7803
  msgid "Rate it!"
7804
  msgstr "Notez-le !"
7805
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7806
  #, php-format
7807
  #~ msgid ""
7808
  #~ "Log in to your Openlitespeed admin dashboard, click on \"Virtual Host\", "
4
  msgstr ""
5
  "Project-Id-Version: Stable (latest release)\n"
6
  "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/ninjafirewall\n"
7
+ "POT-Creation-Date: 2021-09-17 15:59+0700\n"
8
+ "PO-Revision-Date: 2021-09-17 15:59+0700\n"
9
  "Last-Translator: NinTechNet <contact@nintechnet.com>\n"
10
  "Language-Team: NinTechNet <nintechnet.com>\n"
11
  "Language: fr_FR\n"
16
  "X-Poedit-SourceCharset: UTF-8\n"
17
  "Plural-Forms: nplurals=2; plural=(n > 1);\n"
18
 
19
+ #: lib/anti_malware.php:24 ninjafirewall.php:914
20
  msgid "Anti-Malware"
21
  msgstr "Anti-Malware"
22
 
113
  msgid "Your changes have been saved."
114
  msgstr "Les modifications ont été enregistrées."
115
 
116
+ #: lib/dashboard.php:132 ninjafirewall.php:892
117
  msgid "Dashboard"
118
  msgstr "Tableau de Bord"
119
 
347
  msgid "Centralized Logging"
348
  msgstr "Centralisation des Logs"
349
 
350
+ #: lib/dashboard.php:331 lib/security_rules_update.php:427
351
  #, php-format
352
  msgid "Error: %s"
353
  msgstr "Erreur : %s"
356
  msgid "Source IP"
357
  msgstr "IP source"
358
 
359
+ #: lib/dashboard.php:346 lib/dashboard.php:355 lib/dashboard.php:365
360
+ #: lib/firewall_policies.php:755
361
+ msgid ""
362
+ "In the Premium version of NinjaFirewall, you can use the IP Access Control "
363
+ "section to easily configure all IP address related options (source, "
364
+ "whitelist, blacklist, rate limiting etc)."
365
+ msgstr ""
366
+ "Dans la version Premium de NinjaFirewall, vous pouvez utiliser la section "
367
+ "Contrôle d'accès par IP pour configurer facilement toutes les options liées "
368
+ "à l'adresse IP (source, liste blanche, liste noire, limitation de débit, "
369
+ "etc.)."
370
+
371
  #: lib/dashboard.php:347
372
  #, php-format
373
  msgid "You have a private IP : %s"
463
  msgid "Help &amp; configuration"
464
  msgstr "Aide &amp; configuration"
465
 
466
+ #: lib/dashboard.php:515
467
+ msgid "Cannot check if the PHP INI file is readable: connection error"
468
+ msgstr ""
469
+ "Impossible de vérifier si le fichier PHP INI est protégé : erreur de "
470
+ "connexion"
471
+
472
  #: lib/dashboard_about.php:29
473
  msgid "Our blog:"
474
  msgstr "Notre blog :"
518
  msgid "Benchmarks"
519
  msgstr "Performances"
520
 
521
+ #: lib/dashboard_statistics.php:106
522
+ msgid ""
523
+ "In the Premium version of NinjaFirewall and on compatible servers, you can "
524
+ "use Unix shared memory to speed up the processing of each HTTP request by "
525
+ "the firewall."
526
+ msgstr ""
527
+ "Dans la version Premium de NinjaFirewall et sur les serveurs compatibles, "
528
+ "vous pouvez utiliser la mémoire partagée Unix pour accélérer le traitement "
529
+ "de chaque requête HTTP par le pare-feu."
530
+
531
  #: lib/dashboard_statistics.php:110
532
  msgid "Average time per request"
533
  msgstr "Durée moyenne par requête"
545
  msgid "Slowest request"
546
  msgstr "Requête la plus lente"
547
 
548
+ #: lib/dashboard_statistics.php:130
549
  msgid "Critical"
550
  msgstr "Critique"
551
 
552
+ #: lib/dashboard_statistics.php:131
553
  msgid "High"
554
  msgstr "Élevé"
555
 
556
+ #: lib/dashboard_statistics.php:132
557
  msgid "Medium"
558
  msgstr "Moyen"
559
 
561
  msgid "Select monthly stats to view..."
562
  msgstr "Sélectionnez les statistiques à afficher..."
563
 
564
+ #: lib/email_sodium.php:130
565
+ msgid "The link you followed has expired."
566
+ msgstr "Le lien que vous avez suivi a expiré."
567
+
568
+ #: lib/email_sodium.php:131 lib/email_sodium.php:184
569
+ #: lib/logs_firewall_log.php:85
570
+ msgid "Error"
571
+ msgstr "Erreur"
572
+
573
+ #: lib/email_sodium.php:165 lib/email_sodium.php:203
574
+ msgid "Email removal confirmation"
575
+ msgstr "Confirmation de la suppression de l'e-mail"
576
+
577
+ #: lib/email_sodium.php:168
578
+ msgid "Your email address was removed from the \"Event Notifications\" option."
579
+ msgstr ""
580
+ "Votre adresse e-mail a été supprimée de l'option \"Notifications d'Événement"
581
+ "\"."
582
+
583
+ #: lib/email_sodium.php:169 lib/monitoring_file_check.php:759
584
+ #: lib/monitoring_file_check.php:761 lib/monitoring_file_check.php:781
585
+ #: lib/monitoring_file_check.php:783 lib/security_rules_update.php:559
586
+ #: lib/security_rules_update.php:561 lib/utils.php:225 lib/utils.php:306
587
+ #: lib/utils.php:425 lib/utils.php:1038 lib/utils.php:1212 lib/utils.php:1484
588
+ msgid "Blog:"
589
+ msgstr "Blog :"
590
+
591
+ #: lib/email_sodium.php:170
592
+ msgid "Email address:"
593
+ msgstr "Adresse e-mail :"
594
+
595
+ #: lib/email_sodium.php:171 lib/utils.php:230 lib/utils.php:310
596
+ #: lib/utils.php:427 lib/utils.php:1220 lib/utils.php:1485
597
+ msgid "User IP:"
598
+ msgstr "IP utilisateur :"
599
+
600
+ #: lib/email_sodium.php:172 lib/event_updates.php:157 lib/utils.php:233
601
+ #: lib/utils.php:313 lib/utils.php:430 lib/utils.php:1039 lib/utils.php:1223
602
+ #: lib/utils.php:1488
603
+ msgid "Date:"
604
+ msgstr "Date :"
605
+
606
+ #: lib/email_sodium.php:183
607
+ msgid "Error, your resquest cannot be processed."
608
+ msgstr "Désolé, votre requête ne peut pas aboutir."
609
+
610
+ #: lib/email_sodium.php:197
611
+ msgid ""
612
+ "If you want to remove your email address from the Event Notifications "
613
+ "option, click the button below. If the operation is successful, a "
614
+ "confirmation email will be sent to you."
615
+ msgstr ""
616
+ "Si vous souhaitez supprimer votre adresse e-mail de l'option Notifications "
617
+ "d'Événement, cliquez sur le bouton ci-dessous. Si l'opération réussi, un e-"
618
+ "mail de confirmation vous sera envoyé."
619
+
620
+ #: lib/email_sodium.php:199 lib/event_notifications.php:154
621
+ #: lib/event_notifications.php:166 lib/firewall_options.php:78
622
+ #: lib/firewall_options.php:113 lib/firewall_policies.php:25
623
+ #: lib/login_protection.php:309 lib/login_protection.php:324
624
+ #: lib/login_protection.php:345 lib/login_protection.php:352 lib/network.php:70
625
+ msgid "Yes"
626
+ msgstr "Oui"
627
+
628
+ #: lib/email_sodium.php:201 lib/event_notifications.php:154
629
+ #: lib/event_notifications.php:166 lib/firewall_options.php:78
630
+ #: lib/firewall_options.php:113 lib/firewall_policies.php:26
631
+ #: lib/login_protection.php:309 lib/login_protection.php:324
632
+ #: lib/login_protection.php:345 lib/login_protection.php:352 lib/network.php:70
633
+ msgid "No"
634
+ msgstr "Non"
635
+
636
+ #: lib/event_notifications.php:34 lib/help.php:377 ninjafirewall.php:922
637
  msgid "Event Notifications"
638
  msgstr "Notifications d'Événement"
639
 
755
  msgid "Send me a daily activity report"
756
  msgstr "Envoyer un rapport d'activité quotidien"
757
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
758
  #: lib/event_notifications.php:161
759
  msgid "Log"
760
  msgstr "Journal"
825
  msgid "Save Event Notifications"
826
  msgstr "Sauvegarder les options"
827
 
828
+ #: lib/event_notifications.php:476
829
  msgid "[NinjaFirewall] Daily Activity Report"
830
  msgstr "[NinjaFirewall] Rapport d'activité quotidien"
831
 
832
+ #: lib/event_notifications.php:486
833
  #, php-format
834
  msgid "Daily activity report for: %s"
835
  msgstr "Rapport d'activité quotidien pour : %s"
836
 
837
+ #: lib/event_notifications.php:487
838
  msgid "Date Range Processed: Yesterday"
839
  msgstr "Plage de date traitée : Hier"
840
 
841
+ #: lib/event_notifications.php:489
842
  msgid "Blocked threats:"
843
  msgstr "Menaces bloquées :"
844
 
845
+ #: lib/event_notifications.php:491
846
  msgid "critical:"
847
  msgstr "Critique :"
848
 
849
+ #: lib/event_notifications.php:492
850
  msgid "high:"
851
  msgstr "Élevé :"
852
 
853
+ #: lib/event_notifications.php:493
854
  msgid "medium:"
855
  msgstr "Moyen :"
856
 
857
+ #: lib/event_notifications.php:495
858
  msgid "Blocked brute-force attacks:"
859
  msgstr "Attaques par force brute bloquées :"
860
 
861
+ #: lib/event_notifications.php:496 lib/event_updates.php:219 lib/utils.php:1050
862
  msgid ""
863
  "This notification can be turned off from NinjaFirewall \"Event Notifications"
864
  "\" page."
866
  "Cette notification peut être désactivée depuis la page \"Notifications "
867
  "d’Événement\" de NinjaFirewall."
868
 
869
+ #: lib/event_updates.php:53
870
+ msgid "Downloaded security rules are corrupted"
871
+ msgstr "Le fichier des règles du pare-feu téléchargé est corrompu"
872
+
873
+ #: lib/event_updates.php:154
874
  msgid "[NinjaFirewall] Warning: Security update available"
875
  msgstr "[NinjaFirewall] Mise à jour de sécurité en attente"
876
 
877
+ #: lib/event_updates.php:156
878
  msgid ""
879
  "NinjaFirewall has detected that there are security updates available for "
880
  "your website:"
882
  "NinjaFirewall a détecté que des mises à jour de sécurité sont disponibles "
883
  "pour votre site Web :"
884
 
885
+ #: lib/event_updates.php:160 lib/event_updates.php:162
 
 
 
 
 
886
  #, php-format
887
  msgid "Blog: %s"
888
  msgstr "Blog : %s"
889
 
890
+ #: lib/event_updates.php:168 lib/event_updates.php:184
891
+ #: lib/event_updates.php:203
892
  #, php-format
893
  msgid "Your version: %s"
894
  msgstr "Votre version : %s"
895
 
896
+ #: lib/event_updates.php:169 lib/event_updates.php:185
897
+ #: lib/event_updates.php:204
898
  #, php-format
899
  msgid "New version: %s"
900
  msgstr "Nouvelle version : %s"
901
 
902
+ #: lib/event_updates.php:171 lib/event_updates.php:188
903
+ #: lib/event_updates.php:207
904
  msgid "Severity: This is an important security update"
905
  msgstr "Sévérité : Ceci est une mise à jour de sécurité importante"
906
 
907
+ #: lib/event_updates.php:173 lib/event_updates.php:190
908
+ #: lib/event_updates.php:209
909
  msgid "Severity: **This is a critical security update**"
910
  msgstr "Sévérité : **Ceci est une mise à jour de sécurité critique**"
911
 
912
+ #: lib/event_updates.php:175 lib/event_updates.php:192
913
+ #: lib/event_updates.php:211
914
  msgid "Type: Security fix"
915
  msgstr "Type : Correctif de sécurité"
916
 
917
+ #: lib/event_updates.php:183
918
  #, php-format
919
  msgid "Plugin: %s"
920
  msgstr "Extension : %s"
921
 
922
+ #: lib/event_updates.php:202
923
  #, php-format
924
  msgid "Theme: %s"
925
  msgstr "Theme : %s"
926
 
927
+ #: lib/event_updates.php:217 lib/utils.php:1566
928
  msgid "Don't leave your blog at risk, make sure to update as soon as possible."
929
  msgstr ""
930
  "Ne laissez pas votre blog en danger, lancez cette mise à jour dès que "
931
  "possible."
932
 
933
+ #: lib/event_updates.php:243
934
+ msgid "Cannot download security rules: connection error"
935
+ msgstr "Impossible de télécharger les règles du pare-feu : erreur de connexion"
936
+
937
+ #: lib/event_updates.php:249
938
+ #, php-format
939
+ msgid "Cannot download security rules: HTTP response error %s"
940
+ msgstr ""
941
+ "Impossible de télécharger les règles du pare-feu : code d'erreur HTTP %s"
942
+
943
  #: lib/events.php:27
944
  msgid "Name:"
945
  msgstr "Nom :"
981
  msgid "uploaded"
982
  msgstr "téléchargé(e)"
983
 
984
+ #: lib/events.php:195
985
  #, php-format
986
  msgid "[NinjaFirewall] Alert: %s"
987
  msgstr "[NinjaFirewall] Alerte : %s"
988
 
989
+ #: lib/events.php:197 lib/events.php:199 lib/utils.php:787
990
  msgid "-Blog:"
991
  msgstr "- Blog :"
992
 
993
+ #: lib/events.php:202
994
  msgid "NinjaFirewall has detected the following activity on your account:"
995
  msgstr "NinjaFirewall a détecté l'activité suivante sur votre compte :"
996
 
997
+ #: lib/events.php:204 lib/utils.php:792
998
  msgid "-User:"
999
  msgstr "- Nom :"
1000
 
1001
+ #: lib/events.php:205 lib/utils.php:793
1002
  msgid "-IP:"
1003
  msgstr "- IP :"
1004
 
1005
+ #: lib/events.php:206 lib/utils.php:794
1006
  msgid "-Date:"
1007
  msgstr "-Date :"
1008
 
1009
+ #: lib/firewall_options.php:29 ninjafirewall.php:896
1010
  msgid "Firewall Options"
1011
  msgstr "Options du Pare-feu"
1012
 
1155
  msgid "There are no backup available yet, check back later."
1156
  msgstr "Il n'y a pas encore de sauvegarde disponible, revenez plus tard."
1157
 
1158
+ #: lib/firewall_options.php:330
1159
  #, php-format
1160
  msgid "Uploaded file is either corrupted or its format is not supported (#%s)"
1161
  msgstr ""
1162
  "Le fichier importé est illisible ou son format n'est pas supporté (#%s)"
1163
 
1164
+ #: lib/firewall_options.php:366
1165
  msgid "The imported file is not compatible with that version of NinjaFirewall"
1166
  msgstr ""
1167
  "Le fichier importé n'est pas compatible avec cette version de NinjaFirewall"
1168
 
1169
+ #: lib/firewall_options.php:473 ninjafirewall.php:213
1170
  msgid "[NinjaFirewall] Alert: Firewall is disabled"
1171
  msgstr "[NinjaFirewall] Alerte : Le pare-feu a été désactivé"
1172
 
1173
+ #: lib/firewall_options.php:475 lib/firewall_options.php:477
1174
+ #: ninjafirewall.php:215 ninjafirewall.php:217
1175
  msgid "-Blog :"
1176
  msgstr "- Blog :"
1177
 
1178
+ #: lib/firewall_options.php:481 ninjafirewall.php:219
1179
  msgid "Someone disabled NinjaFirewall from your WordPress admin dashboard:"
1180
  msgstr ""
1181
  "Quelqu'un a désactivé NinjaFirewall depuis votre Tableau de bord de "
1182
  "WordPress :"
1183
 
1184
+ #: lib/firewall_options.php:484
1185
  msgid ""
1186
  "NinjaFirewall is disabled because someone enabled debugging mode from your "
1187
  "WordPress admin dashboard:"
1189
  "NinjaFirewall est désactivé car quelqu'un activé son \"Mode débogage\" "
1190
  "depuis votre tableau de bord de WordPress :"
1191
 
1192
+ #: lib/firewall_options.php:487
1193
  msgid "[NinjaFirewall] Alert: Firewall override settings"
1194
  msgstr "[NinjaFirewall] Alerte : Modification des paramètres du pare-feu"
1195
 
1196
+ #: lib/firewall_options.php:488
1197
  msgid ""
1198
  "Someone imported a new configuration which overrode the firewall settings:"
1199
  msgstr ""
1200
  "Quelqu'un a importé une nouvelle configuration qui a modifié tous les "
1201
  "paramètres du pare-feu :"
1202
 
1203
+ #: lib/firewall_options.php:494 ninjafirewall.php:220
1204
  msgid "-User :"
1205
  msgstr "- Nom :"
1206
 
1207
+ #: lib/firewall_options.php:495 ninjafirewall.php:221
1208
  msgid "-IP :"
1209
  msgstr "- IP :"
1210
 
1211
+ #: lib/firewall_options.php:496 ninjafirewall.php:222
1212
  msgid "-Date :"
1213
  msgstr "- Date :"
1214
 
1221
  "Pour utiliser cette option, allez dans le <a href=\"%s\">Tableau de Bord</a> "
1222
  "et activez le mode Full WAF de NinjaFirewall."
1223
 
1224
+ #: lib/firewall_policies.php:62 ninjafirewall.php:900
1225
  msgid "Firewall Policies"
1226
  msgstr "Politiques du Pare-feu"
1227
 
1269
  msgid "File Uploads"
1270
  msgstr "Autoriser les téléchargements (uploads)"
1271
 
1272
+ #: lib/firewall_policies.php:144
1273
+ msgid ""
1274
+ "In the Premium version of NinjaFirewall, you can allow uploads while "
1275
+ "rejecting potentially dangerous files, even if they are compressed inside a "
1276
+ "ZIP archive: scripts (PHP, CGI, Ruby, Python, bash/shell), C/C++ source "
1277
+ "code, binaries (MZ/PE/NE and ELF formats), system files (.htaccess, ."
1278
+ "htpasswd and PHP INI) and SVG files containing Javascript/XML events. You "
1279
+ "can easily limit the size of each uploaded file too, without having to "
1280
+ "modify your PHP configuration."
1281
+ msgstr ""
1282
+ "Dans la version Premium de NinjaFirewall, vous pouvez autoriser ou interdire "
1283
+ "tout téléchargement de fichier vers votre site, ou bien bloquer uniquement "
1284
+ "les fichiers potentiellement dangereux, même s'ils sont compresses dans un "
1285
+ "fichier ZIP : scripts (PHP, CGI, Ruby, Python, bash/shell), code source C/C+"
1286
+ "+, fichiers exécutables (MZ/PE/NE et ELF), certains fichiers systèmes (."
1287
+ "htaccess, .htpasswd et PHP INI) et les fichiers SVG contenant du JavaScript "
1288
+ "ou des Événements XML. Vous pouvez aussi sélectionner la taille maximale "
1289
+ "d'un fichier téléchargé, sans avoir à modifier la configuration de PHP."
1290
+
1291
  #: lib/firewall_policies.php:147
1292
  msgid "Allow uploads"
1293
  msgstr "Autoriser"
1490
  msgid "Users Whitelist"
1491
  msgstr "Liste Blanche"
1492
 
1493
+ #: lib/firewall_policies.php:516
1494
+ msgid ""
1495
+ "In the Premium version of NinjaFirewall, the Access Control section allows "
1496
+ "you to whitelist WordPress users depending on their role."
1497
+ msgstr ""
1498
+ "Dans la version Premium de NinjaFirewall, la section Contrôle d'Accès vous "
1499
+ "permet de mettre en liste blanche les utilisateurs de WordPress en fonction "
1500
+ "de leurs rôle."
1501
+
1502
  #: lib/firewall_policies.php:518
1503
  msgid "Add the Administrator to the whitelist (default)."
1504
  msgstr "Ajouter l'Administrateur à la liste blanche (défaut)."
1594
  msgid "Block suspicious bots/scanners"
1595
  msgstr "Bloquer les requêtes provenant de bots/scanners malveillants"
1596
 
1597
+ #: lib/firewall_policies.php:687
1598
+ msgid ""
1599
+ "In the Premium version of NinjaFirewall, the Bot Access Control section "
1600
+ "allows you to select, edit, add and remove bots."
1601
+ msgstr ""
1602
+ "Dans la version Premium de NinjaFirewall, la section Bot Access Control vous "
1603
+ "permet de sélectionner, modifier, ajouter et supprimer les bots."
1604
+
1605
  #: lib/firewall_policies.php:713 lib/help.php:240
1606
  msgid "HTTP_REFERER server variable"
1607
  msgstr "Variable HTTP_REFERER"
2985
  "intercepter les requêtes HTTP envoyées à tout script PHP, même si ce dernier "
2986
  "ne fait pas partie de WordPress (logiciel tiers, backdoor, etc)."
2987
 
2988
+ #: lib/help.php:360 lib/network.php:32 ninjafirewall.php:918
2989
  msgid "Network"
2990
  msgstr "Réseau"
2991
 
3038
  "après avoir pénétré dans votre Tableau de bord de WordPress, d'y installer "
3039
  "une porte dérobée (backdoor) afin de prendre le contrôle de votre blog."
3040
 
3041
+ #: lib/help.php:389 lib/login_protection.php:21 ninjafirewall.php:926
3042
  msgid "Login Protection"
3043
  msgstr "Page de Connexion"
3044
 
4181
  msgid "Low (default)"
4182
  msgstr "Bas (défaut)"
4183
 
4184
+ #: lib/i18n-extra.php:126
4185
  msgid ""
4186
  "If you are using a caching plugin, consult the contextual help before "
4187
  "enabling the antispam."
4189
  "Si vous utilisez une extension de mise en cache, veuillez consulter l'aide "
4190
  "contextuelle avant d'activer l'anti-spam."
4191
 
4192
+ #: lib/i18n-extra.php:127
4193
  msgid "Apply protection to"
4194
  msgstr "Appliquer la protection au"
4195
 
4196
+ #: lib/i18n-extra.php:128
4197
  msgid "Comment forms (defaut)"
4198
  msgstr "Formulaire de commentaire (défaut)"
4199
 
4200
+ #: lib/i18n-extra.php:129
4201
  msgid "User Registration form"
4202
  msgstr "Formulaire d'inscription"
4203
 
4204
+ #: lib/i18n-extra.php:130
4205
  msgid "Save Antispam options"
4206
  msgstr "Sauvegarder les options"
4207
 
4208
+ #: lib/i18n-extra.php:131
4209
  msgid "Please enable JavaScript"
4210
  msgstr "Veuillez activer JavaScript"
4211
 
4212
+ #: lib/i18n-extra.php:132
4213
  msgid "Sorry, this looks like spam to me."
4214
  msgstr "Désolé, mais cela ressemble à du spam."
4215
 
4216
+ #: lib/i18n-extra.php:133
4217
  msgid ""
4218
  "Error: You must be whitelisted in order to use that feature: click on the <a "
4219
  "href=\"?page=nfsubaccess\">Access Control</a> menu and ensure that the \"Do "
4224
  "et assurez vous que l'option \"Ne pas bloquer les utilisateurs suivants\" "
4225
  "est activée pour l'Administrateur/Super Admin."
4226
 
4227
+ #: lib/i18n-extra.php:134
4228
  msgid ""
4229
  "Your license is valid until the indicated expiration date. If you don't "
4230
  "renew it after this date, NinjaFirewall will keep working and protecting "
4235
  "et à protéger votre site comme d'habitude, mais les mises à jour / mises à "
4236
  "niveau ne pourront plus être effectuées."
4237
 
4238
+ #: lib/i18n-extra.php:135
4239
  #, php-format
4240
  msgid ""
4241
  "You can renew your license from <a href=\"%s\">NinTechNet.com</a> website."
4243
  "Vous pouvez renouveler votre licence depuis le site <a href=\"%s"
4244
  "\">NinTechNet.com</a>."
4245
 
4246
+ #: lib/i18n-extra.php:136
4247
  msgid "Use shared memory"
4248
  msgstr "Utiliser la mémoire partagée"
4249
 
4250
+ #: lib/i18n-extra.php:137
4251
  msgid ""
4252
  "This feature allows NinjaFirewall to use Unix shared memory segments in "
4253
  "order to speed up all operations. The firewall will no longer need to "
4266
  "réseau multi-site, la vitesse de traitement de pare-feu va augmenter de 25% "
4267
  "à 30%."
4268
 
4269
+ #: lib/i18n-extra.php:138
4270
  msgid ""
4271
  "This option requires that your PHP version was compiled with the <code>--"
4272
  "enable-shmop</code> parameter, otherwise, if it is not compatible with your "
4275
  "Cette fonction nécessite que PHP soit compilé avec le paramètre <code>--"
4276
  "enable-shmop</code>."
4277
 
4278
+ #: lib/i18n-extra.php:139
4279
  #, php-format
4280
  msgid ""
4281
  "If you are using <a href=\"%s\">GB2312</a> character set (A.K.A <code>GBK</"
4290
  "être en mesure de nettoyer correctement les caractères multi-octets, car il "
4291
  "n'aura pas accès à la base de données."
4292
 
4293
+ #: lib/i18n-extra.php:140
4294
  msgid "Language"
4295
  msgstr "Langue"
4296
 
4297
+ #: lib/i18n-extra.php:141
4298
  msgid ""
4299
  "When this option is enabled, NinjaFirewall will download, if available, the "
4300
  "corresponding language files from the WordPress repo. Then, every hour, it "
4305
  "les heures, il vérifiera s'il existe une nouvelle version et la téléchargera "
4306
  "le cas échéant."
4307
 
4308
+ #: lib/i18n-extra.php:142
4309
  msgid ""
4310
  "Note that this does not apply to <code>en_US</code> and <code>fr_FR</code> "
4311
  "locales because they are already included with NinjaFirewall."
4313
  "Notez que cela ne s'applique pas aux locales <code>en_US</code> et "
4314
  "<code>fr_FR</code> car elles sont déjà incluses avec NinjaFirewall."
4315
 
4316
+ #: lib/i18n-extra.php:143
4317
  #, php-format
4318
  msgid ""
4319
  "This options lets you export you current configuration or import it from "
4327
  "(%s), sinon il sera rejeté. Notez que l'importation effacera toute votre "
4328
  "configuration (options et règles du pare-feu), sauf votre licence WP+."
4329
 
4330
+ #: lib/i18n-extra.php:144
4331
  msgid ""
4332
  "You can allow/disallow uploads, or allow uploads but block scripts (PHP, "
4333
  "CGI, Ruby, Python, bash/shell, JavaScript), C/C++ source code, binaries (MZ/"
4341
  "systèmes (.htaccess, .htpasswd et PHP INI) et les fichiers SVG contenant du "
4342
  "Javascript ou des Événements XML."
4343
 
4344
+ #: lib/i18n-extra.php:145
4345
  msgid "Maximum allowed file size"
4346
  msgstr "Taille maximale autorisée"
4347
 
4348
+ #: lib/i18n-extra.php:146
4349
  msgid ""
4350
  "If you allow uploads, you can select the maximum size of an uploaded file. "
4351
  "Any file bigger than this value will be rejected. Note that if your PHP "
4357
  "configuration de PHP utilise la directive<code>upload_max_filesize</code>, "
4358
  "celle-ci sera prioritaire."
4359
 
4360
+ #: lib/i18n-extra.php:147
4361
  msgid "Decode Base64-encoded <code>POST</code> variable:"
4362
  msgstr ""
4363
  "Décoder les chaîne encodées en Base64 dans la variable <code>POST</"
4364
  "code>&nbsp;:"
4365
 
4366
+ #: lib/i18n-extra.php:148
4367
  #, php-format
4368
  msgid ""
4369
  "Object Serialization is a PHP feature used by many applications to generate "
4382
  "<code>POST</code>, les cookies, ou dans les variables <code>HTTP_REFERER</"
4383
  "code> et <code>HTTP_USER_AGENT</code>."
4384
 
4385
+ #: lib/i18n-extra.php:149
4386
  msgid ""
4387
  "This option will reject any <code>GET</code> or <code>POST</code> request, "
4388
  "<code>COOKIE</code>, <code>HTTP_USER_AGENT</code>, <code>REQUEST_URI</code>, "
4396
  "contenant le caractère ASCI 0x00 (NULL byte) sera bloquée immédiatement. Ce "
4397
  "caractère est dangereux et devrait toujours être rejeté."
4398
 
4399
+ #: lib/i18n-extra.php:150
4400
  msgid ""
4401
  "This option will block any <code>GET</code> or <code>POST</code> request "
4402
  "containing the localhost IP (127.0.0.1). It can be useful to block SQL "
4407
  "les programmes malveillants. Attention toutefois à ne pas bloquer certains "
4408
  "scripts d'installation ou de configuration si vous l'activez."
4409
 
4410
+ #: lib/i18n-extra.php:151
4411
  msgid ""
4412
  "Access Control is a powerful set of directives that can be used to allow or "
4413
  "restrict access to your website based on many criteria."
4416
  "utilisé pour autoriser ou restreindre l'accès à votre site selon de nombreux "
4417
  "critères."
4418
 
4419
+ #: lib/i18n-extra.php:152
4420
  msgid ""
4421
  "To make better use of them, it is important to understand NinjaFirewall's "
4422
  "directives processing order."
4424
  "Afin de pouvoir optimiser son utilisation, il est important de bien "
4425
  "comprendre l'ordre dans lequel NinjaFirewall traite ces directives."
4426
 
4427
+ #: lib/i18n-extra.php:153
4428
  msgid ""
4429
  "Because NinjaFirewall is a PHP firewall, its Access Control options apply to "
4430
  "PHP scripts, not to static elements (e.g., images, JS, CSS etc). Depending "
4435
  "(images, JS, CSS, etc). Selon votre configuration, elle peuvent également "
4436
  "s'appliquer aux pages HTML."
4437
 
4438
+ #: lib/i18n-extra.php:154
4439
  msgid "Processing order:"
4440
  msgstr "Ordre de traitement des directives :"
4441
 
4442
+ #: lib/i18n-extra.php:155
4443
  msgid "Incoming HTTP request"
4444
  msgstr "Requête HTTP entrante"
4445
 
4446
+ #: lib/i18n-extra.php:156
4447
  #, php-format
4448
  msgid "%s file"
4449
  msgstr "Fichier %s"
4450
 
4451
+ #: lib/i18n-extra.php:157
4452
  msgid "Login Protection."
4453
  msgstr "Page de Connexion."
4454
 
4455
+ #: lib/i18n-extra.php:158
4456
  msgid "Access Control (except User Input Access Control):"
4457
  msgstr "Contrôle d'Accès (sauf Contrôle d'accès d'entrée utilisateur) :"
4458
 
4459
+ #: lib/i18n-extra.php:159
4460
  msgid "Role-based Access Control."
4461
  msgstr "Contrôle d'Accès par Rôle."
4462
 
4463
+ #: lib/i18n-extra.php:160
4464
  msgid "Allowed IPs."
4465
  msgstr "Adresses IP autorisées."
4466
 
4467
+ #: lib/i18n-extra.php:161
4468
  msgid "Blocked IPs."
4469
  msgstr "Adresses IP bloquées."
4470
 
4471
+ #: lib/i18n-extra.php:162
4472
  msgid "Allowed URLs."
4473
  msgstr "URL autorisées."
4474
 
4475
+ #: lib/i18n-extra.php:163
4476
  msgid "Blocked URLs."
4477
  msgstr "URL bloquées."
4478
 
4479
+ #: lib/i18n-extra.php:164
4480
  msgid "Bot Access Control."
4481
  msgstr "Contrôle d'accès par Bot."
4482
 
4483
+ #: lib/i18n-extra.php:165
4484
  msgid "Geolocation."
4485
  msgstr "Géolocalisation."
4486
 
4487
+ #: lib/i18n-extra.php:166
4488
  msgid "Rate Limiting."
4489
  msgstr "Limitation du trafic."
4490
 
4491
+ #: lib/i18n-extra.php:167
4492
  msgid "File Guard."
4493
  msgstr "File Guard."
4494
 
4495
+ #: lib/i18n-extra.php:168
4496
  msgid "NinjaFirewall built-in rules and policies + User Input Access Control."
4497
  msgstr ""
4498
  "Règles et politiques du pare-feu + Contrôle d'accès d'entrée utilisateur."
4499
 
4500
+ #: lib/i18n-extra.php:169
4501
  msgid "Response body"
4502
  msgstr "Requête HTTP sortante"
4503
 
4504
+ #: lib/i18n-extra.php:170
4505
  msgid "HTTP response headers (Firewall Policies)."
4506
  msgstr "En-têtes de réponse HTTP (Politiques du Pare-feu)."
4507
 
4508
+ #: lib/i18n-extra.php:171
4509
  msgid "Web Filter."
4510
  msgstr "Web Filter."
4511
 
4512
+ #: lib/i18n-extra.php:172
4513
  #, php-format
4514
  msgid ""
4515
  "By default, any logged in WordPress administrator will not be blocked by "
4528
  "options de la <a href=\"%s\">Page de Connexion</a> qui, si elle sont "
4529
  "activées, seront toujours appliquées."
4530
 
4531
+ #: lib/i18n-extra.php:173
4532
  msgid "You can also add other users to the whitelist, depending on their role."
4533
  msgstr ""
4534
  "Vous pouvez ajouter d'autres utilisateurs à votre liste blanche en se basant "
4535
  "sur leur Rôle."
4536
 
4537
+ #: lib/i18n-extra.php:174
4538
  #, php-format
4539
  msgid ""
4540
  "this option should be used if you are behind a reverse proxy, a load "
4558
  "sera vérifiée. Si elle ne comprend aucune IP utilisable, NinjaFirewall "
4559
  "utilisera <code>REMOTE_ADDR</code>."
4560
 
4561
+ #: lib/i18n-extra.php:175
4562
  msgid ""
4563
  "This option lets you select the HTTP method(s). All Access Control "
4564
  "directives (Geolocation, IPs, bots and URLs) will only apply to the selected "
4568
  "Contrôle d'Accès (Geolocalisation, IP, bots et URL) ne s'appliqueront qu'aux "
4569
  "méthodes sélectionnées."
4570
 
4571
+ #: lib/i18n-extra.php:176
4572
  msgid ""
4573
  "It does not apply to the \"Firewall Policies\" options, which use their own "
4574
  "ones."
4575
  msgstr "Cette option ne concerne pas les \"Politiques du Pare-feu\"."
4576
 
4577
+ #: lib/i18n-extra.php:177
4578
  msgid ""
4579
  "You can filter and block traffic coming from specific countries/territories."
4580
  msgstr ""
4581
  "Vous pouvez filtrer et bloquer le trafic en provenance de pays ou "
4582
  "territoires spécifiques."
4583
 
4584
+ #: lib/i18n-extra.php:178
4585
  msgid ""
4586
  "This is the two-letter code that is used to define a country/territory (e."
4587
  "g., US, UK, FR, DE etc), based on the visitors IP. NinjaFirewall can either "
4594
  "données, ou à partir d'une variable PHP prédéfinie ajoutée par votre serveur "
4595
  "HTTP (par exemple, <code>GEOIP_COUNTRY_CODE</code>)."
4596
 
4597
+ #: lib/i18n-extra.php:179
4598
  #, php-format
4599
  msgid ""
4600
  "You can add/remove any country/territory from the two listboxes. For more "
4606
  "spécifiques (A1, A2, AP, EU etc),vous pouvez consulter l'aide en ligne de <a "
4607
  "href=\"%s\">MaxMind GeoIP</a>."
4608
 
4609
+ #: lib/i18n-extra.php:180
4610
  msgid ""
4611
  "Whether geolocation should apply to the whole site or to specific URLs only "
4612
  "(e.g., /wp-login.php, /xmlrpc.php etc). Leave all fields empty if you want "
4616
  "uniquement (ex: /wp-login.php, /xmlrpc.php etc). Laissez ce champ vide pour "
4617
  "l'appliquer à tout le site."
4618
 
4619
+ #: lib/i18n-extra.php:181
4620
  msgid "Add <code>NINJA_COUNTRY_CODE</code> to PHP headers?"
4621
  msgstr "Ajouter <code>NINJA_COUNTRY_CODE</code> aux en-têtes PHP?"
4622
 
4623
+ #: lib/i18n-extra.php:182
4624
  msgid ""
4625
  "After retrieving the two-letter country/territory code, NinjaFirewall can "
4626
  "add it to the PHP headers in the <code>$_SERVER[\"NINJA_COUNTRY_CODE\"]</"
4632
  "code>. Si vous avez une application PHP qui nécessite de géolocaliser vos "
4633
  "visiteurs, activez cette option."
4634
 
4635
+ #: lib/i18n-extra.php:183
4636
  msgid ""
4637
  "If NinjaFirewall cannot find the two-letter ISO 3166 code, it will replace "
4638
  "it with 2 hyphens (<code>--</code>)."
4640
  "Si NinjaFirewall ne peut pas identifier le code à deux lettres ISO 3166, il "
4641
  "le remplacera par deux traits d'union (<code>--</code>)."
4642
 
4643
+ #: lib/i18n-extra.php:184
4644
  msgid ""
4645
  "PHP code example to use in your theme or plugin to geolocate your visitors:"
4646
  msgstr ""
4647
  "Exemple de code PHP à ajouter à vos scripts pour géolocaliser vos visiteurs :"
4648
 
4649
+ #: lib/i18n-extra.php:185
4650
  msgid ""
4651
  "NinjaFirewall includes GeoLite data created by MaxMind, available from "
4652
  "http://www.maxmind.com"
4654
  "NinjaFirewall includes GeoLite data created by MaxMind, available from "
4655
  "http://www.maxmind.com"
4656
 
4657
+ #: lib/i18n-extra.php:186
4658
  msgid "IP / URL / Bot Access Control"
4659
  msgstr "Contrôle d'Accès par IP / URL / Bots"
4660
 
4661
+ #: lib/i18n-extra.php:187
4662
  msgid ""
4663
  "You can permanently allow/block an IP, a whole range of IP addresses or AS "
4664
  "numbers (Autonomous System number). IPv4 and IPv6 are fully supported by "
4668
  "numéro AS (Autonomous System). NinjaFirewall est compatible avec l'IPv4 et "
4669
  "l'IPv6."
4670
 
4671
+ #: lib/i18n-extra.php:188
4672
  msgid "Full IP:"
4673
  msgstr "IP complète :"
4674
 
4675
+ #: lib/i18n-extra.php:189
4676
  #, php-format
4677
  msgid "IP ranges using CIDR notation: %s or %s."
4678
  msgstr "Plages IP utilisant la notation CIDR : %s ou %s."
4679
 
4680
+ #: lib/i18n-extra.php:190
4681
  msgid "Autonomous System number:"
4682
  msgstr "Numéro AS (Autonomous System) :"
4683
 
4684
+ #: lib/i18n-extra.php:191
4685
  msgid ""
4686
  "This option allows you to slow down aggressive bots, crawlers, web scrapers "
4687
  "or even small HTTP attacks. Any IP reaching the defined threshold will be "
4700
  "adresse IP, utilisez l'option \"Contrôle d'accès par IP\". Par défaut, la "
4701
  "limitation du trafic n'est pas activée."
4702
 
4703
+ #: lib/i18n-extra.php:192
4704
  msgid ""
4705
  "IPs temporarily banned by the Rate Limiting option can be unblocked "
4706
  "immediately by clicking either the \"Save Access Control Directives\" or "
4710
  "débloquées simplement en cliquant sur les boutons \"Sauvegarder les options"
4711
  "\" ou \"Rétablir les valeurs par défaut\" situés en bas de la page."
4712
 
4713
+ #: lib/i18n-extra.php:193
4714
  msgid ""
4715
  "Because NinjaFirewall can handle a lot of HTTP requests per second and block "
4716
  "IPs even before your blog is loaded, we strongly recommend that you disable "
4724
  "seconde, NinjaFirewall vous fera économiser de la bande passante et "
4725
  "permettra de réduire la charge du serveur."
4726
 
4727
+ #: lib/i18n-extra.php:194
4728
  msgid ""
4729
  "You can permanently allow/block any access to one or more PHP scripts based "
4730
  "on their path, relative to the web root (<code>SCRIPT_NAME</code>). You can "
4735
  "(<code>SCRIPT_NAME</code>). Vous pouvez entrer l'URL complète ou partielle, "
4736
  "sensible à la casse."
4737
 
4738
+ #: lib/i18n-extra.php:195
4739
  msgid ""
4740
  "<code>/foo/bar.php</code> will block any access to the <code>bar.php</code> "
4741
  "script located inside a <code>/foo/</code> directory"
4743
  "<code>/foo/bar.php</code> autorisera/bloquera tout accès au script PHP "
4744
  "<code>bar.php</code> situé dans un répertoire <code>/foo/</code>"
4745
 
4746
+ #: lib/i18n-extra.php:196
4747
  msgid "etc"
4748
  msgstr "etc"
4749
 
4750
+ #: lib/i18n-extra.php:197
4751
  msgid ""
4752
  "<code>/foo/</code> will block access to all PHP scripts located inside a "
4753
  "<code>/foo/</code> directory and its sub-directories."
4755
  "<code>/foo/</code> autorisera/bloquera l'accès à tous les scripts PHP situés "
4756
  "dans un répertoire <code>/foo/</code> et ses sous-répertoires."
4757
 
4758
+ #: lib/i18n-extra.php:198
4759
  msgid ""
4760
  "Note that the \"Firewall Policies\" page already includes restrictions to "
4761
  "some WordPress directories."
4763
  "Notez que le menu des \"Politiques du pare-feu\" comporte déjà des "
4764
  "restrictions à certains répertoires de WordPress."
4765
 
4766
+ #: lib/i18n-extra.php:199
4767
  msgid ""
4768
  "You can block bots, scanners and various crawlers based on the "
4769
  "<code>HTTP_USER_AGENT</code> variable. You can enter either a full or "
4773
  "nom (<code>HTTP_USER_AGENT</code>) ou partie de celui-ci. La chaîne de "
4774
  "caractères est insensible à la casse."
4775
 
4776
+ #: lib/i18n-extra.php:200
4777
  msgid ""
4778
  "You can select to ignore or block some specific user input. It applies to "
4779
  "the <code>GET</code>, <code>POST</code> and <code>COOKIE</code> global "
4785
  "<code>COOKIE</code>, par exemple <code>$_GET[\"foo\"]</code> ou <code>"
4786
  "$_POST[\"bar\"]</code> :"
4787
 
4788
+ #: lib/i18n-extra.php:201
4789
  msgid ""
4790
  "When an input is added to the \"Unfiltered input\" list, it will not be "
4791
  "filtered or sanitised. All other input present in the request will be "
4795
  "sera ni filtrée ni nettoyée. Toutes les autres entrées présentes dans la "
4796
  "demande seront filtrées."
4797
 
4798
+ #: lib/i18n-extra.php:202
4799
  msgid ""
4800
  "When an input is added to the \"Blocked input\", NinjaFirewall will block "
4801
  "the request and close the connection if that input is found in the request."
4804
  "bloquera la requête et fermera la connexion si cette entrée est présente "
4805
  "dans la requête."
4806
 
4807
+ #: lib/i18n-extra.php:203
4808
  msgid "Log Event"
4809
  msgstr "Journaliser"
4810
 
4811
+ #: lib/i18n-extra.php:204
4812
  msgid ""
4813
  "You can enable/disable firewall logging for each access control directive "
4814
  "separately."
4816
  "Vous pouvez activer/désactiver la journalisation des directives "
4817
  "indépendamment les unes des autres."
4818
 
4819
+ #: lib/i18n-extra.php:205
4820
  msgid "Web Filter"
4821
  msgstr "Web Filter"
4822
 
4823
+ #: lib/i18n-extra.php:206
4824
  msgid ""
4825
  "If NinjaFirewall can hook and scan incoming requests, it can also hook the "
4826
  "response body (i.e., the output of the HTML page right before it is sent to "
4837
  "etc), des scripts utilisés par les hackers (shell, backdoor) et même des "
4838
  "erreurs (PHP, MySQL)."
4839
 
4840
+ #: lib/i18n-extra.php:207
4841
  msgid ""
4842
  "In the case of a positive detection, NinjaFirewall will not block the "
4843
  "response body but will send you an alert by email."
4845
  "En cas de détection positive, NinjaFirewall ne bloquera pas la requête mais "
4846
  "vous enverra immédiatement une alerte par e-mail."
4847
 
4848
+ #: lib/i18n-extra.php:208
4849
  msgid "Search HTML page for the following keywords"
4850
  msgstr "Rechercher les mots suivants dans la page HTML"
4851
 
4852
+ #: lib/i18n-extra.php:209
4853
  msgid ""
4854
  "You can enter any keyword from 4 to 150 characters and select whether the "
4855
  "search will be case sensitive or not."
4857
  "Vous pouvez entrer de 4 à 150 caractères et sélectionner si la recherche est "
4858
  "sensible à la casse."
4859
 
4860
+ #: lib/i18n-extra.php:210
4861
  msgid "Email Alerts"
4862
  msgstr "Alertes E-mail"
4863
 
4864
+ #: lib/i18n-extra.php:211
4865
  msgid ""
4866
  "You can use the notification throttling option to limit the frequency of "
4867
  "alerts sent to you (and written to the firewall log) and select whether you "
4873
  "d'Événement \". La page HTML ayant déclenché cette alerte peut être jointe à "
4874
  "l'e-mail."
4875
 
4876
+ #: lib/i18n-extra.php:212
4877
  msgid ""
4878
  "Response body filtering can be resource-intensive. Try to limit the number "
4879
  "of keywords to what you really need (less than 10) and, if possible, prefer "
4883
  "limiter le nombre de mots-clés (moins de 10) et, si possible, préférez la "
4884
  "recherche sensible à la casse."
4885
 
4886
+ #: lib/i18n-extra.php:213
4887
  msgid ""
4888
  "NinjaFirewall can protect your blog against spam without user interaction (e."
4889
  "g., CAPTCHA, math puzzles etc). The protection is totally transparent to "
4898
  "vous utilisez une extension tierce pour créer vos formulaires, ils ne seront "
4899
  "pas protégés contre le spam."
4900
 
4901
+ #: lib/i18n-extra.php:214
4902
  msgid "Protection level:"
4903
  msgstr "Niveau de protection :"
4904
 
4905
+ #: lib/i18n-extra.php:215
4906
  msgid ""
4907
  "Select the level of protection. In most cases, <strong>Low</strong> should "
4908
  "be enough."
4910
  "Sélectionnez le niveau de protection. Dans la plupart des cas \"Bas\" est "
4911
  "suffisant."
4912
 
4913
+ #: lib/i18n-extra.php:216
4914
  msgid "Apply protection to:"
4915
  msgstr "Appliquer la protection à :"
4916
 
4917
+ #: lib/i18n-extra.php:217
4918
  msgid "Whether to protect comment and/or registration forms."
4919
  msgstr "S'il faut protéger les formulaires de commentaire et d'inscription."
4920
 
4921
+ #: lib/i18n-extra.php:218
4922
  msgid "If you are using a caching plugin, ensure you follow these steps:"
4923
  msgstr ""
4924
  "Si vous utilisez une extension de mise en cache, veuillez procéder de la "
4925
  "sorte :"
4926
 
4927
+ #: lib/i18n-extra.php:219
4928
  msgid ""
4929
  "Set the Protection Level to \"Low\" only. Do not use another value, "
4930
  "otherwise the antispam could behave erratically after a while."
4932
  "Réglez le niveau de protection sur \"Bas\" uniquement. N'utilisez pas "
4933
  "d'autre niveau, sinon l'anti-spam pourrait se comporter de façon erratique."
4934
 
4935
+ #: lib/i18n-extra.php:220
4936
  msgid ""
4937
  "Flush/clear your cache immediately after enabling or disabling the antispam."
4938
  msgstr ""
4939
  "Videz / effacez votre cache immédiatement après l'activation ou la "
4940
  "désactivation de l'anti-spam."
4941
 
4942
+ #: lib/i18n-extra.php:221
4943
  msgid ""
4944
  "The firewall log displays blocked and sanitised requests as well as some "
4945
  "useful information. It has 6 columns:"
4947
  "Le journal du pare-feu affiche les requêtes HTTP qui ont été bloquées ou "
4948
  "nettoyées ainsi que d'autres informations utiles. Il a six colonnes :"
4949
 
4950
+ #: lib/i18n-extra.php:222
4951
  msgid ""
4952
  "RULE : reference of the NinjaFirewall built-in security rule that triggered "
4953
  "the action. A hyphen (<code>-</code>) instead of a number means it was a "
4958
  "d'un numéro signifie que la règle provient de votre configuration "
4959
  "personnelle de la page \"Politiques du Pare-feu\" ou \"Contrôle d'Accès\"."
4960
 
4961
+ #: lib/i18n-extra.php:223
4962
  msgid "The log can also be exported as a TSV (tab-separated values) text file."
4963
  msgstr ""
4964
  "Le journal peut aussi être exporté au format TSV (valeurs séparées par des "
4965
  "tabulations)."
4966
 
4967
+ #: lib/i18n-extra.php:224
4968
  msgid "Enable firewall log"
4969
  msgstr "Activer le journal du pare-feu"
4970
 
4971
+ #: lib/i18n-extra.php:225
4972
  msgid "You can disable/enable the firewall log from this page."
4973
  msgstr ""
4974
  "Vous pouvez activer / désactiver le journal du pare-feu à partir de cette "
4975
  "page."
4976
 
4977
+ #: lib/i18n-extra.php:226
4978
  msgid ""
4979
  "Brute-force attacks will still be written to the firewall log, even if you "
4980
  "disable it."
4982
  "Les attaques par force brute seront toujours enregistrées dans le journal du "
4983
  "pare-feu, même si vous désactivez celui-ci."
4984
 
4985
+ #: lib/i18n-extra.php:227
4986
  msgid "Auto-rotate log"
4987
  msgstr "Rotation automatique du journal"
4988
 
4989
+ #: lib/i18n-extra.php:228
4990
  msgid ""
4991
  "NinjaFirewall will rotate its log automatically on the very first day of "
4992
  "each month. If your site is very busy, you may want to allow it to rotate "
4997
  "effectuée plus tôt, dans le cas où le journal aurait atteint une certaine "
4998
  "taille (Mo)."
4999
 
5000
+ #: lib/i18n-extra.php:229
5001
  msgid ""
5002
  "By default, if will rotate the log each month or earlier, if it reaches 2 "
5003
  "megabytes."
5004
  msgstr "Par défaut, cette taille est fixée à 2 Mo."
5005
 
5006
+ #: lib/i18n-extra.php:230
5007
  msgid ""
5008
  "Rotated logs, if any, can be selected and viewed from the dropdown menu."
5009
  msgstr ""
5010
  "Les journaux des mois précédents sont accessibles depuis le menu déroulant "
5011
  "situé au dessus de la fenêtre."
5012
 
5013
+ #: lib/i18n-extra.php:231
5014
  msgid "Syslog"
5015
  msgstr "Syslog"
5016
 
5017
+ #: lib/i18n-extra.php:232
5018
  msgid ""
5019
  "In addition to the firewall log, events can also be redirected to the syslog "
5020
  "server (<code>LOG_USER</code> facility)."
5022
  "En plus d'écrire dans son journal, le pare-feu peut aussi utiliser le "
5023
  "serveur Syslog (catégorie <code>LOG_USER</code>)."
5024
 
5025
+ #: lib/i18n-extra.php:233
5026
  msgid ""
5027
  "If you have a shared hosting account, keep this option disabled as you do "
5028
  "not have any access to the server logs."
5030
  "Si vous avez un hébergement mutualisé, laissez cette option désactivée car "
5031
  "vous n'avez pas accès aux journaux du serveur."
5032
 
5033
+ #: lib/i18n-extra.php:234
5034
  msgid "The logline uses the following format:"
5035
  msgstr "Le format utilisé est le suivant :"
5036
 
5037
+ #: lib/i18n-extra.php:235
5038
  msgid ""
5039
  "BB: the level of severity as it appears in the firewall log. It can be "
5040
  "<code>CRITICAL</CODE>, <CODE>HIGH</CODE>, <CODE>MEDIUM</CODE>, <CODE>INFO</"
5045
  "<CODE>MEDIUM</CODE>, <CODE>INFO</CODE>, <CODE>UPLOAD</CODE> ou "
5046
  "<CODE>DEBUG_ON</CODE>."
5047
 
5048
+ #: lib/i18n-extra.php:236
5049
  msgid "CCCCCC: the 7-digit incident ID."
5050
  msgstr "CCCCCC : le numéro d'incident à sept chiffres."
5051
 
5052
+ #: lib/i18n-extra.php:237
5053
  msgid "DD: the user IPv4 or IPv6 address."
5054
  msgstr "DD : L'adresse IPv4 ou IPv6 de l'utilisateur."
5055
 
5056
+ #: lib/i18n-extra.php:238
5057
  msgid "EE: the blog (sub-)domain name."
5058
  msgstr "EE : le nom de (sous-)domaine du blog."
5059
 
5060
+ #: lib/i18n-extra.php:239
5061
  #, php-format
5062
  msgid ""
5063
  "This logging option does not apply to the brute-force protection which can "
5069
  "d'authentification du serveur. Voir le menu de la <a href=\"%s\">Page de "
5070
  "Connexion</a>."
5071
 
5072
+ #: lib/i18n-extra.php:240
5073
  msgid ""
5074
  "Secret key: The secret key will be used to generate your public key. Enter "
5075
  "at least 30 ASCII characters, or use the one randomly created by "
5079
  "de 30 à 100 caractères ASCII, ou bien utilisez la clé générée aléatoirement "
5080
  "par NinjaFirewall."
5081
 
5082
+ #: lib/i18n-extra.php:241
5083
  msgid ""
5084
  "This server IP address: As an additional protection layer, you can restrict "
5085
  "access to the remote website(s) to the main server IP only. You can use IPv4 "
5090
  "à se connecter aux sites distants. Si vous ne souhaitez pas de restriction "
5091
  "d’accès par IP, veuillez entrer le caractère <code>*</code>."
5092
 
5093
+ #: lib/i18n-extra.php:242
5094
  #, php-format
5095
  msgid ""
5096
  "Public key: This is the public key that you will need to upload to each "
5099
  "Clé publique : Vous devez configurer vos sites distants avec cette clé. <a "
5100
  "href=\"%s\">Consultez notre blog</a> pour plus d'info."
5101
 
5102
+ #: lib/i18n-extra.php:243
5103
  msgid ""
5104
  "Remote websites URL: Enter the full URL of your NinjaFirewall protected "
5105
  "website(s) that you want to remotely access from the main server."
5108
  "NinjaFirewall auxquels vous souhaitez accéder à distance à partir du serveur "
5109
  "principal."
5110
 
5111
+ #: lib/i18n-extra.php:244
5112
  msgid ""
5113
  "Centralized Logging will keep working even if NinjaFirewall is disabled. Use "
5114
  "the menu below if you want to disable it."
5117
  "NinjaFirewall. Si vous souhaitez complètement désactiver cette option, "
5118
  "faites-le ci-dessous."
5119
 
5120
+ #: lib/i18n-extra.php:245
5121
  msgid "Enable Web Filter"
5122
  msgstr "Activer Web Filter"
5123
 
5124
+ #: lib/i18n-extra.php:246
5125
  msgid "A full or partial string."
5126
  msgstr "Chaîne de caractère complète ou partielle."
5127
 
5128
+ #: lib/i18n-extra.php:247
5129
  msgid "From 4 to maximum 150 characters."
5130
  msgstr "De 4 à 150 caractères."
5131
 
5132
+ #: lib/i18n-extra.php:248
5133
  msgid "Any character, except the vertical bar <code>|</code>"
5134
  msgstr "Tout caractère, sauf la barre verticale <code>|</code>"
5135
 
5136
+ #: lib/i18n-extra.php:249
5137
  msgid "Keywords to search:"
5138
  msgstr "Mots-clés recherchés :"
5139
 
5140
+ #: lib/i18n-extra.php:250
5141
  msgid "Case-sensitive search"
5142
  msgstr "Recherche sensible à la casse"
5143
 
5144
+ #: lib/i18n-extra.php:251
5145
  #, php-format
5146
  msgid "Do not send me more than one email alert in a %s interval"
5147
  msgstr "Ne pas envoyer plus d'un e-mail par tranche de %s"
5148
 
5149
+ #: lib/i18n-extra.php:252
5150
  msgid "5-minute"
5151
  msgstr "5 minutes"
5152
 
5153
+ #: lib/i18n-extra.php:253
5154
  msgid "15-minute"
5155
  msgstr "15 minutes"
5156
 
5157
+ #: lib/i18n-extra.php:254
5158
  msgid "30-minute"
5159
  msgstr "30 minutes"
5160
 
5161
+ #: lib/i18n-extra.php:255
5162
  msgid "1-hour"
5163
  msgstr "1 heure"
5164
 
5165
+ #: lib/i18n-extra.php:256
5166
  msgid "3-hour"
5167
  msgstr "3 heures"
5168
 
5169
+ #: lib/i18n-extra.php:257
5170
  msgid "6-hour"
5171
  msgstr "6 heures"
5172
 
5173
+ #: lib/i18n-extra.php:258
5174
  msgid "12-hour"
5175
  msgstr "12 heures"
5176
 
5177
+ #: lib/i18n-extra.php:259
5178
  msgid "24-hour"
5179
  msgstr "24 heures"
5180
 
5181
+ #: lib/i18n-extra.php:260
5182
  msgid ""
5183
  "Clicking the \"Save Web Filter options\" button below will reset the current "
5184
  "timer."
5185
  msgstr "Cliquer sur \"Sauvegarder les options\" réinitialisera le compteur."
5186
 
5187
+ #: lib/i18n-extra.php:261
5188
  msgid "Attach the HTML page output to email alerts"
5189
  msgstr "Joindre la page HTML à l'e-mail"
5190
 
5191
+ #: lib/i18n-extra.php:262
5192
  msgid "Save Web Filter options"
5193
  msgstr "Sauvegarder les options"
5194
 
5195
+ #: lib/i18n-extra.php:263
5196
  msgid "Help Desk:"
5197
  msgstr "Help Desk :"
5198
 
5199
+ #: lib/i18n-extra.php:264
5200
  msgid "The selected log was deleted"
5201
  msgstr "Le journal sélectionné a été supprimé"
5202
 
5203
+ #: lib/i18n-extra.php:265
5204
  msgid "Export"
5205
  msgstr "Exporter"
5206
 
5207
+ #: lib/i18n-extra.php:266
5208
  msgid "Delete"
5209
  msgstr "Supprimer"
5210
 
5211
+ #: lib/i18n-extra.php:267
5212
  msgid "Delete log?"
5213
  msgstr "Supprimer le journal ?"
5214
 
5215
+ #: lib/i18n-extra.php:268
5216
  msgid "Today"
5217
  msgstr "Aujourd'hui"
5218
 
5219
+ #: lib/i18n-extra.php:269
5220
  msgid "Upload"
5221
  msgstr "Téléchargement"
5222
 
5223
+ #: lib/i18n-extra.php:270
5224
  msgid "Info"
5225
  msgstr "Info"
5226
 
5227
+ #: lib/i18n-extra.php:271
5228
  msgid "Debug"
5229
  msgstr "Débogage"
5230
 
5231
+ #: lib/i18n-extra.php:272
5232
  msgid "IP address:"
5233
  msgstr "Adresse IP :"
5234
 
5235
+ #: lib/i18n-extra.php:273
5236
  msgid "e.g., 1.2.3.4"
5237
  msgstr "ex : 1.2.3.4"
5238
 
5239
+ #: lib/i18n-extra.php:274
5240
  msgid "Add IP to blacklist"
5241
  msgstr "Ajouter à la liste noire"
5242
 
5243
+ #: lib/i18n-extra.php:275
5244
  msgid "Add IP to whitelist"
5245
  msgstr "Ajouter à la liste blanche"
5246
 
5247
+ #: lib/i18n-extra.php:276
5248
  msgid "Add"
5249
  msgstr "Ajouter"
5250
 
5251
+ #: lib/i18n-extra.php:277
5252
  msgid "The address wad added to your IP Access Control list."
5253
  msgstr "L'adresse a été ajoutée à votre liste du Contrôle d'accès par IP."
5254
 
5255
+ #: lib/i18n-extra.php:278
5256
  #, php-format
5257
  msgid "1st day of the month, or if bigger than %s MB"
5258
  msgstr "Le 1er de chaque mois, ou si sa taille dépasse %s Mo"
5259
 
5260
+ #: lib/i18n-extra.php:279
5261
  msgid "1st day of the month, regardless of its size"
5262
  msgstr "Le 1er de chaque mois, quelle que soit sa taille"
5263
 
5264
+ #: lib/i18n-extra.php:280
5265
  msgid "Show the most recent"
5266
  msgstr "Afficher les dernières"
5267
 
5268
+ #: lib/i18n-extra.php:281
5269
  msgid "lines"
5270
  msgstr "lignes"
5271
 
5272
+ #: lib/i18n-extra.php:282
5273
  msgid "Write events to the Syslog server too"
5274
  msgstr "Enregistrer aussi les événements dans le journal syslog"
5275
 
5276
+ #: lib/i18n-extra.php:283
5277
  msgid "Your server configuration is not compatible with this option."
5278
  msgstr ""
5279
  "La configuration de votre serveur n'est pas compatible avec cette option."
5280
 
5281
+ #: lib/i18n-extra.php:284
5282
  msgid "See contextual help before enabling this option."
5283
  msgstr "Consultez l'aide contextuelle avant d'activer cette option."
5284
 
5285
+ #: lib/i18n-extra.php:285
5286
  msgid ""
5287
  "The remote server rejected your request. Make sure that you uploaded the "
5288
  "correct public key."
5290
  "Le serveur distant a rejeté votre requête. Veuillez vous assurer que la clé "
5291
  "publique est correcte."
5292
 
5293
+ #: lib/i18n-extra.php:286
5294
  #, php-format
5295
  msgid "The remote server returned the following HTTP error: %s"
5296
  msgstr "Le serveur HTTP a retourné le code d'erreur suivant : %s"
5297
 
5298
+ #: lib/i18n-extra.php:287
5299
  msgid "The requested log does not exist on the remote website."
5300
  msgstr "Le journal demandé n'existe pas sur le site distant."
5301
 
5302
+ #: lib/i18n-extra.php:288
5303
  msgid "The remote website did not return the expected response."
5304
  msgstr "Le site distant n'a pas retourné la réponse attendue."
5305
 
5306
+ #: lib/i18n-extra.php:289
5307
  msgid "Your server does not seem to be compatible with this option."
5308
  msgstr ""
5309
  "La configuration de votre serveur n'est pas compatible avec cette option."
5310
 
5311
+ #: lib/i18n-extra.php:290
5312
  msgid "Load language files from the WordPress repo"
5313
  msgstr "Charger les fichiers de langue depuis le WordPress.org"
5314
 
5315
+ #: lib/i18n-extra.php:291
5316
  #, php-format
5317
  msgid ""
5318
  "If available, NinjaFirewall will download the language files from <a "
5321
  "Si disponible, NinjaFirewall téléchargera le fichier de langue à partir de "
5322
  "<a %s>translate.wordpress.org</a>."
5323
 
5324
+ #: lib/i18n-extra.php:292
5325
  msgid "Error: you do not have any license."
5326
  msgstr "Erreur : vous n'avez pas de licence."
5327
 
5328
+ #: lib/i18n-extra.php:293
5329
  msgid "You have a valid license."
5330
  msgstr "Votre licence est valide."
5331
 
5332
+ #: lib/i18n-extra.php:294
5333
  msgid ""
5334
  "An unknown error occured while connecting to NinjaFirewall servers. Please "
5335
  "try again in a few minutes"
5337
  "Une erreur inattendue s'est produite lors de la connexion au serveur de "
5338
  "NinjaFirewall. Merci d'essayer à nouveau dans quelques minutes"
5339
 
5340
+ #: lib/i18n-extra.php:295
5341
  msgid ""
5342
  "An error occured while connecting to NinjaFirewall servers. Please try again "
5343
  "in a few minutes"
5345
  "Une erreur inattendue s'est produite lors de la connexion au serveur de "
5346
  "NinjaFirewall. Merci d'essayer à nouveau dans quelques minutes"
5347
 
5348
+ #: lib/i18n-extra.php:296
5349
  msgid "Enter a valid license to save!"
5350
  msgstr "Veuillez entrer un numéro de licence valide !"
5351
 
5352
+ #: lib/i18n-extra.php:297
5353
  msgid "This is already your current license!"
5354
  msgstr "Cette licence est la même que l'actuelle !"
5355
 
5356
+ #: lib/i18n-extra.php:298
5357
  msgid "Your new license has been accepted and saved."
5358
  msgstr "Votre nouvelle licence a été acceptée et sauvegardée."
5359
 
5360
+ #: lib/i18n-extra.php:299
5361
  msgid "This license is not valid"
5362
  msgstr "Cette licence n'est pas valide"
5363
 
5364
+ #: lib/i18n-extra.php:300
5365
  msgid "WP+ Edition License"
5366
  msgstr "Licence WP+ Edition"
5367
 
5368
+ #: lib/i18n-extra.php:301
5369
  msgid "License Number"
5370
  msgstr "Numéro de Licence"
5371
 
5372
+ #: lib/i18n-extra.php:302
5373
  msgid "No license found"
5374
  msgstr "Aucune licence trouvée"
5375
 
5376
+ #: lib/i18n-extra.php:303
5377
  msgid "Click to check your license validity"
5378
  msgstr "Cliquez pour tester la validité de votre licence"
5379
 
5380
+ #: lib/i18n-extra.php:304
5381
  msgid "Expiration date"
5382
  msgstr "Date d'expiration"
5383
 
5384
+ #: lib/i18n-extra.php:305
5385
  msgid "Unknown expiration date"
5386
  msgstr "Date d'expiration inconnue"
5387
 
5388
+ #: lib/i18n-extra.php:306
5389
  msgid "Use the \"Check License Validity\" button to attempt to fix this error."
5390
  msgstr ""
5391
  "Selectionnez \"Cliquez pour tester la validité de votre licence\" pour "
5392
  "tenter de réparer cette erreur."
5393
 
5394
+ #: lib/i18n-extra.php:307
5395
  msgid "Your license will expire soon!"
5396
  msgstr "Votre licence va bientôt expirer !"
5397
 
5398
+ #: lib/i18n-extra.php:308
5399
  msgid "Your license has expired."
5400
  msgstr "Votre licence a expiré."
5401
 
5402
+ #: lib/i18n-extra.php:309
5403
  msgid "License renewal"
5404
  msgstr "Renouvellement de licence"
5405
 
5406
+ #: lib/i18n-extra.php:310
5407
  msgid "Click here to get a license!"
5408
  msgstr "Cliquez ici pour obtenir une licence !"
5409
 
5410
+ #: lib/i18n-extra.php:311
5411
  msgid "Enter your new license and click on the save button"
5412
  msgstr "Entrez votre licence et cliquez sur le bouton pour l'enregistrer"
5413
 
5414
+ #: lib/i18n-extra.php:312
5415
  msgid "Save New License"
5416
  msgstr "Sauvegarder la Licence"
5417
 
5418
+ #: lib/i18n-extra.php:313
5419
  msgid "Allow, but block dangerous files"
5420
  msgstr "Autoriser, mais bloquer les fichiers dangereux"
5421
 
5422
+ #: lib/i18n-extra.php:314
5423
  msgid "See contextual help for the list of files."
5424
  msgstr ""
5425
  "Consultez l'aide contextuelle pour voir la liste des fichiers concernés."
5426
 
5427
+ #: lib/i18n-extra.php:315
5428
  msgid "Apply to ZIP archives file contents"
5429
  msgstr "Appliquer au contenu des fichiers ZIP"
5430
 
5431
+ #: lib/i18n-extra.php:316
5432
  msgid ""
5433
  "Keep this option disabled if you are using scripts such as Paypal IPN or "
5434
  "WordPress WP-Cron, unless you added their IP address or URL to your Access "
5438
  "WordPress WP-Cron, sauf si vous avez ajouté leur adresse IP ou URL dans la "
5439
  "section \"Contrôle d'Accès\"."
5440
 
5441
+ #: lib/i18n-extra.php:317
5442
  #, php-format
5443
  msgid ""
5444
  "Do not send a notification if the user is in the <a href=\"%s\">IP Access "
5455
  "Erreur : Votre fichier .htaccess n'est pas accessible en écriture. Veuillez "
5456
  "modifier ses autorisations : %s"
5457
 
5458
+ #: lib/install.php:110 ninjafirewall.php:656 ninjafirewall.php:660
5459
  #, php-format
5460
  msgid "Error: wrong parameter value (%s)."
5461
  msgstr "Erreur : Mauvais paramètre (%s)."
5504
  msgid "File is not writable"
5505
  msgstr "Le fichier n'est pas accessible en écriture"
5506
 
5507
+ #: lib/install_default.php:168
5508
  msgid ""
5509
  "Error: The installer cannot download the security rules from wordpress.org "
5510
  "website."
5512
  "Erreur : Impossible de télécharger les règles de sécurité depuis le site de "
5513
  "wordpress.org."
5514
 
5515
+ #: lib/install_default.php:169
5516
  msgid ""
5517
  "The server may be temporarily down or you may have network connectivity "
5518
  "problems? Please try again in a few minutes."
5521
  "problèmes de connectivité réseau ? Veuillez ré-essayer d'ici quelques "
5522
  "minutes."
5523
 
5524
+ #: lib/install_default.php:170
5525
  msgid ""
5526
  "NinjaFirewall downloads its rules over an HTTPS secure connection. Maybe "
5527
  "your server does not support SSL? You can force NinjaFirewall to use a non-"
5534
  "connexion non-sécurisée (HTTP) en ajoutant la ligne suivante dans votre "
5535
  "fichier <strong>wp-config.php</strong> :"
5536
 
5537
+ #: lib/install_default.php:243
5538
  #, php-format
5539
  msgid ""
5540
  "NinjaFirewall cannot create its <code>nfwlog/</code>log and cache folder; "
5733
  msgid "Error: unable to write to the %s configuration file"
5734
  msgstr "Erreur : impossible d’écrire dans le fichier de configuration %s"
5735
 
5736
+ #: lib/logs.php:36 ninjafirewall.php:930
5737
  msgid "Logs"
5738
  msgstr "Journaux"
5739
 
5740
+ #: lib/logs.php:41
5741
+ msgid ""
5742
+ "In the Premium version of NinjaFirewall, you can filter the log by threat "
5743
+ "severity, type and date. You can delete it, enable its rotation based on the "
5744
+ "size of the file. It can be exported as a TSV (tab-separated values) text "
5745
+ "file. You can easily add any IP address to your Access Control whitelist or "
5746
+ "blacklist and it is possible to redirect all incidents and events to the "
5747
+ "Syslog server."
5748
+ msgstr ""
5749
+ "Dans la version Premium de NinjaFirewall, vous pouvez filtrer le journal par "
5750
+ "sévérité, type et date de menace. Vous pouvez le supprimer, activer sa "
5751
+ "rotation en fonction de la taille du fichier. Il peut être exporté sous "
5752
+ "forme de fichier texte TSV (valeurs séparées par des tabulations). Vous "
5753
+ "pouvez facilement ajouter n'importe quelle adresse IP à votre liste blanche "
5754
+ "ou liste noire de contrôle d'accès et il est aussi possible de rediriger "
5755
+ "tous les incidents et événements vers le serveur Syslog."
5756
+
5757
+ #: lib/logs.php:41
5758
+ msgid ""
5759
+ "Also, the Centralized Logging feature lets you remotely access the firewall "
5760
+ "log of all your NinjaFirewall protected websites from one single "
5761
+ "installation."
5762
+ msgstr ""
5763
+ "De plus, la fonction de Centralisation des Logs vous permet d'accéder à "
5764
+ "distance au journal du pare-feu de tous vos sites Web protégés par "
5765
+ "NinjaFirewall, et ce à partir d'une seule installation."
5766
+
5767
  #: lib/logs_firewall_log.php:35
5768
  #, php-format
5769
  msgid ""
5788
  msgid "Your public key has been saved"
5789
  msgstr "Votre clé publique a été sauvegardée"
5790
 
 
 
 
 
5791
  #: lib/logs_firewall_log.php:92
5792
  msgid "Note"
5793
  msgstr "Notice"
5880
  "et assurez vous que l'option \"Ajouter l'Administrateur à la liste blanche\" "
5881
  "est activée."
5882
 
5883
+ #: lib/logs_live_log.php:96 ninjafirewall.php:353
5884
  msgid ""
5885
  "Live Log lets you watch your blog traffic in real time. To enable it, click "
5886
  "on the button below."
5989
  msgid "Error: please enter the custom log format."
5990
  msgstr "Erreur : veuillez entrer le format d'affichage."
5991
 
5992
+ #: lib/monitoring.php:43 ninjafirewall.php:904
5993
  msgid "Monitoring"
5994
  msgstr "Monitoring"
5995
 
5996
+ #: lib/monitoring.php:48
5997
+ msgid ""
5998
+ "In the Premium version of NinjaFirewall, you can also monitor the response "
5999
+ "body, i.e., the output of the HTML page, and search it for some specific "
6000
+ "keywords, which can be useful to identify errors, hacked content and data "
6001
+ "leakage issues on your website."
6002
+ msgstr ""
6003
+ "Dans la version Premium de NinjaFirewall, vous pouvez également filtrer les "
6004
+ "requêtes sortantes, c'est à dire le contenu de la page HTML, et rechercher "
6005
+ "des mots clés spécifiques, ce qui peut être utile pour identifier les "
6006
+ "erreurs, les contenus piratés et les problèmes de fuite de données provenant "
6007
+ "de votre blog."
6008
+
6009
  #: lib/monitoring_file_check.php:62
6010
  msgid "Snapshot successfully created."
6011
  msgstr "L'instantané a bien été créé."
6018
  msgid "You must create a snapshot first."
6019
  msgstr "Vous devez d'abord créer un instantané."
6020
 
6021
+ #: lib/monitoring_file_check.php:102 lib/monitoring_file_check.php:757
6022
  msgid "NinjaFirewall detected that changes were made to your files."
6023
  msgstr "NinjaFirewall a détecté des changements dans vos fichiers."
6024
 
6116
  msgid "Last changes"
6117
  msgstr "Dernières modifications"
6118
 
6119
+ #: lib/monitoring_file_check.php:281 lib/monitoring_file_check.php:765
6120
  #, php-format
6121
  msgid "New files: %s"
6122
  msgstr "Nouveaux fichiers : %s"
6123
 
6124
+ #: lib/monitoring_file_check.php:282 lib/monitoring_file_check.php:767
6125
  #, php-format
6126
  msgid "Deleted files: %s"
6127
  msgstr "Fichiers supprimés : %s"
6128
 
6129
+ #: lib/monitoring_file_check.php:283 lib/monitoring_file_check.php:766
6130
  #, php-format
6131
  msgid "Modified files: %s"
6132
  msgstr "Fichiers modifiés : %s"
6307
  msgid "Error reading new snapshot file."
6308
  msgstr "Erreur lors de la lecture du fichier du nouvel instantané."
6309
 
6310
+ #: lib/monitoring_file_check.php:730 ninjafirewall.php:460
6311
  msgid "New file"
6312
  msgstr "Nouveau fichier"
6313
 
6314
+ #: lib/monitoring_file_check.php:731 ninjafirewall.php:461
6315
  msgid "Modified file"
6316
  msgstr "Fichier modifié"
6317
 
6318
+ #: lib/monitoring_file_check.php:732 ninjafirewall.php:462
6319
  msgid "Deleted file"
6320
  msgstr "Fichier supprimé"
6321
 
6322
+ #: lib/monitoring_file_check.php:756
6323
  msgid "[NinjaFirewall] Alert: File Check detection"
6324
  msgstr "[NinjaFirewall] Alerte: Détection File Check"
6325
 
6326
+ #: lib/monitoring_file_check.php:763 lib/monitoring_file_check.php:785
6327
+ #: lib/security_rules_update.php:564
 
 
 
 
 
 
 
 
6328
  #, php-format
6329
  msgid "Date: %s"
6330
  msgstr "Date : %s"
6331
 
6332
+ #: lib/monitoring_file_check.php:769
6333
  msgid "See attached file for details."
6334
  msgstr "Voir le fichier joint pour plus de détails."
6335
 
6336
+ #: lib/monitoring_file_check.php:778
6337
  msgid "[NinjaFirewall] File Check report"
6338
  msgstr "[NinjaFirewall] Rapport de File Check"
6339
 
6340
+ #: lib/monitoring_file_check.php:779
6341
  msgid "NinjaFirewall did not detect changes in your files."
6342
  msgstr "NinjaFirewall n'a pas détecté de changements dans vos fichiers."
6343
 
6394
  msgid "Save File Guard options"
6395
  msgstr "Sauvegarder les options"
6396
 
6397
+ #: lib/network.php:24 ninjafirewall.php:1191 ninjafirewall.php:1195
6398
  #, php-format
6399
  msgid "You are not allowed to perform this task (%s)."
6400
  msgstr "Vous n'êtes pas autorisé à effectuer cette tâche (%s)."
6419
  msgid "Save Network options"
6420
  msgstr "Sauvegarder les options"
6421
 
6422
+ #: lib/scheduled_tasks.php:120 lib/scheduled_tasks.php:128
6423
+ #: lib/scheduled_tasks.php:143 lib/scheduled_tasks.php:152
6424
+ #, php-format
6425
+ msgid "Scheduled task has stopped, restarting it (%s)"
6426
+ msgstr "La tâche planifiée s'est arrêtée, redémarrage en cours (%s)"
6427
+
6428
+ #: lib/security_rules.php:44 lib/security_rules_update.php:565
6429
+ #: ninjafirewall.php:934
6430
  msgid "Security Rules"
6431
  msgstr "Règles de Sécurité"
6432
 
6537
  msgid "Security rules have been updated."
6538
  msgstr "Les règles de sécurité ont été mises à jour."
6539
 
6540
+ #: lib/security_rules_update.php:91 lib/security_rules_update.php:447
6541
  msgid "No security rules update available."
6542
  msgstr "Aucune mise à jour des règles de sécurité disponible."
6543
 
6558
  msgid "Check for updates"
6559
  msgstr "Vérifier les mises à jour"
6560
 
6561
+ #: lib/security_rules_update.php:148
6562
+ msgid ""
6563
+ "In the Premium version of NinjaFirewall, you can check for security rules "
6564
+ "updates as often as every 15 minutes, versus one hour for the free WP "
6565
+ "Edition."
6566
+ msgstr ""
6567
+ "Dans la version Premium de NinjaFirewall, vous pouvez vérifier les mises à "
6568
+ "jour des règles de sécurité toutes les 15 minutes, contre une heure pour la "
6569
+ "version gratuite WP Edition."
6570
+
6571
  #: lib/security_rules_update.php:151
6572
  msgid "Every 15 minutes"
6573
  msgstr "Toutes les 15 minutes"
6637
  msgid "Delete Log"
6638
  msgstr "Supprimer le journal"
6639
 
6640
+ #: lib/security_rules_update.php:314
6641
  msgid "Error: Wrong rules format."
6642
  msgstr "Erreur : Le format des règles téléchargées ne correspond pas."
6643
 
6644
+ #: lib/security_rules_update.php:323
6645
  msgid "Error: Unable to unserialize the new rules."
6646
  msgstr ""
6647
  "Erreur : Impossible d'extraire les règles du fichier téléchargé (unable to "
6648
  "unserialize the new rules)."
6649
 
6650
+ #: lib/security_rules_update.php:331
6651
  msgid "Error: Unserialized rules seem corrupted."
6652
  msgstr ""
6653
  "Erreur : Le fichier des règles téléchargé semblent corrompu (unserialized "
6654
  "rules seem corrupted)."
6655
 
6656
+ #: lib/security_rules_update.php:390
6657
  #, php-format
6658
  msgid "Security rules updated to version %s."
6659
  msgstr "Les règles de sécurité ont été mises à jour vers la version %s."
6660
 
6661
+ #: lib/security_rules_update.php:436
6662
  msgid "Error: Unable to retrieve the new rules version."
6663
  msgstr "Erreur : Impossible de récupérer la nouvelle version des règles."
6664
 
6665
+ #: lib/security_rules_update.php:454
6666
  #, php-format
6667
  msgid "Error: Server returned a %s HTTP error code (#1)."
6668
  msgstr "Erreur : Le serveur a retourné un code d'erreur HTTP %s (#1)."
6669
 
6670
+ #: lib/security_rules_update.php:461 lib/security_rules_update.php:527
6671
  msgid "Error: Unable to connect to the remote server"
6672
  msgstr "Erreur : Impossible de se connecter au serveur distant"
6673
 
6674
+ #: lib/security_rules_update.php:491
6675
  #, php-format
6676
  msgid "Error: The new rules versions do not match (%s != %s)."
6677
  msgstr ""
6678
  "Erreur : La versions des nouvelles règles ne correspond pas (%s != %s)."
6679
 
6680
+ #: lib/security_rules_update.php:505
6681
  #, php-format
6682
  msgid ""
6683
  "Error: The new rules %s digital signature is not correct. Aborting update, "
6686
  "Erreur : La signature numérique des nouvelles règles %s n'est pas correcte. "
6687
  "Annulation de la mise à jour, les règles ont peut-être été altérées."
6688
 
6689
+ #: lib/security_rules_update.php:520
6690
  #, php-format
6691
  msgid "Error: Server returned a %s HTTP error code (#2)."
6692
  msgstr "Erreur : Le serveur a retourné un code d'erreur HTTP %s (#2)."
6693
 
6694
+ #: lib/security_rules_update.php:556
6695
  msgid "[NinjaFirewall] Security rules update"
6696
  msgstr "[NinjaFirewall] Mise à jour des règles de sécurité"
6697
 
6698
+ #: lib/security_rules_update.php:557
6699
  msgid "NinjaFirewall security rules have been updated:"
6700
  msgstr "Les règles de sécurité de NinjaFirewall ont été mises à jour :"
6701
 
6702
+ #: lib/security_rules_update.php:563
6703
  msgid "Rules version:"
6704
  msgstr "Version des règles :"
6705
 
6706
+ #: lib/security_rules_update.php:565
6707
  #, php-format
6708
  msgid "This notification can be turned off from NinjaFirewall \"%s\" page."
6709
  msgstr ""
6910
  msgid "Cancel and Close"
6911
  msgstr "Annuler et Fermer"
6912
 
6913
+ #: lib/utils.php:188 lib/utils.php:196 lib/utils.php:295
6914
  msgid "N/A"
6915
  msgstr "N/A"
6916
 
6917
+ #: lib/utils.php:202
6918
  #, php-format
6919
  msgid "Attempt to create a new %s"
6920
  msgstr "Tentative de création de %s"
6921
 
6922
+ #: lib/utils.php:206
6923
  #, php-format
6924
  msgid "Attempt to edit a published %s (ID: %s)"
6925
  msgstr "Tentative de modification de %s (ID: %s)"
6926
 
6927
+ #: lib/utils.php:212 lib/utils.php:287
6928
  msgid "Unauthenticated user"
6929
  msgstr "Utilisateur non authentifié"
6930
 
6931
+ #: lib/utils.php:217
6932
  msgid "Blocked post/page edition attempt"
6933
  msgstr "Tentative d'édition de page/article bloquée"
6934
 
6940
  "NinjaFirewall a bloqué une tentative de modification/création d'une page ou "
6941
  "d'un article par un utilisateur qui n'avait pas les capacités nécessaires :"
6942
 
6943
+ #: lib/utils.php:226 lib/utils.php:307 lib/utils.php:426 lib/utils.php:1216
6944
  msgid "Username:"
6945
  msgstr "Utilisateur :"
6946
 
6948
  msgid "Action:"
6949
  msgstr "Action :"
6950
 
6951
+ #: lib/utils.php:242 lib/utils.php:322 lib/utils.php:439 lib/utils.php:1232
6952
+ #: lib/utils.php:1480
 
 
 
 
 
6953
  msgid "A PHP backtrace has been attached to this message for your convenience."
6954
  msgstr ""
6955
  "La pile d'exécution de PHP est jointe à ce message pour votre commodité."
6956
 
6957
+ #: lib/utils.php:244 lib/utils.php:324 lib/utils.php:1234 lib/utils.php:1490
6958
  msgid ""
6959
  "This protection (and notification) can be turned off from NinjaFirewall "
6960
  "\"Firewall Policies\" page."
6962
  "Cette protection (et notification) peut être désactivée à partir de la page "
6963
  "\"Politiques du Pare-feu\" de NinjaFirewall."
6964
 
6965
+ #: lib/utils.php:259 lib/utils.php:260 lib/utils.php:339 lib/utils.php:340
6966
+ #: lib/utils.php:456 lib/utils.php:457 lib/utils.php:1250 lib/utils.php:1251
6967
  msgid "You are not allowed to perform this task."
6968
  msgstr "Vous n'êtes pas autorisé à effectuer cette tâche."
6969
 
6971
  msgid "Blocked post/page deletion attempt"
6972
  msgstr "Tentative de suppression de page/article bloquée"
6973
 
6974
+ #: lib/utils.php:305
6975
  msgid ""
6976
  "NinjaFirewall has blocked an attempt to delete a post by a user who doesn't "
6977
  "have the right capabilities:"
6979
  "NinjaFirewall a bloqué une tentative de suppression d'une page ou d'un "
6980
  "article par un utilisateur qui n'avait pas les capacités nécessaires :"
6981
 
6982
+ #: lib/utils.php:416
6983
  msgid "Blocked user account creation"
6984
  msgstr "Création de compte d'utilisateur bloquée"
6985
 
6986
+ #: lib/utils.php:423
6987
  msgid "NinjaFirewall has blocked an attempt to create a user account:"
6988
  msgstr ""
6989
  "NinjaFirewall a bloqué une tentative de création d'un compte d'utilisateur :"
6990
 
6991
+ #: lib/utils.php:521
6992
+ #, php-format
6993
+ msgid "Backup file is corrupted, deleting it (%s)"
6994
+ msgstr "Le fichier de sauvegarde est corrompu, suppression en cours (%s)"
6995
+
6996
+ #: lib/utils.php:529
6997
+ #, php-format
6998
+ msgid ""
6999
+ "NinjaFirewall's options are corrupted, restoring them from last known good "
7000
+ "backup file (%s)"
7001
+ msgstr ""
7002
+ "Les options de NinjaFirewall sont corrompues, tentative de restauration à "
7003
+ "partir du dernier fichier de sauvegarde connu (%s)"
7004
+
7005
+ #: lib/utils.php:535
7006
+ msgid ""
7007
+ "NinjaFirewall's options are corrupted, restoring their default values (no "
7008
+ "valid backup found)"
7009
+ msgstr ""
7010
+ "Les options de NinjaFirewall sont corrompues, restauration des valeurs par "
7011
+ "défaut (il n'existe pas de fichier de sauvegarde)"
7012
+
7013
+ #: lib/utils.php:718
7014
  msgid ""
7015
  "Warning: Because NinjaFirewall's Login Protection is enabled, Site Health "
7016
  "may return an error message regarding the loopback test (e.g., 404 or 401 "
7021
  "concernant le test de la requête de bouclage (ex.: code d’état HTTP 404 ou "
7022
  "401). Vous pouvez l'ignorer en toute sécurité."
7023
 
7024
+ #: lib/utils.php:741 lib/utils.php:745
7025
  msgid "NinjaFirewall error"
7026
  msgstr "NinjaFirewall Erreur"
7027
 
7028
+ #: lib/utils.php:742
7029
  #, php-format
7030
  msgid ""
7031
  "%s directory cannot be created. Please review your installation and ensure "
7034
  "Le répertoire %s ne peut pas être créé. Vérifiez votre installation et "
7035
  "assurez vous que %s n'est pas en lecture seule."
7036
 
7037
+ #: lib/utils.php:746
7038
  #, php-format
7039
  msgid ""
7040
  "%s directory is read-only. Please review your installation and ensure that "
7043
  "Le répertoire %s est en lecture seule. Vérifiez votre installation et les "
7044
  "permissions de %s."
7045
 
7046
+ #: lib/utils.php:761
7047
  msgid "unknown error"
7048
  msgstr "erreur inconnue"
7049
 
7050
+ #: lib/utils.php:763
7051
  msgid "NinjaFirewall fatal error:"
7052
  msgstr "NinjaFirewall erreur fatale :"
7053
 
7054
+ #: lib/utils.php:764
7055
  msgid "Review your installation, your site is not protected."
7056
  msgstr "Vérifiez votre installation, votre site n'est pas protégé."
7057
 
7058
+ #: lib/utils.php:785
7059
  msgid "Alert: WordPress console login"
7060
  msgstr "Alerte : Connexion à WordPress"
7061
 
7062
+ #: lib/utils.php:791
7063
  msgid "Someone just logged in to your WordPress admin console:"
7064
  msgstr "Quelqu'un vient de se connecter à votre Tableau de bord de WordPress:"
7065
 
7066
+ #: lib/utils.php:910 lib/utils.php:937
7067
  msgid "Forbidden access"
7068
  msgstr "Accès interdit"
7069
 
7070
+ #: lib/utils.php:956
7071
  #, php-format
7072
  msgid ""
7073
  "<strong>ERROR</strong>: Invalid username, email address or password.<br /><a "
7076
  "<strong>ERREUR</strong>: Identifiant, email ou mot de passe invalide.<br /"
7077
  "><a href=\"%s\">Mot de passe perdu</a> ?"
7078
 
7079
+ #: lib/utils.php:1034
7080
  msgid "[NinjaFirewall] Alert: Database changes detected"
7081
  msgstr "[NinjaFirewall] Alerte: Modification dans la base de données"
7082
 
7083
+ #: lib/utils.php:1035
7084
  msgid ""
7085
  "NinjaFirewall has detected that one or more administrator accounts were "
7086
  "modified in the database:"
7088
  "NinjaFirewall a détecté que un ou plusieurs comptes d'administrateur ont été "
7089
  "modifiés dans la base de données:"
7090
 
7091
+ #: lib/utils.php:1040
7092
  #, php-format
7093
  msgid "Total administrators : %s"
7094
  msgstr "Nombre d'administrateurs : %s"
7095
 
7096
+ #: lib/utils.php:1049
7097
  msgid ""
7098
  "If you cannot see any modifications in the above fields, it is possible that "
7099
  "the administrator password was changed."
7101
  "Si vous ne voyez pas de modifications dans les données ci-dessus, il est "
7102
  "possible que le mot de passe administrateur ait été changé."
7103
 
7104
+ #: lib/utils.php:1202
7105
  msgid "Blocked privilege escalation attempt"
7106
  msgstr "Tentatives d'élévation des privilèges"
7107
 
7108
+ #: lib/utils.php:1210
7109
  msgid ""
7110
  "NinjaFirewall has blocked an attempt to modify a user capability by someone "
7111
  "who does not have administrative privileges:"
7113
  "NinjaFirewall a bloqué une tentative de modification de certaines Capacités "
7114
  "par un utilisateur ne disposant pas de privilèges administratifs :"
7115
 
7116
+ #: lib/utils.php:1262
7117
  msgid ""
7118
  "NinjaFirewall brute-force protection is enabled and you are temporarily "
7119
  "whitelisted."
7121
  "La protection de NinjaFirewall contre les attaques par force brute est "
7122
  "activée. Vous êtes temporairement dans la liste blanche."
7123
 
7124
+ #: lib/utils.php:1277
7125
  #, php-format
7126
  msgid ""
7127
  "Hey, it seems that you've been using NinjaFirewall for some time. If you "
7134
  "a>. Il a fallu des milliers d'heures pour le développer, mais il suffit "
7135
  "seulement de quelques minutes pour le noter. Merci !"
7136
 
7137
+ #: lib/utils.php:1452
7138
  msgid ""
7139
  "The attempt was blocked and the option was reversed to its original value."
7140
  msgstr ""
7141
  "La tentative a été bloquée et l'option a été remise à sa valeur d'origine."
7142
 
7143
+ #: lib/utils.php:1457
7144
  msgid "Attempt to modify WordPress settings"
7145
  msgstr "Tentative de modification des paramètres de WordPress"
7146
 
7147
+ #: lib/utils.php:1458
7148
  msgid ""
7149
  "NinjaFirewall has blocked an attempt to modify some important WordPress "
7150
  "settings by a user that does not have administrative privileges:"
7153
  "importants de WordPress par un utilisateur ne disposant pas de privilèges "
7154
  "administratifs :"
7155
 
7156
+ #: lib/utils.php:1459 lib/utils.php:1468
7157
  #, php-format
7158
  msgid "Option: %s"
7159
  msgstr "Option: %s"
7160
 
7161
+ #: lib/utils.php:1460
7162
  #, php-format
7163
  msgid "Original value: %s"
7164
  msgstr "Valeur originale : %s"
7165
 
7166
+ #: lib/utils.php:1461
7167
  #, php-format
7168
  msgid "Modified value: %s"
7169
  msgstr "Valeur modifiée : %s"
7170
 
7171
+ #: lib/utils.php:1462 lib/utils.php:1470
7172
  #, php-format
7173
  msgid "Action taken: %s"
7174
  msgstr "Action prise : %s"
7175
 
7176
+ #: lib/utils.php:1466
7177
  msgid "Code injection attempt in WordPress options table"
7178
  msgstr "Tentative d'injection de code dans la table des options de WordPress"
7179
 
7180
+ #: lib/utils.php:1467
7181
  msgid ""
7182
  "NinjaFirewall has blocked an attempt to inject code in the WordPress options "
7183
  "table by a user that does not have administrative privileges:"
7186
  "options de WordPress par un utilisateur ne disposant pas de privilèges "
7187
  "administratifs :"
7188
 
7189
+ #: lib/utils.php:1469
7190
  #, php-format
7191
  msgid "Code: %s"
7192
  msgstr "Code : %s"
7193
 
7194
+ #: lib/utils.php:1565
7195
  msgid "Important: NinjaFirewall has detected that this is a security update."
7196
  msgstr ""
7197
  "Important : NinjaFirewall a détecté que ceci est un mise à jour de sécurité."
7198
 
7199
+ #: lib/utils.php:1568
7200
  msgid "More info about this warning."
7201
  msgstr "En savoir plus."
7202
 
7203
+ #: lib/utils.php:1591
7204
+ #, php-format
7205
+ msgid "Cannot send notification, no valid email found (%s)"
7206
+ msgstr ""
7207
+ "Impossible d'envoyer la notification, aucune adresse e-mail valide n'a été "
7208
+ "trouvée (%s)"
7209
+
7210
+ #: lib/utils.php:1616
7211
+ #, php-format
7212
+ msgid ""
7213
+ "If you don't have access to that site any longer, you can remove your email "
7214
+ "by clicking the following link (valid for 12 hours): %s"
7215
+ msgstr ""
7216
+ "Si vous n'avez plus accès à ce site, vous pouvez supprimer votre e-mail en "
7217
+ "cliquant sur le lien suivant (valide pendant 12 heures) : %s"
7218
+
7219
+ #: lib/utils.php:1642
7220
  #, php-format
7221
  msgid "Error, cannot create the %s folder."
7222
  msgstr "Erreur, impossible de créer le répertoire %s."
7223
 
7224
+ #: lib/utils.php:1643 lib/utils.php:1652 lib/utils.php:1661
7225
  msgid "Check your server permissions and try again."
7226
  msgstr "Vérifiez les autorisations de votre serveur et réessayez."
7227
 
7228
+ #: lib/utils.php:1651
7229
  #, php-format
7230
  msgid "Error, the %s folder is not writable."
7231
  msgstr "Erreur, le répertoire %s est en lecture seule."
7232
 
7233
+ #: lib/utils.php:1660
7234
  #, php-format
7235
  msgid "Error, cannot write %s."
7236
  msgstr "Erreur, impossible d'écrire dans %s."
7438
 
7439
  #: lib/wpplus.php:143
7440
  msgid ""
7441
+ "The Web Filter can monitor the response body, i.e., the output of the HTML "
7442
+ "page, and search it for some specific keywords, which can be useful to "
7443
  "identify errors, hacked content and data leakage issues in the response body "
7444
  "sent to your visitors."
7445
  msgstr ""
7446
+ "Le Web Filter peut filtrer les requêtes sortantes, c'est à dire le contenu "
7447
+ "de la page HTML, et rechercher des mots clés spécifiques. Un tel filtre peut "
7448
+ "être utile pour identifier les erreurs, les contenus piratés et les "
7449
+ "problèmes de fuite de données proven"
 
7450
 
7451
  #: lib/wpplus.php:144
7452
  msgid ""
7750
  "Impossible de récupérer les règles de l'utilisateur dans la base de données "
7751
  "(#4)"
7752
 
7753
+ #: ninjafirewall.php:139
7754
  msgid ""
7755
  "You do not have \"unfiltered_html\" capability. Please enable it in order to "
7756
  "run NinjaFirewall (or make sure you do not have \"DISALLOW_UNFILTERED_HTML\" "
7761
  "la directive \"DISALLOW_UNFILTERED_HTML\" activée dans votre fichier wp-"
7762
  "config.php)."
7763
 
7764
+ #: ninjafirewall.php:146
7765
  #, php-format
7766
  msgid ""
7767
  "NinjaFirewall requires WordPress %s or greater but your current version is "
7769
  msgstr ""
7770
  "NinjaFirewall nécessite au moins WordPress %s mais votre version est %s."
7771
 
7772
+ #: ninjafirewall.php:150
7773
  #, php-format
7774
  msgid ""
7775
  "NinjaFirewall requires PHP 5.3 or greater but your current version is %s."
7776
  msgstr ""
7777
  "NinjaFirewall nécessite au moins PHP 5.3 mais votre version de PHP est %s."
7778
 
7779
+ #: ninjafirewall.php:154
7780
  #, php-format
7781
  msgid "NinjaFirewall requires the PHP %s extension."
7782
  msgstr "NinjaFirewall nécessite l'extension PHP %s."
7783
 
7784
+ #: ninjafirewall.php:158
7785
  msgid ""
7786
  "You have SAFE_MODE enabled. Please disable it, it is deprecated as of PHP "
7787
  "5.3.0 (see http://php.net/safe-mode)."
7790
  "devenue obsolète depuis PHP 5.3 et a été supprimée depuis PHP 5.4 (cf. "
7791
  "http://php.net/safe-mode)."
7792
 
7793
+ #: ninjafirewall.php:162
7794
  msgid "You are not allowed to activate NinjaFirewall."
7795
  msgstr "Vous n’êtes pas autorisé à activer NinjaFirewall."
7796
 
7797
+ #: ninjafirewall.php:166
7798
  msgid "NinjaFirewall is not compatible with Microsoft Windows."
7799
  msgstr "NinjaFirewall n'est pas compatible avec Microsoft Windows."
7800
 
7801
+ #: ninjafirewall.php:304
7802
  msgid ""
7803
  "All fields will be restored to their default values and any changes you made "
7804
  "will be lost. Continue?"
7806
  "Tous les champs vont être re-initialisés et vos changements seront perdus. "
7807
  "Continuer ?"
7808
 
7809
+ #: ninjafirewall.php:308
7810
  msgid "Missing security nonce, try to reload the page."
7811
  msgstr "La nonce de sécurité est manquante, essayer de recharger cette page."
7812
 
7813
+ #: ninjafirewall.php:310
7814
  msgid "Please select the HTTP server in the list."
7815
  msgstr "Sélectionnez votre serveur HTTP dans la list."
7816
 
7817
+ #: ninjafirewall.php:313
7818
  msgid "Delete the firewall's error log ?"
7819
  msgstr "Supprimer le journal des erreurs ?"
7820
 
7821
+ #: ninjafirewall.php:317
7822
  msgid ""
7823
  "This action will restore the selected configuration file and will override "
7824
  "all your current firewall options, policies and rules. Continue?"
7827
  "remplacera toutes les options, politiques et règles de pare-feu actuelles. "
7828
  "Continuer ?"
7829
 
7830
+ #: ninjafirewall.php:321
7831
  msgid ""
7832
  "Any character that is not a letter [a-zA-Z], a digit [0-9], a dot [.], a "
7833
  "hyphen [-] or an underscore [_] will be removed from the filename and "
7837
  "[.], un trait d'union[-] ou un caractère de soulignement[_], sera supprimé "
7838
  "du nom du fichier et remplacé par le caractère de substitution. Continuer ?"
7839
 
7840
+ #: ninjafirewall.php:323
7841
  msgid ""
7842
  "Ensure that you can access your admin console over HTTPS before enabling "
7843
  "this option, otherwise you will lock yourself out of your site. Continue?"
7846
  "option, sinon vous risqueriez de ne plus pouvoir accéder à l'interface "
7847
  "d'administration. Continuer ?"
7848
 
7849
+ #: ninjafirewall.php:325
7850
  msgid ""
7851
  "WooCommerce is running: if you block accounts creation, your customers won't "
7852
  "be able to sign up. Continue?"
7854
  "WooCommerce est activé : si vous bloquez la création de comptes, vos clients "
7855
  "ne pourront pas s'enregistrer. Continuer ?"
7856
 
7857
+ #: ninjafirewall.php:327
7858
  msgid ""
7859
  "Your blog has user registration enabled: if you block accounts creation, "
7860
  "your customers won't be able to sign up. Continue?"
7862
  "Votre blog accepte les inscriptions : si vous bloquez la création de "
7863
  "comptes, vos clients ne pourront plus s'inscrire. Continuer ?"
7864
 
7865
+ #: ninjafirewall.php:329
7866
  msgid ""
7867
  "Your multisite installation allows users to register new sites: if you "
7868
  "enable this option, they will likely get blocked when creating their blog. "
7871
  "Les utilisateurs sont autorisés a créer des nouveaux sites : si vous activez "
7872
  "cette option, ils ne pourront plus le faire. Continuer ?"
7873
 
7874
+ #: ninjafirewall.php:333
7875
  msgid "Delete the current snapshot ?"
7876
  msgstr "Supprimer l'instantané actuel ?"
7877
 
7878
+ #: ninjafirewall.php:337
7879
  msgid "Invalid character."
7880
  msgstr "Caractère invalide."
7881
 
7882
+ #: ninjafirewall.php:339
7883
  msgid "\"admin\" is not acceptable, please choose another user name."
7884
  msgstr ""
7885
  "\"admin\" n\\'est pas acceptable, merci de bien vouloir choisir un autre "
7886
  "identifiant."
7887
 
7888
+ #: ninjafirewall.php:341
7889
  msgid "Please enter max 1024 character only."
7890
  msgstr "Veuillez ne pas entrer plus de 1 024 caractères."
7891
 
7892
+ #: ninjafirewall.php:343
7893
  msgid "Select when to enable the login protection."
7894
  msgstr "Veuillez sélectionner quand activer la protection."
7895
 
7896
+ #: ninjafirewall.php:345
7897
  msgid "Enter a name and a password for the HTTP authentication."
7898
  msgstr ""
7899
  "Veuillez entrer un nom d'utilisateur et mot de passe pour l'authentification "
7900
  "HTTP."
7901
 
7902
+ #: ninjafirewall.php:349
7903
  msgid "Your public key is not valid."
7904
  msgstr "Votre clé publique n\\'est pas valide."
7905
 
7906
+ #: ninjafirewall.php:355
7907
  msgid "No traffic yet, please wait"
7908
  msgstr "Aucun visiteur actuellement, veuillez patienter"
7909
 
7910
+ #: ninjafirewall.php:357
7911
  msgid "seconds..."
7912
  msgstr "secondes..."
7913
 
7914
+ #: ninjafirewall.php:359
7915
  msgid "Error: Live Log did not receive the expected response from your server:"
7916
  msgstr "Erreur : le serveur distant n\\'a pas retourné la réponse attendue :"
7917
 
7918
+ #: ninjafirewall.php:361
7919
  msgid "Error: URL does not seem to exist (404 Not Found):"
7920
  msgstr "Erreur : l'URL ne semble pas exister (404 Not Found) :"
7921
 
7922
+ #: ninjafirewall.php:363
7923
  msgid "Error: Cannot find your log file. Try to reload this page."
7924
  msgstr ""
7925
  "Erreur : Impossible de trouver le fichier log. Essayez de recharger cette "
7926
  "page."
7927
 
7928
+ #: ninjafirewall.php:365
7929
  msgid "Error: The HTTP server returned the following error code:"
7930
  msgstr "Erreur : Le serveur HTTP a retourné le code d'erreur suivant :"
7931
 
7932
+ #: ninjafirewall.php:641 ninjafirewall.php:761 ninjafirewall.php:830
7933
  msgid "Error: Security nonces do not match. Reload the page and try again."
7934
  msgstr ""
7935
  "Erreur : Les nonces de sécurité ne correspondent pas. Veuillez recharger "
7936
  "cette page."
7937
 
7938
+ #: ninjafirewall.php:647
7939
  msgid "Error: NinjaFirewall is disabled"
7940
  msgstr "Erreur : NinjaFirewall est désactivé"
7941
 
7942
+ #: ninjafirewall.php:652 ninjafirewall.php:766 ninjafirewall.php:796
7943
  #, php-format
7944
  msgid "Error: missing parameter (%s)."
7945
  msgstr "Erreur : Paramètre manquant (%s)."
7946
 
7947
+ #: ninjafirewall.php:892
7948
  msgid "NinjaFirewall: Dashboard"
7949
  msgstr "NinjaFirewall : Tableau de Bord"
7950
 
7951
+ #: ninjafirewall.php:896
7952
  msgid "NinjaFirewall: Firewall Options"
7953
  msgstr "NinjaFirewall : Options du Pare-feu"
7954
 
7955
+ #: ninjafirewall.php:900
7956
  msgid "NinjaFirewall: Firewall Policies"
7957
  msgstr "NinjaFirewall : Politiques du Pare-feu"
7958
 
7959
+ #: ninjafirewall.php:904
7960
  msgid "NinjaFirewall: Monitoring"
7961
  msgstr "NinjaFirewall : Monitoring"
7962
 
7963
+ #: ninjafirewall.php:914
7964
  msgid "NinjaFirewall: Anti-Malware"
7965
  msgstr "NinjaFirewall : Anti-Malware"
7966
 
7967
+ #: ninjafirewall.php:918
7968
  msgid "NinjaFirewall: Network"
7969
  msgstr "NinjaFirewall : Réseau"
7970
 
7971
+ #: ninjafirewall.php:922
7972
  msgid "NinjaFirewall: Event Notifications"
7973
  msgstr "NinjaFirewall : Notifications d’Événement"
7974
 
7975
+ #: ninjafirewall.php:926
7976
  msgid "NinjaFirewall: Log-in Protection"
7977
  msgstr "NinjaFirewall : Page de Connexion"
7978
 
7979
+ #: ninjafirewall.php:930
7980
  msgid "NinjaFirewall: Logs"
7981
  msgstr "NinjaFirewall : Journaux"
7982
 
7983
+ #: ninjafirewall.php:934
7984
  msgid "NinjaFirewall: Security Rules"
7985
  msgstr "NinjaFirewall : Règles de Sécurité"
7986
 
7987
+ #: ninjafirewall.php:978
7988
  msgid "NinjaFirewall Settings"
7989
  msgstr "Réglages de NinjaFirewall"
7990
 
7991
+ #: ninjafirewall.php:986
7992
  msgid "NinjaFirewall is enabled"
7993
  msgstr "NinjaFirewall est activé"
7994
 
7995
+ #: ninjafirewall.php:1126
7996
  msgid "Access Restricted"
7997
  msgstr "Accès limité"
7998
 
7999
+ #: ninjafirewall.php:1132
8000
  msgid "Settings"
8001
  msgstr "Réglages"
8002
 
8003
+ #: ninjafirewall.php:1133
8004
  msgid "Upgrade to Premium"
8005
  msgstr "Passez Premium !"
8006
 
8007
+ #: ninjafirewall.php:1134
8008
  msgid "Rate it!"
8009
  msgstr "Notez-le !"
8010
 
8011
+ #~ msgid ""
8012
+ #~ "In the Premium version of NinjaFirewall, the Access Control section "
8013
+ #~ "allows you to whitelist WordPress users depending on their roles."
8014
+ #~ msgstr ""
8015
+ #~ "Dans la version Premium de NinjaFirewall, la section Contrôle d'Accès "
8016
+ #~ "vous permet de mettre en liste blanche les utilisateurs de WordPress en "
8017
+ #~ "fonction de leurs rôles."
8018
+
8019
+ #~ msgid ""
8020
+ #~ "In the Premium version of NinjaFirewall, the IP Access Control section "
8021
+ #~ "allows you to whitelist WordPress users depending on their roles."
8022
+ #~ msgstr ""
8023
+ #~ "Dans la version Premium de NinjaFirewall, la section Contrôle d'accès par "
8024
+ #~ "IP vous permet de mettre en liste blanche les utilisateurs de WordPress "
8025
+ #~ "en fonction de leurs rôles."
8026
+
8027
+ #~ msgid ""
8028
+ #~ "The Web Filter can hook the response body, i.e., the output of the HTML "
8029
+ #~ "page, and search it for some specific keywords. Such filter can be useful "
8030
+ #~ "to identify errors, hacked content and data leakage issues in the "
8031
+ #~ "response body sent to your visitors."
8032
+ #~ msgstr ""
8033
+ #~ "Le Web Filter peut intercepter les requêtes sortantes, c'est à dire le "
8034
+ #~ "contenu de la page HTML, et rechercher des mots clés spécifiques. Un tel "
8035
+ #~ "filtre peut être utile pour identifier les erreurs, les contenus piratés "
8036
+ #~ "et les problèmes de fuite de données dans le corps de la réponse envoyée "
8037
+ #~ "à vos visiteurs."
8038
+
8039
  #, php-format
8040
  #~ msgid ""
8041
  #~ "Log in to your Openlitespeed admin dashboard, click on \"Virtual Host\", "
languages/ninjafirewall.pot CHANGED
@@ -2,7 +2,7 @@
2
  msgid ""
3
  msgstr ""
4
  "Project-Id-Version: Stable (latest release)\n"
5
- "POT-Creation-Date: 2021-07-25 16:01+0700\n"
6
  "PO-Revision-Date: 2018-04-05 22:52+0700\n"
7
  "Last-Translator: NinTechNet <contact@nintechnet.com>\n"
8
  "Language-Team: \n"
@@ -19,7 +19,7 @@ msgstr ""
19
  "X-Poedit-SearchPath-0: .\n"
20
  "X-Poedit-SearchPathExcluded-0: /languages\n"
21
 
22
- #: lib/anti_malware.php:24 ninjafirewall.php:916
23
  msgid "Anti-Malware"
24
  msgstr ""
25
 
@@ -98,7 +98,7 @@ msgstr ""
98
  msgid "Your changes have been saved."
99
  msgstr ""
100
 
101
- #: lib/dashboard.php:132 ninjafirewall.php:894
102
  msgid "Dashboard"
103
  msgstr ""
104
 
@@ -305,7 +305,7 @@ msgstr ""
305
  msgid "Centralized Logging"
306
  msgstr ""
307
 
308
- #: lib/dashboard.php:331 lib/security_rules_update.php:434
309
  #, php-format
310
  msgid "Error: %s"
311
  msgstr ""
@@ -314,6 +314,14 @@ msgstr ""
314
  msgid "Source IP"
315
  msgstr ""
316
 
 
 
 
 
 
 
 
 
317
  #: lib/dashboard.php:347
318
  #, php-format
319
  msgid "You have a private IP : %s"
@@ -395,6 +403,10 @@ msgstr ""
395
  msgid "Help &amp; configuration"
396
  msgstr ""
397
 
 
 
 
 
398
  #: lib/dashboard_about.php:29
399
  msgid "Our blog:"
400
  msgstr ""
@@ -442,6 +454,13 @@ msgstr ""
442
  msgid "Benchmarks"
443
  msgstr ""
444
 
 
 
 
 
 
 
 
445
  #: lib/dashboard_statistics.php:110
446
  msgid "Average time per request"
447
  msgstr ""
@@ -459,15 +478,15 @@ msgstr ""
459
  msgid "Slowest request"
460
  msgstr ""
461
 
462
- #: lib/dashboard_statistics.php:130 lib/i18n-extra.php:271
463
  msgid "Critical"
464
  msgstr ""
465
 
466
- #: lib/dashboard_statistics.php:131 lib/i18n-extra.php:127
467
  msgid "High"
468
  msgstr ""
469
 
470
- #: lib/dashboard_statistics.php:132 lib/i18n-extra.php:126
471
  msgid "Medium"
472
  msgstr ""
473
 
@@ -475,7 +494,74 @@ msgstr ""
475
  msgid "Select monthly stats to view..."
476
  msgstr ""
477
 
478
- #: lib/event_notifications.php:34 lib/help.php:377 ninjafirewall.php:924
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
479
  msgid "Event Notifications"
480
  msgstr ""
481
 
@@ -593,22 +679,6 @@ msgstr ""
593
  msgid "Send me a daily activity report"
594
  msgstr ""
595
 
596
- #: lib/event_notifications.php:154 lib/event_notifications.php:166
597
- #: lib/firewall_options.php:78 lib/firewall_options.php:113
598
- #: lib/firewall_policies.php:25 lib/login_protection.php:309
599
- #: lib/login_protection.php:324 lib/login_protection.php:345
600
- #: lib/login_protection.php:352 lib/network.php:70
601
- msgid "Yes"
602
- msgstr ""
603
-
604
- #: lib/event_notifications.php:154 lib/event_notifications.php:166
605
- #: lib/firewall_options.php:78 lib/firewall_options.php:113
606
- #: lib/firewall_policies.php:26 lib/login_protection.php:309
607
- #: lib/login_protection.php:324 lib/login_protection.php:345
608
- #: lib/login_protection.php:352 lib/network.php:70
609
- msgid "No"
610
- msgstr ""
611
-
612
  #: lib/event_notifications.php:161
613
  msgid "Log"
614
  msgstr ""
@@ -675,106 +745,114 @@ msgstr ""
675
  msgid "Save Event Notifications"
676
  msgstr ""
677
 
678
- #: lib/event_notifications.php:490
679
  msgid "[NinjaFirewall] Daily Activity Report"
680
  msgstr ""
681
 
682
- #: lib/event_notifications.php:500
683
  #, php-format
684
  msgid "Daily activity report for: %s"
685
  msgstr ""
686
 
687
- #: lib/event_notifications.php:501
688
  msgid "Date Range Processed: Yesterday"
689
  msgstr ""
690
 
691
- #: lib/event_notifications.php:503
692
  msgid "Blocked threats:"
693
  msgstr ""
694
 
695
- #: lib/event_notifications.php:505
696
  msgid "critical:"
697
  msgstr ""
698
 
699
- #: lib/event_notifications.php:506
700
  msgid "high:"
701
  msgstr ""
702
 
703
- #: lib/event_notifications.php:507
704
  msgid "medium:"
705
  msgstr ""
706
 
707
- #: lib/event_notifications.php:509
708
  msgid "Blocked brute-force attacks:"
709
  msgstr ""
710
 
711
- #: lib/event_notifications.php:510 lib/event_updates.php:225 lib/utils.php:1112
712
  msgid ""
713
  "This notification can be turned off from NinjaFirewall \"Event Notifications"
714
  "\" page."
715
  msgstr ""
716
 
717
- #: lib/event_updates.php:160
 
 
 
 
718
  msgid "[NinjaFirewall] Warning: Security update available"
719
  msgstr ""
720
 
721
- #: lib/event_updates.php:162
722
  msgid ""
723
  "NinjaFirewall has detected that there are security updates available for "
724
  "your website:"
725
  msgstr ""
726
 
727
- #: lib/event_updates.php:163 lib/utils.php:233 lib/utils.php:318
728
- #: lib/utils.php:440 lib/utils.php:1101 lib/utils.php:1290 lib/utils.php:1562
729
- msgid "Date:"
730
- msgstr ""
731
-
732
- #: lib/event_updates.php:166 lib/event_updates.php:168
733
  #, php-format
734
  msgid "Blog: %s"
735
  msgstr ""
736
 
737
- #: lib/event_updates.php:174 lib/event_updates.php:190
738
- #: lib/event_updates.php:209
739
  #, php-format
740
  msgid "Your version: %s"
741
  msgstr ""
742
 
743
- #: lib/event_updates.php:175 lib/event_updates.php:191
744
- #: lib/event_updates.php:210
745
  #, php-format
746
  msgid "New version: %s"
747
  msgstr ""
748
 
749
- #: lib/event_updates.php:177 lib/event_updates.php:194
750
- #: lib/event_updates.php:213
751
  msgid "Severity: This is an important security update"
752
  msgstr ""
753
 
754
- #: lib/event_updates.php:179 lib/event_updates.php:196
755
- #: lib/event_updates.php:215
756
  msgid "Severity: **This is a critical security update**"
757
  msgstr ""
758
 
759
- #: lib/event_updates.php:181 lib/event_updates.php:198
760
- #: lib/event_updates.php:217
761
  msgid "Type: Security fix"
762
  msgstr ""
763
 
764
- #: lib/event_updates.php:189
765
  #, php-format
766
  msgid "Plugin: %s"
767
  msgstr ""
768
 
769
- #: lib/event_updates.php:208
770
  #, php-format
771
  msgid "Theme: %s"
772
  msgstr ""
773
 
774
- #: lib/event_updates.php:223 lib/utils.php:1625
775
  msgid "Don't leave your blog at risk, make sure to update as soon as possible."
776
  msgstr ""
777
 
 
 
 
 
 
 
 
 
 
778
  #: lib/events.php:27
779
  msgid "Name:"
780
  msgstr ""
@@ -816,32 +894,32 @@ msgstr ""
816
  msgid "uploaded"
817
  msgstr ""
818
 
819
- #: lib/events.php:201
820
  #, php-format
821
  msgid "[NinjaFirewall] Alert: %s"
822
  msgstr ""
823
 
824
- #: lib/events.php:203 lib/events.php:205 lib/utils.php:842
825
  msgid "-Blog:"
826
  msgstr ""
827
 
828
- #: lib/events.php:208
829
  msgid "NinjaFirewall has detected the following activity on your account:"
830
  msgstr ""
831
 
832
- #: lib/events.php:210 lib/utils.php:847
833
  msgid "-User:"
834
  msgstr ""
835
 
836
- #: lib/events.php:211 lib/utils.php:848
837
  msgid "-IP:"
838
  msgstr ""
839
 
840
- #: lib/events.php:212 lib/utils.php:849
841
  msgid "-Date:"
842
  msgstr ""
843
 
844
- #: lib/firewall_options.php:29 ninjafirewall.php:898
845
  msgid "Firewall Options"
846
  msgstr ""
847
 
@@ -983,52 +1061,52 @@ msgstr ""
983
  msgid "There are no backup available yet, check back later."
984
  msgstr ""
985
 
986
- #: lib/firewall_options.php:376
987
  #, php-format
988
  msgid "Uploaded file is either corrupted or its format is not supported (#%s)"
989
  msgstr ""
990
 
991
- #: lib/firewall_options.php:412
992
  msgid "The imported file is not compatible with that version of NinjaFirewall"
993
  msgstr ""
994
 
995
- #: lib/firewall_options.php:557 ninjafirewall.php:234
996
  msgid "[NinjaFirewall] Alert: Firewall is disabled"
997
  msgstr ""
998
 
999
- #: lib/firewall_options.php:559 lib/firewall_options.php:561
1000
- #: ninjafirewall.php:236 ninjafirewall.php:238
1001
  msgid "-Blog :"
1002
  msgstr ""
1003
 
1004
- #: lib/firewall_options.php:565 ninjafirewall.php:240
1005
  msgid "Someone disabled NinjaFirewall from your WordPress admin dashboard:"
1006
  msgstr ""
1007
 
1008
- #: lib/firewall_options.php:568
1009
  msgid ""
1010
  "NinjaFirewall is disabled because someone enabled debugging mode from your "
1011
  "WordPress admin dashboard:"
1012
  msgstr ""
1013
 
1014
- #: lib/firewall_options.php:571
1015
  msgid "[NinjaFirewall] Alert: Firewall override settings"
1016
  msgstr ""
1017
 
1018
- #: lib/firewall_options.php:572
1019
  msgid ""
1020
  "Someone imported a new configuration which overrode the firewall settings:"
1021
  msgstr ""
1022
 
1023
- #: lib/firewall_options.php:578 ninjafirewall.php:241
1024
  msgid "-User :"
1025
  msgstr ""
1026
 
1027
- #: lib/firewall_options.php:579 ninjafirewall.php:242
1028
  msgid "-IP :"
1029
  msgstr ""
1030
 
1031
- #: lib/firewall_options.php:580 ninjafirewall.php:243
1032
  msgid "-Date :"
1033
  msgstr ""
1034
 
@@ -1039,7 +1117,7 @@ msgid ""
1039
  "enable NinjaFirewall's Full WAF mode."
1040
  msgstr ""
1041
 
1042
- #: lib/firewall_policies.php:62 ninjafirewall.php:902
1043
  msgid "Firewall Policies"
1044
  msgstr ""
1045
 
@@ -1087,6 +1165,17 @@ msgstr ""
1087
  msgid "File Uploads"
1088
  msgstr ""
1089
 
 
 
 
 
 
 
 
 
 
 
 
1090
  #: lib/firewall_policies.php:147
1091
  msgid "Allow uploads"
1092
  msgstr ""
@@ -1271,6 +1360,12 @@ msgstr ""
1271
  msgid "Users Whitelist"
1272
  msgstr ""
1273
 
 
 
 
 
 
 
1274
  #: lib/firewall_policies.php:518
1275
  msgid "Add the Administrator to the whitelist (default)."
1276
  msgstr ""
@@ -1359,6 +1454,12 @@ msgstr ""
1359
  msgid "Block suspicious bots/scanners"
1360
  msgstr ""
1361
 
 
 
 
 
 
 
1362
  #: lib/firewall_policies.php:713 lib/help.php:240
1363
  msgid "HTTP_REFERER server variable"
1364
  msgstr ""
@@ -2374,7 +2475,7 @@ msgid ""
2374
  "package (third-party software, shell script, backdoor etc)."
2375
  msgstr ""
2376
 
2377
- #: lib/help.php:360 lib/network.php:32 ninjafirewall.php:920
2378
  msgid "Network"
2379
  msgstr ""
2380
 
@@ -2410,7 +2511,7 @@ msgid ""
2410
  "theme in order to take full control of your website."
2411
  msgstr ""
2412
 
2413
- #: lib/help.php:389 lib/login_protection.php:21 ninjafirewall.php:928
2414
  msgid "Login Protection"
2415
  msgstr ""
2416
 
@@ -3355,61 +3456,61 @@ msgstr ""
3355
  msgid "Low (default)"
3356
  msgstr ""
3357
 
3358
- #: lib/i18n-extra.php:128
3359
  msgid ""
3360
  "If you are using a caching plugin, consult the contextual help before "
3361
  "enabling the antispam."
3362
  msgstr ""
3363
 
3364
- #: lib/i18n-extra.php:129
3365
  msgid "Apply protection to"
3366
  msgstr ""
3367
 
3368
- #: lib/i18n-extra.php:130
3369
  msgid "Comment forms (defaut)"
3370
  msgstr ""
3371
 
3372
- #: lib/i18n-extra.php:131
3373
  msgid "User Registration form"
3374
  msgstr ""
3375
 
3376
- #: lib/i18n-extra.php:132
3377
  msgid "Save Antispam options"
3378
  msgstr ""
3379
 
3380
- #: lib/i18n-extra.php:133
3381
  msgid "Please enable JavaScript"
3382
  msgstr ""
3383
 
3384
- #: lib/i18n-extra.php:134
3385
  msgid "Sorry, this looks like spam to me."
3386
  msgstr ""
3387
 
3388
- #: lib/i18n-extra.php:135
3389
  msgid ""
3390
  "Error: You must be whitelisted in order to use that feature: click on the <a "
3391
  "href=\"?page=nfsubaccess\">Access Control</a> menu and ensure that the \"Do "
3392
  "not block the following users\" option is enabled for the Admin/Super Admin."
3393
  msgstr ""
3394
 
3395
- #: lib/i18n-extra.php:136
3396
  msgid ""
3397
  "Your license is valid until the indicated expiration date. If you don't "
3398
  "renew it after this date, NinjaFirewall will keep working and protecting "
3399
  "your website as usual, but updates/upgrades will stop."
3400
  msgstr ""
3401
 
3402
- #: lib/i18n-extra.php:137
3403
  #, php-format
3404
  msgid ""
3405
  "You can renew your license from <a href=\"%s\">NinTechNet.com</a> website."
3406
  msgstr ""
3407
 
3408
- #: lib/i18n-extra.php:138
3409
  msgid "Use shared memory"
3410
  msgstr ""
3411
 
3412
- #: lib/i18n-extra.php:139
3413
  msgid ""
3414
  "This feature allows NinjaFirewall to use Unix shared memory segments in "
3415
  "order to speed up all operations. The firewall will no longer need to "
@@ -3419,14 +3520,14 @@ msgid ""
3419
  "processing speed from 25% to 30%, prevent blocking I/O and slow queries."
3420
  msgstr ""
3421
 
3422
- #: lib/i18n-extra.php:140
3423
  msgid ""
3424
  "This option requires that your PHP version was compiled with the <code>--"
3425
  "enable-shmop</code> parameter, otherwise, if it is not compatible with your "
3426
  "server/hosting environment, it will be disabled."
3427
  msgstr ""
3428
 
3429
- #: lib/i18n-extra.php:141
3430
  #, php-format
3431
  msgid ""
3432
  "If you are using <a href=\"%s\">GB2312</a> character set (A.K.A <code>GBK</"
@@ -3436,24 +3537,24 @@ msgid ""
3436
  "used by that charset."
3437
  msgstr ""
3438
 
3439
- #: lib/i18n-extra.php:142
3440
  msgid "Language"
3441
  msgstr ""
3442
 
3443
- #: lib/i18n-extra.php:143
3444
  msgid ""
3445
  "When this option is enabled, NinjaFirewall will download, if available, the "
3446
  "corresponding language files from the WordPress repo. Then, every hour, it "
3447
  "will check if there's a new version and will download it."
3448
  msgstr ""
3449
 
3450
- #: lib/i18n-extra.php:144
3451
  msgid ""
3452
  "Note that this does not apply to <code>en_US</code> and <code>fr_FR</code> "
3453
  "locales because they are already included with NinjaFirewall."
3454
  msgstr ""
3455
 
3456
- #: lib/i18n-extra.php:145
3457
  #, php-format
3458
  msgid ""
3459
  "This options lets you export you current configuration or import it from "
@@ -3463,7 +3564,7 @@ msgid ""
3463
  "configuration, except your current license."
3464
  msgstr ""
3465
 
3466
- #: lib/i18n-extra.php:146
3467
  msgid ""
3468
  "You can allow/disallow uploads, or allow uploads but block scripts (PHP, "
3469
  "CGI, Ruby, Python, bash/shell, JavaScript), C/C++ source code, binaries (MZ/"
@@ -3471,11 +3572,11 @@ msgid ""
3471
  "SVG files containing Javascript/XML events."
3472
  msgstr ""
3473
 
3474
- #: lib/i18n-extra.php:147
3475
  msgid "Maximum allowed file size"
3476
  msgstr ""
3477
 
3478
- #: lib/i18n-extra.php:148
3479
  msgid ""
3480
  "If you allow uploads, you can select the maximum size of an uploaded file. "
3481
  "Any file bigger than this value will be rejected. Note that if your PHP "
@@ -3483,11 +3584,11 @@ msgid ""
3483
  "be used before NinjaFirewall."
3484
  msgstr ""
3485
 
3486
- #: lib/i18n-extra.php:149
3487
  msgid "Decode Base64-encoded <code>POST</code> variable:"
3488
  msgstr ""
3489
 
3490
- #: lib/i18n-extra.php:150
3491
  #, php-format
3492
  msgid ""
3493
  "Object Serialization is a PHP feature used by many applications to generate "
@@ -3498,7 +3599,7 @@ msgid ""
3498
  "request, cookies, user agent and referrer variables."
3499
  msgstr ""
3500
 
3501
- #: lib/i18n-extra.php:151
3502
  msgid ""
3503
  "This option will reject any <code>GET</code> or <code>POST</code> request, "
3504
  "<code>COOKIE</code>, <code>HTTP_USER_AGENT</code>, <code>REQUEST_URI</code>, "
@@ -3507,106 +3608,106 @@ msgid ""
3507
  "is dangerous and should always be rejected."
3508
  msgstr ""
3509
 
3510
- #: lib/i18n-extra.php:152
3511
  msgid ""
3512
  "This option will block any <code>GET</code> or <code>POST</code> request "
3513
  "containing the localhost IP (127.0.0.1). It can be useful to block SQL "
3514
  "dumpers and various hacker's shell scripts."
3515
  msgstr ""
3516
 
3517
- #: lib/i18n-extra.php:153
3518
  msgid ""
3519
  "Access Control is a powerful set of directives that can be used to allow or "
3520
  "restrict access to your website based on many criteria."
3521
  msgstr ""
3522
 
3523
- #: lib/i18n-extra.php:154
3524
  msgid ""
3525
  "To make better use of them, it is important to understand NinjaFirewall's "
3526
  "directives processing order."
3527
  msgstr ""
3528
 
3529
- #: lib/i18n-extra.php:155
3530
  msgid ""
3531
  "Because NinjaFirewall is a PHP firewall, its Access Control options apply to "
3532
  "PHP scripts, not to static elements (e.g., images, JS, CSS etc). Depending "
3533
  "on your configuration, they can also apply to HTML pages."
3534
  msgstr ""
3535
 
3536
- #: lib/i18n-extra.php:156
3537
  msgid "Processing order:"
3538
  msgstr ""
3539
 
3540
- #: lib/i18n-extra.php:157
3541
  msgid "Incoming HTTP request"
3542
  msgstr ""
3543
 
3544
- #: lib/i18n-extra.php:158
3545
  #, php-format
3546
  msgid "%s file"
3547
  msgstr ""
3548
 
3549
- #: lib/i18n-extra.php:159
3550
  msgid "Login Protection."
3551
  msgstr ""
3552
 
3553
- #: lib/i18n-extra.php:160
3554
  msgid "Access Control (except User Input Access Control):"
3555
  msgstr ""
3556
 
3557
- #: lib/i18n-extra.php:161
3558
  msgid "Role-based Access Control."
3559
  msgstr ""
3560
 
3561
- #: lib/i18n-extra.php:162
3562
  msgid "Allowed IPs."
3563
  msgstr ""
3564
 
3565
- #: lib/i18n-extra.php:163
3566
  msgid "Blocked IPs."
3567
  msgstr ""
3568
 
3569
- #: lib/i18n-extra.php:164
3570
  msgid "Allowed URLs."
3571
  msgstr ""
3572
 
3573
- #: lib/i18n-extra.php:165
3574
  msgid "Blocked URLs."
3575
  msgstr ""
3576
 
3577
- #: lib/i18n-extra.php:166
3578
  msgid "Bot Access Control."
3579
  msgstr ""
3580
 
3581
- #: lib/i18n-extra.php:167
3582
  msgid "Geolocation."
3583
  msgstr ""
3584
 
3585
- #: lib/i18n-extra.php:168
3586
  msgid "Rate Limiting."
3587
  msgstr ""
3588
 
3589
- #: lib/i18n-extra.php:169
3590
  msgid "File Guard."
3591
  msgstr ""
3592
 
3593
- #: lib/i18n-extra.php:170
3594
  msgid "NinjaFirewall built-in rules and policies + User Input Access Control."
3595
  msgstr ""
3596
 
3597
- #: lib/i18n-extra.php:171
3598
  msgid "Response body"
3599
  msgstr ""
3600
 
3601
- #: lib/i18n-extra.php:172
3602
  msgid "HTTP response headers (Firewall Policies)."
3603
  msgstr ""
3604
 
3605
- #: lib/i18n-extra.php:173
3606
  msgid "Web Filter."
3607
  msgstr ""
3608
 
3609
- #: lib/i18n-extra.php:174
3610
  #, php-format
3611
  msgid ""
3612
  "By default, any logged in WordPress administrator will not be blocked by "
@@ -3618,11 +3719,11 @@ msgid ""
3618
  "enforced."
3619
  msgstr ""
3620
 
3621
- #: lib/i18n-extra.php:175
3622
  msgid "You can also add other users to the whitelist, depending on their role."
3623
  msgstr ""
3624
 
3625
- #: lib/i18n-extra.php:176
3626
  #, php-format
3627
  msgid ""
3628
  "this option should be used if you are behind a reverse proxy, a load "
@@ -3636,25 +3737,25 @@ msgid ""
3636
  "NinjaFirewall will fall back to <code>REMOTE_ADDR</code>."
3637
  msgstr ""
3638
 
3639
- #: lib/i18n-extra.php:177
3640
  msgid ""
3641
  "This option lets you select the HTTP method(s). All Access Control "
3642
  "directives (Geolocation, IPs, bots and URLs) will only apply to the selected "
3643
  "methods."
3644
  msgstr ""
3645
 
3646
- #: lib/i18n-extra.php:178
3647
  msgid ""
3648
  "It does not apply to the \"Firewall Policies\" options, which use their own "
3649
  "ones."
3650
  msgstr ""
3651
 
3652
- #: lib/i18n-extra.php:179
3653
  msgid ""
3654
  "You can filter and block traffic coming from specific countries/territories."
3655
  msgstr ""
3656
 
3657
- #: lib/i18n-extra.php:180
3658
  msgid ""
3659
  "This is the two-letter code that is used to define a country/territory (e."
3660
  "g., US, UK, FR, DE etc), based on the visitors IP. NinjaFirewall can either "
@@ -3662,7 +3763,7 @@ msgid ""
3662
  "your HTTP server (e.g., <code>GEOIP_COUNTRY_CODE</code>)."
3663
  msgstr ""
3664
 
3665
- #: lib/i18n-extra.php:181
3666
  #, php-format
3667
  msgid ""
3668
  "You can add/remove any country/territory from the two listboxes. For more "
@@ -3670,18 +3771,18 @@ msgid ""
3670
  "want to consult <a href=\"%s\">the MaxMind GeoIP online help</a>."
3671
  msgstr ""
3672
 
3673
- #: lib/i18n-extra.php:182
3674
  msgid ""
3675
  "Whether geolocation should apply to the whole site or to specific URLs only "
3676
  "(e.g., /wp-login.php, /xmlrpc.php etc). Leave all fields empty if you want "
3677
  "it to apply to the whole site."
3678
  msgstr ""
3679
 
3680
- #: lib/i18n-extra.php:183
3681
  msgid "Add <code>NINJA_COUNTRY_CODE</code> to PHP headers?"
3682
  msgstr ""
3683
 
3684
- #: lib/i18n-extra.php:184
3685
  msgid ""
3686
  "After retrieving the two-letter country/territory code, NinjaFirewall can "
3687
  "add it to the PHP headers in the <code>$_SERVER[\"NINJA_COUNTRY_CODE\"]</"
@@ -3689,48 +3790,48 @@ msgid ""
3689
  "visitors location, simply use that variable."
3690
  msgstr ""
3691
 
3692
- #: lib/i18n-extra.php:185
3693
  msgid ""
3694
  "If NinjaFirewall cannot find the two-letter ISO 3166 code, it will replace "
3695
  "it with 2 hyphens (<code>--</code>)."
3696
  msgstr ""
3697
 
3698
- #: lib/i18n-extra.php:186
3699
  msgid ""
3700
  "PHP code example to use in your theme or plugin to geolocate your visitors:"
3701
  msgstr ""
3702
 
3703
- #: lib/i18n-extra.php:187
3704
  msgid ""
3705
  "NinjaFirewall includes GeoLite data created by MaxMind, available from "
3706
  "http://www.maxmind.com"
3707
  msgstr ""
3708
 
3709
- #: lib/i18n-extra.php:188
3710
  msgid "IP / URL / Bot Access Control"
3711
  msgstr ""
3712
 
3713
- #: lib/i18n-extra.php:189
3714
  msgid ""
3715
  "You can permanently allow/block an IP, a whole range of IP addresses or AS "
3716
  "numbers (Autonomous System number). IPv4 and IPv6 are fully supported by "
3717
  "NinjaFirewall."
3718
  msgstr ""
3719
 
3720
- #: lib/i18n-extra.php:190
3721
  msgid "Full IP:"
3722
  msgstr ""
3723
 
3724
- #: lib/i18n-extra.php:191
3725
  #, php-format
3726
  msgid "IP ranges using CIDR notation: %s or %s."
3727
  msgstr ""
3728
 
3729
- #: lib/i18n-extra.php:192
3730
  msgid "Autonomous System number:"
3731
  msgstr ""
3732
 
3733
- #: lib/i18n-extra.php:193
3734
  msgid ""
3735
  "This option allows you to slow down aggressive bots, crawlers, web scrapers "
3736
  "or even small HTTP attacks. Any IP reaching the defined threshold will be "
@@ -3743,14 +3844,14 @@ msgid ""
3743
  "turned off."
3744
  msgstr ""
3745
 
3746
- #: lib/i18n-extra.php:194
3747
  msgid ""
3748
  "IPs temporarily banned by the Rate Limiting option can be unblocked "
3749
  "immediately by clicking either the \"Save Access Control Directives\" or "
3750
  "\"Restore Default Values\" buttons at the bottom of this page."
3751
  msgstr ""
3752
 
3753
- #: lib/i18n-extra.php:195
3754
  msgid ""
3755
  "Because NinjaFirewall can handle a lot of HTTP requests per second and block "
3756
  "IPs even before your blog is loaded, we strongly recommend that you disable "
@@ -3760,43 +3861,43 @@ msgid ""
3760
  "during an attack."
3761
  msgstr ""
3762
 
3763
- #: lib/i18n-extra.php:196
3764
  msgid ""
3765
  "You can permanently allow/block any access to one or more PHP scripts based "
3766
  "on their path, relative to the web root (<code>SCRIPT_NAME</code>). You can "
3767
  "enter either a full or partial path (case-sensitive)."
3768
  msgstr ""
3769
 
3770
- #: lib/i18n-extra.php:197
3771
  msgid ""
3772
  "<code>/foo/bar.php</code> will block any access to the <code>bar.php</code> "
3773
  "script located inside a <code>/foo/</code> directory"
3774
  msgstr ""
3775
 
3776
- #: lib/i18n-extra.php:198
3777
  msgid "etc"
3778
  msgstr ""
3779
 
3780
- #: lib/i18n-extra.php:199
3781
  msgid ""
3782
  "<code>/foo/</code> will block access to all PHP scripts located inside a "
3783
  "<code>/foo/</code> directory and its sub-directories."
3784
  msgstr ""
3785
 
3786
- #: lib/i18n-extra.php:200
3787
  msgid ""
3788
  "Note that the \"Firewall Policies\" page already includes restrictions to "
3789
  "some WordPress directories."
3790
  msgstr ""
3791
 
3792
- #: lib/i18n-extra.php:201
3793
  msgid ""
3794
  "You can block bots, scanners and various crawlers based on the "
3795
  "<code>HTTP_USER_AGENT</code> variable. You can enter either a full or "
3796
  "partial name (case-insensitive)."
3797
  msgstr ""
3798
 
3799
- #: lib/i18n-extra.php:202
3800
  msgid ""
3801
  "You can select to ignore or block some specific user input. It applies to "
3802
  "the <code>GET</code>, <code>POST</code> and <code>COOKIE</code> global "
@@ -3804,34 +3905,34 @@ msgid ""
3804
  "\"]</code>:"
3805
  msgstr ""
3806
 
3807
- #: lib/i18n-extra.php:203
3808
  msgid ""
3809
  "When an input is added to the \"Unfiltered input\" list, it will not be "
3810
  "filtered or sanitised. All other input present in the request will be "
3811
  "filtered."
3812
  msgstr ""
3813
 
3814
- #: lib/i18n-extra.php:204
3815
  msgid ""
3816
  "When an input is added to the \"Blocked input\", NinjaFirewall will block "
3817
  "the request and close the connection if that input is found in the request."
3818
  msgstr ""
3819
 
3820
- #: lib/i18n-extra.php:205
3821
  msgid "Log Event"
3822
  msgstr ""
3823
 
3824
- #: lib/i18n-extra.php:206
3825
  msgid ""
3826
  "You can enable/disable firewall logging for each access control directive "
3827
  "separately."
3828
  msgstr ""
3829
 
3830
- #: lib/i18n-extra.php:207
3831
  msgid "Web Filter"
3832
  msgstr ""
3833
 
3834
- #: lib/i18n-extra.php:208
3835
  msgid ""
3836
  "If NinjaFirewall can hook and scan incoming requests, it can also hook the "
3837
  "response body (i.e., the output of the HTML page right before it is sent to "
@@ -3841,27 +3942,27 @@ msgid ""
3841
  "hackers shell script, redirections and even errors (PHP/MySQL errors)."
3842
  msgstr ""
3843
 
3844
- #: lib/i18n-extra.php:209
3845
  msgid ""
3846
  "In the case of a positive detection, NinjaFirewall will not block the "
3847
  "response body but will send you an alert by email."
3848
  msgstr ""
3849
 
3850
- #: lib/i18n-extra.php:210
3851
  msgid "Search HTML page for the following keywords"
3852
  msgstr ""
3853
 
3854
- #: lib/i18n-extra.php:211
3855
  msgid ""
3856
  "You can enter any keyword from 4 to 150 characters and select whether the "
3857
  "search will be case sensitive or not."
3858
  msgstr ""
3859
 
3860
- #: lib/i18n-extra.php:212
3861
  msgid "Email Alerts"
3862
  msgstr ""
3863
 
3864
- #: lib/i18n-extra.php:213
3865
  msgid ""
3866
  "You can use the notification throttling option to limit the frequency of "
3867
  "alerts sent to you (and written to the firewall log) and select whether you "
@@ -3870,14 +3971,14 @@ msgid ""
3870
  "in the \"Event Notifications\" menu."
3871
  msgstr ""
3872
 
3873
- #: lib/i18n-extra.php:214
3874
  msgid ""
3875
  "Response body filtering can be resource-intensive. Try to limit the number "
3876
  "of keywords to what you really need (less than 10) and, if possible, prefer "
3877
  "case sensitive to case insensitive filtering."
3878
  msgstr ""
3879
 
3880
- #: lib/i18n-extra.php:215
3881
  msgid ""
3882
  "NinjaFirewall can protect your blog against spam without user interaction (e."
3883
  "g., CAPTCHA, math puzzles etc). The protection is totally transparent to "
@@ -3886,132 +3987,132 @@ msgid ""
3886
  "generate your forms, they will not be protected against spam."
3887
  msgstr ""
3888
 
3889
- #: lib/i18n-extra.php:216
3890
  msgid "Protection level:"
3891
  msgstr ""
3892
 
3893
- #: lib/i18n-extra.php:217
3894
  msgid ""
3895
  "Select the level of protection. In most cases, <strong>Low</strong> should "
3896
  "be enough."
3897
  msgstr ""
3898
 
3899
- #: lib/i18n-extra.php:218
3900
  msgid "Apply protection to:"
3901
  msgstr ""
3902
 
3903
- #: lib/i18n-extra.php:219
3904
  msgid "Whether to protect comment and/or registration forms."
3905
  msgstr ""
3906
 
3907
- #: lib/i18n-extra.php:220
3908
  msgid "If you are using a caching plugin, ensure you follow these steps:"
3909
  msgstr ""
3910
 
3911
- #: lib/i18n-extra.php:221
3912
  msgid ""
3913
  "Set the Protection Level to \"Low\" only. Do not use another value, "
3914
  "otherwise the antispam could behave erratically after a while."
3915
  msgstr ""
3916
 
3917
- #: lib/i18n-extra.php:222
3918
  msgid ""
3919
  "Flush/clear your cache immediately after enabling or disabling the antispam."
3920
  msgstr ""
3921
 
3922
- #: lib/i18n-extra.php:223
3923
  msgid ""
3924
  "The firewall log displays blocked and sanitised requests as well as some "
3925
  "useful information. It has 6 columns:"
3926
  msgstr ""
3927
 
3928
- #: lib/i18n-extra.php:224
3929
  msgid ""
3930
  "RULE : reference of the NinjaFirewall built-in security rule that triggered "
3931
  "the action. A hyphen (<code>-</code>) instead of a number means it was a "
3932
  "rule from the \"Firewall Policies\" or \"Access Control\" pages."
3933
  msgstr ""
3934
 
3935
- #: lib/i18n-extra.php:225
3936
  msgid "The log can also be exported as a TSV (tab-separated values) text file."
3937
  msgstr ""
3938
 
3939
- #: lib/i18n-extra.php:226
3940
  msgid "Enable firewall log"
3941
  msgstr ""
3942
 
3943
- #: lib/i18n-extra.php:227
3944
  msgid "You can disable/enable the firewall log from this page."
3945
  msgstr ""
3946
 
3947
- #: lib/i18n-extra.php:228
3948
  msgid ""
3949
  "Brute-force attacks will still be written to the firewall log, even if you "
3950
  "disable it."
3951
  msgstr ""
3952
 
3953
- #: lib/i18n-extra.php:229
3954
  msgid "Auto-rotate log"
3955
  msgstr ""
3956
 
3957
- #: lib/i18n-extra.php:230
3958
  msgid ""
3959
  "NinjaFirewall will rotate its log automatically on the very first day of "
3960
  "each month. If your site is very busy, you may want to allow it to rotate "
3961
  "the log when it reaches a certain size (MB) as well."
3962
  msgstr ""
3963
 
3964
- #: lib/i18n-extra.php:231
3965
  msgid ""
3966
  "By default, if will rotate the log each month or earlier, if it reaches 2 "
3967
  "megabytes."
3968
  msgstr ""
3969
 
3970
- #: lib/i18n-extra.php:232
3971
  msgid ""
3972
  "Rotated logs, if any, can be selected and viewed from the dropdown menu."
3973
  msgstr ""
3974
 
3975
- #: lib/i18n-extra.php:233
3976
  msgid "Syslog"
3977
  msgstr ""
3978
 
3979
- #: lib/i18n-extra.php:234
3980
  msgid ""
3981
  "In addition to the firewall log, events can also be redirected to the syslog "
3982
  "server (<code>LOG_USER</code> facility)."
3983
  msgstr ""
3984
 
3985
- #: lib/i18n-extra.php:235
3986
  msgid ""
3987
  "If you have a shared hosting account, keep this option disabled as you do "
3988
  "not have any access to the server logs."
3989
  msgstr ""
3990
 
3991
- #: lib/i18n-extra.php:236
3992
  msgid "The logline uses the following format:"
3993
  msgstr ""
3994
 
3995
- #: lib/i18n-extra.php:237
3996
  msgid ""
3997
  "BB: the level of severity as it appears in the firewall log. It can be "
3998
  "<code>CRITICAL</CODE>, <CODE>HIGH</CODE>, <CODE>MEDIUM</CODE>, <CODE>INFO</"
3999
  "CODE>, <CODE>UPLOAD</CODE> or <CODE>DEBUG_ON</CODE>."
4000
  msgstr ""
4001
 
4002
- #: lib/i18n-extra.php:238
4003
  msgid "CCCCCC: the 7-digit incident ID."
4004
  msgstr ""
4005
 
4006
- #: lib/i18n-extra.php:239
4007
  msgid "DD: the user IPv4 or IPv6 address."
4008
  msgstr ""
4009
 
4010
- #: lib/i18n-extra.php:240
4011
  msgid "EE: the blog (sub-)domain name."
4012
  msgstr ""
4013
 
4014
- #: lib/i18n-extra.php:241
4015
  #, php-format
4016
  msgid ""
4017
  "This logging option does not apply to the brute-force protection which can "
@@ -4019,14 +4120,14 @@ msgid ""
4019
  "the <a href=\"%s\">Login Protection</a> page."
4020
  msgstr ""
4021
 
4022
- #: lib/i18n-extra.php:242
4023
  msgid ""
4024
  "Secret key: The secret key will be used to generate your public key. Enter "
4025
  "at least 30 ASCII characters, or use the one randomly created by "
4026
  "NinjaFirewall."
4027
  msgstr ""
4028
 
4029
- #: lib/i18n-extra.php:243
4030
  msgid ""
4031
  "This server IP address: As an additional protection layer, you can restrict "
4032
  "access to the remote website(s) to the main server IP only. You can use IPv4 "
@@ -4034,331 +4135,331 @@ msgid ""
4034
  "character instead."
4035
  msgstr ""
4036
 
4037
- #: lib/i18n-extra.php:244
4038
  #, php-format
4039
  msgid ""
4040
  "Public key: This is the public key that you will need to upload to each "
4041
  "remote website (<a href=\"%s\">consult our blog</a> for more info about it)."
4042
  msgstr ""
4043
 
4044
- #: lib/i18n-extra.php:245
4045
  msgid ""
4046
  "Remote websites URL: Enter the full URL of your NinjaFirewall protected "
4047
  "website(s) that you want to remotely access from the main server."
4048
  msgstr ""
4049
 
4050
- #: lib/i18n-extra.php:246
4051
  msgid ""
4052
  "Centralized Logging will keep working even if NinjaFirewall is disabled. Use "
4053
  "the menu below if you want to disable it."
4054
  msgstr ""
4055
 
4056
- #: lib/i18n-extra.php:247
4057
  msgid "Enable Web Filter"
4058
  msgstr ""
4059
 
4060
- #: lib/i18n-extra.php:248
4061
  msgid "A full or partial string."
4062
  msgstr ""
4063
 
4064
- #: lib/i18n-extra.php:249
4065
  msgid "From 4 to maximum 150 characters."
4066
  msgstr ""
4067
 
4068
- #: lib/i18n-extra.php:250
4069
  msgid "Any character, except the vertical bar <code>|</code>"
4070
  msgstr ""
4071
 
4072
- #: lib/i18n-extra.php:251
4073
  msgid "Keywords to search:"
4074
  msgstr ""
4075
 
4076
- #: lib/i18n-extra.php:252
4077
  msgid "Case-sensitive search"
4078
  msgstr ""
4079
 
4080
- #: lib/i18n-extra.php:253
4081
  #, php-format
4082
  msgid "Do not send me more than one email alert in a %s interval"
4083
  msgstr ""
4084
 
4085
- #: lib/i18n-extra.php:254
4086
  msgid "5-minute"
4087
  msgstr ""
4088
 
4089
- #: lib/i18n-extra.php:255
4090
  msgid "15-minute"
4091
  msgstr ""
4092
 
4093
- #: lib/i18n-extra.php:256
4094
  msgid "30-minute"
4095
  msgstr ""
4096
 
4097
- #: lib/i18n-extra.php:257
4098
  msgid "1-hour"
4099
  msgstr ""
4100
 
4101
- #: lib/i18n-extra.php:258
4102
  msgid "3-hour"
4103
  msgstr ""
4104
 
4105
- #: lib/i18n-extra.php:259
4106
  msgid "6-hour"
4107
  msgstr ""
4108
 
4109
- #: lib/i18n-extra.php:260
4110
  msgid "12-hour"
4111
  msgstr ""
4112
 
4113
- #: lib/i18n-extra.php:261
4114
  msgid "24-hour"
4115
  msgstr ""
4116
 
4117
- #: lib/i18n-extra.php:262
4118
  msgid ""
4119
  "Clicking the \"Save Web Filter options\" button below will reset the current "
4120
  "timer."
4121
  msgstr ""
4122
 
4123
- #: lib/i18n-extra.php:263
4124
  msgid "Attach the HTML page output to email alerts"
4125
  msgstr ""
4126
 
4127
- #: lib/i18n-extra.php:264
4128
  msgid "Save Web Filter options"
4129
  msgstr ""
4130
 
4131
- #: lib/i18n-extra.php:265
4132
  msgid "Help Desk:"
4133
  msgstr ""
4134
 
4135
- #: lib/i18n-extra.php:266
4136
  msgid "The selected log was deleted"
4137
  msgstr ""
4138
 
4139
- #: lib/i18n-extra.php:267
4140
  msgid "Export"
4141
  msgstr ""
4142
 
4143
- #: lib/i18n-extra.php:268
4144
  msgid "Delete"
4145
  msgstr ""
4146
 
4147
- #: lib/i18n-extra.php:269
4148
  msgid "Delete log?"
4149
  msgstr ""
4150
 
4151
- #: lib/i18n-extra.php:270
4152
  msgid "Today"
4153
  msgstr ""
4154
 
4155
- #: lib/i18n-extra.php:272
4156
  msgid "Upload"
4157
  msgstr ""
4158
 
4159
- #: lib/i18n-extra.php:273
4160
  msgid "Info"
4161
  msgstr ""
4162
 
4163
- #: lib/i18n-extra.php:274
4164
  msgid "Debug"
4165
  msgstr ""
4166
 
4167
- #: lib/i18n-extra.php:275
4168
  msgid "IP address:"
4169
  msgstr ""
4170
 
4171
- #: lib/i18n-extra.php:276
4172
  msgid "e.g., 1.2.3.4"
4173
  msgstr ""
4174
 
4175
- #: lib/i18n-extra.php:277
4176
  msgid "Add IP to blacklist"
4177
  msgstr ""
4178
 
4179
- #: lib/i18n-extra.php:278
4180
  msgid "Add IP to whitelist"
4181
  msgstr ""
4182
 
4183
- #: lib/i18n-extra.php:279
4184
  msgid "Add"
4185
  msgstr ""
4186
 
4187
- #: lib/i18n-extra.php:280
4188
  msgid "The address wad added to your IP Access Control list."
4189
  msgstr ""
4190
 
4191
- #: lib/i18n-extra.php:281
4192
  #, php-format
4193
  msgid "1st day of the month, or if bigger than %s MB"
4194
  msgstr ""
4195
 
4196
- #: lib/i18n-extra.php:282
4197
  msgid "1st day of the month, regardless of its size"
4198
  msgstr ""
4199
 
4200
- #: lib/i18n-extra.php:283
4201
  msgid "Show the most recent"
4202
  msgstr ""
4203
 
4204
- #: lib/i18n-extra.php:284
4205
  msgid "lines"
4206
  msgstr ""
4207
 
4208
- #: lib/i18n-extra.php:285
4209
  msgid "Write events to the Syslog server too"
4210
  msgstr ""
4211
 
4212
- #: lib/i18n-extra.php:286
4213
  msgid "Your server configuration is not compatible with this option."
4214
  msgstr ""
4215
 
4216
- #: lib/i18n-extra.php:287
4217
  msgid "See contextual help before enabling this option."
4218
  msgstr ""
4219
 
4220
- #: lib/i18n-extra.php:288
4221
  msgid ""
4222
  "The remote server rejected your request. Make sure that you uploaded the "
4223
  "correct public key."
4224
  msgstr ""
4225
 
4226
- #: lib/i18n-extra.php:289
4227
  #, php-format
4228
  msgid "The remote server returned the following HTTP error: %s"
4229
  msgstr ""
4230
 
4231
- #: lib/i18n-extra.php:290
4232
  msgid "The requested log does not exist on the remote website."
4233
  msgstr ""
4234
 
4235
- #: lib/i18n-extra.php:291
4236
  msgid "The remote website did not return the expected response."
4237
  msgstr ""
4238
 
4239
- #: lib/i18n-extra.php:292
4240
  msgid "Your server does not seem to be compatible with this option."
4241
  msgstr ""
4242
 
4243
- #: lib/i18n-extra.php:293
4244
  msgid "Load language files from the WordPress repo"
4245
  msgstr ""
4246
 
4247
- #: lib/i18n-extra.php:294
4248
  #, php-format
4249
  msgid ""
4250
  "If available, NinjaFirewall will download the language files from <a "
4251
  "%s>translate.wordpress.org</a>."
4252
  msgstr ""
4253
 
4254
- #: lib/i18n-extra.php:295
4255
  msgid "Error: you do not have any license."
4256
  msgstr ""
4257
 
4258
- #: lib/i18n-extra.php:296
4259
  msgid "You have a valid license."
4260
  msgstr ""
4261
 
4262
- #: lib/i18n-extra.php:297
4263
  msgid ""
4264
  "An unknown error occured while connecting to NinjaFirewall servers. Please "
4265
  "try again in a few minutes"
4266
  msgstr ""
4267
 
4268
- #: lib/i18n-extra.php:298
4269
  msgid ""
4270
  "An error occured while connecting to NinjaFirewall servers. Please try again "
4271
  "in a few minutes"
4272
  msgstr ""
4273
 
4274
- #: lib/i18n-extra.php:299
4275
  msgid "Enter a valid license to save!"
4276
  msgstr ""
4277
 
4278
- #: lib/i18n-extra.php:300
4279
  msgid "This is already your current license!"
4280
  msgstr ""
4281
 
4282
- #: lib/i18n-extra.php:301
4283
  msgid "Your new license has been accepted and saved."
4284
  msgstr ""
4285
 
4286
- #: lib/i18n-extra.php:302
4287
  msgid "This license is not valid"
4288
  msgstr ""
4289
 
4290
- #: lib/i18n-extra.php:303
4291
  msgid "WP+ Edition License"
4292
  msgstr ""
4293
 
4294
- #: lib/i18n-extra.php:304
4295
  msgid "License Number"
4296
  msgstr ""
4297
 
4298
- #: lib/i18n-extra.php:305
4299
  msgid "No license found"
4300
  msgstr ""
4301
 
4302
- #: lib/i18n-extra.php:306
4303
  msgid "Click to check your license validity"
4304
  msgstr ""
4305
 
4306
- #: lib/i18n-extra.php:307
4307
  msgid "Expiration date"
4308
  msgstr ""
4309
 
4310
- #: lib/i18n-extra.php:308
4311
  msgid "Unknown expiration date"
4312
  msgstr ""
4313
 
4314
- #: lib/i18n-extra.php:309
4315
  msgid "Use the \"Check License Validity\" button to attempt to fix this error."
4316
  msgstr ""
4317
 
4318
- #: lib/i18n-extra.php:310
4319
  msgid "Your license will expire soon!"
4320
  msgstr ""
4321
 
4322
- #: lib/i18n-extra.php:311
4323
  msgid "Your license has expired."
4324
  msgstr ""
4325
 
4326
- #: lib/i18n-extra.php:312
4327
  msgid "License renewal"
4328
  msgstr ""
4329
 
4330
- #: lib/i18n-extra.php:313
4331
  msgid "Click here to get a license!"
4332
  msgstr ""
4333
 
4334
- #: lib/i18n-extra.php:314
4335
  msgid "Enter your new license and click on the save button"
4336
  msgstr ""
4337
 
4338
- #: lib/i18n-extra.php:315
4339
  msgid "Save New License"
4340
  msgstr ""
4341
 
4342
- #: lib/i18n-extra.php:316
4343
  msgid "Allow, but block dangerous files"
4344
  msgstr ""
4345
 
4346
- #: lib/i18n-extra.php:317
4347
  msgid "See contextual help for the list of files."
4348
  msgstr ""
4349
 
4350
- #: lib/i18n-extra.php:318
4351
  msgid "Apply to ZIP archives file contents"
4352
  msgstr ""
4353
 
4354
- #: lib/i18n-extra.php:319
4355
  msgid ""
4356
  "Keep this option disabled if you are using scripts such as Paypal IPN or "
4357
  "WordPress WP-Cron, unless you added their IP address or URL to your Access "
4358
  "Control whitelist."
4359
  msgstr ""
4360
 
4361
- #: lib/i18n-extra.php:320
4362
  #, php-format
4363
  msgid ""
4364
  "Do not send a notification if the user is in the <a href=\"%s\">IP Access "
@@ -4371,7 +4472,7 @@ msgid ""
4371
  "Error: Your .htaccess file is not writable, please change its permissions: %s"
4372
  msgstr ""
4373
 
4374
- #: lib/install.php:110 ninjafirewall.php:658 ninjafirewall.php:662
4375
  #, php-format
4376
  msgid "Error: wrong parameter value (%s)."
4377
  msgstr ""
@@ -4414,19 +4515,19 @@ msgstr ""
4414
  msgid "File is not writable"
4415
  msgstr ""
4416
 
4417
- #: lib/install_default.php:182
4418
  msgid ""
4419
  "Error: The installer cannot download the security rules from wordpress.org "
4420
  "website."
4421
  msgstr ""
4422
 
4423
- #: lib/install_default.php:183
4424
  msgid ""
4425
  "The server may be temporarily down or you may have network connectivity "
4426
  "problems? Please try again in a few minutes."
4427
  msgstr ""
4428
 
4429
- #: lib/install_default.php:184
4430
  msgid ""
4431
  "NinjaFirewall downloads its rules over an HTTPS secure connection. Maybe "
4432
  "your server does not support SSL? You can force NinjaFirewall to use a non-"
@@ -4434,7 +4535,7 @@ msgid ""
4434
  "config.php</strong> file:"
4435
  msgstr ""
4436
 
4437
- #: lib/install_default.php:259
4438
  #, php-format
4439
  msgid ""
4440
  "NinjaFirewall cannot create its <code>nfwlog/</code>log and cache folder; "
@@ -4613,10 +4714,27 @@ msgstr ""
4613
  msgid "Error: unable to write to the %s configuration file"
4614
  msgstr ""
4615
 
4616
- #: lib/logs.php:36 ninjafirewall.php:932
4617
  msgid "Logs"
4618
  msgstr ""
4619
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4620
  #: lib/logs_firewall_log.php:35
4621
  #, php-format
4622
  msgid ""
@@ -4637,10 +4755,6 @@ msgstr ""
4637
  msgid "Your public key has been saved"
4638
  msgstr ""
4639
 
4640
- #: lib/logs_firewall_log.php:85
4641
- msgid "Error"
4642
- msgstr ""
4643
-
4644
  #: lib/logs_firewall_log.php:92
4645
  msgid "Note"
4646
  msgstr ""
@@ -4722,7 +4836,7 @@ msgid ""
4722
  "Administrator to the whitelist\" option is enabled."
4723
  msgstr ""
4724
 
4725
- #: lib/logs_live_log.php:96 ninjafirewall.php:375
4726
  msgid ""
4727
  "Live Log lets you watch your blog traffic in real time. To enable it, click "
4728
  "on the button below."
@@ -4823,10 +4937,18 @@ msgstr ""
4823
  msgid "Error: please enter the custom log format."
4824
  msgstr ""
4825
 
4826
- #: lib/monitoring.php:43 ninjafirewall.php:906
4827
  msgid "Monitoring"
4828
  msgstr ""
4829
 
 
 
 
 
 
 
 
 
4830
  #: lib/monitoring_file_check.php:62
4831
  msgid "Snapshot successfully created."
4832
  msgstr ""
@@ -4839,7 +4961,7 @@ msgstr ""
4839
  msgid "You must create a snapshot first."
4840
  msgstr ""
4841
 
4842
- #: lib/monitoring_file_check.php:102 lib/monitoring_file_check.php:775
4843
  msgid "NinjaFirewall detected that changes were made to your files."
4844
  msgstr ""
4845
 
@@ -4932,17 +5054,17 @@ msgstr ""
4932
  msgid "Last changes"
4933
  msgstr ""
4934
 
4935
- #: lib/monitoring_file_check.php:281 lib/monitoring_file_check.php:783
4936
  #, php-format
4937
  msgid "New files: %s"
4938
  msgstr ""
4939
 
4940
- #: lib/monitoring_file_check.php:282 lib/monitoring_file_check.php:785
4941
  #, php-format
4942
  msgid "Deleted files: %s"
4943
  msgstr ""
4944
 
4945
- #: lib/monitoring_file_check.php:283 lib/monitoring_file_check.php:784
4946
  #, php-format
4947
  msgid "Modified files: %s"
4948
  msgstr ""
@@ -5115,45 +5237,37 @@ msgstr ""
5115
  msgid "Error reading new snapshot file."
5116
  msgstr ""
5117
 
5118
- #: lib/monitoring_file_check.php:748 ninjafirewall.php:479
5119
  msgid "New file"
5120
  msgstr ""
5121
 
5122
- #: lib/monitoring_file_check.php:749 ninjafirewall.php:480
5123
  msgid "Modified file"
5124
  msgstr ""
5125
 
5126
- #: lib/monitoring_file_check.php:750 ninjafirewall.php:481
5127
  msgid "Deleted file"
5128
  msgstr ""
5129
 
5130
- #: lib/monitoring_file_check.php:774
5131
  msgid "[NinjaFirewall] Alert: File Check detection"
5132
  msgstr ""
5133
 
5134
- #: lib/monitoring_file_check.php:777 lib/monitoring_file_check.php:779
5135
- #: lib/monitoring_file_check.php:799 lib/monitoring_file_check.php:801
5136
- #: lib/security_rules_update.php:572 lib/security_rules_update.php:574
5137
- #: lib/utils.php:225 lib/utils.php:311 lib/utils.php:435 lib/utils.php:1100
5138
- #: lib/utils.php:1279 lib/utils.php:1558
5139
- msgid "Blog:"
5140
- msgstr ""
5141
-
5142
- #: lib/monitoring_file_check.php:781 lib/monitoring_file_check.php:803
5143
- #: lib/security_rules_update.php:577
5144
  #, php-format
5145
  msgid "Date: %s"
5146
  msgstr ""
5147
 
5148
- #: lib/monitoring_file_check.php:787
5149
  msgid "See attached file for details."
5150
  msgstr ""
5151
 
5152
- #: lib/monitoring_file_check.php:796
5153
  msgid "[NinjaFirewall] File Check report"
5154
  msgstr ""
5155
 
5156
- #: lib/monitoring_file_check.php:797
5157
  msgid "NinjaFirewall did not detect changes in your files."
5158
  msgstr ""
5159
 
@@ -5199,7 +5313,7 @@ msgstr ""
5199
  msgid "Save File Guard options"
5200
  msgstr ""
5201
 
5202
- #: lib/network.php:24 ninjafirewall.php:1193 ninjafirewall.php:1197
5203
  #, php-format
5204
  msgid "You are not allowed to perform this task (%s)."
5205
  msgstr ""
@@ -5222,8 +5336,14 @@ msgstr ""
5222
  msgid "Save Network options"
5223
  msgstr ""
5224
 
5225
- #: lib/security_rules.php:44 lib/security_rules_update.php:578
5226
- #: ninjafirewall.php:936
 
 
 
 
 
 
5227
  msgid "Security Rules"
5228
  msgstr ""
5229
 
@@ -5325,7 +5445,7 @@ msgstr ""
5325
  msgid "Security rules have been updated."
5326
  msgstr ""
5327
 
5328
- #: lib/security_rules_update.php:91 lib/security_rules_update.php:454
5329
  msgid "No security rules update available."
5330
  msgstr ""
5331
 
@@ -5344,6 +5464,13 @@ msgstr ""
5344
  msgid "Check for updates"
5345
  msgstr ""
5346
 
 
 
 
 
 
 
 
5347
  #: lib/security_rules_update.php:151
5348
  msgid "Every 15 minutes"
5349
  msgstr ""
@@ -5404,66 +5531,66 @@ msgstr ""
5404
  msgid "Delete Log"
5405
  msgstr ""
5406
 
5407
- #: lib/security_rules_update.php:321
5408
  msgid "Error: Wrong rules format."
5409
  msgstr ""
5410
 
5411
- #: lib/security_rules_update.php:330
5412
  msgid "Error: Unable to unserialize the new rules."
5413
  msgstr ""
5414
 
5415
- #: lib/security_rules_update.php:338
5416
  msgid "Error: Unserialized rules seem corrupted."
5417
  msgstr ""
5418
 
5419
- #: lib/security_rules_update.php:397
5420
  #, php-format
5421
  msgid "Security rules updated to version %s."
5422
  msgstr ""
5423
 
5424
- #: lib/security_rules_update.php:443
5425
  msgid "Error: Unable to retrieve the new rules version."
5426
  msgstr ""
5427
 
5428
- #: lib/security_rules_update.php:461
5429
  #, php-format
5430
  msgid "Error: Server returned a %s HTTP error code (#1)."
5431
  msgstr ""
5432
 
5433
- #: lib/security_rules_update.php:468 lib/security_rules_update.php:534
5434
  msgid "Error: Unable to connect to the remote server"
5435
  msgstr ""
5436
 
5437
- #: lib/security_rules_update.php:498
5438
  #, php-format
5439
  msgid "Error: The new rules versions do not match (%s != %s)."
5440
  msgstr ""
5441
 
5442
- #: lib/security_rules_update.php:512
5443
  #, php-format
5444
  msgid ""
5445
  "Error: The new rules %s digital signature is not correct. Aborting update, "
5446
  "rules may have been tampered with."
5447
  msgstr ""
5448
 
5449
- #: lib/security_rules_update.php:527
5450
  #, php-format
5451
  msgid "Error: Server returned a %s HTTP error code (#2)."
5452
  msgstr ""
5453
 
5454
- #: lib/security_rules_update.php:569
5455
  msgid "[NinjaFirewall] Security rules update"
5456
  msgstr ""
5457
 
5458
- #: lib/security_rules_update.php:570
5459
  msgid "NinjaFirewall security rules have been updated:"
5460
  msgstr ""
5461
 
5462
- #: lib/security_rules_update.php:576
5463
  msgid "Rules version:"
5464
  msgstr ""
5465
 
5466
- #: lib/security_rules_update.php:578
5467
  #, php-format
5468
  msgid "This notification can be turned off from NinjaFirewall \"%s\" page."
5469
  msgstr ""
@@ -5628,25 +5755,25 @@ msgstr ""
5628
  msgid "Cancel and Close"
5629
  msgstr ""
5630
 
5631
- #: lib/utils.php:183 lib/utils.php:191 lib/utils.php:295
5632
  msgid "N/A"
5633
  msgstr ""
5634
 
5635
- #: lib/utils.php:197
5636
  #, php-format
5637
  msgid "Attempt to create a new %s"
5638
  msgstr ""
5639
 
5640
- #: lib/utils.php:201
5641
  #, php-format
5642
  msgid "Attempt to edit a published %s (ID: %s)"
5643
  msgstr ""
5644
 
5645
- #: lib/utils.php:207 lib/utils.php:287
5646
  msgid "Unauthenticated user"
5647
  msgstr ""
5648
 
5649
- #: lib/utils.php:212
5650
  msgid "Blocked post/page edition attempt"
5651
  msgstr ""
5652
 
@@ -5656,7 +5783,7 @@ msgid ""
5656
  "doesn't have the right capabilities:"
5657
  msgstr ""
5658
 
5659
- #: lib/utils.php:226 lib/utils.php:312 lib/utils.php:436 lib/utils.php:1283
5660
  msgid "Username:"
5661
  msgstr ""
5662
 
@@ -5664,24 +5791,19 @@ msgstr ""
5664
  msgid "Action:"
5665
  msgstr ""
5666
 
5667
- #: lib/utils.php:230 lib/utils.php:315 lib/utils.php:437 lib/utils.php:1287
5668
- #: lib/utils.php:1559
5669
- msgid "User IP:"
5670
- msgstr ""
5671
-
5672
- #: lib/utils.php:242 lib/utils.php:327 lib/utils.php:449 lib/utils.php:1299
5673
- #: lib/utils.php:1554
5674
  msgid "A PHP backtrace has been attached to this message for your convenience."
5675
  msgstr ""
5676
 
5677
- #: lib/utils.php:244 lib/utils.php:329 lib/utils.php:1302 lib/utils.php:1564
5678
  msgid ""
5679
  "This protection (and notification) can be turned off from NinjaFirewall "
5680
  "\"Firewall Policies\" page."
5681
  msgstr ""
5682
 
5683
- #: lib/utils.php:259 lib/utils.php:260 lib/utils.php:344 lib/utils.php:345
5684
- #: lib/utils.php:466 lib/utils.php:467 lib/utils.php:1318 lib/utils.php:1319
5685
  msgid "You are not allowed to perform this task."
5686
  msgstr ""
5687
 
@@ -5689,114 +5811,132 @@ msgstr ""
5689
  msgid "Blocked post/page deletion attempt"
5690
  msgstr ""
5691
 
5692
- #: lib/utils.php:310
5693
  msgid ""
5694
  "NinjaFirewall has blocked an attempt to delete a post by a user who doesn't "
5695
  "have the right capabilities:"
5696
  msgstr ""
5697
 
5698
- #: lib/utils.php:421
5699
  msgid "Blocked user account creation"
5700
  msgstr ""
5701
 
5702
- #: lib/utils.php:433
5703
  msgid "NinjaFirewall has blocked an attempt to create a user account:"
5704
  msgstr ""
5705
 
5706
- #: lib/utils.php:767
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5707
  msgid ""
5708
  "Warning: Because NinjaFirewall's Login Protection is enabled, Site Health "
5709
  "may return an error message regarding the loopback test (e.g., 404 or 401 "
5710
  "HTTP status code). You can safely ignore it."
5711
  msgstr ""
5712
 
5713
- #: lib/utils.php:790 lib/utils.php:794
5714
  msgid "NinjaFirewall error"
5715
  msgstr ""
5716
 
5717
- #: lib/utils.php:791
5718
  #, php-format
5719
  msgid ""
5720
  "%s directory cannot be created. Please review your installation and ensure "
5721
  "that %s is writable."
5722
  msgstr ""
5723
 
5724
- #: lib/utils.php:795
5725
  #, php-format
5726
  msgid ""
5727
  "%s directory is read-only. Please review your installation and ensure that "
5728
  "%s is writable."
5729
  msgstr ""
5730
 
5731
- #: lib/utils.php:810
5732
  msgid "unknown error"
5733
  msgstr ""
5734
 
5735
- #: lib/utils.php:812
5736
  msgid "NinjaFirewall fatal error:"
5737
  msgstr ""
5738
 
5739
- #: lib/utils.php:813
5740
  msgid "Review your installation, your site is not protected."
5741
  msgstr ""
5742
 
5743
- #: lib/utils.php:840
5744
  msgid "Alert: WordPress console login"
5745
  msgstr ""
5746
 
5747
- #: lib/utils.php:846
5748
  msgid "Someone just logged in to your WordPress admin console:"
5749
  msgstr ""
5750
 
5751
- #: lib/utils.php:966 lib/utils.php:993
5752
  msgid "Forbidden access"
5753
  msgstr ""
5754
 
5755
- #: lib/utils.php:1012
5756
  #, php-format
5757
  msgid ""
5758
  "<strong>ERROR</strong>: Invalid username, email address or password.<br /><a "
5759
  "href=\"%s\">Lost your password</a>?"
5760
  msgstr ""
5761
 
5762
- #: lib/utils.php:1096
5763
  msgid "[NinjaFirewall] Alert: Database changes detected"
5764
  msgstr ""
5765
 
5766
- #: lib/utils.php:1097
5767
  msgid ""
5768
  "NinjaFirewall has detected that one or more administrator accounts were "
5769
  "modified in the database:"
5770
  msgstr ""
5771
 
5772
- #: lib/utils.php:1102
5773
  #, php-format
5774
  msgid "Total administrators : %s"
5775
  msgstr ""
5776
 
5777
- #: lib/utils.php:1111
5778
  msgid ""
5779
  "If you cannot see any modifications in the above fields, it is possible that "
5780
  "the administrator password was changed."
5781
  msgstr ""
5782
 
5783
- #: lib/utils.php:1264
5784
  msgid "Blocked privilege escalation attempt"
5785
  msgstr ""
5786
 
5787
- #: lib/utils.php:1277
5788
  msgid ""
5789
  "NinjaFirewall has blocked an attempt to modify a user capability by someone "
5790
  "who does not have administrative privileges:"
5791
  msgstr ""
5792
 
5793
- #: lib/utils.php:1330
5794
  msgid ""
5795
  "NinjaFirewall brute-force protection is enabled and you are temporarily "
5796
  "whitelisted."
5797
  msgstr ""
5798
 
5799
- #: lib/utils.php:1345
5800
  #, php-format
5801
  msgid ""
5802
  "Hey, it seems that you've been using NinjaFirewall for some time. If you "
@@ -5805,79 +5945,91 @@ msgid ""
5805
  "rate it. Thank you!"
5806
  msgstr ""
5807
 
5808
- #: lib/utils.php:1526
5809
  msgid ""
5810
  "The attempt was blocked and the option was reversed to its original value."
5811
  msgstr ""
5812
 
5813
- #: lib/utils.php:1531
5814
  msgid "Attempt to modify WordPress settings"
5815
  msgstr ""
5816
 
5817
- #: lib/utils.php:1532
5818
  msgid ""
5819
  "NinjaFirewall has blocked an attempt to modify some important WordPress "
5820
  "settings by a user that does not have administrative privileges:"
5821
  msgstr ""
5822
 
5823
- #: lib/utils.php:1533 lib/utils.php:1542
5824
  #, php-format
5825
  msgid "Option: %s"
5826
  msgstr ""
5827
 
5828
- #: lib/utils.php:1534
5829
  #, php-format
5830
  msgid "Original value: %s"
5831
  msgstr ""
5832
 
5833
- #: lib/utils.php:1535
5834
  #, php-format
5835
  msgid "Modified value: %s"
5836
  msgstr ""
5837
 
5838
- #: lib/utils.php:1536 lib/utils.php:1544
5839
  #, php-format
5840
  msgid "Action taken: %s"
5841
  msgstr ""
5842
 
5843
- #: lib/utils.php:1540
5844
  msgid "Code injection attempt in WordPress options table"
5845
  msgstr ""
5846
 
5847
- #: lib/utils.php:1541
5848
  msgid ""
5849
  "NinjaFirewall has blocked an attempt to inject code in the WordPress options "
5850
  "table by a user that does not have administrative privileges:"
5851
  msgstr ""
5852
 
5853
- #: lib/utils.php:1543
5854
  #, php-format
5855
  msgid "Code: %s"
5856
  msgstr ""
5857
 
5858
- #: lib/utils.php:1624
5859
  msgid "Important: NinjaFirewall has detected that this is a security update."
5860
  msgstr ""
5861
 
5862
- #: lib/utils.php:1627
5863
  msgid "More info about this warning."
5864
  msgstr ""
5865
 
5866
- #: lib/utils.php:1647
 
 
 
 
 
 
 
 
 
 
 
 
5867
  #, php-format
5868
  msgid "Error, cannot create the %s folder."
5869
  msgstr ""
5870
 
5871
- #: lib/utils.php:1648 lib/utils.php:1657 lib/utils.php:1666
5872
  msgid "Check your server permissions and try again."
5873
  msgstr ""
5874
 
5875
- #: lib/utils.php:1656
5876
  #, php-format
5877
  msgid "Error, the %s folder is not writable."
5878
  msgstr ""
5879
 
5880
- #: lib/utils.php:1665
5881
  #, php-format
5882
  msgid "Error, cannot write %s."
5883
  msgstr ""
@@ -6045,8 +6197,8 @@ msgstr ""
6045
 
6046
  #: lib/wpplus.php:143
6047
  msgid ""
6048
- "The Web Filter can hook the response body, i.e., the output of the HTML "
6049
- "page, and search it for some specific keywords. Such filter can be useful to "
6050
  "identify errors, hacked content and data leakage issues in the response body "
6051
  "sent to your visitors."
6052
  msgstr ""
@@ -6272,226 +6424,226 @@ msgstr ""
6272
  msgid "Cannot retrieve user rules from database (#4)"
6273
  msgstr ""
6274
 
6275
- #: ninjafirewall.php:119
6276
  msgid ""
6277
  "You do not have \"unfiltered_html\" capability. Please enable it in order to "
6278
  "run NinjaFirewall (or make sure you do not have \"DISALLOW_UNFILTERED_HTML\" "
6279
  "in your wp-config.php script)."
6280
  msgstr ""
6281
 
6282
- #: ninjafirewall.php:126
6283
  #, php-format
6284
  msgid ""
6285
  "NinjaFirewall requires WordPress %s or greater but your current version is "
6286
  "%s."
6287
  msgstr ""
6288
 
6289
- #: ninjafirewall.php:130
6290
  #, php-format
6291
  msgid ""
6292
  "NinjaFirewall requires PHP 5.3 or greater but your current version is %s."
6293
  msgstr ""
6294
 
6295
- #: ninjafirewall.php:134
6296
  #, php-format
6297
  msgid "NinjaFirewall requires the PHP %s extension."
6298
  msgstr ""
6299
 
6300
- #: ninjafirewall.php:138
6301
  msgid ""
6302
  "You have SAFE_MODE enabled. Please disable it, it is deprecated as of PHP "
6303
  "5.3.0 (see http://php.net/safe-mode)."
6304
  msgstr ""
6305
 
6306
- #: ninjafirewall.php:142
6307
  msgid "You are not allowed to activate NinjaFirewall."
6308
  msgstr ""
6309
 
6310
- #: ninjafirewall.php:146
6311
  msgid "NinjaFirewall is not compatible with Microsoft Windows."
6312
  msgstr ""
6313
 
6314
- #: ninjafirewall.php:326
6315
  msgid ""
6316
  "All fields will be restored to their default values and any changes you made "
6317
  "will be lost. Continue?"
6318
  msgstr ""
6319
 
6320
- #: ninjafirewall.php:330
6321
  msgid "Missing security nonce, try to reload the page."
6322
  msgstr ""
6323
 
6324
- #: ninjafirewall.php:332
6325
  msgid "Please select the HTTP server in the list."
6326
  msgstr ""
6327
 
6328
- #: ninjafirewall.php:335
6329
  msgid "Delete the firewall's error log ?"
6330
  msgstr ""
6331
 
6332
- #: ninjafirewall.php:339
6333
  msgid ""
6334
  "This action will restore the selected configuration file and will override "
6335
  "all your current firewall options, policies and rules. Continue?"
6336
  msgstr ""
6337
 
6338
- #: ninjafirewall.php:343
6339
  msgid ""
6340
  "Any character that is not a letter [a-zA-Z], a digit [0-9], a dot [.], a "
6341
  "hyphen [-] or an underscore [_] will be removed from the filename and "
6342
  "replaced with the substitution character. Continue?"
6343
  msgstr ""
6344
 
6345
- #: ninjafirewall.php:345
6346
  msgid ""
6347
  "Ensure that you can access your admin console over HTTPS before enabling "
6348
  "this option, otherwise you will lock yourself out of your site. Continue?"
6349
  msgstr ""
6350
 
6351
- #: ninjafirewall.php:347
6352
  msgid ""
6353
  "WooCommerce is running: if you block accounts creation, your customers won't "
6354
  "be able to sign up. Continue?"
6355
  msgstr ""
6356
 
6357
- #: ninjafirewall.php:349
6358
  msgid ""
6359
  "Your blog has user registration enabled: if you block accounts creation, "
6360
  "your customers won't be able to sign up. Continue?"
6361
  msgstr ""
6362
 
6363
- #: ninjafirewall.php:351
6364
  msgid ""
6365
  "Your multisite installation allows users to register new sites: if you "
6366
  "enable this option, they will likely get blocked when creating their blog. "
6367
  "Continue?"
6368
  msgstr ""
6369
 
6370
- #: ninjafirewall.php:355
6371
  msgid "Delete the current snapshot ?"
6372
  msgstr ""
6373
 
6374
- #: ninjafirewall.php:359
6375
  msgid "Invalid character."
6376
  msgstr ""
6377
 
6378
- #: ninjafirewall.php:361
6379
  msgid "\"admin\" is not acceptable, please choose another user name."
6380
  msgstr ""
6381
 
6382
- #: ninjafirewall.php:363
6383
  msgid "Please enter max 1024 character only."
6384
  msgstr ""
6385
 
6386
- #: ninjafirewall.php:365
6387
  msgid "Select when to enable the login protection."
6388
  msgstr ""
6389
 
6390
- #: ninjafirewall.php:367
6391
  msgid "Enter a name and a password for the HTTP authentication."
6392
  msgstr ""
6393
 
6394
- #: ninjafirewall.php:371
6395
  msgid "Your public key is not valid."
6396
  msgstr ""
6397
 
6398
- #: ninjafirewall.php:377
6399
  msgid "No traffic yet, please wait"
6400
  msgstr ""
6401
 
6402
- #: ninjafirewall.php:379
6403
  msgid "seconds..."
6404
  msgstr ""
6405
 
6406
- #: ninjafirewall.php:381
6407
  msgid "Error: Live Log did not receive the expected response from your server:"
6408
  msgstr ""
6409
 
6410
- #: ninjafirewall.php:383
6411
  msgid "Error: URL does not seem to exist (404 Not Found):"
6412
  msgstr ""
6413
 
6414
- #: ninjafirewall.php:385
6415
  msgid "Error: Cannot find your log file. Try to reload this page."
6416
  msgstr ""
6417
 
6418
- #: ninjafirewall.php:387
6419
  msgid "Error: The HTTP server returned the following error code:"
6420
  msgstr ""
6421
 
6422
- #: ninjafirewall.php:643 ninjafirewall.php:763 ninjafirewall.php:832
6423
  msgid "Error: Security nonces do not match. Reload the page and try again."
6424
  msgstr ""
6425
 
6426
- #: ninjafirewall.php:649
6427
  msgid "Error: NinjaFirewall is disabled"
6428
  msgstr ""
6429
 
6430
- #: ninjafirewall.php:654 ninjafirewall.php:768 ninjafirewall.php:798
6431
  #, php-format
6432
  msgid "Error: missing parameter (%s)."
6433
  msgstr ""
6434
 
6435
- #: ninjafirewall.php:894
6436
  msgid "NinjaFirewall: Dashboard"
6437
  msgstr ""
6438
 
6439
- #: ninjafirewall.php:898
6440
  msgid "NinjaFirewall: Firewall Options"
6441
  msgstr ""
6442
 
6443
- #: ninjafirewall.php:902
6444
  msgid "NinjaFirewall: Firewall Policies"
6445
  msgstr ""
6446
 
6447
- #: ninjafirewall.php:906
6448
  msgid "NinjaFirewall: Monitoring"
6449
  msgstr ""
6450
 
6451
- #: ninjafirewall.php:916
6452
  msgid "NinjaFirewall: Anti-Malware"
6453
  msgstr ""
6454
 
6455
- #: ninjafirewall.php:920
6456
  msgid "NinjaFirewall: Network"
6457
  msgstr ""
6458
 
6459
- #: ninjafirewall.php:924
6460
  msgid "NinjaFirewall: Event Notifications"
6461
  msgstr ""
6462
 
6463
- #: ninjafirewall.php:928
6464
  msgid "NinjaFirewall: Log-in Protection"
6465
  msgstr ""
6466
 
6467
- #: ninjafirewall.php:932
6468
  msgid "NinjaFirewall: Logs"
6469
  msgstr ""
6470
 
6471
- #: ninjafirewall.php:936
6472
  msgid "NinjaFirewall: Security Rules"
6473
  msgstr ""
6474
 
6475
- #: ninjafirewall.php:980
6476
  msgid "NinjaFirewall Settings"
6477
  msgstr ""
6478
 
6479
- #: ninjafirewall.php:988
6480
  msgid "NinjaFirewall is enabled"
6481
  msgstr ""
6482
 
6483
- #: ninjafirewall.php:1128
6484
  msgid "Access Restricted"
6485
  msgstr ""
6486
 
6487
- #: ninjafirewall.php:1134
6488
  msgid "Settings"
6489
  msgstr ""
6490
 
6491
- #: ninjafirewall.php:1135
6492
  msgid "Upgrade to Premium"
6493
  msgstr ""
6494
 
6495
- #: ninjafirewall.php:1136
6496
  msgid "Rate it!"
6497
  msgstr ""
2
  msgid ""
3
  msgstr ""
4
  "Project-Id-Version: Stable (latest release)\n"
5
+ "POT-Creation-Date: 2021-09-17 15:59+0700\n"
6
  "PO-Revision-Date: 2018-04-05 22:52+0700\n"
7
  "Last-Translator: NinTechNet <contact@nintechnet.com>\n"
8
  "Language-Team: \n"
19
  "X-Poedit-SearchPath-0: .\n"
20
  "X-Poedit-SearchPathExcluded-0: /languages\n"
21
 
22
+ #: lib/anti_malware.php:24 ninjafirewall.php:914
23
  msgid "Anti-Malware"
24
  msgstr ""
25
 
98
  msgid "Your changes have been saved."
99
  msgstr ""
100
 
101
+ #: lib/dashboard.php:132 ninjafirewall.php:892
102
  msgid "Dashboard"
103
  msgstr ""
104
 
305
  msgid "Centralized Logging"
306
  msgstr ""
307
 
308
+ #: lib/dashboard.php:331 lib/security_rules_update.php:427
309
  #, php-format
310
  msgid "Error: %s"
311
  msgstr ""
314
  msgid "Source IP"
315
  msgstr ""
316
 
317
+ #: lib/dashboard.php:346 lib/dashboard.php:355 lib/dashboard.php:365
318
+ #: lib/firewall_policies.php:755
319
+ msgid ""
320
+ "In the Premium version of NinjaFirewall, you can use the IP Access Control "
321
+ "section to easily configure all IP address related options (source, "
322
+ "whitelist, blacklist, rate limiting etc)."
323
+ msgstr ""
324
+
325
  #: lib/dashboard.php:347
326
  #, php-format
327
  msgid "You have a private IP : %s"
403
  msgid "Help &amp; configuration"
404
  msgstr ""
405
 
406
+ #: lib/dashboard.php:515
407
+ msgid "Cannot check if the PHP INI file is readable: connection error"
408
+ msgstr ""
409
+
410
  #: lib/dashboard_about.php:29
411
  msgid "Our blog:"
412
  msgstr ""
454
  msgid "Benchmarks"
455
  msgstr ""
456
 
457
+ #: lib/dashboard_statistics.php:106
458
+ msgid ""
459
+ "In the Premium version of NinjaFirewall and on compatible servers, you can "
460
+ "use Unix shared memory to speed up the processing of each HTTP request by "
461
+ "the firewall."
462
+ msgstr ""
463
+
464
  #: lib/dashboard_statistics.php:110
465
  msgid "Average time per request"
466
  msgstr ""
478
  msgid "Slowest request"
479
  msgstr ""
480
 
481
+ #: lib/dashboard_statistics.php:130
482
  msgid "Critical"
483
  msgstr ""
484
 
485
+ #: lib/dashboard_statistics.php:131
486
  msgid "High"
487
  msgstr ""
488
 
489
+ #: lib/dashboard_statistics.php:132
490
  msgid "Medium"
491
  msgstr ""
492
 
494
  msgid "Select monthly stats to view..."
495
  msgstr ""
496
 
497
+ #: lib/email_sodium.php:130
498
+ msgid "The link you followed has expired."
499
+ msgstr ""
500
+
501
+ #: lib/email_sodium.php:131 lib/email_sodium.php:184
502
+ #: lib/logs_firewall_log.php:85
503
+ msgid "Error"
504
+ msgstr ""
505
+
506
+ #: lib/email_sodium.php:165 lib/email_sodium.php:203
507
+ msgid "Email removal confirmation"
508
+ msgstr ""
509
+
510
+ #: lib/email_sodium.php:168
511
+ msgid "Your email address was removed from the \"Event Notifications\" option."
512
+ msgstr ""
513
+
514
+ #: lib/email_sodium.php:169 lib/monitoring_file_check.php:759
515
+ #: lib/monitoring_file_check.php:761 lib/monitoring_file_check.php:781
516
+ #: lib/monitoring_file_check.php:783 lib/security_rules_update.php:559
517
+ #: lib/security_rules_update.php:561 lib/utils.php:225 lib/utils.php:306
518
+ #: lib/utils.php:425 lib/utils.php:1038 lib/utils.php:1212 lib/utils.php:1484
519
+ msgid "Blog:"
520
+ msgstr ""
521
+
522
+ #: lib/email_sodium.php:170
523
+ msgid "Email address:"
524
+ msgstr ""
525
+
526
+ #: lib/email_sodium.php:171 lib/utils.php:230 lib/utils.php:310
527
+ #: lib/utils.php:427 lib/utils.php:1220 lib/utils.php:1485
528
+ msgid "User IP:"
529
+ msgstr ""
530
+
531
+ #: lib/email_sodium.php:172 lib/event_updates.php:157 lib/utils.php:233
532
+ #: lib/utils.php:313 lib/utils.php:430 lib/utils.php:1039 lib/utils.php:1223
533
+ #: lib/utils.php:1488
534
+ msgid "Date:"
535
+ msgstr ""
536
+
537
+ #: lib/email_sodium.php:183
538
+ msgid "Error, your resquest cannot be processed."
539
+ msgstr ""
540
+
541
+ #: lib/email_sodium.php:197
542
+ msgid ""
543
+ "If you want to remove your email address from the Event Notifications "
544
+ "option, click the button below. If the operation is successful, a "
545
+ "confirmation email will be sent to you."
546
+ msgstr ""
547
+
548
+ #: lib/email_sodium.php:199 lib/event_notifications.php:154
549
+ #: lib/event_notifications.php:166 lib/firewall_options.php:78
550
+ #: lib/firewall_options.php:113 lib/firewall_policies.php:25
551
+ #: lib/login_protection.php:309 lib/login_protection.php:324
552
+ #: lib/login_protection.php:345 lib/login_protection.php:352 lib/network.php:70
553
+ msgid "Yes"
554
+ msgstr ""
555
+
556
+ #: lib/email_sodium.php:201 lib/event_notifications.php:154
557
+ #: lib/event_notifications.php:166 lib/firewall_options.php:78
558
+ #: lib/firewall_options.php:113 lib/firewall_policies.php:26
559
+ #: lib/login_protection.php:309 lib/login_protection.php:324
560
+ #: lib/login_protection.php:345 lib/login_protection.php:352 lib/network.php:70
561
+ msgid "No"
562
+ msgstr ""
563
+
564
+ #: lib/event_notifications.php:34 lib/help.php:377 ninjafirewall.php:922
565
  msgid "Event Notifications"
566
  msgstr ""
567
 
679
  msgid "Send me a daily activity report"
680
  msgstr ""
681
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
682
  #: lib/event_notifications.php:161
683
  msgid "Log"
684
  msgstr ""
745
  msgid "Save Event Notifications"
746
  msgstr ""
747
 
748
+ #: lib/event_notifications.php:476
749
  msgid "[NinjaFirewall] Daily Activity Report"
750
  msgstr ""
751
 
752
+ #: lib/event_notifications.php:486
753
  #, php-format
754
  msgid "Daily activity report for: %s"
755
  msgstr ""
756
 
757
+ #: lib/event_notifications.php:487
758
  msgid "Date Range Processed: Yesterday"
759
  msgstr ""
760
 
761
+ #: lib/event_notifications.php:489
762
  msgid "Blocked threats:"
763
  msgstr ""
764
 
765
+ #: lib/event_notifications.php:491
766
  msgid "critical:"
767
  msgstr ""
768
 
769
+ #: lib/event_notifications.php:492
770
  msgid "high:"
771
  msgstr ""
772
 
773
+ #: lib/event_notifications.php:493
774
  msgid "medium:"
775
  msgstr ""
776
 
777
+ #: lib/event_notifications.php:495
778
  msgid "Blocked brute-force attacks:"
779
  msgstr ""
780
 
781
+ #: lib/event_notifications.php:496 lib/event_updates.php:219 lib/utils.php:1050
782
  msgid ""
783
  "This notification can be turned off from NinjaFirewall \"Event Notifications"
784
  "\" page."
785
  msgstr ""
786
 
787
+ #: lib/event_updates.php:53
788
+ msgid "Downloaded security rules are corrupted"
789
+ msgstr ""
790
+
791
+ #: lib/event_updates.php:154
792
  msgid "[NinjaFirewall] Warning: Security update available"
793
  msgstr ""
794
 
795
+ #: lib/event_updates.php:156
796
  msgid ""
797
  "NinjaFirewall has detected that there are security updates available for "
798
  "your website:"
799
  msgstr ""
800
 
801
+ #: lib/event_updates.php:160 lib/event_updates.php:162
 
 
 
 
 
802
  #, php-format
803
  msgid "Blog: %s"
804
  msgstr ""
805
 
806
+ #: lib/event_updates.php:168 lib/event_updates.php:184
807
+ #: lib/event_updates.php:203
808
  #, php-format
809
  msgid "Your version: %s"
810
  msgstr ""
811
 
812
+ #: lib/event_updates.php:169 lib/event_updates.php:185
813
+ #: lib/event_updates.php:204
814
  #, php-format
815
  msgid "New version: %s"
816
  msgstr ""
817
 
818
+ #: lib/event_updates.php:171 lib/event_updates.php:188
819
+ #: lib/event_updates.php:207
820
  msgid "Severity: This is an important security update"
821
  msgstr ""
822
 
823
+ #: lib/event_updates.php:173 lib/event_updates.php:190
824
+ #: lib/event_updates.php:209
825
  msgid "Severity: **This is a critical security update**"
826
  msgstr ""
827
 
828
+ #: lib/event_updates.php:175 lib/event_updates.php:192
829
+ #: lib/event_updates.php:211
830
  msgid "Type: Security fix"
831
  msgstr ""
832
 
833
+ #: lib/event_updates.php:183
834
  #, php-format
835
  msgid "Plugin: %s"
836
  msgstr ""
837
 
838
+ #: lib/event_updates.php:202
839
  #, php-format
840
  msgid "Theme: %s"
841
  msgstr ""
842
 
843
+ #: lib/event_updates.php:217 lib/utils.php:1566
844
  msgid "Don't leave your blog at risk, make sure to update as soon as possible."
845
  msgstr ""
846
 
847
+ #: lib/event_updates.php:243
848
+ msgid "Cannot download security rules: connection error"
849
+ msgstr ""
850
+
851
+ #: lib/event_updates.php:249
852
+ #, php-format
853
+ msgid "Cannot download security rules: HTTP response error %s"
854
+ msgstr ""
855
+
856
  #: lib/events.php:27
857
  msgid "Name:"
858
  msgstr ""
894
  msgid "uploaded"
895
  msgstr ""
896
 
897
+ #: lib/events.php:195
898
  #, php-format
899
  msgid "[NinjaFirewall] Alert: %s"
900
  msgstr ""
901
 
902
+ #: lib/events.php:197 lib/events.php:199 lib/utils.php:787
903
  msgid "-Blog:"
904
  msgstr ""
905
 
906
+ #: lib/events.php:202
907
  msgid "NinjaFirewall has detected the following activity on your account:"
908
  msgstr ""
909
 
910
+ #: lib/events.php:204 lib/utils.php:792
911
  msgid "-User:"
912
  msgstr ""
913
 
914
+ #: lib/events.php:205 lib/utils.php:793
915
  msgid "-IP:"
916
  msgstr ""
917
 
918
+ #: lib/events.php:206 lib/utils.php:794
919
  msgid "-Date:"
920
  msgstr ""
921
 
922
+ #: lib/firewall_options.php:29 ninjafirewall.php:896
923
  msgid "Firewall Options"
924
  msgstr ""
925
 
1061
  msgid "There are no backup available yet, check back later."
1062
  msgstr ""
1063
 
1064
+ #: lib/firewall_options.php:330
1065
  #, php-format
1066
  msgid "Uploaded file is either corrupted or its format is not supported (#%s)"
1067
  msgstr ""
1068
 
1069
+ #: lib/firewall_options.php:366
1070
  msgid "The imported file is not compatible with that version of NinjaFirewall"
1071
  msgstr ""
1072
 
1073
+ #: lib/firewall_options.php:473 ninjafirewall.php:213
1074
  msgid "[NinjaFirewall] Alert: Firewall is disabled"
1075
  msgstr ""
1076
 
1077
+ #: lib/firewall_options.php:475 lib/firewall_options.php:477
1078
+ #: ninjafirewall.php:215 ninjafirewall.php:217
1079
  msgid "-Blog :"
1080
  msgstr ""
1081
 
1082
+ #: lib/firewall_options.php:481 ninjafirewall.php:219
1083
  msgid "Someone disabled NinjaFirewall from your WordPress admin dashboard:"
1084
  msgstr ""
1085
 
1086
+ #: lib/firewall_options.php:484
1087
  msgid ""
1088
  "NinjaFirewall is disabled because someone enabled debugging mode from your "
1089
  "WordPress admin dashboard:"
1090
  msgstr ""
1091
 
1092
+ #: lib/firewall_options.php:487
1093
  msgid "[NinjaFirewall] Alert: Firewall override settings"
1094
  msgstr ""
1095
 
1096
+ #: lib/firewall_options.php:488
1097
  msgid ""
1098
  "Someone imported a new configuration which overrode the firewall settings:"
1099
  msgstr ""
1100
 
1101
+ #: lib/firewall_options.php:494 ninjafirewall.php:220
1102
  msgid "-User :"
1103
  msgstr ""
1104
 
1105
+ #: lib/firewall_options.php:495 ninjafirewall.php:221
1106
  msgid "-IP :"
1107
  msgstr ""
1108
 
1109
+ #: lib/firewall_options.php:496 ninjafirewall.php:222
1110
  msgid "-Date :"
1111
  msgstr ""
1112
 
1117
  "enable NinjaFirewall's Full WAF mode."
1118
  msgstr ""
1119
 
1120
+ #: lib/firewall_policies.php:62 ninjafirewall.php:900
1121
  msgid "Firewall Policies"
1122
  msgstr ""
1123
 
1165
  msgid "File Uploads"
1166
  msgstr ""
1167
 
1168
+ #: lib/firewall_policies.php:144
1169
+ msgid ""
1170
+ "In the Premium version of NinjaFirewall, you can allow uploads while "
1171
+ "rejecting potentially dangerous files, even if they are compressed inside a "
1172
+ "ZIP archive: scripts (PHP, CGI, Ruby, Python, bash/shell), C/C++ source "
1173
+ "code, binaries (MZ/PE/NE and ELF formats), system files (.htaccess, ."
1174
+ "htpasswd and PHP INI) and SVG files containing Javascript/XML events. You "
1175
+ "can easily limit the size of each uploaded file too, without having to "
1176
+ "modify your PHP configuration."
1177
+ msgstr ""
1178
+
1179
  #: lib/firewall_policies.php:147
1180
  msgid "Allow uploads"
1181
  msgstr ""
1360
  msgid "Users Whitelist"
1361
  msgstr ""
1362
 
1363
+ #: lib/firewall_policies.php:516
1364
+ msgid ""
1365
+ "In the Premium version of NinjaFirewall, the Access Control section allows "
1366
+ "you to whitelist WordPress users depending on their role."
1367
+ msgstr ""
1368
+
1369
  #: lib/firewall_policies.php:518
1370
  msgid "Add the Administrator to the whitelist (default)."
1371
  msgstr ""
1454
  msgid "Block suspicious bots/scanners"
1455
  msgstr ""
1456
 
1457
+ #: lib/firewall_policies.php:687
1458
+ msgid ""
1459
+ "In the Premium version of NinjaFirewall, the Bot Access Control section "
1460
+ "allows you to select, edit, add and remove bots."
1461
+ msgstr ""
1462
+
1463
  #: lib/firewall_policies.php:713 lib/help.php:240
1464
  msgid "HTTP_REFERER server variable"
1465
  msgstr ""
2475
  "package (third-party software, shell script, backdoor etc)."
2476
  msgstr ""
2477
 
2478
+ #: lib/help.php:360 lib/network.php:32 ninjafirewall.php:918
2479
  msgid "Network"
2480
  msgstr ""
2481
 
2511
  "theme in order to take full control of your website."
2512
  msgstr ""
2513
 
2514
+ #: lib/help.php:389 lib/login_protection.php:21 ninjafirewall.php:926
2515
  msgid "Login Protection"
2516
  msgstr ""
2517
 
3456
  msgid "Low (default)"
3457
  msgstr ""
3458
 
3459
+ #: lib/i18n-extra.php:126
3460
  msgid ""
3461
  "If you are using a caching plugin, consult the contextual help before "
3462
  "enabling the antispam."
3463
  msgstr ""
3464
 
3465
+ #: lib/i18n-extra.php:127
3466
  msgid "Apply protection to"
3467
  msgstr ""
3468
 
3469
+ #: lib/i18n-extra.php:128
3470
  msgid "Comment forms (defaut)"
3471
  msgstr ""
3472
 
3473
+ #: lib/i18n-extra.php:129
3474
  msgid "User Registration form"
3475
  msgstr ""
3476
 
3477
+ #: lib/i18n-extra.php:130
3478
  msgid "Save Antispam options"
3479
  msgstr ""
3480
 
3481
+ #: lib/i18n-extra.php:131
3482
  msgid "Please enable JavaScript"
3483
  msgstr ""
3484
 
3485
+ #: lib/i18n-extra.php:132
3486
  msgid "Sorry, this looks like spam to me."
3487
  msgstr ""
3488
 
3489
+ #: lib/i18n-extra.php:133
3490
  msgid ""
3491
  "Error: You must be whitelisted in order to use that feature: click on the <a "
3492
  "href=\"?page=nfsubaccess\">Access Control</a> menu and ensure that the \"Do "
3493
  "not block the following users\" option is enabled for the Admin/Super Admin."
3494
  msgstr ""
3495
 
3496
+ #: lib/i18n-extra.php:134
3497
  msgid ""
3498
  "Your license is valid until the indicated expiration date. If you don't "
3499
  "renew it after this date, NinjaFirewall will keep working and protecting "
3500
  "your website as usual, but updates/upgrades will stop."
3501
  msgstr ""
3502
 
3503
+ #: lib/i18n-extra.php:135
3504
  #, php-format
3505
  msgid ""
3506
  "You can renew your license from <a href=\"%s\">NinTechNet.com</a> website."
3507
  msgstr ""
3508
 
3509
+ #: lib/i18n-extra.php:136
3510
  msgid "Use shared memory"
3511
  msgstr ""
3512
 
3513
+ #: lib/i18n-extra.php:137
3514
  msgid ""
3515
  "This feature allows NinjaFirewall to use Unix shared memory segments in "
3516
  "order to speed up all operations. The firewall will no longer need to "
3520
  "processing speed from 25% to 30%, prevent blocking I/O and slow queries."
3521
  msgstr ""
3522
 
3523
+ #: lib/i18n-extra.php:138
3524
  msgid ""
3525
  "This option requires that your PHP version was compiled with the <code>--"
3526
  "enable-shmop</code> parameter, otherwise, if it is not compatible with your "
3527
  "server/hosting environment, it will be disabled."
3528
  msgstr ""
3529
 
3530
+ #: lib/i18n-extra.php:139
3531
  #, php-format
3532
  msgid ""
3533
  "If you are using <a href=\"%s\">GB2312</a> character set (A.K.A <code>GBK</"
3537
  "used by that charset."
3538
  msgstr ""
3539
 
3540
+ #: lib/i18n-extra.php:140
3541
  msgid "Language"
3542
  msgstr ""
3543
 
3544
+ #: lib/i18n-extra.php:141
3545
  msgid ""
3546
  "When this option is enabled, NinjaFirewall will download, if available, the "
3547
  "corresponding language files from the WordPress repo. Then, every hour, it "
3548
  "will check if there's a new version and will download it."
3549
  msgstr ""
3550
 
3551
+ #: lib/i18n-extra.php:142
3552
  msgid ""
3553
  "Note that this does not apply to <code>en_US</code> and <code>fr_FR</code> "
3554
  "locales because they are already included with NinjaFirewall."
3555
  msgstr ""
3556
 
3557
+ #: lib/i18n-extra.php:143
3558
  #, php-format
3559
  msgid ""
3560
  "This options lets you export you current configuration or import it from "
3564
  "configuration, except your current license."
3565
  msgstr ""
3566
 
3567
+ #: lib/i18n-extra.php:144
3568
  msgid ""
3569
  "You can allow/disallow uploads, or allow uploads but block scripts (PHP, "
3570
  "CGI, Ruby, Python, bash/shell, JavaScript), C/C++ source code, binaries (MZ/"
3572
  "SVG files containing Javascript/XML events."
3573
  msgstr ""
3574
 
3575
+ #: lib/i18n-extra.php:145
3576
  msgid "Maximum allowed file size"
3577
  msgstr ""
3578
 
3579
+ #: lib/i18n-extra.php:146
3580
  msgid ""
3581
  "If you allow uploads, you can select the maximum size of an uploaded file. "
3582
  "Any file bigger than this value will be rejected. Note that if your PHP "
3584
  "be used before NinjaFirewall."
3585
  msgstr ""
3586
 
3587
+ #: lib/i18n-extra.php:147
3588
  msgid "Decode Base64-encoded <code>POST</code> variable:"
3589
  msgstr ""
3590
 
3591
+ #: lib/i18n-extra.php:148
3592
  #, php-format
3593
  msgid ""
3594
  "Object Serialization is a PHP feature used by many applications to generate "
3599
  "request, cookies, user agent and referrer variables."
3600
  msgstr ""
3601
 
3602
+ #: lib/i18n-extra.php:149
3603
  msgid ""
3604
  "This option will reject any <code>GET</code> or <code>POST</code> request, "
3605
  "<code>COOKIE</code>, <code>HTTP_USER_AGENT</code>, <code>REQUEST_URI</code>, "
3608
  "is dangerous and should always be rejected."
3609
  msgstr ""
3610
 
3611
+ #: lib/i18n-extra.php:150
3612
  msgid ""
3613
  "This option will block any <code>GET</code> or <code>POST</code> request "
3614
  "containing the localhost IP (127.0.0.1). It can be useful to block SQL "
3615
  "dumpers and various hacker's shell scripts."
3616
  msgstr ""
3617
 
3618
+ #: lib/i18n-extra.php:151
3619
  msgid ""
3620
  "Access Control is a powerful set of directives that can be used to allow or "
3621
  "restrict access to your website based on many criteria."
3622
  msgstr ""
3623
 
3624
+ #: lib/i18n-extra.php:152
3625
  msgid ""
3626
  "To make better use of them, it is important to understand NinjaFirewall's "
3627
  "directives processing order."
3628
  msgstr ""
3629
 
3630
+ #: lib/i18n-extra.php:153
3631
  msgid ""
3632
  "Because NinjaFirewall is a PHP firewall, its Access Control options apply to "
3633
  "PHP scripts, not to static elements (e.g., images, JS, CSS etc). Depending "
3634
  "on your configuration, they can also apply to HTML pages."
3635
  msgstr ""
3636
 
3637
+ #: lib/i18n-extra.php:154
3638
  msgid "Processing order:"
3639
  msgstr ""
3640
 
3641
+ #: lib/i18n-extra.php:155
3642
  msgid "Incoming HTTP request"
3643
  msgstr ""
3644
 
3645
+ #: lib/i18n-extra.php:156
3646
  #, php-format
3647
  msgid "%s file"
3648
  msgstr ""
3649
 
3650
+ #: lib/i18n-extra.php:157
3651
  msgid "Login Protection."
3652
  msgstr ""
3653
 
3654
+ #: lib/i18n-extra.php:158
3655
  msgid "Access Control (except User Input Access Control):"
3656
  msgstr ""
3657
 
3658
+ #: lib/i18n-extra.php:159
3659
  msgid "Role-based Access Control."
3660
  msgstr ""
3661
 
3662
+ #: lib/i18n-extra.php:160
3663
  msgid "Allowed IPs."
3664
  msgstr ""
3665
 
3666
+ #: lib/i18n-extra.php:161
3667
  msgid "Blocked IPs."
3668
  msgstr ""
3669
 
3670
+ #: lib/i18n-extra.php:162
3671
  msgid "Allowed URLs."
3672
  msgstr ""
3673
 
3674
+ #: lib/i18n-extra.php:163
3675
  msgid "Blocked URLs."
3676
  msgstr ""
3677
 
3678
+ #: lib/i18n-extra.php:164
3679
  msgid "Bot Access Control."
3680
  msgstr ""
3681
 
3682
+ #: lib/i18n-extra.php:165
3683
  msgid "Geolocation."
3684
  msgstr ""
3685
 
3686
+ #: lib/i18n-extra.php:166
3687
  msgid "Rate Limiting."
3688
  msgstr ""
3689
 
3690
+ #: lib/i18n-extra.php:167
3691
  msgid "File Guard."
3692
  msgstr ""
3693
 
3694
+ #: lib/i18n-extra.php:168
3695
  msgid "NinjaFirewall built-in rules and policies + User Input Access Control."
3696
  msgstr ""
3697
 
3698
+ #: lib/i18n-extra.php:169
3699
  msgid "Response body"
3700
  msgstr ""
3701
 
3702
+ #: lib/i18n-extra.php:170
3703
  msgid "HTTP response headers (Firewall Policies)."
3704
  msgstr ""
3705
 
3706
+ #: lib/i18n-extra.php:171
3707
  msgid "Web Filter."
3708
  msgstr ""
3709
 
3710
+ #: lib/i18n-extra.php:172
3711
  #, php-format
3712
  msgid ""
3713
  "By default, any logged in WordPress administrator will not be blocked by "
3719
  "enforced."
3720
  msgstr ""
3721
 
3722
+ #: lib/i18n-extra.php:173
3723
  msgid "You can also add other users to the whitelist, depending on their role."
3724
  msgstr ""
3725
 
3726
+ #: lib/i18n-extra.php:174
3727
  #, php-format
3728
  msgid ""
3729
  "this option should be used if you are behind a reverse proxy, a load "
3737
  "NinjaFirewall will fall back to <code>REMOTE_ADDR</code>."
3738
  msgstr ""
3739
 
3740
+ #: lib/i18n-extra.php:175
3741
  msgid ""
3742
  "This option lets you select the HTTP method(s). All Access Control "
3743
  "directives (Geolocation, IPs, bots and URLs) will only apply to the selected "
3744
  "methods."
3745
  msgstr ""
3746
 
3747
+ #: lib/i18n-extra.php:176
3748
  msgid ""
3749
  "It does not apply to the \"Firewall Policies\" options, which use their own "
3750
  "ones."
3751
  msgstr ""
3752
 
3753
+ #: lib/i18n-extra.php:177
3754
  msgid ""
3755
  "You can filter and block traffic coming from specific countries/territories."
3756
  msgstr ""
3757
 
3758
+ #: lib/i18n-extra.php:178
3759
  msgid ""
3760
  "This is the two-letter code that is used to define a country/territory (e."
3761
  "g., US, UK, FR, DE etc), based on the visitors IP. NinjaFirewall can either "
3763
  "your HTTP server (e.g., <code>GEOIP_COUNTRY_CODE</code>)."
3764
  msgstr ""
3765
 
3766
+ #: lib/i18n-extra.php:179
3767
  #, php-format
3768
  msgid ""
3769
  "You can add/remove any country/territory from the two listboxes. For more "
3771
  "want to consult <a href=\"%s\">the MaxMind GeoIP online help</a>."
3772
  msgstr ""
3773
 
3774
+ #: lib/i18n-extra.php:180
3775
  msgid ""
3776
  "Whether geolocation should apply to the whole site or to specific URLs only "
3777
  "(e.g., /wp-login.php, /xmlrpc.php etc). Leave all fields empty if you want "
3778
  "it to apply to the whole site."
3779
  msgstr ""
3780
 
3781
+ #: lib/i18n-extra.php:181
3782
  msgid "Add <code>NINJA_COUNTRY_CODE</code> to PHP headers?"
3783
  msgstr ""
3784
 
3785
+ #: lib/i18n-extra.php:182
3786
  msgid ""
3787
  "After retrieving the two-letter country/territory code, NinjaFirewall can "
3788
  "add it to the PHP headers in the <code>$_SERVER[\"NINJA_COUNTRY_CODE\"]</"
3790
  "visitors location, simply use that variable."
3791
  msgstr ""
3792
 
3793
+ #: lib/i18n-extra.php:183
3794
  msgid ""
3795
  "If NinjaFirewall cannot find the two-letter ISO 3166 code, it will replace "
3796
  "it with 2 hyphens (<code>--</code>)."
3797
  msgstr ""
3798
 
3799
+ #: lib/i18n-extra.php:184
3800
  msgid ""
3801
  "PHP code example to use in your theme or plugin to geolocate your visitors:"
3802
  msgstr ""
3803
 
3804
+ #: lib/i18n-extra.php:185
3805
  msgid ""
3806
  "NinjaFirewall includes GeoLite data created by MaxMind, available from "
3807
  "http://www.maxmind.com"
3808
  msgstr ""
3809
 
3810
+ #: lib/i18n-extra.php:186
3811
  msgid "IP / URL / Bot Access Control"
3812
  msgstr ""
3813
 
3814
+ #: lib/i18n-extra.php:187
3815
  msgid ""
3816
  "You can permanently allow/block an IP, a whole range of IP addresses or AS "
3817
  "numbers (Autonomous System number). IPv4 and IPv6 are fully supported by "
3818
  "NinjaFirewall."
3819
  msgstr ""
3820
 
3821
+ #: lib/i18n-extra.php:188
3822
  msgid "Full IP:"
3823
  msgstr ""
3824
 
3825
+ #: lib/i18n-extra.php:189
3826
  #, php-format
3827
  msgid "IP ranges using CIDR notation: %s or %s."
3828
  msgstr ""
3829
 
3830
+ #: lib/i18n-extra.php:190
3831
  msgid "Autonomous System number:"
3832
  msgstr ""
3833
 
3834
+ #: lib/i18n-extra.php:191
3835
  msgid ""
3836
  "This option allows you to slow down aggressive bots, crawlers, web scrapers "
3837
  "or even small HTTP attacks. Any IP reaching the defined threshold will be "
3844
  "turned off."
3845
  msgstr ""
3846
 
3847
+ #: lib/i18n-extra.php:192
3848
  msgid ""
3849
  "IPs temporarily banned by the Rate Limiting option can be unblocked "
3850
  "immediately by clicking either the \"Save Access Control Directives\" or "
3851
  "\"Restore Default Values\" buttons at the bottom of this page."
3852
  msgstr ""
3853
 
3854
+ #: lib/i18n-extra.php:193
3855
  msgid ""
3856
  "Because NinjaFirewall can handle a lot of HTTP requests per second and block "
3857
  "IPs even before your blog is loaded, we strongly recommend that you disable "
3861
  "during an attack."
3862
  msgstr ""
3863
 
3864
+ #: lib/i18n-extra.php:194
3865
  msgid ""
3866
  "You can permanently allow/block any access to one or more PHP scripts based "
3867
  "on their path, relative to the web root (<code>SCRIPT_NAME</code>). You can "
3868
  "enter either a full or partial path (case-sensitive)."
3869
  msgstr ""
3870
 
3871
+ #: lib/i18n-extra.php:195
3872
  msgid ""
3873
  "<code>/foo/bar.php</code> will block any access to the <code>bar.php</code> "
3874
  "script located inside a <code>/foo/</code> directory"
3875
  msgstr ""
3876
 
3877
+ #: lib/i18n-extra.php:196
3878
  msgid "etc"
3879
  msgstr ""
3880
 
3881
+ #: lib/i18n-extra.php:197
3882
  msgid ""
3883
  "<code>/foo/</code> will block access to all PHP scripts located inside a "
3884
  "<code>/foo/</code> directory and its sub-directories."
3885
  msgstr ""
3886
 
3887
+ #: lib/i18n-extra.php:198
3888
  msgid ""
3889
  "Note that the \"Firewall Policies\" page already includes restrictions to "
3890
  "some WordPress directories."
3891
  msgstr ""
3892
 
3893
+ #: lib/i18n-extra.php:199
3894
  msgid ""
3895
  "You can block bots, scanners and various crawlers based on the "
3896
  "<code>HTTP_USER_AGENT</code> variable. You can enter either a full or "
3897
  "partial name (case-insensitive)."
3898
  msgstr ""
3899
 
3900
+ #: lib/i18n-extra.php:200
3901
  msgid ""
3902
  "You can select to ignore or block some specific user input. It applies to "
3903
  "the <code>GET</code>, <code>POST</code> and <code>COOKIE</code> global "
3905
  "\"]</code>:"
3906
  msgstr ""
3907
 
3908
+ #: lib/i18n-extra.php:201
3909
  msgid ""
3910
  "When an input is added to the \"Unfiltered input\" list, it will not be "
3911
  "filtered or sanitised. All other input present in the request will be "
3912
  "filtered."
3913
  msgstr ""
3914
 
3915
+ #: lib/i18n-extra.php:202
3916
  msgid ""
3917
  "When an input is added to the \"Blocked input\", NinjaFirewall will block "
3918
  "the request and close the connection if that input is found in the request."
3919
  msgstr ""
3920
 
3921
+ #: lib/i18n-extra.php:203
3922
  msgid "Log Event"
3923
  msgstr ""
3924
 
3925
+ #: lib/i18n-extra.php:204
3926
  msgid ""
3927
  "You can enable/disable firewall logging for each access control directive "
3928
  "separately."
3929
  msgstr ""
3930
 
3931
+ #: lib/i18n-extra.php:205
3932
  msgid "Web Filter"
3933
  msgstr ""
3934
 
3935
+ #: lib/i18n-extra.php:206
3936
  msgid ""
3937
  "If NinjaFirewall can hook and scan incoming requests, it can also hook the "
3938
  "response body (i.e., the output of the HTML page right before it is sent to "
3942
  "hackers shell script, redirections and even errors (PHP/MySQL errors)."
3943
  msgstr ""
3944
 
3945
+ #: lib/i18n-extra.php:207
3946
  msgid ""
3947
  "In the case of a positive detection, NinjaFirewall will not block the "
3948
  "response body but will send you an alert by email."
3949
  msgstr ""
3950
 
3951
+ #: lib/i18n-extra.php:208
3952
  msgid "Search HTML page for the following keywords"
3953
  msgstr ""
3954
 
3955
+ #: lib/i18n-extra.php:209
3956
  msgid ""
3957
  "You can enter any keyword from 4 to 150 characters and select whether the "
3958
  "search will be case sensitive or not."
3959
  msgstr ""
3960
 
3961
+ #: lib/i18n-extra.php:210
3962
  msgid "Email Alerts"
3963
  msgstr ""
3964
 
3965
+ #: lib/i18n-extra.php:211
3966
  msgid ""
3967
  "You can use the notification throttling option to limit the frequency of "
3968
  "alerts sent to you (and written to the firewall log) and select whether you "
3971
  "in the \"Event Notifications\" menu."
3972
  msgstr ""
3973
 
3974
+ #: lib/i18n-extra.php:212
3975
  msgid ""
3976
  "Response body filtering can be resource-intensive. Try to limit the number "
3977
  "of keywords to what you really need (less than 10) and, if possible, prefer "
3978
  "case sensitive to case insensitive filtering."
3979
  msgstr ""
3980
 
3981
+ #: lib/i18n-extra.php:213
3982
  msgid ""
3983
  "NinjaFirewall can protect your blog against spam without user interaction (e."
3984
  "g., CAPTCHA, math puzzles etc). The protection is totally transparent to "
3987
  "generate your forms, they will not be protected against spam."
3988
  msgstr ""
3989
 
3990
+ #: lib/i18n-extra.php:214
3991
  msgid "Protection level:"
3992
  msgstr ""
3993
 
3994
+ #: lib/i18n-extra.php:215
3995
  msgid ""
3996
  "Select the level of protection. In most cases, <strong>Low</strong> should "
3997
  "be enough."
3998
  msgstr ""
3999
 
4000
+ #: lib/i18n-extra.php:216
4001
  msgid "Apply protection to:"
4002
  msgstr ""
4003
 
4004
+ #: lib/i18n-extra.php:217
4005
  msgid "Whether to protect comment and/or registration forms."
4006
  msgstr ""
4007
 
4008
+ #: lib/i18n-extra.php:218
4009
  msgid "If you are using a caching plugin, ensure you follow these steps:"
4010
  msgstr ""
4011
 
4012
+ #: lib/i18n-extra.php:219
4013
  msgid ""
4014
  "Set the Protection Level to \"Low\" only. Do not use another value, "
4015
  "otherwise the antispam could behave erratically after a while."
4016
  msgstr ""
4017
 
4018
+ #: lib/i18n-extra.php:220
4019
  msgid ""
4020
  "Flush/clear your cache immediately after enabling or disabling the antispam."
4021
  msgstr ""
4022
 
4023
+ #: lib/i18n-extra.php:221
4024
  msgid ""
4025
  "The firewall log displays blocked and sanitised requests as well as some "
4026
  "useful information. It has 6 columns:"
4027
  msgstr ""
4028
 
4029
+ #: lib/i18n-extra.php:222
4030
  msgid ""
4031
  "RULE : reference of the NinjaFirewall built-in security rule that triggered "
4032
  "the action. A hyphen (<code>-</code>) instead of a number means it was a "
4033
  "rule from the \"Firewall Policies\" or \"Access Control\" pages."
4034
  msgstr ""
4035
 
4036
+ #: lib/i18n-extra.php:223
4037
  msgid "The log can also be exported as a TSV (tab-separated values) text file."
4038
  msgstr ""
4039
 
4040
+ #: lib/i18n-extra.php:224
4041
  msgid "Enable firewall log"
4042
  msgstr ""
4043
 
4044
+ #: lib/i18n-extra.php:225
4045
  msgid "You can disable/enable the firewall log from this page."
4046
  msgstr ""
4047
 
4048
+ #: lib/i18n-extra.php:226
4049
  msgid ""
4050
  "Brute-force attacks will still be written to the firewall log, even if you "
4051
  "disable it."
4052
  msgstr ""
4053
 
4054
+ #: lib/i18n-extra.php:227
4055
  msgid "Auto-rotate log"
4056
  msgstr ""
4057
 
4058
+ #: lib/i18n-extra.php:228
4059
  msgid ""
4060
  "NinjaFirewall will rotate its log automatically on the very first day of "
4061
  "each month. If your site is very busy, you may want to allow it to rotate "
4062
  "the log when it reaches a certain size (MB) as well."
4063
  msgstr ""
4064
 
4065
+ #: lib/i18n-extra.php:229
4066
  msgid ""
4067
  "By default, if will rotate the log each month or earlier, if it reaches 2 "
4068
  "megabytes."
4069
  msgstr ""
4070
 
4071
+ #: lib/i18n-extra.php:230
4072
  msgid ""
4073
  "Rotated logs, if any, can be selected and viewed from the dropdown menu."
4074
  msgstr ""
4075
 
4076
+ #: lib/i18n-extra.php:231
4077
  msgid "Syslog"
4078
  msgstr ""
4079
 
4080
+ #: lib/i18n-extra.php:232
4081
  msgid ""
4082
  "In addition to the firewall log, events can also be redirected to the syslog "
4083
  "server (<code>LOG_USER</code> facility)."
4084
  msgstr ""
4085
 
4086
+ #: lib/i18n-extra.php:233
4087
  msgid ""
4088
  "If you have a shared hosting account, keep this option disabled as you do "
4089
  "not have any access to the server logs."
4090
  msgstr ""
4091
 
4092
+ #: lib/i18n-extra.php:234
4093
  msgid "The logline uses the following format:"
4094
  msgstr ""
4095
 
4096
+ #: lib/i18n-extra.php:235
4097
  msgid ""
4098
  "BB: the level of severity as it appears in the firewall log. It can be "
4099
  "<code>CRITICAL</CODE>, <CODE>HIGH</CODE>, <CODE>MEDIUM</CODE>, <CODE>INFO</"
4100
  "CODE>, <CODE>UPLOAD</CODE> or <CODE>DEBUG_ON</CODE>."
4101
  msgstr ""
4102
 
4103
+ #: lib/i18n-extra.php:236
4104
  msgid "CCCCCC: the 7-digit incident ID."
4105
  msgstr ""
4106
 
4107
+ #: lib/i18n-extra.php:237
4108
  msgid "DD: the user IPv4 or IPv6 address."
4109
  msgstr ""
4110
 
4111
+ #: lib/i18n-extra.php:238
4112
  msgid "EE: the blog (sub-)domain name."
4113
  msgstr ""
4114
 
4115
+ #: lib/i18n-extra.php:239
4116
  #, php-format
4117
  msgid ""
4118
  "This logging option does not apply to the brute-force protection which can "
4120
  "the <a href=\"%s\">Login Protection</a> page."
4121
  msgstr ""
4122
 
4123
+ #: lib/i18n-extra.php:240
4124
  msgid ""
4125
  "Secret key: The secret key will be used to generate your public key. Enter "
4126
  "at least 30 ASCII characters, or use the one randomly created by "
4127
  "NinjaFirewall."
4128
  msgstr ""
4129
 
4130
+ #: lib/i18n-extra.php:241
4131
  msgid ""
4132
  "This server IP address: As an additional protection layer, you can restrict "
4133
  "access to the remote website(s) to the main server IP only. You can use IPv4 "
4135
  "character instead."
4136
  msgstr ""
4137
 
4138
+ #: lib/i18n-extra.php:242
4139
  #, php-format
4140
  msgid ""
4141
  "Public key: This is the public key that you will need to upload to each "
4142
  "remote website (<a href=\"%s\">consult our blog</a> for more info about it)."
4143
  msgstr ""
4144
 
4145
+ #: lib/i18n-extra.php:243
4146
  msgid ""
4147
  "Remote websites URL: Enter the full URL of your NinjaFirewall protected "
4148
  "website(s) that you want to remotely access from the main server."
4149
  msgstr ""
4150
 
4151
+ #: lib/i18n-extra.php:244
4152
  msgid ""
4153
  "Centralized Logging will keep working even if NinjaFirewall is disabled. Use "
4154
  "the menu below if you want to disable it."
4155
  msgstr ""
4156
 
4157
+ #: lib/i18n-extra.php:245
4158
  msgid "Enable Web Filter"
4159
  msgstr ""
4160
 
4161
+ #: lib/i18n-extra.php:246
4162
  msgid "A full or partial string."
4163
  msgstr ""
4164
 
4165
+ #: lib/i18n-extra.php:247
4166
  msgid "From 4 to maximum 150 characters."
4167
  msgstr ""
4168
 
4169
+ #: lib/i18n-extra.php:248
4170
  msgid "Any character, except the vertical bar <code>|</code>"
4171
  msgstr ""
4172
 
4173
+ #: lib/i18n-extra.php:249
4174
  msgid "Keywords to search:"
4175
  msgstr ""
4176
 
4177
+ #: lib/i18n-extra.php:250
4178
  msgid "Case-sensitive search"
4179
  msgstr ""
4180
 
4181
+ #: lib/i18n-extra.php:251
4182
  #, php-format
4183
  msgid "Do not send me more than one email alert in a %s interval"
4184
  msgstr ""
4185
 
4186
+ #: lib/i18n-extra.php:252
4187
  msgid "5-minute"
4188
  msgstr ""
4189
 
4190
+ #: lib/i18n-extra.php:253
4191
  msgid "15-minute"
4192
  msgstr ""
4193
 
4194
+ #: lib/i18n-extra.php:254
4195
  msgid "30-minute"
4196
  msgstr ""
4197
 
4198
+ #: lib/i18n-extra.php:255
4199
  msgid "1-hour"
4200
  msgstr ""
4201
 
4202
+ #: lib/i18n-extra.php:256
4203
  msgid "3-hour"
4204
  msgstr ""
4205
 
4206
+ #: lib/i18n-extra.php:257
4207
  msgid "6-hour"
4208
  msgstr ""
4209
 
4210
+ #: lib/i18n-extra.php:258
4211
  msgid "12-hour"
4212
  msgstr ""
4213
 
4214
+ #: lib/i18n-extra.php:259
4215
  msgid "24-hour"
4216
  msgstr ""
4217
 
4218
+ #: lib/i18n-extra.php:260
4219
  msgid ""
4220
  "Clicking the \"Save Web Filter options\" button below will reset the current "
4221
  "timer."
4222
  msgstr ""
4223
 
4224
+ #: lib/i18n-extra.php:261
4225
  msgid "Attach the HTML page output to email alerts"
4226
  msgstr ""
4227
 
4228
+ #: lib/i18n-extra.php:262
4229
  msgid "Save Web Filter options"
4230
  msgstr ""
4231
 
4232
+ #: lib/i18n-extra.php:263
4233
  msgid "Help Desk:"
4234
  msgstr ""
4235
 
4236
+ #: lib/i18n-extra.php:264
4237
  msgid "The selected log was deleted"
4238
  msgstr ""
4239
 
4240
+ #: lib/i18n-extra.php:265
4241
  msgid "Export"
4242
  msgstr ""
4243
 
4244
+ #: lib/i18n-extra.php:266
4245
  msgid "Delete"
4246
  msgstr ""
4247
 
4248
+ #: lib/i18n-extra.php:267
4249
  msgid "Delete log?"
4250
  msgstr ""
4251
 
4252
+ #: lib/i18n-extra.php:268
4253
  msgid "Today"
4254
  msgstr ""
4255
 
4256
+ #: lib/i18n-extra.php:269
4257
  msgid "Upload"
4258
  msgstr ""
4259
 
4260
+ #: lib/i18n-extra.php:270
4261
  msgid "Info"
4262
  msgstr ""
4263
 
4264
+ #: lib/i18n-extra.php:271
4265
  msgid "Debug"
4266
  msgstr ""
4267
 
4268
+ #: lib/i18n-extra.php:272
4269
  msgid "IP address:"
4270
  msgstr ""
4271
 
4272
+ #: lib/i18n-extra.php:273
4273
  msgid "e.g., 1.2.3.4"
4274
  msgstr ""
4275
 
4276
+ #: lib/i18n-extra.php:274
4277
  msgid "Add IP to blacklist"
4278
  msgstr ""
4279
 
4280
+ #: lib/i18n-extra.php:275
4281
  msgid "Add IP to whitelist"
4282
  msgstr ""
4283
 
4284
+ #: lib/i18n-extra.php:276
4285
  msgid "Add"
4286
  msgstr ""
4287
 
4288
+ #: lib/i18n-extra.php:277
4289
  msgid "The address wad added to your IP Access Control list."
4290
  msgstr ""
4291
 
4292
+ #: lib/i18n-extra.php:278
4293
  #, php-format
4294
  msgid "1st day of the month, or if bigger than %s MB"
4295
  msgstr ""
4296
 
4297
+ #: lib/i18n-extra.php:279
4298
  msgid "1st day of the month, regardless of its size"
4299
  msgstr ""
4300
 
4301
+ #: lib/i18n-extra.php:280
4302
  msgid "Show the most recent"
4303
  msgstr ""
4304
 
4305
+ #: lib/i18n-extra.php:281
4306
  msgid "lines"
4307
  msgstr ""
4308
 
4309
+ #: lib/i18n-extra.php:282
4310
  msgid "Write events to the Syslog server too"
4311
  msgstr ""
4312
 
4313
+ #: lib/i18n-extra.php:283
4314
  msgid "Your server configuration is not compatible with this option."
4315
  msgstr ""
4316
 
4317
+ #: lib/i18n-extra.php:284
4318
  msgid "See contextual help before enabling this option."
4319
  msgstr ""
4320
 
4321
+ #: lib/i18n-extra.php:285
4322
  msgid ""
4323
  "The remote server rejected your request. Make sure that you uploaded the "
4324
  "correct public key."
4325
  msgstr ""
4326
 
4327
+ #: lib/i18n-extra.php:286
4328
  #, php-format
4329
  msgid "The remote server returned the following HTTP error: %s"
4330
  msgstr ""
4331
 
4332
+ #: lib/i18n-extra.php:287
4333
  msgid "The requested log does not exist on the remote website."
4334
  msgstr ""
4335
 
4336
+ #: lib/i18n-extra.php:288
4337
  msgid "The remote website did not return the expected response."
4338
  msgstr ""
4339
 
4340
+ #: lib/i18n-extra.php:289
4341
  msgid "Your server does not seem to be compatible with this option."
4342
  msgstr ""
4343
 
4344
+ #: lib/i18n-extra.php:290
4345
  msgid "Load language files from the WordPress repo"
4346
  msgstr ""
4347
 
4348
+ #: lib/i18n-extra.php:291
4349
  #, php-format
4350
  msgid ""
4351
  "If available, NinjaFirewall will download the language files from <a "
4352
  "%s>translate.wordpress.org</a>."
4353
  msgstr ""
4354
 
4355
+ #: lib/i18n-extra.php:292
4356
  msgid "Error: you do not have any license."
4357
  msgstr ""
4358
 
4359
+ #: lib/i18n-extra.php:293
4360
  msgid "You have a valid license."
4361
  msgstr ""
4362
 
4363
+ #: lib/i18n-extra.php:294
4364
  msgid ""
4365
  "An unknown error occured while connecting to NinjaFirewall servers. Please "
4366
  "try again in a few minutes"
4367
  msgstr ""
4368
 
4369
+ #: lib/i18n-extra.php:295
4370
  msgid ""
4371
  "An error occured while connecting to NinjaFirewall servers. Please try again "
4372
  "in a few minutes"
4373
  msgstr ""
4374
 
4375
+ #: lib/i18n-extra.php:296
4376
  msgid "Enter a valid license to save!"
4377
  msgstr ""
4378
 
4379
+ #: lib/i18n-extra.php:297
4380
  msgid "This is already your current license!"
4381
  msgstr ""
4382
 
4383
+ #: lib/i18n-extra.php:298
4384
  msgid "Your new license has been accepted and saved."
4385
  msgstr ""
4386
 
4387
+ #: lib/i18n-extra.php:299
4388
  msgid "This license is not valid"
4389
  msgstr ""
4390
 
4391
+ #: lib/i18n-extra.php:300
4392
  msgid "WP+ Edition License"
4393
  msgstr ""
4394
 
4395
+ #: lib/i18n-extra.php:301
4396
  msgid "License Number"
4397
  msgstr ""
4398
 
4399
+ #: lib/i18n-extra.php:302
4400
  msgid "No license found"
4401
  msgstr ""
4402
 
4403
+ #: lib/i18n-extra.php:303
4404
  msgid "Click to check your license validity"
4405
  msgstr ""
4406
 
4407
+ #: lib/i18n-extra.php:304
4408
  msgid "Expiration date"
4409
  msgstr ""
4410
 
4411
+ #: lib/i18n-extra.php:305
4412
  msgid "Unknown expiration date"
4413
  msgstr ""
4414
 
4415
+ #: lib/i18n-extra.php:306
4416
  msgid "Use the \"Check License Validity\" button to attempt to fix this error."
4417
  msgstr ""
4418
 
4419
+ #: lib/i18n-extra.php:307
4420
  msgid "Your license will expire soon!"
4421
  msgstr ""
4422
 
4423
+ #: lib/i18n-extra.php:308
4424
  msgid "Your license has expired."
4425
  msgstr ""
4426
 
4427
+ #: lib/i18n-extra.php:309
4428
  msgid "License renewal"
4429
  msgstr ""
4430
 
4431
+ #: lib/i18n-extra.php:310
4432
  msgid "Click here to get a license!"
4433
  msgstr ""
4434
 
4435
+ #: lib/i18n-extra.php:311
4436
  msgid "Enter your new license and click on the save button"
4437
  msgstr ""
4438
 
4439
+ #: lib/i18n-extra.php:312
4440
  msgid "Save New License"
4441
  msgstr ""
4442
 
4443
+ #: lib/i18n-extra.php:313
4444
  msgid "Allow, but block dangerous files"
4445
  msgstr ""
4446
 
4447
+ #: lib/i18n-extra.php:314
4448
  msgid "See contextual help for the list of files."
4449
  msgstr ""
4450
 
4451
+ #: lib/i18n-extra.php:315
4452
  msgid "Apply to ZIP archives file contents"
4453
  msgstr ""
4454
 
4455
+ #: lib/i18n-extra.php:316
4456
  msgid ""
4457
  "Keep this option disabled if you are using scripts such as Paypal IPN or "
4458
  "WordPress WP-Cron, unless you added their IP address or URL to your Access "
4459
  "Control whitelist."
4460
  msgstr ""
4461
 
4462
+ #: lib/i18n-extra.php:317
4463
  #, php-format
4464
  msgid ""
4465
  "Do not send a notification if the user is in the <a href=\"%s\">IP Access "
4472
  "Error: Your .htaccess file is not writable, please change its permissions: %s"
4473
  msgstr ""
4474
 
4475
+ #: lib/install.php:110 ninjafirewall.php:656 ninjafirewall.php:660
4476
  #, php-format
4477
  msgid "Error: wrong parameter value (%s)."
4478
  msgstr ""
4515
  msgid "File is not writable"
4516
  msgstr ""
4517
 
4518
+ #: lib/install_default.php:168
4519
  msgid ""
4520
  "Error: The installer cannot download the security rules from wordpress.org "
4521
  "website."
4522
  msgstr ""
4523
 
4524
+ #: lib/install_default.php:169
4525
  msgid ""
4526
  "The server may be temporarily down or you may have network connectivity "
4527
  "problems? Please try again in a few minutes."
4528
  msgstr ""
4529
 
4530
+ #: lib/install_default.php:170
4531
  msgid ""
4532
  "NinjaFirewall downloads its rules over an HTTPS secure connection. Maybe "
4533
  "your server does not support SSL? You can force NinjaFirewall to use a non-"
4535
  "config.php</strong> file:"
4536
  msgstr ""
4537
 
4538
+ #: lib/install_default.php:243
4539
  #, php-format
4540
  msgid ""
4541
  "NinjaFirewall cannot create its <code>nfwlog/</code>log and cache folder; "
4714
  msgid "Error: unable to write to the %s configuration file"
4715
  msgstr ""
4716
 
4717
+ #: lib/logs.php:36 ninjafirewall.php:930
4718
  msgid "Logs"
4719
  msgstr ""
4720
 
4721
+ #: lib/logs.php:41
4722
+ msgid ""
4723
+ "In the Premium version of NinjaFirewall, you can filter the log by threat "
4724
+ "severity, type and date. You can delete it, enable its rotation based on the "
4725
+ "size of the file. It can be exported as a TSV (tab-separated values) text "
4726
+ "file. You can easily add any IP address to your Access Control whitelist or "
4727
+ "blacklist and it is possible to redirect all incidents and events to the "
4728
+ "Syslog server."
4729
+ msgstr ""
4730
+
4731
+ #: lib/logs.php:41
4732
+ msgid ""
4733
+ "Also, the Centralized Logging feature lets you remotely access the firewall "
4734
+ "log of all your NinjaFirewall protected websites from one single "
4735
+ "installation."
4736
+ msgstr ""
4737
+
4738
  #: lib/logs_firewall_log.php:35
4739
  #, php-format
4740
  msgid ""
4755
  msgid "Your public key has been saved"
4756
  msgstr ""
4757
 
 
 
 
 
4758
  #: lib/logs_firewall_log.php:92
4759
  msgid "Note"
4760
  msgstr ""
4836
  "Administrator to the whitelist\" option is enabled."
4837
  msgstr ""
4838
 
4839
+ #: lib/logs_live_log.php:96 ninjafirewall.php:353
4840
  msgid ""
4841
  "Live Log lets you watch your blog traffic in real time. To enable it, click "
4842
  "on the button below."
4937
  msgid "Error: please enter the custom log format."
4938
  msgstr ""
4939
 
4940
+ #: lib/monitoring.php:43 ninjafirewall.php:904
4941
  msgid "Monitoring"
4942
  msgstr ""
4943
 
4944
+ #: lib/monitoring.php:48
4945
+ msgid ""
4946
+ "In the Premium version of NinjaFirewall, you can also monitor the response "
4947
+ "body, i.e., the output of the HTML page, and search it for some specific "
4948
+ "keywords, which can be useful to identify errors, hacked content and data "
4949
+ "leakage issues on your website."
4950
+ msgstr ""
4951
+
4952
  #: lib/monitoring_file_check.php:62
4953
  msgid "Snapshot successfully created."
4954
  msgstr ""
4961
  msgid "You must create a snapshot first."
4962
  msgstr ""
4963
 
4964
+ #: lib/monitoring_file_check.php:102 lib/monitoring_file_check.php:757
4965
  msgid "NinjaFirewall detected that changes were made to your files."
4966
  msgstr ""
4967
 
5054
  msgid "Last changes"
5055
  msgstr ""
5056
 
5057
+ #: lib/monitoring_file_check.php:281 lib/monitoring_file_check.php:765
5058
  #, php-format
5059
  msgid "New files: %s"
5060
  msgstr ""
5061
 
5062
+ #: lib/monitoring_file_check.php:282 lib/monitoring_file_check.php:767
5063
  #, php-format
5064
  msgid "Deleted files: %s"
5065
  msgstr ""
5066
 
5067
+ #: lib/monitoring_file_check.php:283 lib/monitoring_file_check.php:766
5068
  #, php-format
5069
  msgid "Modified files: %s"
5070
  msgstr ""
5237
  msgid "Error reading new snapshot file."
5238
  msgstr ""
5239
 
5240
+ #: lib/monitoring_file_check.php:730 ninjafirewall.php:460
5241
  msgid "New file"
5242
  msgstr ""
5243
 
5244
+ #: lib/monitoring_file_check.php:731 ninjafirewall.php:461
5245
  msgid "Modified file"
5246
  msgstr ""
5247
 
5248
+ #: lib/monitoring_file_check.php:732 ninjafirewall.php:462
5249
  msgid "Deleted file"
5250
  msgstr ""
5251
 
5252
+ #: lib/monitoring_file_check.php:756
5253
  msgid "[NinjaFirewall] Alert: File Check detection"
5254
  msgstr ""
5255
 
5256
+ #: lib/monitoring_file_check.php:763 lib/monitoring_file_check.php:785
5257
+ #: lib/security_rules_update.php:564
 
 
 
 
 
 
 
 
5258
  #, php-format
5259
  msgid "Date: %s"
5260
  msgstr ""
5261
 
5262
+ #: lib/monitoring_file_check.php:769
5263
  msgid "See attached file for details."
5264
  msgstr ""
5265
 
5266
+ #: lib/monitoring_file_check.php:778
5267
  msgid "[NinjaFirewall] File Check report"
5268
  msgstr ""
5269
 
5270
+ #: lib/monitoring_file_check.php:779
5271
  msgid "NinjaFirewall did not detect changes in your files."
5272
  msgstr ""
5273
 
5313
  msgid "Save File Guard options"
5314
  msgstr ""
5315
 
5316
+ #: lib/network.php:24 ninjafirewall.php:1191 ninjafirewall.php:1195
5317
  #, php-format
5318
  msgid "You are not allowed to perform this task (%s)."
5319
  msgstr ""
5336
  msgid "Save Network options"
5337
  msgstr ""
5338
 
5339
+ #: lib/scheduled_tasks.php:120 lib/scheduled_tasks.php:128
5340
+ #: lib/scheduled_tasks.php:143 lib/scheduled_tasks.php:152
5341
+ #, php-format
5342
+ msgid "Scheduled task has stopped, restarting it (%s)"
5343
+ msgstr ""
5344
+
5345
+ #: lib/security_rules.php:44 lib/security_rules_update.php:565
5346
+ #: ninjafirewall.php:934
5347
  msgid "Security Rules"
5348
  msgstr ""
5349
 
5445
  msgid "Security rules have been updated."
5446
  msgstr ""
5447
 
5448
+ #: lib/security_rules_update.php:91 lib/security_rules_update.php:447
5449
  msgid "No security rules update available."
5450
  msgstr ""
5451
 
5464
  msgid "Check for updates"
5465
  msgstr ""
5466
 
5467
+ #: lib/security_rules_update.php:148
5468
+ msgid ""
5469
+ "In the Premium version of NinjaFirewall, you can check for security rules "
5470
+ "updates as often as every 15 minutes, versus one hour for the free WP "
5471
+ "Edition."
5472
+ msgstr ""
5473
+
5474
  #: lib/security_rules_update.php:151
5475
  msgid "Every 15 minutes"
5476
  msgstr ""
5531
  msgid "Delete Log"
5532
  msgstr ""
5533
 
5534
+ #: lib/security_rules_update.php:314
5535
  msgid "Error: Wrong rules format."
5536
  msgstr ""
5537
 
5538
+ #: lib/security_rules_update.php:323
5539
  msgid "Error: Unable to unserialize the new rules."
5540
  msgstr ""
5541
 
5542
+ #: lib/security_rules_update.php:331
5543
  msgid "Error: Unserialized rules seem corrupted."
5544
  msgstr ""
5545
 
5546
+ #: lib/security_rules_update.php:390
5547
  #, php-format
5548
  msgid "Security rules updated to version %s."
5549
  msgstr ""
5550
 
5551
+ #: lib/security_rules_update.php:436
5552
  msgid "Error: Unable to retrieve the new rules version."
5553
  msgstr ""
5554
 
5555
+ #: lib/security_rules_update.php:454
5556
  #, php-format
5557
  msgid "Error: Server returned a %s HTTP error code (#1)."
5558
  msgstr ""
5559
 
5560
+ #: lib/security_rules_update.php:461 lib/security_rules_update.php:527
5561
  msgid "Error: Unable to connect to the remote server"
5562
  msgstr ""
5563
 
5564
+ #: lib/security_rules_update.php:491
5565
  #, php-format
5566
  msgid "Error: The new rules versions do not match (%s != %s)."
5567
  msgstr ""
5568
 
5569
+ #: lib/security_rules_update.php:505
5570
  #, php-format
5571
  msgid ""
5572
  "Error: The new rules %s digital signature is not correct. Aborting update, "
5573
  "rules may have been tampered with."
5574
  msgstr ""
5575
 
5576
+ #: lib/security_rules_update.php:520
5577
  #, php-format
5578
  msgid "Error: Server returned a %s HTTP error code (#2)."
5579
  msgstr ""
5580
 
5581
+ #: lib/security_rules_update.php:556
5582
  msgid "[NinjaFirewall] Security rules update"
5583
  msgstr ""
5584
 
5585
+ #: lib/security_rules_update.php:557
5586
  msgid "NinjaFirewall security rules have been updated:"
5587
  msgstr ""
5588
 
5589
+ #: lib/security_rules_update.php:563
5590
  msgid "Rules version:"
5591
  msgstr ""
5592
 
5593
+ #: lib/security_rules_update.php:565
5594
  #, php-format
5595
  msgid "This notification can be turned off from NinjaFirewall \"%s\" page."
5596
  msgstr ""
5755
  msgid "Cancel and Close"
5756
  msgstr ""
5757
 
5758
+ #: lib/utils.php:188 lib/utils.php:196 lib/utils.php:295
5759
  msgid "N/A"
5760
  msgstr ""
5761
 
5762
+ #: lib/utils.php:202
5763
  #, php-format
5764
  msgid "Attempt to create a new %s"
5765
  msgstr ""
5766
 
5767
+ #: lib/utils.php:206
5768
  #, php-format
5769
  msgid "Attempt to edit a published %s (ID: %s)"
5770
  msgstr ""
5771
 
5772
+ #: lib/utils.php:212 lib/utils.php:287
5773
  msgid "Unauthenticated user"
5774
  msgstr ""
5775
 
5776
+ #: lib/utils.php:217
5777
  msgid "Blocked post/page edition attempt"
5778
  msgstr ""
5779
 
5783
  "doesn't have the right capabilities:"
5784
  msgstr ""
5785
 
5786
+ #: lib/utils.php:226 lib/utils.php:307 lib/utils.php:426 lib/utils.php:1216
5787
  msgid "Username:"
5788
  msgstr ""
5789
 
5791
  msgid "Action:"
5792
  msgstr ""
5793
 
5794
+ #: lib/utils.php:242 lib/utils.php:322 lib/utils.php:439 lib/utils.php:1232
5795
+ #: lib/utils.php:1480
 
 
 
 
 
5796
  msgid "A PHP backtrace has been attached to this message for your convenience."
5797
  msgstr ""
5798
 
5799
+ #: lib/utils.php:244 lib/utils.php:324 lib/utils.php:1234 lib/utils.php:1490
5800
  msgid ""
5801
  "This protection (and notification) can be turned off from NinjaFirewall "
5802
  "\"Firewall Policies\" page."
5803
  msgstr ""
5804
 
5805
+ #: lib/utils.php:259 lib/utils.php:260 lib/utils.php:339 lib/utils.php:340
5806
+ #: lib/utils.php:456 lib/utils.php:457 lib/utils.php:1250 lib/utils.php:1251
5807
  msgid "You are not allowed to perform this task."
5808
  msgstr ""
5809
 
5811
  msgid "Blocked post/page deletion attempt"
5812
  msgstr ""
5813
 
5814
+ #: lib/utils.php:305
5815
  msgid ""
5816
  "NinjaFirewall has blocked an attempt to delete a post by a user who doesn't "
5817
  "have the right capabilities:"
5818
  msgstr ""
5819
 
5820
+ #: lib/utils.php:416
5821
  msgid "Blocked user account creation"
5822
  msgstr ""
5823
 
5824
+ #: lib/utils.php:423
5825
  msgid "NinjaFirewall has blocked an attempt to create a user account:"
5826
  msgstr ""
5827
 
5828
+ #: lib/utils.php:521
5829
+ #, php-format
5830
+ msgid "Backup file is corrupted, deleting it (%s)"
5831
+ msgstr ""
5832
+
5833
+ #: lib/utils.php:529
5834
+ #, php-format
5835
+ msgid ""
5836
+ "NinjaFirewall's options are corrupted, restoring them from last known good "
5837
+ "backup file (%s)"
5838
+ msgstr ""
5839
+
5840
+ #: lib/utils.php:535
5841
+ msgid ""
5842
+ "NinjaFirewall's options are corrupted, restoring their default values (no "
5843
+ "valid backup found)"
5844
+ msgstr ""
5845
+
5846
+ #: lib/utils.php:718
5847
  msgid ""
5848
  "Warning: Because NinjaFirewall's Login Protection is enabled, Site Health "
5849
  "may return an error message regarding the loopback test (e.g., 404 or 401 "
5850
  "HTTP status code). You can safely ignore it."
5851
  msgstr ""
5852
 
5853
+ #: lib/utils.php:741 lib/utils.php:745
5854
  msgid "NinjaFirewall error"
5855
  msgstr ""
5856
 
5857
+ #: lib/utils.php:742
5858
  #, php-format
5859
  msgid ""
5860
  "%s directory cannot be created. Please review your installation and ensure "
5861
  "that %s is writable."
5862
  msgstr ""
5863
 
5864
+ #: lib/utils.php:746
5865
  #, php-format
5866
  msgid ""
5867
  "%s directory is read-only. Please review your installation and ensure that "
5868
  "%s is writable."
5869
  msgstr ""
5870
 
5871
+ #: lib/utils.php:761
5872
  msgid "unknown error"
5873
  msgstr ""
5874
 
5875
+ #: lib/utils.php:763
5876
  msgid "NinjaFirewall fatal error:"
5877
  msgstr ""
5878
 
5879
+ #: lib/utils.php:764
5880
  msgid "Review your installation, your site is not protected."
5881
  msgstr ""
5882
 
5883
+ #: lib/utils.php:785
5884
  msgid "Alert: WordPress console login"
5885
  msgstr ""
5886
 
5887
+ #: lib/utils.php:791
5888
  msgid "Someone just logged in to your WordPress admin console:"
5889
  msgstr ""
5890
 
5891
+ #: lib/utils.php:910 lib/utils.php:937
5892
  msgid "Forbidden access"
5893
  msgstr ""
5894
 
5895
+ #: lib/utils.php:956
5896
  #, php-format
5897
  msgid ""
5898
  "<strong>ERROR</strong>: Invalid username, email address or password.<br /><a "
5899
  "href=\"%s\">Lost your password</a>?"
5900
  msgstr ""
5901
 
5902
+ #: lib/utils.php:1034
5903
  msgid "[NinjaFirewall] Alert: Database changes detected"
5904
  msgstr ""
5905
 
5906
+ #: lib/utils.php:1035
5907
  msgid ""
5908
  "NinjaFirewall has detected that one or more administrator accounts were "
5909
  "modified in the database:"
5910
  msgstr ""
5911
 
5912
+ #: lib/utils.php:1040
5913
  #, php-format
5914
  msgid "Total administrators : %s"
5915
  msgstr ""
5916
 
5917
+ #: lib/utils.php:1049
5918
  msgid ""
5919
  "If you cannot see any modifications in the above fields, it is possible that "
5920
  "the administrator password was changed."
5921
  msgstr ""
5922
 
5923
+ #: lib/utils.php:1202
5924
  msgid "Blocked privilege escalation attempt"
5925
  msgstr ""
5926
 
5927
+ #: lib/utils.php:1210
5928
  msgid ""
5929
  "NinjaFirewall has blocked an attempt to modify a user capability by someone "
5930
  "who does not have administrative privileges:"
5931
  msgstr ""
5932
 
5933
+ #: lib/utils.php:1262
5934
  msgid ""
5935
  "NinjaFirewall brute-force protection is enabled and you are temporarily "
5936
  "whitelisted."
5937
  msgstr ""
5938
 
5939
+ #: lib/utils.php:1277
5940
  #, php-format
5941
  msgid ""
5942
  "Hey, it seems that you've been using NinjaFirewall for some time. If you "
5945
  "rate it. Thank you!"
5946
  msgstr ""
5947
 
5948
+ #: lib/utils.php:1452
5949
  msgid ""
5950
  "The attempt was blocked and the option was reversed to its original value."
5951
  msgstr ""
5952
 
5953
+ #: lib/utils.php:1457
5954
  msgid "Attempt to modify WordPress settings"
5955
  msgstr ""
5956
 
5957
+ #: lib/utils.php:1458
5958
  msgid ""
5959
  "NinjaFirewall has blocked an attempt to modify some important WordPress "
5960
  "settings by a user that does not have administrative privileges:"
5961
  msgstr ""
5962
 
5963
+ #: lib/utils.php:1459 lib/utils.php:1468
5964
  #, php-format
5965
  msgid "Option: %s"
5966
  msgstr ""
5967
 
5968
+ #: lib/utils.php:1460
5969
  #, php-format
5970
  msgid "Original value: %s"
5971
  msgstr ""
5972
 
5973
+ #: lib/utils.php:1461
5974
  #, php-format
5975
  msgid "Modified value: %s"
5976
  msgstr ""
5977
 
5978
+ #: lib/utils.php:1462 lib/utils.php:1470
5979
  #, php-format
5980
  msgid "Action taken: %s"
5981
  msgstr ""
5982
 
5983
+ #: lib/utils.php:1466
5984
  msgid "Code injection attempt in WordPress options table"
5985
  msgstr ""
5986
 
5987
+ #: lib/utils.php:1467
5988
  msgid ""
5989
  "NinjaFirewall has blocked an attempt to inject code in the WordPress options "
5990
  "table by a user that does not have administrative privileges:"
5991
  msgstr ""
5992
 
5993
+ #: lib/utils.php:1469
5994
  #, php-format
5995
  msgid "Code: %s"
5996
  msgstr ""
5997
 
5998
+ #: lib/utils.php:1565
5999
  msgid "Important: NinjaFirewall has detected that this is a security update."
6000
  msgstr ""
6001
 
6002
+ #: lib/utils.php:1568
6003
  msgid "More info about this warning."
6004
  msgstr ""
6005
 
6006
+ #: lib/utils.php:1591
6007
+ #, php-format
6008
+ msgid "Cannot send notification, no valid email found (%s)"
6009
+ msgstr ""
6010
+
6011
+ #: lib/utils.php:1616
6012
+ #, php-format
6013
+ msgid ""
6014
+ "If you don't have access to that site any longer, you can remove your email "
6015
+ "by clicking the following link (valid for 12 hours): %s"
6016
+ msgstr ""
6017
+
6018
+ #: lib/utils.php:1642
6019
  #, php-format
6020
  msgid "Error, cannot create the %s folder."
6021
  msgstr ""
6022
 
6023
+ #: lib/utils.php:1643 lib/utils.php:1652 lib/utils.php:1661
6024
  msgid "Check your server permissions and try again."
6025
  msgstr ""
6026
 
6027
+ #: lib/utils.php:1651
6028
  #, php-format
6029
  msgid "Error, the %s folder is not writable."
6030
  msgstr ""
6031
 
6032
+ #: lib/utils.php:1660
6033
  #, php-format
6034
  msgid "Error, cannot write %s."
6035
  msgstr ""
6197
 
6198
  #: lib/wpplus.php:143
6199
  msgid ""
6200
+ "The Web Filter can monitor the response body, i.e., the output of the HTML "
6201
+ "page, and search it for some specific keywords, which can be useful to "
6202
  "identify errors, hacked content and data leakage issues in the response body "
6203
  "sent to your visitors."
6204
  msgstr ""
6424
  msgid "Cannot retrieve user rules from database (#4)"
6425
  msgstr ""
6426
 
6427
+ #: ninjafirewall.php:139
6428
  msgid ""
6429
  "You do not have \"unfiltered_html\" capability. Please enable it in order to "
6430
  "run NinjaFirewall (or make sure you do not have \"DISALLOW_UNFILTERED_HTML\" "
6431
  "in your wp-config.php script)."
6432
  msgstr ""
6433
 
6434
+ #: ninjafirewall.php:146
6435
  #, php-format
6436
  msgid ""
6437
  "NinjaFirewall requires WordPress %s or greater but your current version is "
6438
  "%s."
6439
  msgstr ""
6440
 
6441
+ #: ninjafirewall.php:150
6442
  #, php-format
6443
  msgid ""
6444
  "NinjaFirewall requires PHP 5.3 or greater but your current version is %s."
6445
  msgstr ""
6446
 
6447
+ #: ninjafirewall.php:154
6448
  #, php-format
6449
  msgid "NinjaFirewall requires the PHP %s extension."
6450
  msgstr ""
6451
 
6452
+ #: ninjafirewall.php:158
6453
  msgid ""
6454
  "You have SAFE_MODE enabled. Please disable it, it is deprecated as of PHP "
6455
  "5.3.0 (see http://php.net/safe-mode)."
6456
  msgstr ""
6457
 
6458
+ #: ninjafirewall.php:162
6459
  msgid "You are not allowed to activate NinjaFirewall."
6460
  msgstr ""
6461
 
6462
+ #: ninjafirewall.php:166
6463
  msgid "NinjaFirewall is not compatible with Microsoft Windows."
6464
  msgstr ""
6465
 
6466
+ #: ninjafirewall.php:304
6467
  msgid ""
6468
  "All fields will be restored to their default values and any changes you made "
6469
  "will be lost. Continue?"
6470
  msgstr ""
6471
 
6472
+ #: ninjafirewall.php:308
6473
  msgid "Missing security nonce, try to reload the page."
6474
  msgstr ""
6475
 
6476
+ #: ninjafirewall.php:310
6477
  msgid "Please select the HTTP server in the list."
6478
  msgstr ""
6479
 
6480
+ #: ninjafirewall.php:313
6481
  msgid "Delete the firewall's error log ?"
6482
  msgstr ""
6483
 
6484
+ #: ninjafirewall.php:317
6485
  msgid ""
6486
  "This action will restore the selected configuration file and will override "
6487
  "all your current firewall options, policies and rules. Continue?"
6488
  msgstr ""
6489
 
6490
+ #: ninjafirewall.php:321
6491
  msgid ""
6492
  "Any character that is not a letter [a-zA-Z], a digit [0-9], a dot [.], a "
6493
  "hyphen [-] or an underscore [_] will be removed from the filename and "
6494
  "replaced with the substitution character. Continue?"
6495
  msgstr ""
6496
 
6497
+ #: ninjafirewall.php:323
6498
  msgid ""
6499
  "Ensure that you can access your admin console over HTTPS before enabling "
6500
  "this option, otherwise you will lock yourself out of your site. Continue?"
6501
  msgstr ""
6502
 
6503
+ #: ninjafirewall.php:325
6504
  msgid ""
6505
  "WooCommerce is running: if you block accounts creation, your customers won't "
6506
  "be able to sign up. Continue?"
6507
  msgstr ""
6508
 
6509
+ #: ninjafirewall.php:327
6510
  msgid ""
6511
  "Your blog has user registration enabled: if you block accounts creation, "
6512
  "your customers won't be able to sign up. Continue?"
6513
  msgstr ""
6514
 
6515
+ #: ninjafirewall.php:329
6516
  msgid ""
6517
  "Your multisite installation allows users to register new sites: if you "
6518
  "enable this option, they will likely get blocked when creating their blog. "
6519
  "Continue?"
6520
  msgstr ""
6521
 
6522
+ #: ninjafirewall.php:333
6523
  msgid "Delete the current snapshot ?"
6524
  msgstr ""
6525
 
6526
+ #: ninjafirewall.php:337
6527
  msgid "Invalid character."
6528
  msgstr ""
6529
 
6530
+ #: ninjafirewall.php:339
6531
  msgid "\"admin\" is not acceptable, please choose another user name."
6532
  msgstr ""
6533
 
6534
+ #: ninjafirewall.php:341
6535
  msgid "Please enter max 1024 character only."
6536
  msgstr ""
6537
 
6538
+ #: ninjafirewall.php:343
6539
  msgid "Select when to enable the login protection."
6540
  msgstr ""
6541
 
6542
+ #: ninjafirewall.php:345
6543
  msgid "Enter a name and a password for the HTTP authentication."
6544
  msgstr ""
6545
 
6546
+ #: ninjafirewall.php:349
6547
  msgid "Your public key is not valid."
6548
  msgstr ""
6549
 
6550
+ #: ninjafirewall.php:355
6551
  msgid "No traffic yet, please wait"
6552
  msgstr ""
6553
 
6554
+ #: ninjafirewall.php:357
6555
  msgid "seconds..."
6556
  msgstr ""
6557
 
6558
+ #: ninjafirewall.php:359
6559
  msgid "Error: Live Log did not receive the expected response from your server:"
6560
  msgstr ""
6561
 
6562
+ #: ninjafirewall.php:361
6563
  msgid "Error: URL does not seem to exist (404 Not Found):"
6564
  msgstr ""
6565
 
6566
+ #: ninjafirewall.php:363
6567
  msgid "Error: Cannot find your log file. Try to reload this page."
6568
  msgstr ""
6569
 
6570
+ #: ninjafirewall.php:365
6571
  msgid "Error: The HTTP server returned the following error code:"
6572
  msgstr ""
6573
 
6574
+ #: ninjafirewall.php:641 ninjafirewall.php:761 ninjafirewall.php:830
6575
  msgid "Error: Security nonces do not match. Reload the page and try again."
6576
  msgstr ""
6577
 
6578
+ #: ninjafirewall.php:647
6579
  msgid "Error: NinjaFirewall is disabled"
6580
  msgstr ""
6581
 
6582
+ #: ninjafirewall.php:652 ninjafirewall.php:766 ninjafirewall.php:796
6583
  #, php-format
6584
  msgid "Error: missing parameter (%s)."
6585
  msgstr ""
6586
 
6587
+ #: ninjafirewall.php:892
6588
  msgid "NinjaFirewall: Dashboard"
6589
  msgstr ""
6590
 
6591
+ #: ninjafirewall.php:896
6592
  msgid "NinjaFirewall: Firewall Options"
6593
  msgstr ""
6594
 
6595
+ #: ninjafirewall.php:900
6596
  msgid "NinjaFirewall: Firewall Policies"
6597
  msgstr ""
6598
 
6599
+ #: ninjafirewall.php:904
6600
  msgid "NinjaFirewall: Monitoring"
6601
  msgstr ""
6602
 
6603
+ #: ninjafirewall.php:914
6604
  msgid "NinjaFirewall: Anti-Malware"
6605
  msgstr ""
6606
 
6607
+ #: ninjafirewall.php:918
6608
  msgid "NinjaFirewall: Network"
6609
  msgstr ""
6610
 
6611
+ #: ninjafirewall.php:922
6612
  msgid "NinjaFirewall: Event Notifications"
6613
  msgstr ""
6614
 
6615
+ #: ninjafirewall.php:926
6616
  msgid "NinjaFirewall: Log-in Protection"
6617
  msgstr ""
6618
 
6619
+ #: ninjafirewall.php:930
6620
  msgid "NinjaFirewall: Logs"
6621
  msgstr ""
6622
 
6623
+ #: ninjafirewall.php:934
6624
  msgid "NinjaFirewall: Security Rules"
6625
  msgstr ""
6626
 
6627
+ #: ninjafirewall.php:978
6628
  msgid "NinjaFirewall Settings"
6629
  msgstr ""
6630
 
6631
+ #: ninjafirewall.php:986
6632
  msgid "NinjaFirewall is enabled"
6633
  msgstr ""
6634
 
6635
+ #: ninjafirewall.php:1126
6636
  msgid "Access Restricted"
6637
  msgstr ""
6638
 
6639
+ #: ninjafirewall.php:1132
6640
  msgid "Settings"
6641
  msgstr ""
6642
 
6643
+ #: ninjafirewall.php:1133
6644
  msgid "Upgrade to Premium"
6645
  msgstr ""
6646
 
6647
+ #: ninjafirewall.php:1134
6648
  msgid "Rate it!"
6649
  msgstr ""
lib/dashboard.php CHANGED
@@ -188,7 +188,7 @@ if (! empty( $_POST['delete-error-log'] ) ){
188
  ?>
189
  <tr>
190
  <th scope="row" class="row-med"><?php _e('Firewall', 'ninjafirewall') ?></th>
191
- <td><span class="dashicons dashicons-dismiss nfw-danger"></span> <?php echo $msg ?></td>
192
  </tr>
193
 
194
  <?php
@@ -230,7 +230,7 @@ if (! empty( $_POST['delete-error-log'] ) ){
230
  ?>
231
  <tr>
232
  <th scope="row" class="row-med"><?php _e('Debugging mode', 'ninjafirewall') ?></th>
233
- <td><span class="dashicons dashicons-dismiss nfw-danger"></span> <?php _e('Enabled.', 'ninjafirewall') ?>&nbsp;<a href="?page=nfsubopt"><?php _e('Click here to turn Debugging Mode off', 'ninjafirewall') ?></a></td>
234
  </tr>
235
  <?php
236
  }
@@ -264,7 +264,7 @@ if (! empty( $_POST['delete-error-log'] ) ){
264
  ?>
265
  <tr>
266
  <th scope="row" class="row-med"><?php _e('Updates', 'ninjafirewall') ?></th>
267
- <td><span class="dashicons dashicons-dismiss nfw-danger"></span> <a href="?page=nfsubupdates&tab=updates"><?php _e( 'Security rules updates are disabled.', 'ninjafirewall' ) ?></a> <?php _e( 'If you want your blog to be protected against the latest threats, enable automatic security rules updates.', 'ninjafirewall' ) ?></td>
268
  </tr>
269
  <?php
270
  }
@@ -273,7 +273,7 @@ if (! empty( $_POST['delete-error-log'] ) ){
273
  ?>
274
  <tr>
275
  <th scope="row" class="row-med"><?php _e('Admin user', 'ninjafirewall') ?></th>
276
- <td><span class="dashicons dashicons-warning nfw-warning"></span> <?php printf( __('You are not whitelisted. Ensure that the "Do not block WordPress administrator" option is enabled in the <a href="%s">Firewall Policies</a> menu, otherwise you could get blocked by the firewall while working from your administration dashboard.', 'ninjafirewall'), '?page=nfsubpolicies') ?></td>
277
  </tr>
278
  <?php
279
  } else {
@@ -301,7 +301,7 @@ if (! empty( $_POST['delete-error-log'] ) ){
301
  ?>
302
  <tr>
303
  <th scope="row" class="row-med"><?php _e('User session', 'ninjafirewall') ?></th>
304
- <td><span class="dashicons dashicons-warning nfw-warning"></span> <?php _e('It seems that the user session set by NinjaFirewall was not found by the firewall script.', 'ninjafirewall') ?></td>
305
  </tr>
306
  <?php
307
  }
@@ -328,7 +328,7 @@ if (! empty( $_POST['delete-error-log'] ) ){
328
  <?php
329
  if ( $err_msg ) {
330
  ?>
331
- <td><span class="dashicons dashicons-dismiss nfw-danger"></span> <?php printf( __('Error: %s', 'ninjafirewall'), $err_msg) ?></td>
332
  </tr>
333
  <?php
334
  $err_msg = '';
@@ -343,8 +343,8 @@ if (! empty( $_POST['delete-error-log'] ) ){
343
  if (! filter_var(NFW_REMOTE_ADDR, FILTER_VALIDATE_IP, FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE) ) {
344
  ?>
345
  <tr>
346
- <th scope="row" class="row-med"><?php _e('Source IP', 'ninjafirewall') ?></th>
347
- <td><span class="dashicons dashicons-warning nfw-warning"></span> <?php printf( __('You have a private IP : %s', 'ninjafirewall') .'<br />'. __('If your site is behind a reverse proxy or a load balancer, ensure that you have setup your HTTP server or PHP to forward the correct visitor IP, otherwise use the NinjaFirewall %s configuration file.', 'ninjafirewall'), htmlentities(NFW_REMOTE_ADDR), '<code><a href="https://blog.nintechnet.com/ninjafirewall-wp-edition-the-htninja-configuration-file/">.htninja</a></code>') ?></td>
348
  </tr>
349
  <?php
350
  }
@@ -352,8 +352,8 @@ if (! empty( $_POST['delete-error-log'] ) ){
352
  if ( NFW_REMOTE_ADDR != $_SERVER["HTTP_CF_CONNECTING_IP"] ) {
353
  ?>
354
  <tr>
355
- <th scope="row" class="row-med"><?php _e('CDN detection', 'ninjafirewall') ?></th>
356
- <td><span class="dashicons dashicons-warning nfw-warning"></span> <?php printf( __('%s detected: you seem to be using Cloudflare CDN services. Ensure that you have setup your HTTP server or PHP to forward the correct visitor IP, otherwise use the NinjaFirewall %s configuration file.', 'ninjafirewall'), '<code>HTTP_CF_CONNECTING_IP</code>', '<code><a href="https://blog.nintechnet.com/ninjafirewall-wp-edition-the-htninja-configuration-file/">.htninja</a></code>') ?></td>
357
  </tr>
358
  <?php
359
  }
@@ -362,8 +362,8 @@ if (! empty( $_POST['delete-error-log'] ) ){
362
  if ( NFW_REMOTE_ADDR != $_SERVER["HTTP_INCAP_CLIENT_IP"] ) {
363
  ?>
364
  <tr>
365
- <th scope="row" class="row-med"><?php _e('CDN detection', 'ninjafirewall') ?></th>
366
- <td><span class="dashicons dashicons-warning nfw-warning"></span> <?php printf( __('%s detected: you seem to be using Incapsula CDN services. Ensure that you have setup your HTTP server or PHP to forward the correct visitor IP, otherwise use the NinjaFirewall %s configuration file.', 'ninjafirewall'), '<code>HTTP_INCAP_CLIENT_IP</code>', '<code><a href="https://blog.nintechnet.com/ninjafirewall-wp-edition-the-htninja-configuration-file/">.htninja</a></code>') ?></td>
367
  </tr>
368
  <?php
369
  }
@@ -373,7 +373,7 @@ if (! empty( $_POST['delete-error-log'] ) ){
373
  ?>
374
  <tr>
375
  <th scope="row" class="row-med"><?php _e('Log dir', 'ninjafirewall') ?></th>
376
- <td><span class="dashicons dashicons-dismiss nfw-danger"></span> <?php printf( __('%s directory is not writable! Please chmod it to 0777 or equivalent.', 'ninjafirewall'), '<code>'. htmlspecialchars(NFW_LOG_DIR) .'/nfwlog/</code>') ?></td>
377
  </tr>
378
  <?php
379
  }
@@ -382,7 +382,7 @@ if (! empty( $_POST['delete-error-log'] ) ){
382
  ?>
383
  <tr>
384
  <th scope="row" class="row-med"><?php _e('Log dir', 'ninjafirewall') ?></th>
385
- <td><span class="dashicons dashicons-dismiss nfw-danger"></span> <?php printf(__('%s directory is not writable! Please chmod it to 0777 or equivalent.', 'ninjafirewall'), '<code>'. htmlspecialchars(NFW_LOG_DIR) . '/nfwlog/cache/</code>') ?></td>
386
  </tr>
387
  <?php
388
  }
@@ -400,7 +400,7 @@ if (! empty( $_POST['delete-error-log'] ) ){
400
  ?>
401
  <tr>
402
  <th scope="row" class="row-med">PHP INI</th>
403
- <td><span class="dashicons dashicons-dismiss nfw-danger"></span> <?php printf( esc_html__('The php.ini file is readable by web users: %s', 'ninjafirewall'), '<code>'. htmlspecialchars( $res ) .'</code>' ) ?> <br /><a href="https://blog.nintechnet.com/protecting-ninjafirewalls-php-ini-file/" target="_blank"><?php esc_html_e('Consult our blog for more info.', 'ninjafirewall') ?></a></td>
404
  </tr>
405
  <?php
406
  }
@@ -412,7 +412,7 @@ if (! empty( $_POST['delete-error-log'] ) ){
412
  ?>
413
  <tr>
414
  <th scope="row" class="row-med">PHP INI</th>
415
- <td><span class="dashicons dashicons-dismiss nfw-danger"></span> <?php printf( esc_html__('The .user.ini file is readable by web users: %s', 'ninjafirewall'), '<code>'. htmlspecialchars( $res ) .'</code>' ) ?><br /><a href="https://blog.nintechnet.com/protecting-ninjafirewalls-php-ini-file/" target="_blank"><?php esc_html_e('Consult our blog for more info.', 'ninjafirewall') ?></a></td>
416
  </tr>
417
  <?php
418
  }
@@ -429,7 +429,7 @@ if (! empty( $_POST['delete-error-log'] ) ){
429
  ?>
430
  <tr id="error-log-alert">
431
  <th scope="row" class="row-med"><?php _e('Error log', 'ninjafirewall') ?></th>
432
- <td><span class="dashicons dashicons-dismiss nfw-danger"></span> <input type="button" id="nfw-errorlog-thickbox" value="<?php _e('View error log', 'ninjafirewall') ?>" class="button-secondary"></td>
433
  </tr>
434
  <?php
435
  }
@@ -512,7 +512,7 @@ function nfw_is_inireadable( $ini ) {
512
  // the WordPress's API
513
  @file_get_contents( $url, false, $context );
514
  if ( empty( $http_response_header ) ) {
515
- nfw_log_error( 'nfw_is_inireadable: connection error' );
516
  return false;
517
  }
518
  $response = explode( ' ', $http_response_header[0] );
188
  ?>
189
  <tr>
190
  <th scope="row" class="row-med"><?php _e('Firewall', 'ninjafirewall') ?></th>
191
+ <td><span class="dashicons dashicons-dismiss nfw-danger"></span><?php echo $msg ?></td>
192
  </tr>
193
 
194
  <?php
230
  ?>
231
  <tr>
232
  <th scope="row" class="row-med"><?php _e('Debugging mode', 'ninjafirewall') ?></th>
233
+ <td><span class="dashicons dashicons-dismiss nfw-danger"></span><?php _e('Enabled.', 'ninjafirewall') ?>&nbsp;<a href="?page=nfsubopt"><?php _e('Click here to turn Debugging Mode off', 'ninjafirewall') ?></a></td>
234
  </tr>
235
  <?php
236
  }
264
  ?>
265
  <tr>
266
  <th scope="row" class="row-med"><?php _e('Updates', 'ninjafirewall') ?></th>
267
+ <td><span class="dashicons dashicons-dismiss nfw-danger"></span><a href="?page=nfsubupdates&tab=updates"><?php _e( 'Security rules updates are disabled.', 'ninjafirewall' ) ?></a> <?php _e( 'If you want your blog to be protected against the latest threats, enable automatic security rules updates.', 'ninjafirewall' ) ?></td>
268
  </tr>
269
  <?php
270
  }
273
  ?>
274
  <tr>
275
  <th scope="row" class="row-med"><?php _e('Admin user', 'ninjafirewall') ?></th>
276
+ <td><span class="dashicons dashicons-warning nfw-warning"></span><?php printf( __('You are not whitelisted. Ensure that the "Do not block WordPress administrator" option is enabled in the <a href="%s">Firewall Policies</a> menu, otherwise you could get blocked by the firewall while working from your administration dashboard.', 'ninjafirewall'), '?page=nfsubpolicies') ?></td>
277
  </tr>
278
  <?php
279
  } else {
301
  ?>
302
  <tr>
303
  <th scope="row" class="row-med"><?php _e('User session', 'ninjafirewall') ?></th>
304
+ <td><span class="dashicons dashicons-warning nfw-warning"></span><?php _e('It seems that the user session set by NinjaFirewall was not found by the firewall script.', 'ninjafirewall') ?></td>
305
  </tr>
306
  <?php
307
  }
328
  <?php
329
  if ( $err_msg ) {
330
  ?>
331
+ <td><span class="dashicons dashicons-dismiss nfw-danger"></span><?php printf( __('Error: %s', 'ninjafirewall'), $err_msg) ?></td>
332
  </tr>
333
  <?php
334
  $err_msg = '';
343
  if (! filter_var(NFW_REMOTE_ADDR, FILTER_VALIDATE_IP, FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE) ) {
344
  ?>
345
  <tr>
346
+ <th scope="row" class="row-med"><?php _e('Source IP', 'ninjafirewall') ?> <span class="ninjafirewall-tip" data-tip="<?php esc_attr_e('In the Premium version of NinjaFirewall, you can use the IP Access Control section to easily configure all IP address related options (source, whitelist, blacklist, rate limiting etc).', 'ninjafirewall' ) ?>"></span></th>
347
+ <td><span class="dashicons dashicons-warning nfw-warning"></span><?php printf( __('You have a private IP : %s', 'ninjafirewall') .'<br />'. __('If your site is behind a reverse proxy or a load balancer, ensure that you have setup your HTTP server or PHP to forward the correct visitor IP, otherwise use the NinjaFirewall %s configuration file.', 'ninjafirewall'), htmlentities(NFW_REMOTE_ADDR), '<code><a href="https://blog.nintechnet.com/ninjafirewall-wp-edition-the-htninja-configuration-file/">.htninja</a></code>') ?></td>
348
  </tr>
349
  <?php
350
  }
352
  if ( NFW_REMOTE_ADDR != $_SERVER["HTTP_CF_CONNECTING_IP"] ) {
353
  ?>
354
  <tr>
355
+ <th scope="row" class="row-med"><?php _e('CDN detection', 'ninjafirewall') ?> <span class="ninjafirewall-tip" data-tip="<?php esc_attr_e('In the Premium version of NinjaFirewall, you can use the IP Access Control section to easily configure all IP address related options (source, whitelist, blacklist, rate limiting etc).', 'ninjafirewall' ) ?>"></span></th>
356
+ <td><span class="dashicons dashicons-warning nfw-warning"></span><?php printf( __('%s detected: you seem to be using Cloudflare CDN services. Ensure that you have setup your HTTP server or PHP to forward the correct visitor IP, otherwise use the NinjaFirewall %s configuration file.', 'ninjafirewall'), '<code>HTTP_CF_CONNECTING_IP</code>', '<code><a href="https://blog.nintechnet.com/ninjafirewall-wp-edition-the-htninja-configuration-file/">.htninja</a></code>') ?></td>
357
  </tr>
358
  <?php
359
  }
362
  if ( NFW_REMOTE_ADDR != $_SERVER["HTTP_INCAP_CLIENT_IP"] ) {
363
  ?>
364
  <tr>
365
+ <th scope="row" class="row-med"><?php _e('CDN detection', 'ninjafirewall') ?> <span class="ninjafirewall-tip" data-tip="<?php esc_attr_e('In the Premium version of NinjaFirewall, you can use the IP Access Control section to easily configure all IP address related options (source, whitelist, blacklist, rate limiting etc).', 'ninjafirewall' ) ?>"></span></th>
366
+ <td><span class="dashicons dashicons-warning nfw-warning"></span><?php printf( __('%s detected: you seem to be using Incapsula CDN services. Ensure that you have setup your HTTP server or PHP to forward the correct visitor IP, otherwise use the NinjaFirewall %s configuration file.', 'ninjafirewall'), '<code>HTTP_INCAP_CLIENT_IP</code>', '<code><a href="https://blog.nintechnet.com/ninjafirewall-wp-edition-the-htninja-configuration-file/">.htninja</a></code>') ?></td>
367
  </tr>
368
  <?php
369
  }
373
  ?>
374
  <tr>
375
  <th scope="row" class="row-med"><?php _e('Log dir', 'ninjafirewall') ?></th>
376
+ <td><span class="dashicons dashicons-dismiss nfw-danger"></span><?php printf( __('%s directory is not writable! Please chmod it to 0777 or equivalent.', 'ninjafirewall'), '<code>'. htmlspecialchars(NFW_LOG_DIR) .'/nfwlog/</code>') ?></td>
377
  </tr>
378
  <?php
379
  }
382
  ?>
383
  <tr>
384
  <th scope="row" class="row-med"><?php _e('Log dir', 'ninjafirewall') ?></th>
385
+ <td><span class="dashicons dashicons-dismiss nfw-danger"></span><?php printf(__('%s directory is not writable! Please chmod it to 0777 or equivalent.', 'ninjafirewall'), '<code>'. htmlspecialchars(NFW_LOG_DIR) . '/nfwlog/cache/</code>') ?></td>
386
  </tr>
387
  <?php
388
  }
400
  ?>
401
  <tr>
402
  <th scope="row" class="row-med">PHP INI</th>
403
+ <td><span class="dashicons dashicons-dismiss nfw-danger"></span><?php printf( esc_html__('The php.ini file is readable by web users: %s', 'ninjafirewall'), '<code>'. htmlspecialchars( $res ) .'</code>' ) ?> <br /><a href="https://blog.nintechnet.com/protecting-ninjafirewalls-php-ini-file/" target="_blank"><?php esc_html_e('Consult our blog for more info.', 'ninjafirewall') ?></a></td>
404
  </tr>
405
  <?php
406
  }
412
  ?>
413
  <tr>
414
  <th scope="row" class="row-med">PHP INI</th>
415
+ <td><span class="dashicons dashicons-dismiss nfw-danger"></span><?php printf( esc_html__('The .user.ini file is readable by web users: %s', 'ninjafirewall'), '<code>'. htmlspecialchars( $res ) .'</code>' ) ?><br /><a href="https://blog.nintechnet.com/protecting-ninjafirewalls-php-ini-file/" target="_blank"><?php esc_html_e('Consult our blog for more info.', 'ninjafirewall') ?></a></td>
416
  </tr>
417
  <?php
418
  }
429
  ?>
430
  <tr id="error-log-alert">
431
  <th scope="row" class="row-med"><?php _e('Error log', 'ninjafirewall') ?></th>
432
+ <td><span class="dashicons dashicons-dismiss nfw-danger"></span><input type="button" id="nfw-errorlog-thickbox" value="<?php _e('View error log', 'ninjafirewall') ?>" class="button-secondary"></td>
433
  </tr>
434
  <?php
435
  }
512
  // the WordPress's API
513
  @file_get_contents( $url, false, $context );
514
  if ( empty( $http_response_header ) ) {
515
+ nfw_log_error( __('Cannot check if the PHP INI file is readable: connection error', 'ninjafirewall') );
516
  return false;
517
  }
518
  $response = explode( ' ', $http_response_header[0] );
lib/dashboard_statistics.php CHANGED
@@ -103,7 +103,7 @@ if (! $total ) {
103
  <td><canvas id="nfw_stats"></canvas></td>
104
  </tr>
105
  <tr>
106
- <th scope="row" class="row-med"><h3><?php esc_html_e('Benchmarks', 'ninjafirewall') ?></h3></th>
107
  <td>&nbsp;</td><td>&nbsp;</td>
108
  </tr>
109
  <tr>
103
  <td><canvas id="nfw_stats"></canvas></td>
104
  </tr>
105
  <tr>
106
+ <th scope="row" class="row-med"><h3><?php esc_html_e('Benchmarks', 'ninjafirewall') ?> <span class="ninjafirewall-tip" data-tip="<?php esc_attr_e('In the Premium version of NinjaFirewall and on compatible servers, you can use Unix shared memory to speed up the processing of each HTTP request by the firewall.', 'ninjafirewall' ) ?>"></span></h3></th>
107
  <td>&nbsp;</td><td>&nbsp;</td>
108
  </tr>
109
  <tr>
lib/email_sodium.php ADDED
@@ -0,0 +1,209 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /*
3
+ +---------------------------------------------------------------------+
4
+ | NinjaFirewall (WP Edition) |
5
+ | |
6
+ | (c) NinTechNet - https://nintechnet.com/ |
7
+ +---------------------------------------------------------------------+
8
+ | This program is free software: you can redistribute it and/or |
9
+ | modify it under the terms of the GNU General Public License as |
10
+ | published by the Free Software Foundation, either version 3 of |
11
+ | the License, or (at your option) any later version. |
12
+ | |
13
+ | This program is distributed in the hope that it will be useful, |
14
+ | but WITHOUT ANY WARRANTY; without even the implied warranty of |
15
+ | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
16
+ | GNU General Public License for more details. |
17
+ +---------------------------------------------------------------------+
18
+ */
19
+
20
+ if (! defined( 'NFW_ENGINE_VERSION' ) ) { die( 'Forbidden' ); }
21
+
22
+ // ---------------------------------------------------------------------
23
+ // Check whether Sodium is available (WordPress >=5.2 or PHP >= 7.2.0).
24
+
25
+ function nfw_check_sodium() {
26
+
27
+ $sodium = 0;
28
+
29
+ if ( function_exists('sodium_crypto_generichash') ) {
30
+ $sodium = 'php';
31
+ } elseif ( file_exists( ABSPATH . WPINC . '/sodium_compat/autoload.php' ) ) {
32
+ $sodium = 'wordpress';
33
+ }
34
+ return $sodium;
35
+ }
36
+ // ---------------------------------------------------------------------
37
+ // Generate an encrypted link for notification emails.
38
+
39
+ function nfw_sodium_encrypt( $email, $expire, $which_sodium ) {
40
+
41
+ if ( $which_sodium == 'php' ) {
42
+ // PHP native functions
43
+ $nonce = nfw_sodium_nonce();
44
+ $key = sodium_crypto_generichash( AUTH_KEY, null, SODIUM_CRYPTO_SECRETBOX_KEYBYTES );
45
+ $ciphertext = sodium_crypto_secretbox( "$email::$expire", $nonce, $key);
46
+ $link = sodium_bin2hex( $ciphertext );
47
+
48
+ } else {
49
+ // WP sodium libraries
50
+ require ABSPATH . WPINC .'/sodium_compat/autoload.php';
51
+ $nonce = nfw_sodium_nonce();
52
+ $key = \Sodium\crypto_generichash( AUTH_KEY, null, SODIUM_CRYPTO_SECRETBOX_KEYBYTES );
53
+ $ciphertext = \Sodium\crypto_secretbox( "$email::$expire", $nonce, $key);
54
+ $link = \Sodium\bin2hex( $ciphertext );
55
+ }
56
+ return $link;
57
+ }
58
+
59
+ // ---------------------------------------------------------------------
60
+ // Get or generate a nonce depending on the PHP version.
61
+
62
+ function nfw_sodium_nonce() {
63
+
64
+ $nfw_options = nfw_get_option( 'nfw_options' );
65
+
66
+ // Make sure we have a nonce, or create one and save it:
67
+ if ( empty( $nfw_options['sodium_nonce'] ) ) {
68
+ if ( function_exists('random_bytes') ) {
69
+ // PHP >=7
70
+ $nonce = random_bytes(SODIUM_CRYPTO_SECRETBOX_NONCEBYTES);
71
+ } else {
72
+ // PHP <7
73
+ $nonce = openssl_random_pseudo_bytes(SODIUM_CRYPTO_SECRETBOX_NONCEBYTES);
74
+ }
75
+ // Save it
76
+ $nfw_options['sodium_nonce'] = bin2hex( $nonce );
77
+ nfw_update_option( 'nfw_options', $nfw_options );
78
+
79
+ } else {
80
+ $nonce = hex2bin( $nfw_options['sodium_nonce'] );
81
+ }
82
+
83
+ return $nonce;
84
+ }
85
+ // ---------------------------------------------------------------------
86
+ // Verify encrypted signature.
87
+
88
+ function nfw_sodium_decrypt( $hex ) {
89
+
90
+ // Make sure we have Sodium
91
+ $which_sodium = nfw_check_sodium();
92
+ if ( empty( $which_sodium ) ) {
93
+ return;
94
+ }
95
+ // Hexadecimal input only
96
+ if (! preg_match( '/^(?:[0-9a-f]{2})+$/', $hex ) ) {
97
+ return;
98
+ }
99
+ $ciphertext = hex2bin( $hex );
100
+
101
+ // Retrieve our nonce
102
+ $nonce = nfw_sodium_nonce();
103
+
104
+ if ( $which_sodium == 'php' ) {
105
+ // PHP native functions
106
+ $key = sodium_crypto_generichash( AUTH_KEY, null, SODIUM_CRYPTO_SECRETBOX_KEYBYTES );
107
+ $decrypted = sodium_crypto_secretbox_open( $ciphertext, $nonce, $key );
108
+
109
+ } else {
110
+ // WP sodium libraries
111
+ require ABSPATH . WPINC .'/sodium_compat/autoload.php';
112
+ $key = \Sodium\crypto_generichash( AUTH_KEY, null, SODIUM_CRYPTO_SECRETBOX_KEYBYTES );
113
+ $decrypted = \Sodium\crypto_secretbox_open( $ciphertext, $nonce, $key );
114
+ }
115
+
116
+ if ( $decrypted === false ) {
117
+ nfw_removal_error();
118
+ }
119
+
120
+ $data = explode( '::', $decrypted );
121
+ if ( empty( $data[0] ) || empty( $data[1] ) ) {
122
+ nfw_removal_error();
123
+ }
124
+
125
+ // Verify expiry date
126
+ $now = time();
127
+ if ( $data[1] < $now ) {
128
+ // Link has expired
129
+ wp_die(
130
+ esc_html__('The link you followed has expired.', 'ninjafirewall' ),
131
+ esc_html__('Error', 'ninjafirewall'),
132
+ 200
133
+ );
134
+ }
135
+
136
+ // Confirm deletion?
137
+ if ( empty( $_REQUEST['nfw_confirm'] ) ) {
138
+ nfw_removal_confimation( $_GET['nfw_stop_notification'] );
139
+ exit;
140
+ }
141
+
142
+ $new_list = '';
143
+ $found = 0;
144
+ $nfw_options = nfw_get_option( 'nfw_options' );
145
+ $recipients = explode( ',', $nfw_options['alert_email'] );
146
+ foreach( $recipients as $recipient ) {
147
+ $recipient = trim( $recipient );
148
+ if ( $recipient == $data[0] ) {
149
+ // Remove that email from the list
150
+ $found = 1;
151
+ continue;
152
+ }
153
+ $new_list .= "$recipient, ";
154
+ }
155
+
156
+ if ( $found ) {
157
+ // Update options
158
+ $nfw_options['alert_email'] = trim( $new_list, ', ' );
159
+ if ( empty( $nfw_options['alert_email'] ) ) {
160
+ $nfw_options['alert_email'] = get_option('admin_email');
161
+ }
162
+ nfw_update_option( 'nfw_options', $nfw_options );
163
+
164
+ nfw_get_blogtimezone();
165
+ $subject = __('Email removal confirmation', 'ninjafirewall');
166
+ nfw_log2( 'WordPress: ' . $subject, "User: {$data[0]}", 6, 0);
167
+ $subject = "[NinjaFirewall] $subject";
168
+ $message = __('Your email address was removed from the "Event Notifications" option.', 'ninjafirewall') . "\n\n";
169
+ $message.= __('Blog:', 'ninjafirewall') .' '. home_url('/') . "\n";
170
+ $message.= __('Email address:', 'ninjafirewall') .' '. "{$data[0]}\n";
171
+ $message.= __('User IP:', 'ninjafirewall') .' '. NFW_REMOTE_ADDR . "\n";
172
+ $message.= __('Date:', 'ninjafirewall') .' '. date_i18n('F j, Y @ H:i:s') . ' (UTC '. date('O') . ")\n\n";
173
+ wp_mail( $data[0], $subject, $message );
174
+ }
175
+
176
+ }
177
+ // ---------------------------------------------------------------------
178
+ // Fatal error.
179
+
180
+ function nfw_removal_error() {
181
+
182
+ wp_die(
183
+ esc_html__('Error, your resquest cannot be processed.', 'ninjafirewall' ),
184
+ esc_html__('Error', 'ninjafirewall'),
185
+ 200
186
+ );
187
+ }
188
+
189
+ // ---------------------------------------------------------------------
190
+ // Email removal confirmation.
191
+
192
+ function nfw_removal_confimation( $hex ) {
193
+
194
+ $home_url = esc_url( home_url('/') );
195
+ $removal_url = esc_url( home_url("/?nfw_stop_notification=$hex&nfw_confirm=1") );
196
+ wp_die(
197
+ esc_html__('If you want to remove your email address from the Event Notifications option, click the button below. If the operation is successful, a confirmation email will be sent to you.', 'ninjafirewall').
198
+ '<p>
199
+ <button class="button button-large button-active" style="min-width:100px;" onclick=\'location.href="'. $removal_url .'"\'>'. esc_html__('Yes', 'ninjafirewall' ) .'</button>
200
+ &nbsp;&nbsp;&nbsp;&nbsp;
201
+ <button class="button button-large button-active" style="min-width:100px;" onclick=\'location.href="'. $home_url .'"\'>'. esc_html__('No', 'ninjafirewall' ) .'</button>
202
+ </p>',
203
+ esc_html__('Email removal confirmation', 'ninjafirewall'),
204
+ 200
205
+ );
206
+ }
207
+
208
+ // ---------------------------------------------------------------------
209
+ // EOL
lib/event_notifications.php CHANGED
@@ -39,7 +39,7 @@ if ( isset( $_POST['nfw_options']) ) {
39
  wp_nonce_ays('events_save');
40
  }
41
  nf_sub_event_save();
42
- echo '<div class="updated notice is-dismissible"><p>' . __('Your changes have been saved.', 'ninjafirewall') . '</p></div>';
43
  $nfw_options = nfw_get_option( 'nfw_options' );
44
  }
45
 
@@ -357,19 +357,8 @@ function nf_sub_event_save() {
357
  }
358
  if ( empty( $_POST['nfw_options']['a_52']) ) {
359
  $nfw_options['a_52'] = 0;
360
- // Clear the daily report cronjob, if any:
361
- if ( wp_next_scheduled('nfdailyreport') ) {
362
- wp_clear_scheduled_hook('nfdailyreport');
363
- }
364
  } else {
365
  $nfw_options['a_52'] = 1;
366
- // Delete the current one, if any:
367
- if ( wp_next_scheduled('nfdailyreport') ) {
368
- wp_clear_scheduled_hook('nfdailyreport');
369
- }
370
- // Create the cronjob that will send the daily report:
371
- nfw_get_blogtimezone();
372
- wp_schedule_event( strtotime( date('Y-m-d 00:00:05', strtotime("+1 day")) ), 'daily', 'nfdailyreport');
373
  }
374
 
375
  if ( empty( $_POST['nfw_options']['a_61']) ) {
@@ -396,15 +385,18 @@ function nf_sub_event_save() {
396
  foreach ($tmp_email as $notif_email) {
397
  $nfw_options['alert_email'] .= sanitize_email($notif_email) . ', ';
398
  }
399
- $nfw_options['alert_email'] = rtrim($nfw_options['alert_email'], ', ' );
400
  }
401
  if ( empty( $nfw_options['alert_email'] ) ) {
402
  $nfw_options['alert_email'] = get_option('admin_email');
403
  }
404
 
405
- // Update options :
406
  nfw_update_option( 'nfw_options', $nfw_options );
407
 
 
 
 
408
  }
409
 
410
  // ---------------------------------------------------------------------
@@ -425,16 +417,10 @@ function nf_daily_report() {
425
  if ( $nf_transient == false || $nf_transient < time() ) {
426
  set_transient( 'nfw_dailyreport', time() + 300, 300 );
427
 
428
- if ( ( is_multisite() ) && ( @$nfw_options['alert_sa_only'] == 2 ) ) {
429
- $recipient = get_option('admin_email');
430
- } else {
431
- $recipient = $nfw_options['alert_email'];
432
- }
433
-
434
  $logstats = array();
435
  $logstats = nf_daily_report_log();
436
 
437
- nf_daily_report_email($recipient, $logstats);
438
  }
439
 
440
  }
@@ -483,7 +469,7 @@ function nf_daily_report_log() {
483
 
484
  // ---------------------------------------------------------------------
485
 
486
- function nf_daily_report_email($recipient, $logstats) {
487
 
488
  nfw_get_blogtimezone();
489
 
@@ -511,8 +497,7 @@ function nf_daily_report_email($recipient, $logstats) {
511
  $message .= NF_PG_SIGNATURE ."\n\n";
512
  $message .= NF_PG_MORESEC;
513
 
514
- wp_mail( $recipient, $subject, $message );
515
-
516
  }
517
 
518
  // ---------------------------------------------------------------------
39
  wp_nonce_ays('events_save');
40
  }
41
  nf_sub_event_save();
42
+ echo '<div class="updated notice is-dismissible"><p>' . esc_html__('Your changes have been saved.', 'ninjafirewall') . '</p></div>';
43
  $nfw_options = nfw_get_option( 'nfw_options' );
44
  }
45
 
357
  }
358
  if ( empty( $_POST['nfw_options']['a_52']) ) {
359
  $nfw_options['a_52'] = 0;
 
 
 
 
360
  } else {
361
  $nfw_options['a_52'] = 1;
 
 
 
 
 
 
 
362
  }
363
 
364
  if ( empty( $_POST['nfw_options']['a_61']) ) {
385
  foreach ($tmp_email as $notif_email) {
386
  $nfw_options['alert_email'] .= sanitize_email($notif_email) . ', ';
387
  }
388
+ $nfw_options['alert_email'] = trim($nfw_options['alert_email'], ', ' );
389
  }
390
  if ( empty( $nfw_options['alert_email'] ) ) {
391
  $nfw_options['alert_email'] = get_option('admin_email');
392
  }
393
 
394
+ // Update options
395
  nfw_update_option( 'nfw_options', $nfw_options );
396
 
397
+ // Recreate cronjobs if needed
398
+ nfw_create_scheduled_tasks('nfdailyreport');
399
+
400
  }
401
 
402
  // ---------------------------------------------------------------------
417
  if ( $nf_transient == false || $nf_transient < time() ) {
418
  set_transient( 'nfw_dailyreport', time() + 300, 300 );
419
 
 
 
 
 
 
 
420
  $logstats = array();
421
  $logstats = nf_daily_report_log();
422
 
423
+ nf_daily_report_email( $logstats );
424
  }
425
 
426
  }
469
 
470
  // ---------------------------------------------------------------------
471
 
472
+ function nf_daily_report_email( $logstats ) {
473
 
474
  nfw_get_blogtimezone();
475
 
497
  $message .= NF_PG_SIGNATURE ."\n\n";
498
  $message .= NF_PG_MORESEC;
499
 
500
+ nfw_mail( $subject, $message, 'unsubscribe' );
 
501
  }
502
 
503
  // ---------------------------------------------------------------------
lib/event_updates.php CHANGED
@@ -50,7 +50,7 @@ function nfw_check_security_updates() {
50
  }
51
 
52
  if (! isset( $list['wordpress'] ) || ! isset( $list['themes'] ) || ! isset( $list['plugins'] ) ) {
53
- nfw_log_error("nfw_check_security_updates: json-encoded array is corrupted");
54
  return false;
55
  }
56
 
@@ -151,12 +151,6 @@ function nfw_alert_security_updates( $found = array() ) {
151
 
152
  $nfw_options = nfw_get_option('nfw_options');
153
 
154
- if ( is_multisite() && $nfw_options['alert_sa_only'] == 2 ) {
155
- $recipient = get_option('admin_email');
156
- } else {
157
- $recipient = $nfw_options['alert_email'];
158
- }
159
-
160
  $subject = __('[NinjaFirewall] Warning: Security update available', 'ninjafirewall');
161
 
162
  $message = __('NinjaFirewall has detected that there are security updates available for your website:', 'ninjafirewall') . "\n\n".
@@ -225,7 +219,7 @@ function nfw_alert_security_updates( $found = array() ) {
225
  $message.= __('This notification can be turned off from NinjaFirewall "Event Notifications" page.', 'ninjafirewall') . "\n\n";
226
  $message .= NF_PG_SIGNATURE ."\n\n";
227
  $message .= NF_PG_MORESEC;
228
- wp_mail( $recipient, $subject, $message );
229
 
230
  }
231
 
@@ -246,12 +240,14 @@ function nfw_fetch_security_updates( $url ) {
246
  )
247
  );
248
  if ( is_wp_error( $res ) ) {
249
- nfw_log_error( 'nfw_fetch_security_updates: connection error' );
250
  return false;
251
  }
252
 
253
  if ( $res['response']['code'] != 200 ) {
254
- nfw_log_error( sprintf( "nfw_fetch_security_updates: HTTP response error: %s"), $res['response']['code'] );
 
 
255
  return false;
256
  }
257
 
50
  }
51
 
52
  if (! isset( $list['wordpress'] ) || ! isset( $list['themes'] ) || ! isset( $list['plugins'] ) ) {
53
+ nfw_log_error( __('Downloaded security rules are corrupted', 'ninjafirewall' ) );
54
  return false;
55
  }
56
 
151
 
152
  $nfw_options = nfw_get_option('nfw_options');
153
 
 
 
 
 
 
 
154
  $subject = __('[NinjaFirewall] Warning: Security update available', 'ninjafirewall');
155
 
156
  $message = __('NinjaFirewall has detected that there are security updates available for your website:', 'ninjafirewall') . "\n\n".
219
  $message.= __('This notification can be turned off from NinjaFirewall "Event Notifications" page.', 'ninjafirewall') . "\n\n";
220
  $message .= NF_PG_SIGNATURE ."\n\n";
221
  $message .= NF_PG_MORESEC;
222
+ nfw_mail( $subject, $message, 'unsubscribe' );
223
 
224
  }
225
 
240
  )
241
  );
242
  if ( is_wp_error( $res ) ) {
243
+ nfw_log_error( __('Cannot download security rules: connection error', 'ninjafirewall') );
244
  return false;
245
  }
246
 
247
  if ( $res['response']['code'] != 200 ) {
248
+ nfw_log_error(
249
+ sprintf( __('Cannot download security rules: HTTP response error %s', 'ninjafirewall'), $res['response']['code'] )
250
+ );
251
  return false;
252
  }
253
 
lib/events.php CHANGED
@@ -189,12 +189,6 @@ function nfw_sys_events() {
189
 
190
  if (! empty( $alert_action ) ) {
191
 
192
- if ( is_multisite() && $nfw_options['alert_sa_only'] == 2 ) {
193
- $recipient = get_option('admin_email');
194
- } else {
195
- $recipient = $nfw_options['alert_email'];
196
- }
197
-
198
  global $current_user;
199
  $current_user = wp_get_current_user();
200
 
@@ -213,7 +207,7 @@ function nfw_sys_events() {
213
  $url .
214
  NF_PG_SIGNATURE ."\n\n". NF_PG_MORESEC;
215
 
216
- wp_mail( $recipient, $subject, $message );
217
 
218
  if (! empty($nfw_options['a_41']) ) {
219
  nfw_log2(
189
 
190
  if (! empty( $alert_action ) ) {
191
 
 
 
 
 
 
 
192
  global $current_user;
193
  $current_user = wp_get_current_user();
194
 
207
  $url .
208
  NF_PG_SIGNATURE ."\n\n". NF_PG_MORESEC;
209
 
210
+ nfw_mail( $subject, $message, 'unsubscribe' );
211
 
212
  if (! empty($nfw_options['a_41']) ) {
213
  nfw_log2(
lib/firewall.php CHANGED
@@ -362,6 +362,18 @@ function nfw_connect() {
362
  if (! $nfw_['fh'] = fopen($wp_config, 'r') ) {
363
  return 2;
364
  }
 
 
 
 
 
 
 
 
 
 
 
 
365
  while (! feof($nfw_['fh'])) {
366
  $nfw_['line'] = fgets($nfw_['fh']);
367
  if ( preg_match('/^\s*define\s*\(\s*[\'"]DB_NAME[\'"]\s*,\s*[\'"](.+?)[\'"]/', $nfw_['line'], $nfw_['match']) ) {
@@ -377,6 +389,17 @@ function nfw_connect() {
377
  $nfw_['DB_HOST'] = $nfw_['match'][1];
378
  } elseif ( preg_match('/^\s*\$table_prefix\s*=\s*[\'"](.+?)[\'"]/', $nfw_['line'], $nfw_['match']) ) {
379
  $nfw_['table_prefix'] = $nfw_['match'][1];
 
 
 
 
 
 
 
 
 
 
 
380
  }
381
  }
382
  fclose($nfw_['fh']);
@@ -387,10 +410,11 @@ function nfw_connect() {
387
 
388
  nfw_check_dbhost();
389
  // Make sure mysqli extension is loaded
390
- if (! function_exists( 'mysqli_connect' ) ) {
391
  return 14;
392
  }
393
- @$nfw_['mysqli'] = new mysqli($nfw_['DB_HOST'], $nfw_['DB_USER'], $nfw_['DB_PASSWORD'], $nfw_['DB_NAME'], $nfw_['port'], $nfw_['socket']);
 
394
  if ($nfw_['mysqli']->connect_error) {
395
  return 4;
396
  }
362
  if (! $nfw_['fh'] = fopen($wp_config, 'r') ) {
363
  return 2;
364
  }
365
+
366
+ // Potential SQL flags
367
+ $nfw_['MYSQL_CLIENT_FLAGS'] = 0;
368
+ $available_flags = array(
369
+ 'MYSQLI_CLIENT_COMPRESS' => MYSQLI_CLIENT_COMPRESS,
370
+ 'MYSQLI_CLIENT_FOUND_ROWS' => MYSQLI_CLIENT_FOUND_ROWS,
371
+ 'MYSQLI_CLIENT_IGNORE_SPACE' => MYSQLI_CLIENT_IGNORE_SPACE,
372
+ 'MYSQLI_CLIENT_INTERACTIVE' => MYSQLI_CLIENT_INTERACTIVE,
373
+ 'MYSQLI_CLIENT_SSL' => MYSQLI_CLIENT_SSL,
374
+ 'MYSQLI_CLIENT_SSL_DONT_VERIFY_SERVER_CERT' => MYSQLI_CLIENT_SSL_DONT_VERIFY_SERVER_CERT
375
+ );
376
+
377
  while (! feof($nfw_['fh'])) {
378
  $nfw_['line'] = fgets($nfw_['fh']);
379
  if ( preg_match('/^\s*define\s*\(\s*[\'"]DB_NAME[\'"]\s*,\s*[\'"](.+?)[\'"]/', $nfw_['line'], $nfw_['match']) ) {
389
  $nfw_['DB_HOST'] = $nfw_['match'][1];
390
  } elseif ( preg_match('/^\s*\$table_prefix\s*=\s*[\'"](.+?)[\'"]/', $nfw_['line'], $nfw_['match']) ) {
391
  $nfw_['table_prefix'] = $nfw_['match'][1];
392
+ } elseif ( preg_match('/^\s*define\s*\(\s*[\'"]MYSQL_CLIENT_FLAGS[\'"]\s*,\s*(.+?)\s*\)/', $nfw_['line'], $nfw_['match']) ) {
393
+ if ( empty( $nfw_['MYSQL_CLIENT_FLAGS'] ) ) {
394
+ // There could be one or more flags, e.g., 'MYSQLI_CLIENT_SSL | MYSQLI_CLIENT_SSL_DONT_VERIFY_SERVER_CERT'
395
+ $tmp_flags = explode( '|', $nfw_['match'][1] );
396
+ foreach( $tmp_flags as $tmp_flag ) {
397
+ $tmp_flag = trim( $tmp_flag );
398
+ if ( isset( $available_flags[$tmp_flag] ) ) {
399
+ $nfw_['MYSQL_CLIENT_FLAGS'] += $available_flags[$tmp_flag];
400
+ }
401
+ }
402
+ }
403
  }
404
  }
405
  fclose($nfw_['fh']);
410
 
411
  nfw_check_dbhost();
412
  // Make sure mysqli extension is loaded
413
+ if (! function_exists( 'mysqli_real_connect' ) ) {
414
  return 14;
415
  }
416
+ @$nfw_['mysqli'] = mysqli_init();
417
+ @mysqli_real_connect( $nfw_['mysqli'], $nfw_['DB_HOST'], $nfw_['DB_USER'], $nfw_['DB_PASSWORD'], $nfw_['DB_NAME'], $nfw_['port'], $nfw_['socket'], $nfw_['MYSQL_CLIENT_FLAGS'] );
418
  if ($nfw_['mysqli']->connect_error) {
419
  return 4;
420
  }
lib/firewall_options.php CHANGED
@@ -256,20 +256,7 @@ function nf_sub_options_save() {
256
  }
257
  $nfw_options['enabled'] = 0;
258
 
259
- // Disable cron jobs:
260
- if ( wp_next_scheduled('nfwgccron') ) {
261
- wp_clear_scheduled_hook('nfwgccron');
262
- }
263
- if ( wp_next_scheduled('nfscanevent') ) {
264
- wp_clear_scheduled_hook('nfscanevent');
265
- }
266
- if ( wp_next_scheduled('nfsecupdates') ) {
267
- wp_clear_scheduled_hook('nfsecupdates');
268
- }
269
- if ( wp_next_scheduled('nfdailyreport') ) {
270
- wp_clear_scheduled_hook('nfdailyreport');
271
- }
272
- // Disable brute-force protection :
273
  if ( file_exists( NFW_LOG_DIR . '/nfwlog/cache/bf_conf.php' ) ) {
274
  rename(NFW_LOG_DIR . '/nfwlog/cache/bf_conf.php', NFW_LOG_DIR . '/nfwlog/cache/bf_conf_off.php');
275
  }
@@ -277,47 +264,7 @@ function nf_sub_options_save() {
277
  } else {
278
  $nfw_options['enabled'] = 1;
279
 
280
- // Re-enable cron jobs, if needed :
281
- if (! empty($nfw_options['sched_scan']) ) {
282
- if ($nfw_options['sched_scan'] == 1) {
283
- $schedtype = 'hourly';
284
- } elseif ($nfw_options['sched_scan'] == 2) {
285
- $schedtype = 'twicedaily';
286
- } else {
287
- $schedtype = 'daily';
288
- }
289
- if ( wp_next_scheduled('nfscanevent') ) {
290
- wp_clear_scheduled_hook('nfscanevent');
291
- }
292
- wp_schedule_event( time() + 3600, $schedtype, 'nfscanevent');
293
- }
294
- // Re-enable the garbage collector:
295
- if ( wp_next_scheduled('nfwgccron') ) {
296
- wp_clear_scheduled_hook('nfwgccron');
297
- }
298
- wp_schedule_event( time() + 1800, 'hourly', 'nfwgccron' );
299
- if (! empty($nfw_options['enable_updates']) ) {
300
- if ($nfw_options['sched_updates'] == 1) {
301
- $schedtype = 'hourly';
302
- } elseif ($nfw_options['sched_updates'] == 2) {
303
- $schedtype = 'twicedaily';
304
- } else {
305
- $schedtype = 'daily';
306
- }
307
- if ( wp_next_scheduled('nfsecupdates') ) {
308
- wp_clear_scheduled_hook('nfsecupdates');
309
- }
310
- wp_schedule_event( time() + 15, $schedtype, 'nfsecupdates');
311
- }
312
- // Re-enable daily report, if needed :
313
- if (! empty($nfw_options['a_52']) ) {
314
- if ( wp_next_scheduled('nfdailyreport') ) {
315
- wp_clear_scheduled_hook('nfdailyreport');
316
- }
317
- nfw_get_blogtimezone();
318
- wp_schedule_event( strtotime( date('Y-m-d 00:00:05', strtotime("+1 day")) ), 'daily', 'nfdailyreport');
319
- }
320
- // Reenable brute-force protection :
321
  if ( file_exists( NFW_LOG_DIR . '/nfwlog/cache/bf_conf_off.php' ) ) {
322
  rename(NFW_LOG_DIR . '/nfwlog/cache/bf_conf_off.php', NFW_LOG_DIR . '/nfwlog/cache/bf_conf.php');
323
  }
@@ -365,6 +312,13 @@ function nf_sub_options_save() {
365
  // Save them :
366
  nfw_update_option( 'nfw_options', $nfw_options);
367
 
 
 
 
 
 
 
 
368
  }
369
  // ---------------------------------------------------------------------
370
 
@@ -457,44 +411,9 @@ function nf_sub_options_import( $file ) {
457
  // We don't import the File Check 'snapshot directory' path
458
  // (applies to imported configuration, not to restoration of configuration backup):
459
  $nfw_options['snapdir'] = '';
460
- // We delete any File Check cron jobs :
461
- if ( wp_next_scheduled('nfscanevent') ) {
462
- wp_clear_scheduled_hook('nfscanevent');
463
- }
464
  }
465
 
466
- // Re-enable auto updates, if needed :
467
- if ( wp_next_scheduled('nfsecupdates') ) {
468
- // Clear old one :
469
- wp_clear_scheduled_hook('nfsecupdates');
470
- }
471
- if (! empty($nfw_options['enable_updates']) ) {
472
- if ($nfw_options['sched_updates'] == 1) {
473
- $schedtype = 'hourly';
474
- } elseif ($nfw_options['sched_updates'] == 2) {
475
- $schedtype = 'twicedaily';
476
- } else {
477
- $schedtype = 'daily';
478
- }
479
- wp_schedule_event( time() + 15, $schedtype, 'nfsecupdates');
480
- }
481
- // Re-enable daily report, if needed :
482
- if ( wp_next_scheduled('nfdailyreport') ) {
483
- // Clear old one :
484
- wp_clear_scheduled_hook('nfdailyreport');
485
- }
486
- if (! empty($nfw_options['a_52']) ) {
487
- nfw_get_blogtimezone();
488
- wp_schedule_event( strtotime( date('Y-m-d 00:00:05', strtotime("+1 day")) ), 'daily', 'nfdailyreport');
489
- }
490
-
491
- // Re-enable the garbage collector, if needed:
492
- if ( wp_next_scheduled('nfwgccron') ) {
493
- // Clear old one:
494
- wp_clear_scheduled_hook('nfwgccron');
495
- }
496
- wp_schedule_event( time() + 60, 'hourly', 'nfwgccron' );
497
-
498
  // Check compatibility before importing HSTS headers configration
499
  // or unset the option :
500
  if (! function_exists('header_register_callback') || ! function_exists('headers_list') || ! function_exists('header_remove') ) {
@@ -530,6 +449,9 @@ function nf_sub_options_import( $file ) {
530
  // Save rules :
531
  nfw_update_option( 'nfw_rules', $nfw_rules);
532
 
 
 
 
533
  // Alert the admin :
534
  nf_sub_options_alert(3);
535
 
@@ -542,12 +464,6 @@ function nf_sub_options_alert( $what ) {
542
 
543
  $nfw_options = nfw_get_option( 'nfw_options' );
544
 
545
- if ( ( is_multisite() ) && ( $nfw_options['alert_sa_only'] == 2 ) ) {
546
- $recipient = get_option('admin_email');
547
- } else {
548
- $recipient = $nfw_options['alert_email'];
549
- }
550
-
551
  global $current_user;
552
  $current_user = wp_get_current_user();
553
 
@@ -581,7 +497,7 @@ function nf_sub_options_alert( $what ) {
581
  $url .
582
  NF_PG_SIGNATURE ."\n\n". NF_PG_MORESEC;
583
 
584
- wp_mail( $recipient, $subject, $message );
585
  }
586
 
587
  // ---------------------------------------------------------------------
256
  }
257
  $nfw_options['enabled'] = 0;
258
 
259
+ // Disable brute-force protection
 
 
 
 
 
 
 
 
 
 
 
 
 
260
  if ( file_exists( NFW_LOG_DIR . '/nfwlog/cache/bf_conf.php' ) ) {
261
  rename(NFW_LOG_DIR . '/nfwlog/cache/bf_conf.php', NFW_LOG_DIR . '/nfwlog/cache/bf_conf_off.php');
262
  }
264
  } else {
265
  $nfw_options['enabled'] = 1;
266
 
267
+ // Re-enable brute-force protection
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
268
  if ( file_exists( NFW_LOG_DIR . '/nfwlog/cache/bf_conf_off.php' ) ) {
269
  rename(NFW_LOG_DIR . '/nfwlog/cache/bf_conf_off.php', NFW_LOG_DIR . '/nfwlog/cache/bf_conf.php');
270
  }
312
  // Save them :
313
  nfw_update_option( 'nfw_options', $nfw_options);
314
 
315
+ // Update cronjobs
316
+ if ( empty( $nfw_options['enabled'] ) ) {
317
+ nfw_delete_scheduled_tasks();
318
+ } else {
319
+ nfw_create_scheduled_tasks();
320
+ }
321
+
322
  }
323
  // ---------------------------------------------------------------------
324
 
411
  // We don't import the File Check 'snapshot directory' path
412
  // (applies to imported configuration, not to restoration of configuration backup):
413
  $nfw_options['snapdir'] = '';
414
+ $nfw_options['sched_scan'] = '';
 
 
 
415
  }
416
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
417
  // Check compatibility before importing HSTS headers configration
418
  // or unset the option :
419
  if (! function_exists('header_register_callback') || ! function_exists('headers_list') || ! function_exists('header_remove') ) {
449
  // Save rules :
450
  nfw_update_option( 'nfw_rules', $nfw_rules);
451
 
452
+ // Recreate cronjobs if needed
453
+ nfw_create_scheduled_tasks();
454
+
455
  // Alert the admin :
456
  nf_sub_options_alert(3);
457
 
464
 
465
  $nfw_options = nfw_get_option( 'nfw_options' );
466
 
 
 
 
 
 
 
467
  global $current_user;
468
  $current_user = wp_get_current_user();
469
 
497
  $url .
498
  NF_PG_SIGNATURE ."\n\n". NF_PG_MORESEC;
499
 
500
+ nfw_mail( $subject, $message, 'unsubscribe' );
501
  }
502
 
503
  // ---------------------------------------------------------------------
lib/firewall_policies.php CHANGED
@@ -141,7 +141,7 @@ wp_nonce_field('policies_save', 'nfwnonce', 0);
141
  <h3><?php _e('Uploads', 'ninjafirewall') ?></h3>
142
  <table class="form-table nfw-table">
143
  <tr>
144
- <th scope="row" class="row-med"><?php _e('File Uploads', 'ninjafirewall') ?></th>
145
  <td>
146
  <select name="nfw_options[uploads]" onchange="nfwjs_upload_onoff(this);">
147
  <option value="1"<?php selected( $uploads, 1 ) ?>><?php echo __('Allow uploads', 'ninjafirewall') .' '. __('(default)', 'ninjafirewall') ?></option>
@@ -513,7 +513,7 @@ wp_nonce_field('policies_save', 'nfwnonce', 0);
513
  ?>
514
  <table class="form-table nfw-table">
515
  <tr style="background-color:#F9F9F9;border: solid 1px #DFDFDF;">
516
- <th scope="row" class="row-med"><?php _e('Users Whitelist', 'ninjafirewall') ?></th>
517
  <td>
518
  <p><label><input type="radio" name="nfw_options[wl_admin]" value="1"<?php checked( $wl_admin, 1 ) ?>>&nbsp;<?php _e('Add the Administrator to the whitelist (default).', 'ninjafirewall') ?></label></p>
519
  <p><label><input type="radio" name="nfw_options[wl_admin]" value="2"<?php checked( $wl_admin, 2 ) ?>>&nbsp;<?php _e('Add all logged in users to the whitelist.', 'ninjafirewall') ?></label></p>
@@ -684,7 +684,7 @@ wp_nonce_field('policies_save', 'nfwnonce', 0);
684
  </td>
685
  </tr>
686
  <tr>
687
- <th scope="row" class="row-med"><?php _e('Block suspicious bots/scanners', 'ninjafirewall') ?></th>
688
  <td>
689
  <?php nfw_toggle_switch( 'info', 'nfw_rules[block_bots]', $yes, $no, 'small', $block_bots ) ?>
690
  </td>
@@ -752,7 +752,7 @@ wp_nonce_field('policies_save', 'nfwnonce', 0);
752
  $allow_local_ip = 1;
753
  }
754
  ?>
755
- <h3>IP</h3>
756
  <table class="form-table nfw-table" border=0>
757
  <tr>
758
  <th scope="row" class="row-med"><?php _e('Block localhost IP in <code>GET/POST</code> request', 'ninjafirewall') ?></th>
@@ -850,7 +850,7 @@ wp_nonce_field('policies_save', 'nfwnonce', 0);
850
  <option value="2"<?php selected( $nfw_options['response_headers'][3], 2 ) ?>><?php printf( __('Set to %s', 'ninjafirewall'), '"1"'); ?></option>
851
  <option value="1"<?php selected( $nfw_options['response_headers'][3], 1 ) ?>><?php printf( __('Set to %s', 'ninjafirewall'), '"1; mode=block"') ?></option>
852
  </select>
853
- <p class="description"><span class="dashicons dashicons-warning nfw-warning"></span> <?php esc_html_e('This header is deprecated and most browsers phased out support for it. Consider using Content-Security-Policy instead.', 'ninjafirewall') ?></p>
854
  </td>
855
  </tr>
856
  <tr>
@@ -909,7 +909,7 @@ wp_nonce_field('policies_save', 'nfwnonce', 0);
909
  <p><label><input type="checkbox" name="nfw_options[strict_transport_sub]" value="1"<?php checked( $subdom, 1 );disabled($hsts_err, 1) ?>>&nbsp;<?php _e('Apply to subdomains', 'ninjafirewall') ?></label>&nbsp;&nbsp;<label><input type="checkbox" name="nfw_options[strict_transport_preload]" value="1"<?php checked( $preload, 1 );disabled($hsts_err, 1) ?>>&nbsp;<?php _e('Preload', 'ninjafirewall') ?></label></p>
910
  <?php
911
  if (! empty( $hsts_msg ) ) {
912
- echo '<i class="description" style="color:red">'. $hsts_msg .'</i>';
913
  }
914
  ?>
915
  </td>
141
  <h3><?php _e('Uploads', 'ninjafirewall') ?></h3>
142
  <table class="form-table nfw-table">
143
  <tr>
144
+ <th scope="row" class="row-med"><?php _e('File Uploads', 'ninjafirewall') ?> <span class="ninjafirewall-tip" data-tip="<?php esc_attr_e('In the Premium version of NinjaFirewall, you can allow uploads while rejecting potentially dangerous files, even if they are compressed inside a ZIP archive: scripts (PHP, CGI, Ruby, Python, bash/shell), C/C++ source code, binaries (MZ/PE/NE and ELF formats), system files (.htaccess, .htpasswd and PHP INI) and SVG files containing Javascript/XML events. You can easily limit the size of each uploaded file too, without having to modify your PHP configuration.', 'ninjafirewall' ) ?>"></span></th>
145
  <td>
146
  <select name="nfw_options[uploads]" onchange="nfwjs_upload_onoff(this);">
147
  <option value="1"<?php selected( $uploads, 1 ) ?>><?php echo __('Allow uploads', 'ninjafirewall') .' '. __('(default)', 'ninjafirewall') ?></option>
513
  ?>
514
  <table class="form-table nfw-table">
515
  <tr style="background-color:#F9F9F9;border: solid 1px #DFDFDF;">
516
+ <th scope="row" class="row-med"><?php _e('Users Whitelist', 'ninjafirewall') ?> <span class="ninjafirewall-tip" data-tip="<?php esc_attr_e('In the Premium version of NinjaFirewall, the Access Control section allows you to whitelist WordPress users depending on their role.', 'ninjafirewall' ) ?>"></span></th>
517
  <td>
518
  <p><label><input type="radio" name="nfw_options[wl_admin]" value="1"<?php checked( $wl_admin, 1 ) ?>>&nbsp;<?php _e('Add the Administrator to the whitelist (default).', 'ninjafirewall') ?></label></p>
519
  <p><label><input type="radio" name="nfw_options[wl_admin]" value="2"<?php checked( $wl_admin, 2 ) ?>>&nbsp;<?php _e('Add all logged in users to the whitelist.', 'ninjafirewall') ?></label></p>
684
  </td>
685
  </tr>
686
  <tr>
687
+ <th scope="row" class="row-med"><?php _e('Block suspicious bots/scanners', 'ninjafirewall') ?> <span class="ninjafirewall-tip" data-tip="<?php esc_attr_e('In the Premium version of NinjaFirewall, the Bot Access Control section allows you to select, edit, add and remove bots.', 'ninjafirewall' ) ?>"></span></th>
688
  <td>
689
  <?php nfw_toggle_switch( 'info', 'nfw_rules[block_bots]', $yes, $no, 'small', $block_bots ) ?>
690
  </td>
752
  $allow_local_ip = 1;
753
  }
754
  ?>
755
+ <h3>IP <span class="ninjafirewall-tip" data-tip="<?php esc_attr_e('In the Premium version of NinjaFirewall, you can use the IP Access Control section to easily configure all IP address related options (source, whitelist, blacklist, rate limiting etc).', 'ninjafirewall' ) ?>"></span></h3>
756
  <table class="form-table nfw-table" border=0>
757
  <tr>
758
  <th scope="row" class="row-med"><?php _e('Block localhost IP in <code>GET/POST</code> request', 'ninjafirewall') ?></th>
850
  <option value="2"<?php selected( $nfw_options['response_headers'][3], 2 ) ?>><?php printf( __('Set to %s', 'ninjafirewall'), '"1"'); ?></option>
851
  <option value="1"<?php selected( $nfw_options['response_headers'][3], 1 ) ?>><?php printf( __('Set to %s', 'ninjafirewall'), '"1; mode=block"') ?></option>
852
  </select>
853
+ <p class="description"><span class="dashicons dashicons-warning nfw-warning"></span><?php esc_html_e('This header is deprecated and most browsers phased out support for it. Consider using Content-Security-Policy instead.', 'ninjafirewall') ?></p>
854
  </td>
855
  </tr>
856
  <tr>
909
  <p><label><input type="checkbox" name="nfw_options[strict_transport_sub]" value="1"<?php checked( $subdom, 1 );disabled($hsts_err, 1) ?>>&nbsp;<?php _e('Apply to subdomains', 'ninjafirewall') ?></label>&nbsp;&nbsp;<label><input type="checkbox" name="nfw_options[strict_transport_preload]" value="1"<?php checked( $preload, 1 );disabled($hsts_err, 1) ?>>&nbsp;<?php _e('Preload', 'ninjafirewall') ?></label></p>
910
  <?php
911
  if (! empty( $hsts_msg ) ) {
912
+ echo '<p class="description"><span class="dashicons dashicons-warning nfw-warning"></span>'. $hsts_msg .'</p>';
913
  }
914
  ?>
915
  </td>
lib/help.php CHANGED
@@ -101,7 +101,7 @@ get_current_screen()->add_help_tab( array(
101
  'title' => __('Export/import configuration', 'ninjafirewall'),
102
  'content' => '<br />' .
103
  sprintf( __('This options lets you export you current configuration or import it from another NinjaFirewall (WP Edition) installation. The imported file must match the major version of your current version (%s) otherwise it will be rejected. Note that importing will override all firewall rules and options.', 'ninjafirewall'), (int) $major_current .'.x' ) .
104
- '<p><span class="dashicons dashicons-warning nfw-warning"></span>&nbsp;' .
105
  __('"File Check" configuration will not be exported/imported.', 'ninjafirewall') . '</p>'
106
  ) );
107
 
@@ -153,7 +153,7 @@ function help_nfsubpolicies() {
153
  __('This action will be performed when the filtering process is over, right before NinjaFirewall forwards the request to your PHP script.', 'ninjafirewall') . '
154
  <br />
155
  <br />
156
- <span class="dashicons dashicons-warning nfw-warning"></span>&nbsp;'. __('If you enabled <code>POST</code> requests sanitising, articles and messages posted by your visitors could be corrupted with excessive backslashes or substitution characters.', 'ninjafirewall'). '</li></ul>'
157
  ) );
158
 
159
  get_current_screen()->add_help_tab( array(
@@ -182,7 +182,7 @@ function help_nfsubpolicies() {
182
  <p><strong>' . __('Block user accounts creation', 'ninjafirewall'). '</strong><br />' . __('Enabling this policy will block any attempt (e.g., exploiting a vulnerability, using a backdoor etc) to create a user account. If you allow user registration, you should not enable it.', 'ninjafirewall'). '</p>
183
 
184
  <p><strong>' . __('Block attempts to gain administrative privileges', 'ninjafirewall'). '</strong><br />' . __('This policy will block vulnerabilities that could be leveraged by attackers to gain administrative privileges.', 'ninjafirewall') .'</p>
185
- <p><span class="dashicons dashicons-warning nfw-warning"></span>&nbsp;' . __("If you have a multisite installation, this option will apply to the main site only. If you want it to apply to all subsites in your network, check the 'Apply to all subsites in the network' option.", 'ninjafirewall'). '</p>
186
 
187
  <p><strong>' . __('Block attempts to publish, edit or delete a published post by users who do not have the right capabilities', 'ninjafirewall'). '</strong><br />' . __('This policy will block vulnerabilities that could be leveraged by attackers to create, edit or delete posts. Note that it applies to <code>post</code> and <code>page</code> post types only (not custom ones).', 'ninjafirewall'). '</p>
188
 
@@ -273,12 +273,12 @@ function help_nfsubpolicies() {
273
  <p>' . __('Since v3.1.3, WordPress sets this value to <code>SAMEORIGIN</code> for the administrator and the login page only.', 'ninjafirewall'). '</p>
274
 
275
  <p><strong>' . __('Set <code>X-XSS-Protection</code>', 'ninjafirewall'). '</strong><br />' . __('This header allows browsers to identify and block XSS attacks by preventing malicious scripts from executing. It is enabled by default on all compatible browsers.', 'ninjafirewall'). '</p>'.
276
- '<p><span class="dashicons dashicons-warning nfw-warning"></span>&nbsp;' . __('This header is deprecated and most browsers phased out support for it. Consider using Content-Security-Policy instead.', 'ninjafirewall'). '</p>'.
277
 
278
  '<p><strong>' . __('Force <code>SameSite</code> flag on all cookies to mitigate CSRF attacks', 'ninjafirewall'). '</strong><br />' . __('Adding this flag to cookies helps to mitigate the risk of CSRF (cross-site request forgery) attacks because cookies can only be sent in requests originating from the same origin as the target domain.', 'ninjafirewall'). '</p>'.
279
 
280
  '<p><strong>' . __('Force <code>HttpOnly</code> flag on all cookies to mitigate XSS attacks', 'ninjafirewall'). '</strong><br />' . __('Adding this flag to cookies helps to mitigate the risk of cross-site scripting by preventing them from being accessed through client-side scripts. NinjaFirewall can hook all cookies sent by your blog, its plugins or any other PHP script, add the <code>HttpOnly</code> flag if it is missing, and re-inject those cookies back into your server HTTP response headers right before they are sent to your visitors. Note that WordPress sets that flag on the logged in user cookies only.', 'ninjafirewall'). '</p>
281
- <p><span class="dashicons dashicons-warning nfw-warning"></span>&nbsp;' . __('If your PHP scripts send cookies that need to be accessed from JavaScript, you should keep that option disabled.', 'ninjafirewall'). '</p>
282
 
283
  <p><strong>' . __('Set <code>Strict-Transport-Security</code> (HSTS) to enforce secure connections to the server', 'ninjafirewall'). '</strong><br />' . __('This policy enforces secure HTTPS connections to the server. Web browsers will not allow the user to access the web application over insecure HTTP protocol. It helps to defend against cookie hijacking and Man-in-the-middle attacks. Most recent browsers support HSTS headers.', 'ninjafirewall'). '</p>
284
 
@@ -335,7 +335,7 @@ function help_nfsubfileguard() {
335
  '<br />'.
336
  __('Reports will be sent to the contact email address defined in the "Event Notifications" menu.', 'ninjafirewall'). '</p>'.
337
 
338
- '<p><span class="dashicons dashicons-warning nfw-warning"></span>&nbsp;'. sprintf( __('Scheduled scans rely on <a href="%s">WordPress pseudo cron</a> which works only if your site gets sufficient traffic.', 'ninjafirewall'), 'http://codex.wordpress.org/Category:WP-Cron_Functions') . '</p>'
339
  ) );
340
 
341
  // File Guard :
@@ -348,7 +348,7 @@ function help_nfsubfileguard() {
348
  __('If a hacker uploaded a shell script to your site (or injected a backdoor into an already existing file) and tried to directly access that file using his browser or a script, NinjaFirewall would hook the HTTP request and immediately detect that the file was recently modified/created. It would send you a detailed alert (script name, IP, request, date and time). Alerts will be sent to the contact email address defined in the "Event Notifications" menu.', 'ninjafirewall') .
349
  '<p>' . __('If you do not want to monitor a folder, you can exclude its full path or a part of it (e.g., <code>/var/www/public_html/cache/</code> or <code>/cache/</code> etc). NinjaFirewall will compare this value to the <code>$_SERVER["SCRIPT_FILENAME"]</code> server variable and, if it matches, will ignore it.', 'ninjafirewall') . '</p>' .
350
  __('Multiple values must be comma-separated (e.g., <code>/foo/bar/,/cache/</code>).', 'ninjafirewall') .
351
- '<p><span class="dashicons dashicons-warning nfw-warning"></span>&nbsp;' . __('File Guard real-time detection is a totally unique feature, because NinjaFirewall is the only plugin for WordPress that can hook HTTP requests sent to any PHP script, even if that script is not part of the WordPress package (third-party software, shell script, backdoor etc).', 'ninjafirewall') . '</p>'
352
  ) );
353
  }
354
  /* ------------------------------------------------------------------ */ // i18n+
@@ -434,7 +434,7 @@ function help_nfsublogin() {
434
  __('Sample loglines:', 'ninjafirewall') .
435
  '<br />
436
  <textarea class="large-text code" style="height:80px;" wrap="off">Aug 31 01:40:35 www ninjafirewall[6191]: Possible brute-force attack from 172.16.0.1 on mysite.com (wp-login.php). Blocking access for 5mn.'. "\n" . 'Aug 31 01:45:28 www ninjafirewall[6192]: Possible brute-force attack from fe80::6e88:14ff:fe3e:86f0 on blog.domain.com (XML-RPC API). Blocking access for 25mn.</textarea>
437
- <p><span class="dashicons dashicons-warning nfw-warning"></span>&nbsp;' . sprintf( __('Be careful if you are behind a load balancer, reverse-proxy or CDN because the Login Protection feature will always record the <code>REMOTE_ADDR</code> IP. If you have an application parsing the AUTH log in order to ban IPs (e.g. Fail2ban), you <strong>must</strong> setup your HTTP server to forward the correct IP (or use the <code><a href="%s">.htninja</a></code> file), otherwise you will likely block legitimate users.', 'ninjafirewall'), 'https://blog.nintechnet.com/ninjafirewall-wp-edition-the-htninja-configuration-file/') . '</p>
438
  </div>'
439
  ) );
440
 
@@ -469,7 +469,7 @@ function help_nfsublog() {
469
  '<ul><li>' . __('Enter your public key (optional): This is the public key that was created from your main server.', 'ninjafirewall') . '</li>
470
  </ul>' .
471
 
472
- '<p><span class="dashicons dashicons-warning nfw-warning"></span>&nbsp;'.
473
  __('Centralized Logging will keep working even if NinjaFirewall is disabled. Delete your public key below if you want to disable it.', 'ninjafirewall') .
474
  '</p>'.
475
  '</div>'
@@ -487,7 +487,7 @@ function help_nfsublog() {
487
 
488
  <p>' . __('Live Log does not make use of any WordPress core file (e.g., <code>admin-ajax.php</code>). It communicates directly with the firewall without loading WordPress bootstrap. Consequently, it is fast, lightweight and it should not affect your server load, even if you set its refresh rate to the lowest value.', 'ninjafirewall') . '</p>
489
 
490
- <p><span class="dashicons dashicons-warning nfw-warning"></span>&nbsp;' . __('If you are using the optional <code>.htninja</code> configuration file to whitelist your IP, the Live Log feature will not work.', 'ninjafirewall') . '
491
  </p>'.
492
 
493
 
101
  'title' => __('Export/import configuration', 'ninjafirewall'),
102
  'content' => '<br />' .
103
  sprintf( __('This options lets you export you current configuration or import it from another NinjaFirewall (WP Edition) installation. The imported file must match the major version of your current version (%s) otherwise it will be rejected. Note that importing will override all firewall rules and options.', 'ninjafirewall'), (int) $major_current .'.x' ) .
104
+ '<p><span class="dashicons dashicons-warning nfw-warning"></span>' .
105
  __('"File Check" configuration will not be exported/imported.', 'ninjafirewall') . '</p>'
106
  ) );
107
 
153
  __('This action will be performed when the filtering process is over, right before NinjaFirewall forwards the request to your PHP script.', 'ninjafirewall') . '
154
  <br />
155
  <br />
156
+ <span class="dashicons dashicons-warning nfw-warning"></span>'. __('If you enabled <code>POST</code> requests sanitising, articles and messages posted by your visitors could be corrupted with excessive backslashes or substitution characters.', 'ninjafirewall'). '</li></ul>'
157
  ) );
158
 
159
  get_current_screen()->add_help_tab( array(
182
  <p><strong>' . __('Block user accounts creation', 'ninjafirewall'). '</strong><br />' . __('Enabling this policy will block any attempt (e.g., exploiting a vulnerability, using a backdoor etc) to create a user account. If you allow user registration, you should not enable it.', 'ninjafirewall'). '</p>
183
 
184
  <p><strong>' . __('Block attempts to gain administrative privileges', 'ninjafirewall'). '</strong><br />' . __('This policy will block vulnerabilities that could be leveraged by attackers to gain administrative privileges.', 'ninjafirewall') .'</p>
185
+ <p><span class="dashicons dashicons-warning nfw-warning"></span>' . __("If you have a multisite installation, this option will apply to the main site only. If you want it to apply to all subsites in your network, check the 'Apply to all subsites in the network' option.", 'ninjafirewall'). '</p>
186
 
187
  <p><strong>' . __('Block attempts to publish, edit or delete a published post by users who do not have the right capabilities', 'ninjafirewall'). '</strong><br />' . __('This policy will block vulnerabilities that could be leveraged by attackers to create, edit or delete posts. Note that it applies to <code>post</code> and <code>page</code> post types only (not custom ones).', 'ninjafirewall'). '</p>
188
 
273
  <p>' . __('Since v3.1.3, WordPress sets this value to <code>SAMEORIGIN</code> for the administrator and the login page only.', 'ninjafirewall'). '</p>
274
 
275
  <p><strong>' . __('Set <code>X-XSS-Protection</code>', 'ninjafirewall'). '</strong><br />' . __('This header allows browsers to identify and block XSS attacks by preventing malicious scripts from executing. It is enabled by default on all compatible browsers.', 'ninjafirewall'). '</p>'.
276
+ '<p><span class="dashicons dashicons-warning nfw-warning"></span>' . __('This header is deprecated and most browsers phased out support for it. Consider using Content-Security-Policy instead.', 'ninjafirewall'). '</p>'.
277
 
278
  '<p><strong>' . __('Force <code>SameSite</code> flag on all cookies to mitigate CSRF attacks', 'ninjafirewall'). '</strong><br />' . __('Adding this flag to cookies helps to mitigate the risk of CSRF (cross-site request forgery) attacks because cookies can only be sent in requests originating from the same origin as the target domain.', 'ninjafirewall'). '</p>'.
279
 
280
  '<p><strong>' . __('Force <code>HttpOnly</code> flag on all cookies to mitigate XSS attacks', 'ninjafirewall'). '</strong><br />' . __('Adding this flag to cookies helps to mitigate the risk of cross-site scripting by preventing them from being accessed through client-side scripts. NinjaFirewall can hook all cookies sent by your blog, its plugins or any other PHP script, add the <code>HttpOnly</code> flag if it is missing, and re-inject those cookies back into your server HTTP response headers right before they are sent to your visitors. Note that WordPress sets that flag on the logged in user cookies only.', 'ninjafirewall'). '</p>
281
+ <p><span class="dashicons dashicons-warning nfw-warning"></span>' . __('If your PHP scripts send cookies that need to be accessed from JavaScript, you should keep that option disabled.', 'ninjafirewall'). '</p>
282
 
283
  <p><strong>' . __('Set <code>Strict-Transport-Security</code> (HSTS) to enforce secure connections to the server', 'ninjafirewall'). '</strong><br />' . __('This policy enforces secure HTTPS connections to the server. Web browsers will not allow the user to access the web application over insecure HTTP protocol. It helps to defend against cookie hijacking and Man-in-the-middle attacks. Most recent browsers support HSTS headers.', 'ninjafirewall'). '</p>
284
 
335
  '<br />'.
336
  __('Reports will be sent to the contact email address defined in the "Event Notifications" menu.', 'ninjafirewall'). '</p>'.
337
 
338
+ '<p><span class="dashicons dashicons-warning nfw-warning"></span>'. sprintf( __('Scheduled scans rely on <a href="%s">WordPress pseudo cron</a> which works only if your site gets sufficient traffic.', 'ninjafirewall'), 'http://codex.wordpress.org/Category:WP-Cron_Functions') . '</p>'
339
  ) );
340
 
341
  // File Guard :
348
  __('If a hacker uploaded a shell script to your site (or injected a backdoor into an already existing file) and tried to directly access that file using his browser or a script, NinjaFirewall would hook the HTTP request and immediately detect that the file was recently modified/created. It would send you a detailed alert (script name, IP, request, date and time). Alerts will be sent to the contact email address defined in the "Event Notifications" menu.', 'ninjafirewall') .
349
  '<p>' . __('If you do not want to monitor a folder, you can exclude its full path or a part of it (e.g., <code>/var/www/public_html/cache/</code> or <code>/cache/</code> etc). NinjaFirewall will compare this value to the <code>$_SERVER["SCRIPT_FILENAME"]</code> server variable and, if it matches, will ignore it.', 'ninjafirewall') . '</p>' .
350
  __('Multiple values must be comma-separated (e.g., <code>/foo/bar/,/cache/</code>).', 'ninjafirewall') .
351
+ '<p><span class="dashicons dashicons-warning nfw-warning"></span>' . __('File Guard real-time detection is a totally unique feature, because NinjaFirewall is the only plugin for WordPress that can hook HTTP requests sent to any PHP script, even if that script is not part of the WordPress package (third-party software, shell script, backdoor etc).', 'ninjafirewall') . '</p>'
352
  ) );
353
  }
354
  /* ------------------------------------------------------------------ */ // i18n+
434
  __('Sample loglines:', 'ninjafirewall') .
435
  '<br />
436
  <textarea class="large-text code" style="height:80px;" wrap="off">Aug 31 01:40:35 www ninjafirewall[6191]: Possible brute-force attack from 172.16.0.1 on mysite.com (wp-login.php). Blocking access for 5mn.'. "\n" . 'Aug 31 01:45:28 www ninjafirewall[6192]: Possible brute-force attack from fe80::6e88:14ff:fe3e:86f0 on blog.domain.com (XML-RPC API). Blocking access for 25mn.</textarea>
437
+ <p><span class="dashicons dashicons-warning nfw-warning"></span>' . sprintf( __('Be careful if you are behind a load balancer, reverse-proxy or CDN because the Login Protection feature will always record the <code>REMOTE_ADDR</code> IP. If you have an application parsing the AUTH log in order to ban IPs (e.g. Fail2ban), you <strong>must</strong> setup your HTTP server to forward the correct IP (or use the <code><a href="%s">.htninja</a></code> file), otherwise you will likely block legitimate users.', 'ninjafirewall'), 'https://blog.nintechnet.com/ninjafirewall-wp-edition-the-htninja-configuration-file/') . '</p>
438
  </div>'
439
  ) );
440
 
469
  '<ul><li>' . __('Enter your public key (optional): This is the public key that was created from your main server.', 'ninjafirewall') . '</li>
470
  </ul>' .
471
 
472
+ '<p><span class="dashicons dashicons-warning nfw-warning"></span>'.
473
  __('Centralized Logging will keep working even if NinjaFirewall is disabled. Delete your public key below if you want to disable it.', 'ninjafirewall') .
474
  '</p>'.
475
  '</div>'
487
 
488
  <p>' . __('Live Log does not make use of any WordPress core file (e.g., <code>admin-ajax.php</code>). It communicates directly with the firewall without loading WordPress bootstrap. Consequently, it is fast, lightweight and it should not affect your server load, even if you set its refresh rate to the lowest value.', 'ninjafirewall') . '</p>
489
 
490
+ <p><span class="dashicons dashicons-warning nfw-warning"></span>' . __('If you are using the optional <code>.htninja</code> configuration file to whitelist your IP, the Live Log feature will not work.', 'ninjafirewall') . '
491
  </p>'.
492
 
493
 
lib/i18n-extra.php CHANGED
@@ -123,8 +123,6 @@ __('Your changes have been saved. If you are using a caching plugin, do not forg
123
  __('Enable antispam protection', 'ninjafirewall');
124
  __('Protection level', 'ninjafirewall');
125
  __('Low (default)', 'ninjafirewall');
126
- __('Medium', 'ninjafirewall');
127
- __('High', 'ninjafirewall');
128
  __('If you are using a caching plugin, consult the contextual help before enabling the antispam.', 'ninjafirewall');
129
  __('Apply protection to', 'ninjafirewall');
130
  __('Comment forms (defaut)', 'ninjafirewall');
@@ -268,7 +266,6 @@ __('Export', 'ninjafirewall');
268
  __('Delete', 'ninjafirewall');
269
  __('Delete log?', 'ninjafirewall');
270
  __('Today', 'ninjafirewall');
271
- __('Critical', 'ninjafirewall');
272
  __('Upload', 'ninjafirewall');
273
  __('Info', 'ninjafirewall');
274
  __('Debug', 'ninjafirewall');
123
  __('Enable antispam protection', 'ninjafirewall');
124
  __('Protection level', 'ninjafirewall');
125
  __('Low (default)', 'ninjafirewall');
 
 
126
  __('If you are using a caching plugin, consult the contextual help before enabling the antispam.', 'ninjafirewall');
127
  __('Apply protection to', 'ninjafirewall');
128
  __('Comment forms (defaut)', 'ninjafirewall');
266
  __('Delete', 'ninjafirewall');
267
  __('Delete log?', 'ninjafirewall');
268
  __('Today', 'ninjafirewall');
 
269
  __('Upload', 'ninjafirewall');
270
  __('Info', 'ninjafirewall');
271
  __('Debug', 'ninjafirewall');
lib/install_default.php CHANGED
@@ -26,20 +26,6 @@ function nfw_load_default_conf() {
26
 
27
  $nfw_rules = array();
28
 
29
- // We first delete all scheduled tasks if any (reinstallation etc):
30
- if ( wp_next_scheduled( 'nfwgccron' ) ) {
31
- wp_clear_scheduled_hook( 'nfwgccron' );
32
- }
33
- if ( wp_next_scheduled('nfscanevent') ) {
34
- wp_clear_scheduled_hook('nfscanevent');
35
- }
36
- if ( wp_next_scheduled('nfsecupdates') ) {
37
- wp_clear_scheduled_hook('nfsecupdates');
38
- }
39
- if ( wp_next_scheduled('nfdailyreport') ) {
40
- wp_clear_scheduled_hook('nfdailyreport');
41
- }
42
-
43
  $logo = plugins_url() . '/ninjafirewall/images/ninjafirewall_75.png';
44
  $logo = preg_replace( '/^https?:/', '', $logo );
45
 
@@ -220,11 +206,9 @@ function nfw_load_default_conf() {
220
  // (the garbage collect should be ran/scheduled last):
221
  nfw_update_option( 'nfw_options', $nfw_options);
222
  nfw_update_option( 'nfw_rules', $nfw_rules);
 
 
223
  // ------------------------------------------------------------------
224
- nfw_get_blogtimezone();
225
- wp_schedule_event( strtotime( date('Y-m-d 00:00:05', strtotime("+1 day")) ), 'daily', 'nfdailyreport');
226
- wp_schedule_event( time() + 3600, 'hourly', 'nfsecupdates');
227
- wp_schedule_event( time() + 1800, 'hourly', 'nfwgccron' );
228
 
229
  nfw_create_log_dir();
230
 
26
 
27
  $nfw_rules = array();
28
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
29
  $logo = plugins_url() . '/ninjafirewall/images/ninjafirewall_75.png';
30
  $logo = preg_replace( '/^https?:/', '', $logo );
31
 
206
  // (the garbage collect should be ran/scheduled last):
207
  nfw_update_option( 'nfw_options', $nfw_options);
208
  nfw_update_option( 'nfw_rules', $nfw_rules);
209
+ // Create conjobs
210
+ nfw_create_scheduled_tasks();
211
  // ------------------------------------------------------------------
 
 
 
 
212
 
213
  nfw_create_log_dir();
214
 
lib/logs.php CHANGED
@@ -38,6 +38,7 @@ if ( $_REQUEST['tab'] == 'livelog' ) {
38
  <h2 class="nav-tab-wrapper wp-clearfix" style="cursor:pointer">
39
  <a id="tab-firewalllog" class="nav-tab<?php echo $firewalllog_tab ?>" onClick="nfwjs_switch_tabs('firewalllog', 'firewalllog:livelog')"><?php _e( 'Firewall Log', 'ninjafirewall' ) ?></a>
40
  <a id="tab-livelog" class="nav-tab<?php echo $livelog_tab ?>" onClick="nfwjs_switch_tabs('livelog', 'firewalllog:livelog')"><?php _e( 'Live Log', 'ninjafirewall' ) ?></a>
 
41
  </h2>
42
  <br />
43
 
38
  <h2 class="nav-tab-wrapper wp-clearfix" style="cursor:pointer">
39
  <a id="tab-firewalllog" class="nav-tab<?php echo $firewalllog_tab ?>" onClick="nfwjs_switch_tabs('firewalllog', 'firewalllog:livelog')"><?php _e( 'Firewall Log', 'ninjafirewall' ) ?></a>
40
  <a id="tab-livelog" class="nav-tab<?php echo $livelog_tab ?>" onClick="nfwjs_switch_tabs('livelog', 'firewalllog:livelog')"><?php _e( 'Live Log', 'ninjafirewall' ) ?></a>
41
+ <a class="nav-tab"><span class="ninjafirewall-tip" data-tip="<?php esc_attr_e('In the Premium version of NinjaFirewall, you can filter the log by threat severity, type and date. You can delete it, enable its rotation based on the size of the file. It can be exported as a TSV (tab-separated values) text file. You can easily add any IP address to your Access Control whitelist or blacklist and it is possible to redirect all incidents and events to the Syslog server.', 'ninjafirewall' ); echo ' '; esc_attr_e('Also, the Centralized Logging feature lets you remotely access the firewall log of all your NinjaFirewall protected websites from one single installation.', 'ninjafirewall' ) ?>"></span></a>
42
  </h2>
43
  <br />
44
 
lib/monitoring.php CHANGED
@@ -45,6 +45,7 @@ if ( $_REQUEST['tab'] == 'filecheck' ) {
45
  <h2 class="nav-tab-wrapper wp-clearfix" style="cursor:pointer">
46
  <a id="tab-filecheck" class="nav-tab<?php echo $filecheck_tab ?>" onClick="nfwjs_switch_tabs('filecheck', 'fileguard:filecheck')"><?php _e( 'File Check', 'ninjafirewall' ) ?></a>
47
  <a id="tab-fileguard" class="nav-tab<?php echo $fileguard_tab ?>" onClick="nfwjs_switch_tabs('fileguard', 'fileguard:filecheck')"><?php _e( 'File Guard', 'ninjafirewall' ) ?></a>
 
48
  </h2>
49
  <br />
50
 
45
  <h2 class="nav-tab-wrapper wp-clearfix" style="cursor:pointer">
46
  <a id="tab-filecheck" class="nav-tab<?php echo $filecheck_tab ?>" onClick="nfwjs_switch_tabs('filecheck', 'fileguard:filecheck')"><?php _e( 'File Check', 'ninjafirewall' ) ?></a>
47
  <a id="tab-fileguard" class="nav-tab<?php echo $fileguard_tab ?>" onClick="nfwjs_switch_tabs('fileguard', 'fileguard:filecheck')"><?php _e( 'File Guard', 'ninjafirewall' ) ?></a>
48
+ <a class="nav-tab"><span class="ninjafirewall-tip" data-tip="<?php esc_attr_e('In the Premium version of NinjaFirewall, you can also monitor the response body, i.e., the output of the HTML page, and search it for some specific keywords, which can be useful to identify errors, hacked content and data leakage issues on your website.', 'ninjafirewall' ) ?>"></span></a>
49
  </h2>
50
  <br />
51
 
lib/monitoring_file_check.php CHANGED
@@ -697,24 +697,8 @@ function nf_scheduled_scan() {
697
 
698
  if (! isset($_POST['sched_scan']) || ! preg_match('/^[1-3]$/', $_POST['sched_scan']) ) {
699
  $nfw_options['sched_scan'] = 0;
700
- // Clear scheduled scan, if any :
701
- if ( wp_next_scheduled('nfscanevent') ) {
702
- wp_clear_scheduled_hook('nfscanevent');
703
- }
704
  } else {
705
- if ($_POST['sched_scan'] == 1) {
706
- $schedtype = 'hourly';
707
- } elseif ($_POST['sched_scan'] == 2) {
708
- $schedtype = 'twicedaily';
709
- } else {
710
- $schedtype = 'daily';
711
- }
712
  $nfw_options['sched_scan'] = $_POST['sched_scan'];
713
- // Create a new scheduled scan :
714
- if ( wp_next_scheduled('nfscanevent') ) {
715
- wp_clear_scheduled_hook('nfscanevent');
716
- }
717
- wp_schedule_event( time() + 3600, $schedtype, 'nfscanevent');
718
  }
719
 
720
  if ( empty($_POST['report_scan']) ) {
@@ -724,6 +708,9 @@ function nf_scheduled_scan() {
724
  }
725
  nfw_update_option('nfw_options', $nfw_options);
726
 
 
 
 
727
  }
728
 
729
  // ---------------------------------------------------------------------
@@ -731,11 +718,6 @@ function nf_scheduled_scan() {
731
  function nf_scan_email($nfmon_diff, $log_dir) {
732
 
733
  $nfw_options = nfw_get_option('nfw_options');
734
- if ( ( is_multisite() ) && ( $nfw_options['alert_sa_only'] == 2 ) ) {
735
- $recipient = get_option('admin_email');
736
- } else {
737
- $recipient = $nfw_options['alert_email'];
738
- }
739
 
740
  nfw_get_blogtimezone();
741
 
@@ -787,7 +769,7 @@ function nf_scan_email($nfmon_diff, $log_dir) {
787
  $msg .= __('See attached file for details.', 'ninjafirewall') . "\n\n" .
788
  NF_PG_SIGNATURE ."\n\n". NF_PG_MORESEC;
789
 
790
- wp_mail( $recipient, $subject, $msg, '', $log_dir . 'nf_filecheck.txt' );
791
  unlink($log_dir . 'nf_filecheck.txt');
792
 
793
  } else {
@@ -803,7 +785,7 @@ function nf_scan_email($nfmon_diff, $log_dir) {
803
  $msg .= sprintf( __('Date: %s', 'ninjafirewall'), ucfirst(date_i18n('M d, Y @ H:i:s O')) ) . "\n\n" .
804
  NF_PG_SIGNATURE ."\n\n". NF_PG_MORESEC;
805
 
806
- wp_mail( $recipient, $subject, $msg );
807
  }
808
  }
809
 
697
 
698
  if (! isset($_POST['sched_scan']) || ! preg_match('/^[1-3]$/', $_POST['sched_scan']) ) {
699
  $nfw_options['sched_scan'] = 0;
 
 
 
 
700
  } else {
 
 
 
 
 
 
 
701
  $nfw_options['sched_scan'] = $_POST['sched_scan'];
 
 
 
 
 
702
  }
703
 
704
  if ( empty($_POST['report_scan']) ) {
708
  }
709
  nfw_update_option('nfw_options', $nfw_options);
710
 
711
+ // Update cronjobs
712
+ nfw_create_scheduled_tasks('nfscanevent');
713
+
714
  }
715
 
716
  // ---------------------------------------------------------------------
718
  function nf_scan_email($nfmon_diff, $log_dir) {
719
 
720
  $nfw_options = nfw_get_option('nfw_options');
 
 
 
 
 
721
 
722
  nfw_get_blogtimezone();
723
 
769
  $msg .= __('See attached file for details.', 'ninjafirewall') . "\n\n" .
770
  NF_PG_SIGNATURE ."\n\n". NF_PG_MORESEC;
771
 
772
+ nfw_mail( $subject, $msg, 'unsubscribe', $headers = '', $log_dir . 'nf_filecheck.txt' );
773
  unlink($log_dir . 'nf_filecheck.txt');
774
 
775
  } else {
785
  $msg .= sprintf( __('Date: %s', 'ninjafirewall'), ucfirst(date_i18n('M d, Y @ H:i:s O')) ) . "\n\n" .
786
  NF_PG_SIGNATURE ."\n\n". NF_PG_MORESEC;
787
 
788
+ nfw_mail( $subject, $msg, 'unsubscribe' );
789
  }
790
  }
791
 
lib/scheduled_tasks.php ADDED
@@ -0,0 +1,176 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /*
3
+ +---------------------------------------------------------------------+
4
+ | NinjaFirewall (WP Edition) |
5
+ | |
6
+ | (c) NinTechNet - https://nintechnet.com/ |
7
+ +---------------------------------------------------------------------+
8
+ | This program is free software: you can redistribute it and/or |
9
+ | modify it under the terms of the GNU General Public License as |
10
+ | published by the Free Software Foundation, either version 3 of |
11
+ | the License, or (at your option) any later version. |
12
+ | |
13
+ | This program is distributed in the hope that it will be useful, |
14
+ | but WITHOUT ANY WARRANTY; without even the implied warranty of |
15
+ | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
16
+ | GNU General Public License for more details. |
17
+ +---------------------------------------------------------------------+
18
+ */
19
+
20
+ if (! defined( 'NFW_ENGINE_VERSION' ) ) { die( 'Forbidden' ); }
21
+
22
+ // ---------------------------------------------------------------------
23
+ // Create scheduled tasks.
24
+
25
+ function nfw_create_scheduled_tasks( $task = 0 ) {
26
+
27
+ $nfw_options = nfw_get_option( 'nfw_options' );
28
+
29
+ // Return if NF was disabled from the "Options" page
30
+ if ( empty( $nfw_options['enabled'] ) ) {
31
+ return;
32
+ }
33
+
34
+
35
+ // File Check (optional)
36
+ if (! $task || $task == 'nfscanevent' ) {
37
+ if ( wp_next_scheduled('nfscanevent') ) {
38
+ wp_clear_scheduled_hook('nfscanevent');
39
+ }
40
+ if (! empty($nfw_options['sched_scan']) ) {
41
+ if ($nfw_options['sched_scan'] == 1) {
42
+ $schedtype = 'hourly';
43
+ } elseif ($nfw_options['sched_scan'] == 2) {
44
+ $schedtype = 'twicedaily';
45
+ } else {
46
+ $schedtype = 'daily';
47
+ }
48
+ wp_schedule_event( time() + 120, $schedtype, 'nfscanevent');
49
+ }
50
+ }
51
+
52
+
53
+ // Garbage Collector (always on)
54
+ if ( wp_next_scheduled( 'nfwgccron' ) ) {
55
+ wp_clear_scheduled_hook( 'nfwgccron' );
56
+ }
57
+ wp_schedule_event( time() + 30, 'hourly', 'nfwgccron' );
58
+
59
+
60
+ // Security rules update (optional)
61
+ if (! $task || $task == 'nfsecupdates' ) {
62
+ if ( wp_next_scheduled('nfsecupdates') ) {
63
+ wp_clear_scheduled_hook('nfsecupdates');
64
+ }
65
+ if (! empty($nfw_options['enable_updates']) ) {
66
+ if ($nfw_options['sched_updates'] == 1) {
67
+ $schedtype = 'hourly';
68
+ } elseif ($nfw_options['sched_updates'] == 2) {
69
+ $schedtype = 'twicedaily';
70
+ } else {
71
+ $schedtype = 'daily';
72
+ }
73
+ wp_schedule_event( time() + 60, $schedtype, 'nfsecupdates');
74
+ }
75
+ }
76
+
77
+
78
+ // Daily report (optional)
79
+ if (! $task || $task == 'nfdailyreport' ) {
80
+ if ( wp_next_scheduled('nfdailyreport') ) {
81
+ wp_clear_scheduled_hook('nfdailyreport');
82
+ }
83
+ if (! empty( $nfw_options['a_52'] ) ) {
84
+ nfw_get_blogtimezone();
85
+ wp_schedule_event( strtotime( date('Y-m-d 00:00:05', strtotime('+1 day')) ), 'daily', 'nfdailyreport');
86
+ }
87
+ }
88
+
89
+ }
90
+ // ---------------------------------------------------------------------
91
+ // Verify scheduled tasks, reactivate them if needed and write
92
+ // the incident to the error log.
93
+
94
+ function nfw_verify_scheduled_tasks() {
95
+
96
+ if ( defined('NFW_DONTVERIFYCRON') && NFW_DONTVERIFYCRON == true ) {
97
+ return;
98
+ }
99
+
100
+ $nfw_options = nfw_get_option( 'nfw_options' );
101
+
102
+ // Return if NF was disabled from the "Options" page
103
+ if ( empty( $nfw_options['enabled'] ) ) {
104
+ return;
105
+ }
106
+
107
+ $now = time();
108
+
109
+ // File Check (optional)
110
+ if (! empty($nfw_options['sched_scan']) && ! wp_next_scheduled('nfscanevent') ) {
111
+ if ($nfw_options['sched_scan'] == 1) {
112
+ $schedtype = 'hourly';
113
+ } elseif ($nfw_options['sched_scan'] == 2) {
114
+ $schedtype = 'twicedaily';
115
+ } else {
116
+ $schedtype = 'daily';
117
+ }
118
+ wp_schedule_event( $now + 120, $schedtype, 'nfscanevent');
119
+ nfw_log_error(
120
+ sprintf( __('Scheduled task has stopped, restarting it (%s)', 'ninjafirewall'), 'nfscanevent' )
121
+ );
122
+ }
123
+
124
+ // Garbage Collector (always on)
125
+ if (! wp_next_scheduled('nfwgccron') ) {
126
+ wp_schedule_event( $now + 30, 'hourly', 'nfwgccron' );
127
+ nfw_log_error(
128
+ sprintf( __('Scheduled task has stopped, restarting it (%s)', 'ninjafirewall'), 'nfwgccron' )
129
+ );
130
+ }
131
+
132
+ // Security rules update (optional)
133
+ if (! empty($nfw_options['enable_updates']) && ! wp_next_scheduled('nfsecupdates') ) {
134
+ if ($nfw_options['sched_updates'] == 1) {
135
+ $schedtype = 'hourly';
136
+ } elseif ($nfw_options['sched_updates'] == 2) {
137
+ $schedtype = 'twicedaily';
138
+ } else {
139
+ $schedtype = 'daily';
140
+ }
141
+ wp_schedule_event( $now + 60, $schedtype, 'nfsecupdates');
142
+ nfw_log_error(
143
+ sprintf( __('Scheduled task has stopped, restarting it (%s)', 'ninjafirewall'), 'nfsecupdates' )
144
+ );
145
+ }
146
+
147
+ // Daily report (optional)
148
+ if (! empty( $nfw_options['a_52'] ) && ! wp_next_scheduled('nfdailyreport') ) {
149
+ nfw_get_blogtimezone();
150
+ wp_schedule_event( strtotime( date('Y-m-d 00:00:05', strtotime('+1 day')) ), 'daily', 'nfdailyreport');
151
+ nfw_log_error(
152
+ sprintf( __('Scheduled task has stopped, restarting it (%s)', 'ninjafirewall'), 'nfdailyreport' )
153
+ );
154
+ }
155
+ }
156
+ // ---------------------------------------------------------------------
157
+ // Delete scheduled tasks.
158
+
159
+ function nfw_delete_scheduled_tasks() {
160
+
161
+ if ( wp_next_scheduled('nfscanevent') ) {
162
+ wp_clear_scheduled_hook('nfscanevent');
163
+ }
164
+ if ( wp_next_scheduled( 'nfwgccron' ) ) {
165
+ wp_clear_scheduled_hook( 'nfwgccron' );
166
+ }
167
+ if ( wp_next_scheduled('nfsecupdates') ) {
168
+ wp_clear_scheduled_hook('nfsecupdates');
169
+ }
170
+ if ( wp_next_scheduled('nfdailyreport') ) {
171
+ wp_clear_scheduled_hook('nfdailyreport');
172
+ }
173
+
174
+ }
175
+ // ---------------------------------------------------------------------
176
+ // EOF
lib/security_rules_update.php CHANGED
@@ -145,7 +145,7 @@ if ( empty($nfw_options['notify_updates']) && isset($nfw_options['notify_updates
145
  <div id="upd_table"<?php echo $enable_updates == 1 ? '' : ' style="display:none"' ?>>
146
  <table class="form-table nfw-table">
147
  <tr>
148
- <th scope="row" class="row-med"><?php _e('Check for updates', 'ninjafirewall') ?></th>
149
  <td>
150
  <select name="sched_updates">
151
  <option disabled><?php _e('Every 15 minutes', 'ninjafirewall') ?> (Premium)</option>
@@ -255,18 +255,8 @@ function nf_sub_updates_save() {
255
 
256
  if ( empty($_POST['enable_updates']) ) {
257
  $nfw_options['enable_updates'] = 0;
258
- // Clear scheduled scan (if any) and its options :
259
- if ( wp_next_scheduled('nfsecupdates') ) {
260
- wp_clear_scheduled_hook('nfsecupdates');
261
- }
262
  } else {
263
  $nfw_options['enable_updates'] = 1;
264
- // Create a new scheduled scan :
265
- if ( wp_next_scheduled('nfsecupdates') ) {
266
- wp_clear_scheduled_hook('nfsecupdates');
267
- }
268
- // Start next cron in 90 seconds:
269
- wp_schedule_event( time() + 90, $schedtype, 'nfsecupdates');
270
  }
271
 
272
  if ( empty($_POST['notify_updates']) ) {
@@ -277,6 +267,9 @@ function nf_sub_updates_save() {
277
 
278
  nfw_update_option('nfw_options', $nfw_options);
279
 
 
 
 
280
  }
281
 
282
  // ---------------------------------------------------------------------
@@ -560,12 +553,6 @@ function nf_sub_updates_notification($new_rules_version) {
560
 
561
  $nfw_options = nfw_get_option('nfw_options');
562
 
563
- if ( ( is_multisite() ) && ( $nfw_options['alert_sa_only'] == 2 ) ) {
564
- $recipient = get_option('admin_email');
565
- } else {
566
- $recipient = $nfw_options['alert_email'];
567
- }
568
-
569
  $subject = __('[NinjaFirewall] Security rules update', 'ninjafirewall');
570
  $msg = __('NinjaFirewall security rules have been updated:', 'ninjafirewall') . "\n\n";
571
  if ( is_multisite() ) {
@@ -578,7 +565,7 @@ function nf_sub_updates_notification($new_rules_version) {
578
  sprintf( __('This notification can be turned off from NinjaFirewall "%s" page.', 'ninjafirewall'), __('Security Rules', 'ninjafirewall') ) ."\n\n" .
579
  NF_PG_SIGNATURE ."\n\n". NF_PG_MORESEC;
580
 
581
- wp_mail( $recipient, $subject, $msg );
582
  }
583
 
584
  // ---------------------------------------------------------------------
145
  <div id="upd_table"<?php echo $enable_updates == 1 ? '' : ' style="display:none"' ?>>
146
  <table class="form-table nfw-table">
147
  <tr>
148
+ <th scope="row" class="row-med"><?php _e('Check for updates', 'ninjafirewall') ?> <span class="ninjafirewall-tip" data-tip="<?php esc_attr_e('In the Premium version of NinjaFirewall, you can check for security rules updates as often as every 15 minutes, versus one hour for the free WP Edition.', 'ninjafirewall' ) ?>"></span></th>
149
  <td>
150
  <select name="sched_updates">
151
  <option disabled><?php _e('Every 15 minutes', 'ninjafirewall') ?> (Premium)</option>
255
 
256
  if ( empty($_POST['enable_updates']) ) {
257
  $nfw_options['enable_updates'] = 0;
 
 
 
 
258
  } else {
259
  $nfw_options['enable_updates'] = 1;
 
 
 
 
 
 
260
  }
261
 
262
  if ( empty($_POST['notify_updates']) ) {
267
 
268
  nfw_update_option('nfw_options', $nfw_options);
269
 
270
+ // Recreate cronjobs if needed
271
+ nfw_create_scheduled_tasks('nfsecupdates');
272
+
273
  }
274
 
275
  // ---------------------------------------------------------------------
553
 
554
  $nfw_options = nfw_get_option('nfw_options');
555
 
 
 
 
 
 
 
556
  $subject = __('[NinjaFirewall] Security rules update', 'ninjafirewall');
557
  $msg = __('NinjaFirewall security rules have been updated:', 'ninjafirewall') . "\n\n";
558
  if ( is_multisite() ) {
565
  sprintf( __('This notification can be turned off from NinjaFirewall "%s" page.', 'ninjafirewall'), __('Security Rules', 'ninjafirewall') ) ."\n\n" .
566
  NF_PG_SIGNATURE ."\n\n". NF_PG_MORESEC;
567
 
568
+ nfw_mail( $subject, $msg, 'unsubscribe' );
569
  }
570
 
571
  // ---------------------------------------------------------------------
lib/utils.php CHANGED
@@ -171,6 +171,11 @@ function nf_wp_insert_post_empty_content( $maybe_empty, $postarr ) {
171
  return false;
172
  }
173
 
 
 
 
 
 
174
  // We must use meta capability (edit_post/edit_page), not capability (edit_postS/edit_pageS).
175
  $edit_post = "edit_{$postarr['post_type']}";
176
  if ( current_user_can( $edit_post, $id ) ) {
@@ -215,11 +220,6 @@ function nf_wp_insert_post_empty_content( $maybe_empty, $postarr ) {
215
  // Alert the admin:
216
  nfw_get_blogtimezone();
217
 
218
- if ( is_multisite() && $nfw_options['alert_sa_only'] == 2 ) {
219
- $recipient = get_option('admin_email');
220
- } else {
221
- $recipient = $nfw_options['alert_email'];
222
- }
223
  $subject = '[NinjaFirewall] ' . $subject;
224
  $message = __('NinjaFirewall has blocked an attempt to edit/create a post by a user who doesn\'t have the right capabilities:', 'ninjafirewall') . "\n\n";
225
  $message.= __('Blog:', 'ninjafirewall') .' '. home_url('/') . "\n";
@@ -244,11 +244,11 @@ function nf_wp_insert_post_empty_content( $maybe_empty, $postarr ) {
244
  $message.= __('This protection (and notification) can be turned off from NinjaFirewall "Firewall Policies" page.', 'ninjafirewall') . "\n\n";
245
  $message.= NF_PG_SIGNATURE ."\n\n". NF_PG_MORESEC ."\n";
246
  if ( empty( $nftmpfname ) ) {
247
- wp_mail( $recipient, $subject, $message );
248
 
249
  } else {
250
  // Attach backtrace and delete temp file:
251
- wp_mail( $recipient, $subject, $message, '', $nftmpfname );
252
  unlink( $nftmpfname );
253
  }
254
 
@@ -301,11 +301,6 @@ function nf_pre_delete_post( $delete, $post, $force_delete ) {
301
  // Alert the admin:
302
  nfw_get_blogtimezone();
303
 
304
- if ( is_multisite() && $nfw_options['alert_sa_only'] == 2 ) {
305
- $recipient = get_option('admin_email');
306
- } else {
307
- $recipient = $nfw_options['alert_email'];
308
- }
309
  $subject = '[NinjaFirewall] ' . $subject;
310
  $message = __('NinjaFirewall has blocked an attempt to delete a post by a user who doesn\'t have the right capabilities:', 'ninjafirewall') . "\n\n";
311
  $message.= __('Blog:', 'ninjafirewall') .' '. home_url('/') . "\n";
@@ -329,11 +324,11 @@ function nf_pre_delete_post( $delete, $post, $force_delete ) {
329
  $message.= __('This protection (and notification) can be turned off from NinjaFirewall "Firewall Policies" page.', 'ninjafirewall') . "\n\n";
330
  $message.= NF_PG_SIGNATURE ."\n\n". NF_PG_MORESEC ."\n";
331
  if ( empty( $nftmpfname ) ) {
332
- wp_mail( $recipient, $subject, $message );
333
 
334
  } else {
335
  // Attach backtrace and delete temp file:
336
- wp_mail( $recipient, $subject, $message, '', $nftmpfname );
337
  unlink( $nftmpfname );
338
  }
339
 
@@ -424,11 +419,6 @@ function nfw_account_creation( $user_login ) {
424
  nfw_get_blogtimezone();
425
 
426
  // Alert the admin:
427
- if ( is_multisite() && $nfw_options['alert_sa_only'] == 2 ) {
428
- $recipient = get_option('admin_email');
429
- } else {
430
- $recipient = $nfw_options['alert_email'];
431
- }
432
  $subject = '[NinjaFirewall] ' . $subject;
433
  $message = __('NinjaFirewall has blocked an attempt to create a user account:', 'ninjafirewall') . "\n\n";
434
  // Show current blog, not main site (multisite):
@@ -451,11 +441,11 @@ function nfw_account_creation( $user_login ) {
451
  $message.= NF_PG_SIGNATURE ."\n\n". NF_PG_MORESEC;
452
 
453
  if ( empty( $nftmpfname ) ) {
454
- wp_mail( $recipient, $subject, $message );
455
 
456
  } else {
457
  // Attach backtrace and delete temp file:
458
- wp_mail( $recipient, $subject, $message, '', $nftmpfname );
459
  unlink( $nftmpfname );
460
  }
461
 
@@ -528,7 +518,7 @@ function nfw_garbage_collector() {
528
 
529
  // Delete this corrupted backup file:
530
  } else {
531
- nfw_log_error( sprintf( 'Backup file is corrupted, deleting it (%s)', $last_file ) );
532
  unlink( $last_file );
533
  }
534
  }
@@ -536,13 +526,13 @@ function nfw_garbage_collector() {
536
  // Restore the last good backup:
537
  if (! empty( $valid_option ) ) {
538
  nfw_update_option( 'nfw_options', $content[0] );
539
- nfw_log_error( sprintf( '"nfw_options" is corrupted, restoring from last known good backup file (%s)', $last_file ) );
540
 
541
  // Restore the default settings if no backup file was found
542
  // (this action will also restore the firewall rules):
543
  } else {
544
  require_once __DIR__ .'/install_default.php';
545
- nfw_log_error( '"nfw_options" is corrupted, restoring default values (no valid backup found)' );
546
  nfw_load_default_conf();
547
  }
548
 
@@ -672,31 +662,6 @@ function nfw_garbage_collector() {
672
  @file_put_contents( $path . $file, '<?php exit; ?>B' . base64_encode( $data ), LOCK_EX );
673
  }
674
 
675
- // ------------------------------------------------------------------
676
- // Make sure the security rules cron job is working as expected:
677
- if (! empty( $nfw_options['enable_updates'] ) ) {
678
- $nextcron = wp_next_scheduled('nfsecupdates');
679
- if ( $nfw_options['sched_updates'] == 1 ) {
680
- $sched_updates = 60 * 60;
681
- $sched_type = 'hourly';
682
- } elseif ( $nfw_options['sched_updates'] == 2 ) {
683
- $sched_updates = 60 * 60 * 12;
684
- $sched_type = 'twicedaily';
685
- } else {
686
- $sched_updates = 60 * 60 * 24;
687
- $sched_type = 'daily';
688
- }
689
- $interval = $nextcron - time();
690
- if ( $interval > $sched_updates || $nextcron < 1 ) {
691
- nfw_log_error(
692
- sprintf( '"nfsecupdates" scheduled event is corrupted (%s)', "$interval > $sched_updates" )
693
- );
694
- // Recreate it:
695
- wp_clear_scheduled_hook('nfsecupdates');
696
- wp_schedule_event( time() + 90, $sched_type, 'nfsecupdates');
697
- }
698
- }
699
-
700
  // ------------------------------------------------------------------
701
  // Security updates
702
  require __DIR__ .'/event_updates.php';
@@ -720,20 +685,6 @@ function nfw_log_error( $message ) {
720
 
721
  // ---------------------------------------------------------------------
722
 
723
- function nfw_get_blogtimezone() {
724
-
725
- $tzstring = get_option( 'timezone_string' );
726
- if (! $tzstring ) {
727
- $tzstring = ini_get( 'date.timezone' );
728
- if (! $tzstring ) {
729
- $tzstring = 'UTC';
730
- }
731
- }
732
- date_default_timezone_set( $tzstring );
733
- }
734
-
735
- // ---------------------------------------------------------------------
736
-
737
  function nfw_select_ip() {
738
  // Ensure we have a proper and single IP (a user may use the .htninja file
739
  // to redirect HTTP_X_FORWARDED_FOR, which may contain more than one IP,
@@ -831,12 +782,6 @@ function nfw_send_loginemail( $user_login, $whoami ) {
831
 
832
  $nfw_options = nfw_get_option( 'nfw_options' );
833
 
834
- if ( ( is_multisite() ) && ( $nfw_options['alert_sa_only'] == 2 ) ) {
835
- $recipient = get_option('admin_email');
836
- } else {
837
- $recipient = $nfw_options['alert_email'];
838
- }
839
-
840
  $subject = '[NinjaFirewall] ' . __('Alert: WordPress console login', 'ninjafirewall');
841
  // Show current blog, not main site (multisite):
842
  $url = __('-Blog:', 'ninjafirewall') .' '. home_url('/') . "\n\n";
@@ -850,8 +795,7 @@ function nfw_send_loginemail( $user_login, $whoami ) {
850
  $url .
851
  NF_PG_SIGNATURE ."\n\n". NF_PG_MORESEC;
852
 
853
- wp_mail( $recipient, $subject, $message );
854
-
855
  }
856
 
857
  // --------------------------------------------------------------------- s1:h0
@@ -1087,12 +1031,6 @@ function nf_check_dbdata() {
1087
 
1088
  nfw_get_blogtimezone();
1089
  // Send an email to the admin:
1090
- if ( ( is_multisite() ) && ( $nfw_options['alert_sa_only'] == 2 ) ) {
1091
- $recipient = get_option('admin_email');
1092
- } else {
1093
- $recipient = $nfw_options['alert_email'];
1094
- }
1095
-
1096
  $subject = __('[NinjaFirewall] Alert: Database changes detected', 'ninjafirewall');
1097
  $message = __('NinjaFirewall has detected that one or more administrator accounts were modified in the database:', 'ninjafirewall') . "\n\n";
1098
  // Even if this is a multisite install, we display
@@ -1111,7 +1049,7 @@ function nf_check_dbdata() {
1111
  $message.= __('If you cannot see any modifications in the above fields, it is possible that the administrator password was changed.', 'ninjafirewall'). "\n\n";
1112
  $message.= __('This notification can be turned off from NinjaFirewall "Event Notifications" page.', 'ninjafirewall') . "\n\n";
1113
  $message.= NF_PG_SIGNATURE ."\n\n". NF_PG_MORESEC;
1114
- wp_mail( $recipient, $subject, $message );
1115
 
1116
  // Log event if required:
1117
  if (! empty($nfw_options['a_41']) ) {
@@ -1267,11 +1205,6 @@ function nfwhook_user_meta( $id, $key, $value ) {
1267
  // Alert the admin:
1268
  nfw_get_blogtimezone();
1269
 
1270
- if ( is_multisite() && $nfw_options['alert_sa_only'] == 2 ) {
1271
- $recipient = get_option('admin_email');
1272
- } else {
1273
- $recipient = $nfw_options['alert_email'];
1274
- }
1275
  $subject = '[NinjaFirewall] ' . $subject;
1276
 
1277
  $message = __('NinjaFirewall has blocked an attempt to modify a user capability by someone who does not have administrative privileges:', 'ninjafirewall') . "\n\n";
@@ -1298,16 +1231,15 @@ function nfwhook_user_meta( $id, $key, $value ) {
1298
  file_put_contents( $nftmpfname, print_r( $dbg, true ) );
1299
  $message.= __('A PHP backtrace has been attached to this message for your convenience.', 'ninjafirewall') . "\n\n";
1300
  }
1301
-
1302
  $message.= __('This protection (and notification) can be turned off from NinjaFirewall "Firewall Policies" page.', 'ninjafirewall') . "\n\n";
1303
  $message.= NF_PG_SIGNATURE ."\n\n". NF_PG_MORESEC;
1304
 
1305
  if ( empty( $nftmpfname ) ) {
1306
- wp_mail( $recipient, $subject, $message );
1307
 
1308
  } else {
1309
  // Attach backtrace and delete temp file:
1310
- wp_mail( $recipient, $subject, $message, '', $nftmpfname );
1311
  unlink( $nftmpfname );
1312
  }
1313
 
@@ -1517,12 +1449,6 @@ function nf_monitor_options_alert( $option, $value, $old_value, $type ) {
1517
 
1518
  nfw_get_blogtimezone();
1519
 
1520
- if ( is_multisite() && $nfw_options['alert_sa_only'] == 2 ) {
1521
- $recipient = get_option('admin_email');
1522
- } else {
1523
- $recipient = $nfw_options['alert_email'];
1524
- }
1525
-
1526
  $action = __('The attempt was blocked and the option was reversed to its original value.', 'ninjafirewall');
1527
 
1528
  // WP settings:
@@ -1565,11 +1491,11 @@ function nf_monitor_options_alert( $option, $value, $old_value, $type ) {
1565
  $message.= NF_PG_SIGNATURE ."\n\n". NF_PG_MORESEC;
1566
 
1567
  if ( empty( $nftmpfname ) ) {
1568
- wp_mail( $recipient, $subject, $message );
1569
 
1570
  } else {
1571
  // Attach backtrace and delete temp file:
1572
- wp_mail( $recipient, $subject, $message, '', $nftmpfname );
1573
  unlink( $nftmpfname );
1574
  }
1575
 
@@ -1609,6 +1535,25 @@ function nfw_verify_secupdates() {
1609
 
1610
  }
1611
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1612
  // Update our list if needed
1613
  if (! empty( $cleared ) ) {
1614
  nfw_update_option( 'nfw_checked', $nfw_checked );
@@ -1628,6 +1573,60 @@ function nfw_in_plugin_update_message( $plugin_data, $r ) {
1628
  '</a></span>';
1629
  }
1630
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1631
  // ---------------------------------------------------------------------
1632
  // Activate WPWAF mode.
1633
 
171
  return false;
172
  }
173
 
174
+ $old_post = get_post( $id );
175
+ if ( $old_post->post_title == $postarr['post_title'] && $old_post->post_content == $postarr['post_content'] ) {
176
+ return false;
177
+ }
178
+
179
  // We must use meta capability (edit_post/edit_page), not capability (edit_postS/edit_pageS).
180
  $edit_post = "edit_{$postarr['post_type']}";
181
  if ( current_user_can( $edit_post, $id ) ) {
220
  // Alert the admin:
221
  nfw_get_blogtimezone();
222
 
 
 
 
 
 
223
  $subject = '[NinjaFirewall] ' . $subject;
224
  $message = __('NinjaFirewall has blocked an attempt to edit/create a post by a user who doesn\'t have the right capabilities:', 'ninjafirewall') . "\n\n";
225
  $message.= __('Blog:', 'ninjafirewall') .' '. home_url('/') . "\n";
244
  $message.= __('This protection (and notification) can be turned off from NinjaFirewall "Firewall Policies" page.', 'ninjafirewall') . "\n\n";
245
  $message.= NF_PG_SIGNATURE ."\n\n". NF_PG_MORESEC ."\n";
246
  if ( empty( $nftmpfname ) ) {
247
+ nfw_mail( $subject, $message, 'unsubscribe' );
248
 
249
  } else {
250
  // Attach backtrace and delete temp file:
251
+ nfw_mail( $subject, $message, 'unsubscribe', $headers = '', $nftmpfname );
252
  unlink( $nftmpfname );
253
  }
254
 
301
  // Alert the admin:
302
  nfw_get_blogtimezone();
303
 
 
 
 
 
 
304
  $subject = '[NinjaFirewall] ' . $subject;
305
  $message = __('NinjaFirewall has blocked an attempt to delete a post by a user who doesn\'t have the right capabilities:', 'ninjafirewall') . "\n\n";
306
  $message.= __('Blog:', 'ninjafirewall') .' '. home_url('/') . "\n";
324
  $message.= __('This protection (and notification) can be turned off from NinjaFirewall "Firewall Policies" page.', 'ninjafirewall') . "\n\n";
325
  $message.= NF_PG_SIGNATURE ."\n\n". NF_PG_MORESEC ."\n";
326
  if ( empty( $nftmpfname ) ) {
327
+ nfw_mail( $subject, $message, 'unsubscribe' );
328
 
329
  } else {
330
  // Attach backtrace and delete temp file:
331
+ nfw_mail( $subject, $message, 'unsubscribe', $headers = '', $nftmpfname );
332
  unlink( $nftmpfname );
333
  }
334
 
419
  nfw_get_blogtimezone();
420
 
421
  // Alert the admin:
 
 
 
 
 
422
  $subject = '[NinjaFirewall] ' . $subject;
423
  $message = __('NinjaFirewall has blocked an attempt to create a user account:', 'ninjafirewall') . "\n\n";
424
  // Show current blog, not main site (multisite):
441
  $message.= NF_PG_SIGNATURE ."\n\n". NF_PG_MORESEC;
442
 
443
  if ( empty( $nftmpfname ) ) {
444
+ nfw_mail( $subject, $message, 'unsubscribe' );
445
 
446
  } else {
447
  // Attach backtrace and delete temp file:
448
+ nfw_mail( $subject, $message, 'unsubscribe', $headers = '', $nftmpfname );
449
  unlink( $nftmpfname );
450
  }
451
 
518
 
519
  // Delete this corrupted backup file:
520
  } else {
521
+ nfw_log_error( sprintf( __('Backup file is corrupted, deleting it (%s)', 'ninjafirewall'), $last_file ) );
522
  unlink( $last_file );
523
  }
524
  }
526
  // Restore the last good backup:
527
  if (! empty( $valid_option ) ) {
528
  nfw_update_option( 'nfw_options', $content[0] );
529
+ nfw_log_error( sprintf( __('NinjaFirewall\'s options are corrupted, restoring them from last known good backup file (%s)', 'ninjafirewall'), $last_file ) );
530
 
531
  // Restore the default settings if no backup file was found
532
  // (this action will also restore the firewall rules):
533
  } else {
534
  require_once __DIR__ .'/install_default.php';
535
+ nfw_log_error( __('NinjaFirewall\'s options are corrupted, restoring their default values (no valid backup found)', 'ninjafirewall') );
536
  nfw_load_default_conf();
537
  }
538
 
662
  @file_put_contents( $path . $file, '<?php exit; ?>B' . base64_encode( $data ), LOCK_EX );
663
  }
664
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
665
  // ------------------------------------------------------------------
666
  // Security updates
667
  require __DIR__ .'/event_updates.php';
685
 
686
  // ---------------------------------------------------------------------
687
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
688
  function nfw_select_ip() {
689
  // Ensure we have a proper and single IP (a user may use the .htninja file
690
  // to redirect HTTP_X_FORWARDED_FOR, which may contain more than one IP,
782
 
783
  $nfw_options = nfw_get_option( 'nfw_options' );
784
 
 
 
 
 
 
 
785
  $subject = '[NinjaFirewall] ' . __('Alert: WordPress console login', 'ninjafirewall');
786
  // Show current blog, not main site (multisite):
787
  $url = __('-Blog:', 'ninjafirewall') .' '. home_url('/') . "\n\n";
795
  $url .
796
  NF_PG_SIGNATURE ."\n\n". NF_PG_MORESEC;
797
 
798
+ nfw_mail( $subject, $message, 'unsubscribe' );
 
799
  }
800
 
801
  // --------------------------------------------------------------------- s1:h0
1031
 
1032
  nfw_get_blogtimezone();
1033
  // Send an email to the admin:
 
 
 
 
 
 
1034
  $subject = __('[NinjaFirewall] Alert: Database changes detected', 'ninjafirewall');
1035
  $message = __('NinjaFirewall has detected that one or more administrator accounts were modified in the database:', 'ninjafirewall') . "\n\n";
1036
  // Even if this is a multisite install, we display
1049
  $message.= __('If you cannot see any modifications in the above fields, it is possible that the administrator password was changed.', 'ninjafirewall'). "\n\n";
1050
  $message.= __('This notification can be turned off from NinjaFirewall "Event Notifications" page.', 'ninjafirewall') . "\n\n";
1051
  $message.= NF_PG_SIGNATURE ."\n\n". NF_PG_MORESEC;
1052
+ nfw_mail( $subject, $message, 'unsubscribe' );
1053
 
1054
  // Log event if required:
1055
  if (! empty($nfw_options['a_41']) ) {
1205
  // Alert the admin:
1206
  nfw_get_blogtimezone();
1207
 
 
 
 
 
 
1208
  $subject = '[NinjaFirewall] ' . $subject;
1209
 
1210
  $message = __('NinjaFirewall has blocked an attempt to modify a user capability by someone who does not have administrative privileges:', 'ninjafirewall') . "\n\n";
1231
  file_put_contents( $nftmpfname, print_r( $dbg, true ) );
1232
  $message.= __('A PHP backtrace has been attached to this message for your convenience.', 'ninjafirewall') . "\n\n";
1233
  }
 
1234
  $message.= __('This protection (and notification) can be turned off from NinjaFirewall "Firewall Policies" page.', 'ninjafirewall') . "\n\n";
1235
  $message.= NF_PG_SIGNATURE ."\n\n". NF_PG_MORESEC;
1236
 
1237
  if ( empty( $nftmpfname ) ) {
1238
+ nfw_mail( $subject, $message, 'unsubscribe' );
1239
 
1240
  } else {
1241
  // Attach backtrace and delete temp file:
1242
+ nfw_mail( $subject, $message, 'unsubscribe', $headers = '', $nftmpfname );
1243
  unlink( $nftmpfname );
1244
  }
1245
 
1449
 
1450
  nfw_get_blogtimezone();
1451
 
 
 
 
 
 
 
1452
  $action = __('The attempt was blocked and the option was reversed to its original value.', 'ninjafirewall');
1453
 
1454
  // WP settings:
1491
  $message.= NF_PG_SIGNATURE ."\n\n". NF_PG_MORESEC;
1492
 
1493
  if ( empty( $nftmpfname ) ) {
1494
+ nfw_mail( $subject, $message, 'unsubscribe' );
1495
 
1496
  } else {
1497
  // Attach backtrace and delete temp file:
1498
+ nfw_mail( $subject, $message, 'unsubscribe', $headers = '', $nftmpfname );
1499
  unlink( $nftmpfname );
1500
  }
1501
 
1535
 
1536
  }
1537
  }
1538
+
1539
+ // Flush plugins or themes that were uninstalled instead of updated
1540
+ if (! empty( $nfw_checked['plugins'] ) ) {
1541
+ foreach( $nfw_checked['plugins'] as $k => $v ) {
1542
+ if (! file_exists( WP_PLUGIN_DIR ."/$k" ) ) {
1543
+ unset( $nfw_checked['plugins'][$k] );
1544
+ $cleared = 1;
1545
+ }
1546
+ }
1547
+ }
1548
+ if (! empty( $nfw_checked['themes'] ) ) {
1549
+ foreach( $nfw_checked['themes'] as $k => $v ) {
1550
+ if (! is_dir( WP_CONTENT_DIR ."/themes/$k" ) ) {
1551
+ unset( $nfw_checked['themes'][$k] );
1552
+ $cleared = 1;
1553
+ }
1554
+ }
1555
+ }
1556
+
1557
  // Update our list if needed
1558
  if (! empty( $cleared ) ) {
1559
  nfw_update_option( 'nfw_checked', $nfw_checked );
1573
  '</a></span>';
1574
  }
1575
 
1576
+ // ---------------------------------------------------------------------
1577
+ // Send a notification email to one or multiple recipient with a unsubscribe
1578
+ // link for admin users who don't have anymore access to the site.
1579
+ // If the recipient's email was taken from the get_option('admin_email') option,
1580
+ // we don't send any link as we don't want to remove that email.
1581
+
1582
+ function nfw_mail( $subject, $message, $unsubscribe = 0, $headers = '', $attachments = '' ) {
1583
+
1584
+ $nfw_options = nfw_get_option( 'nfw_options' );
1585
+
1586
+ if ( is_multisite() && ( $nfw_options['alert_sa_only'] == 2 ) ) {
1587
+ $recipient = get_option('admin_email');
1588
+ // User is the main admin of the site, we can't help here:
1589
+ $unsubscribe = 0;
1590
+ } else {
1591
+ $recipient = $nfw_options['alert_email'];
1592
+ }
1593
+
1594
+ if ( empty( $recipient ) ) {
1595
+ nfw_log_error( sprintf( __('Cannot send notification, no valid email found (%s)', 'ninjafirewall'), 'alert_email' ) );
1596
+ return;
1597
+ }
1598
+
1599
+ require_once 'email_sodium.php';
1600
+
1601
+ // In order to use Sodium, we must have WordPress >=5.2 or PHP >= 7.2.0
1602
+ if (! empty( $unsubscribe ) ) {
1603
+ $unsubscribe = nfw_check_sodium();
1604
+ }
1605
+
1606
+ if (! empty( $unsubscribe ) ) {
1607
+ // Link will be valid for 12 hours
1608
+ $expire = time() + 60*60*12;
1609
+ $admin_email = get_option('admin_email');
1610
+ // We need to create a unique unsubscribe link for each recipients
1611
+ $recipients = explode(',', $recipient );
1612
+ foreach( $recipients as $to ) {
1613
+ $to = trim( $to );
1614
+ // If that's the admin email, we can't remove it:
1615
+ if ( $to == $admin_email ) {
1616
+ $click = '';
1617
+ } else {
1618
+ $link = nfw_sodium_encrypt( $to, $expire, $unsubscribe );
1619
+ $uri = home_url('/') ."?nfw_stop_notification=$link";
1620
+ $click = "\n\n". sprintf( __("If you don't have access to that site any longer, you can remove your email by clicking the following link (valid for 12 hours): %s", 'ninjafirewall'), $uri );
1621
+ }
1622
+ wp_mail( $to, $subject, $message . $click, $headers, $attachments );
1623
+ }
1624
+
1625
+ } else {
1626
+ wp_mail( $recipient, $subject, $message, $headers, $attachments );
1627
+ }
1628
+ }
1629
+
1630
  // ---------------------------------------------------------------------
1631
  // Activate WPWAF mode.
1632
 
lib/wpplus.php CHANGED
@@ -140,7 +140,7 @@ nf_not_allowed( 'block', __LINE__ );
140
  <div class="feature-section is-wide has-2-columns">
141
  <div class="column is-vertically-aligned-center">
142
  <h3>Web Filter</h3>
143
- <p><?php _e('The Web Filter can hook the response body, i.e., the output of the HTML page, and search it for some specific keywords. Such filter can be useful to identify errors, hacked content and data leakage issues in the response body sent to your visitors.', 'ninjafirewall') .' ' ?>
144
  <?php _e('In the case of a positive detection, NinjaFirewall will not block the response body but will send you an alert by email. It can even attach the whole HTML source of the page for your review.', 'ninjafirewall') ?></p>
145
  </div>
146
  <div class="column">
140
  <div class="feature-section is-wide has-2-columns">
141
  <div class="column is-vertically-aligned-center">
142
  <h3>Web Filter</h3>
143
+ <p><?php _e('The Web Filter can monitor the response body, i.e., the output of the HTML page, and search it for some specific keywords, which can be useful to identify errors, hacked content and data leakage issues in the response body sent to your visitors.', 'ninjafirewall') .' ' ?>
144
  <?php _e('In the case of a positive detection, NinjaFirewall will not block the response body but will send you an alert by email. It can even attach the whole HTML source of the page for your review.', 'ninjafirewall') ?></p>
145
  </div>
146
  <div class="column">
ninjafirewall.php CHANGED
@@ -3,7 +3,7 @@
3
  Plugin Name: NinjaFirewall (WP Edition)
4
  Plugin URI: https://nintechnet.com/
5
  Description: A true Web Application Firewall to protect and secure WordPress.
6
- Version: 4.4
7
  Author: The Ninja Technologies Network
8
  Author URI: https://nintechnet.com/
9
  License: GPLv3 or later
@@ -19,7 +19,7 @@ Domain Path: /languages
19
  | (c) NinTechNet - https://nintechnet.com/ |
20
  +---------------------------------------------------------------------+
21
  */
22
- define( 'NFW_ENGINE_VERSION', '4.4' );
23
  /*
24
  +---------------------------------------------------------------------+
25
  | This program is free software: you can redistribute it and/or |
@@ -88,7 +88,7 @@ $err_fw = array(
88
  13 => sprintf( __("The firewall cannot access its log and cache folders. If you changed the name of WordPress %s or %s folders, you must define NinjaFirewall's built-in %s constant (see %s for more info)", 'ninjafirewall'), '<code>/wp-content/</code>', '<code>/plugins/</code>', '<code>NFW_LOG_DIR</code>', "<a href='https://blog.nintechnet.com/ninjafirewall-wp-edition-the-htninja-configuration-file/' target='_blank'>Path to NinjaFirewall's log and cache directory</a>"),
89
  14 => __('The PHP msqli extension is missing or not loaded.', 'ninjafirewall'),
90
  15 => __('Cannot retrieve user options from database (#4)', 'ninjafirewall'),
91
- 16 => __('Cannot retrieve user rules from database (#4)', 'ninjafirewall'),
92
 
93
  );
94
 
@@ -98,9 +98,29 @@ if (! defined('NFW_LOG_DIR') ) {
98
  if (! empty($_SERVER['DOCUMENT_ROOT']) && $_SERVER['DOCUMENT_ROOT'] != '/' ) {
99
  $_SERVER['DOCUMENT_ROOT'] = rtrim( $_SERVER['DOCUMENT_ROOT'] , '/' );
100
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
101
  /* ------------------------------------------------------------------ */
102
 
103
  require plugin_dir_path(__FILE__) .'lib/custom_plugin.php';
 
104
  require plugin_dir_path(__FILE__) .'lib/utils.php';
105
  require plugin_dir_path(__FILE__) .'lib/events.php';
106
 
@@ -167,44 +187,8 @@ function nfw_activate() {
167
  exit( $res );
168
  }
169
 
170
- // Re-enable scheduled scan, if needed
171
- if (! empty($nfw_options['sched_scan']) ) {
172
- if ($nfw_options['sched_scan'] == 1) {
173
- $schedtype = 'hourly';
174
- } elseif ($nfw_options['sched_scan'] == 2) {
175
- $schedtype = 'twicedaily';
176
- } else {
177
- $schedtype = 'daily';
178
- }
179
- if ( wp_next_scheduled('nfscanevent') ) {
180
- wp_clear_scheduled_hook('nfscanevent');
181
- }
182
- wp_schedule_event( time() + 3600, $schedtype, 'nfscanevent');
183
- }
184
- // Re-enable auto updates, if needed
185
- if (! empty($nfw_options['enable_updates']) ) {
186
- if ($nfw_options['sched_updates'] == 1) {
187
- $schedtype = 'hourly';
188
- } elseif ($nfw_options['sched_updates'] == 2) {
189
- $schedtype = 'twicedaily';
190
- } else {
191
- $schedtype = 'daily';
192
- }
193
- if ( wp_next_scheduled('nfsecupdates') ) {
194
- wp_clear_scheduled_hook('nfsecupdates');
195
- }
196
- wp_schedule_event( time() + 15, $schedtype, 'nfsecupdates');
197
- }
198
- // Re-enable daily report, if needed
199
- if (! empty($nfw_options['a_52']) ) {
200
- if ( wp_next_scheduled('nfdailyreport') ) {
201
- wp_clear_scheduled_hook('nfdailyreport');
202
- }
203
- nfw_get_blogtimezone();
204
- wp_schedule_event( strtotime( date('Y-m-d 00:00:05', strtotime("+1 day")) ), 'daily', 'nfdailyreport');
205
- }
206
- // Re-enable the garbage collector:
207
- wp_schedule_event( time() + 1800, 'hourly', 'nfwgccron' );
208
 
209
  // Re-enable brute-force protection
210
  if ( file_exists( NFW_LOG_DIR . '/nfwlog/cache/bf_conf_off.php' ) ) {
@@ -224,11 +208,6 @@ function nfw_deactivate() {
224
 
225
  // Reused from Firewall Options
226
  if ( empty( $_REQUEST['action'] ) || strpos( $_REQUEST['action'], 'deactivate' ) === false ) {
227
- if ( ( is_multisite() ) && ( $nfw_options['alert_sa_only'] == 2 ) ) {
228
- $recipient = get_option('admin_email');
229
- } else {
230
- $recipient = $nfw_options['alert_email'];
231
- }
232
  global $current_user;
233
  $current_user = wp_get_current_user();
234
  $subject = __('[NinjaFirewall] Alert: Firewall is disabled', 'ninjafirewall');
@@ -243,30 +222,21 @@ function nfw_deactivate() {
243
  __('-Date :', 'ninjafirewall') .' '. ucfirst( date_i18n('F j, Y @ H:i:s O') ) ."\n" .
244
  $url .
245
  NF_PG_SIGNATURE ."\n";
246
- wp_mail( $recipient, $subject, $message );
247
  }
248
 
249
  $nfw_options['enabled'] = 0;
250
  nfw_disable_wpwaf();
251
 
252
- if ( wp_next_scheduled('nfwgccron') ) {
253
- wp_clear_scheduled_hook('nfwgccron');
254
- }
255
- if ( wp_next_scheduled('nfscanevent') ) {
256
- wp_clear_scheduled_hook('nfscanevent');
257
- }
258
- if ( wp_next_scheduled('nfsecupdates') ) {
259
- wp_clear_scheduled_hook('nfsecupdates');
260
- }
261
- if ( wp_next_scheduled('nfdailyreport') ) {
262
- wp_clear_scheduled_hook('nfdailyreport');
263
- }
264
  if ( file_exists( NFW_LOG_DIR . '/nfwlog/cache/bf_conf.php' ) ) {
265
  rename(NFW_LOG_DIR . '/nfwlog/cache/bf_conf.php', NFW_LOG_DIR . '/nfwlog/cache/bf_conf_off.php');
266
  }
267
 
268
  nfw_update_option( 'nfw_options', $nfw_options);
269
 
 
 
 
270
  }
271
 
272
  register_deactivation_hook( __FILE__, 'nfw_deactivate' );
@@ -292,9 +262,18 @@ function nfw_load_ext( $hook ) {
292
  $extra_css = null;
293
  }
294
 
 
 
 
 
 
 
 
 
 
295
  wp_enqueue_script(
296
  'nfw_javascript',
297
- plugin_dir_url( __FILE__ ) . 'static/ninjafirewall.js',
298
  $extra_js,
299
  NFW_ENGINE_VERSION
300
  );
@@ -305,8 +284,7 @@ function nfw_load_ext( $hook ) {
305
  'nfw_charts',
306
  plugin_dir_url( __FILE__ ) . 'static/chart.min.js',
307
  array( 'jquery' ),
308
- NFW_ENGINE_VERSION,
309
- false
310
  );
311
  }
312
 
@@ -384,7 +362,7 @@ function nfw_load_ext( $hook ) {
384
  'log_not_found' =>
385
  __('Error: Cannot find your log file. Try to reload this page.', 'ninjafirewall'),
386
  'http_error' =>
387
- __('Error: The HTTP server returned the following error code:', 'ninjafirewall'),
388
  );
389
 
390
  wp_localize_script( 'nfw_javascript', 'nfwi18n', $nfw_js_array );
@@ -414,6 +392,9 @@ function nfw_admin_init() {
414
  // Post-update adjustment:
415
  require plugin_dir_path(__FILE__) . 'lib/init_update.php';
416
 
 
 
 
417
  // --------------------------------------------
418
  // Anything below requires admin authentication
419
  // --------------------------------------------
@@ -546,21 +527,36 @@ function nfw_admin_init() {
546
 
547
  add_action('admin_init', 'nfw_admin_init' );
548
 
549
- /* ------------------------------------------------------------------ */
 
 
 
 
 
 
 
 
 
 
 
 
 
550
  // Check if the user is an admin and if we must whitelist them.
551
 
552
- function nfw_login_hook( $user_login, $user ) {
553
 
554
- nfw_session_start();
555
 
556
  $nfw_options = nfw_get_option( 'nfw_options' );
557
-
558
  // Don't do anything if NinjaFirewall is disabled:
559
- if ( empty( $nfw_options['enabled'] ) ) { return; }
560
 
561
- // Fetch user roles:
 
 
 
562
  $whoami = '';
563
- foreach( $user->roles as $k => $v ) {
564
  if ( $v == 'administrator' ) {
565
  $admin_flag = 1;
566
  }
@@ -571,7 +567,7 @@ function nfw_login_hook( $user_login, $user ) {
571
  // Still nothing: Maybe an additional superadmin
572
  if ( empty( $whoami ) && is_multisite() ) {
573
  // $user->ID is required here
574
- if ( is_super_admin( $user->ID ) ) {
575
  $admin_flag = 1;
576
  $whoami = 'administrator';
577
  }
@@ -580,10 +576,10 @@ function nfw_login_hook( $user_login, $user ) {
580
  // Are we supposed to send an alert?
581
  if (! empty($nfw_options['a_0']) ) {
582
  if ( ( $nfw_options['a_0'] == 1 && isset( $admin_flag ) ) || $nfw_options['a_0'] == 2 ) {
583
- nfw_send_loginemail( $user_login, $whoami );
584
  // Write event to log?
585
- if (! empty($nfw_options['a_41']) ) {
586
- nfw_log2('Logged in user', "{$user_login} ({$whoami})", 6, 0);
587
  }
588
  }
589
  }
@@ -593,7 +589,7 @@ function nfw_login_hook( $user_login, $user ) {
593
  if ( ( $nfw_options['wl_admin'] == 1 && isset( $admin_flag ) ) || $nfw_options['wl_admin'] == 2 ) {
594
  // Set the goodguy flag:
595
  $_SESSION['nfw_goodguy'] = 1;
596
- return;
597
  }
598
  }
599
 
@@ -601,6 +597,8 @@ function nfw_login_hook( $user_login, $user ) {
601
  if ( isset( $_SESSION['nfw_goodguy'] ) ) {
602
  unset( $_SESSION['nfw_goodguy'] );
603
  }
 
 
604
  }
605
 
606
  // Hook priority can be defined in the wp-config.php or .htninja
@@ -609,10 +607,10 @@ if ( defined('NFW_LOGINHOOK') ) {
609
  } else {
610
  $NFW_LOGINHOOK = -999999999;
611
  }
612
- add_action( 'wp_login', 'nfw_login_hook', $NFW_LOGINHOOK, 2 );
613
 
614
- /* ------------------------------------------------------------------ */
615
 
 
616
  function nfw_logout_hook() {
617
 
618
  nfw_session_start();
3
  Plugin Name: NinjaFirewall (WP Edition)
4
  Plugin URI: https://nintechnet.com/
5
  Description: A true Web Application Firewall to protect and secure WordPress.
6
+ Version: 4.4.1
7
  Author: The Ninja Technologies Network
8
  Author URI: https://nintechnet.com/
9
  License: GPLv3 or later
19
  | (c) NinTechNet - https://nintechnet.com/ |
20
  +---------------------------------------------------------------------+
21
  */
22
+ define( 'NFW_ENGINE_VERSION', '4.4.1' );
23
  /*
24
  +---------------------------------------------------------------------+
25
  | This program is free software: you can redistribute it and/or |
88
  13 => sprintf( __("The firewall cannot access its log and cache folders. If you changed the name of WordPress %s or %s folders, you must define NinjaFirewall's built-in %s constant (see %s for more info)", 'ninjafirewall'), '<code>/wp-content/</code>', '<code>/plugins/</code>', '<code>NFW_LOG_DIR</code>', "<a href='https://blog.nintechnet.com/ninjafirewall-wp-edition-the-htninja-configuration-file/' target='_blank'>Path to NinjaFirewall's log and cache directory</a>"),
89
  14 => __('The PHP msqli extension is missing or not loaded.', 'ninjafirewall'),
90
  15 => __('Cannot retrieve user options from database (#4)', 'ninjafirewall'),
91
+ 16 => __('Cannot retrieve user rules from database (#4)', 'ninjafirewall')
92
 
93
  );
94
 
98
  if (! empty($_SERVER['DOCUMENT_ROOT']) && $_SERVER['DOCUMENT_ROOT'] != '/' ) {
99
  $_SERVER['DOCUMENT_ROOT'] = rtrim( $_SERVER['DOCUMENT_ROOT'] , '/' );
100
  }
101
+ // ---------------------------------------------------------------------
102
+ // Get the blog's timezone.
103
+
104
+ function nfw_get_blogtimezone() {
105
+
106
+ // Try to get the user timezone from WP configuration...
107
+ $tzstring = get_option( 'timezone_string' );
108
+ // ...or from PHP...
109
+ if (! $tzstring ) {
110
+ $tzstring = ini_get( 'date.timezone' );
111
+ // ...or use UTC :
112
+ if (! $tzstring ) {
113
+ $tzstring = 'UTC';
114
+ }
115
+ }
116
+ // Set the timezone :
117
+ date_default_timezone_set( $tzstring );
118
+
119
+ }
120
  /* ------------------------------------------------------------------ */
121
 
122
  require plugin_dir_path(__FILE__) .'lib/custom_plugin.php';
123
+ require plugin_dir_path(__FILE__) .'lib/scheduled_tasks.php';
124
  require plugin_dir_path(__FILE__) .'lib/utils.php';
125
  require plugin_dir_path(__FILE__) .'lib/events.php';
126
 
187
  exit( $res );
188
  }
189
 
190
+ // Create scheduled tasks.
191
+ nfw_create_scheduled_tasks();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
192
 
193
  // Re-enable brute-force protection
194
  if ( file_exists( NFW_LOG_DIR . '/nfwlog/cache/bf_conf_off.php' ) ) {
208
 
209
  // Reused from Firewall Options
210
  if ( empty( $_REQUEST['action'] ) || strpos( $_REQUEST['action'], 'deactivate' ) === false ) {
 
 
 
 
 
211
  global $current_user;
212
  $current_user = wp_get_current_user();
213
  $subject = __('[NinjaFirewall] Alert: Firewall is disabled', 'ninjafirewall');
222
  __('-Date :', 'ninjafirewall') .' '. ucfirst( date_i18n('F j, Y @ H:i:s O') ) ."\n" .
223
  $url .
224
  NF_PG_SIGNATURE ."\n";
225
+ nfw_mail( $subject, $message, 'unsubscribe' );
226
  }
227
 
228
  $nfw_options['enabled'] = 0;
229
  nfw_disable_wpwaf();
230
 
 
 
 
 
 
 
 
 
 
 
 
 
231
  if ( file_exists( NFW_LOG_DIR . '/nfwlog/cache/bf_conf.php' ) ) {
232
  rename(NFW_LOG_DIR . '/nfwlog/cache/bf_conf.php', NFW_LOG_DIR . '/nfwlog/cache/bf_conf_off.php');
233
  }
234
 
235
  nfw_update_option( 'nfw_options', $nfw_options);
236
 
237
+ // Remove any existing cron
238
+ nfw_delete_scheduled_tasks();
239
+
240
  }
241
 
242
  register_deactivation_hook( __FILE__, 'nfw_deactivate' );
262
  $extra_css = null;
263
  }
264
 
265
+ // TipTip (WP Edition only)
266
+ wp_enqueue_script(
267
+ 'jquery-tiptip',
268
+ plugin_dir_url( __FILE__ ) .'static/jquery.tipTip.js',
269
+ array( 'jquery' ),
270
+ NFW_ENGINE_VERSION
271
+ );
272
+
273
+
274
  wp_enqueue_script(
275
  'nfw_javascript',
276
+ plugin_dir_url( __FILE__ ) .'static/ninjafirewall.js',
277
  $extra_js,
278
  NFW_ENGINE_VERSION
279
  );
284
  'nfw_charts',
285
  plugin_dir_url( __FILE__ ) . 'static/chart.min.js',
286
  array( 'jquery' ),
287
+ NFW_ENGINE_VERSION
 
288
  );
289
  }
290
 
362
  'log_not_found' =>
363
  __('Error: Cannot find your log file. Try to reload this page.', 'ninjafirewall'),
364
  'http_error' =>
365
+ __('Error: The HTTP server returned the following error code:', 'ninjafirewall')
366
  );
367
 
368
  wp_localize_script( 'nfw_javascript', 'nfwi18n', $nfw_js_array );
392
  // Post-update adjustment:
393
  require plugin_dir_path(__FILE__) . 'lib/init_update.php';
394
 
395
+ // Make sure cronjobs are running as expected
396
+ nfw_verify_scheduled_tasks();
397
+
398
  // --------------------------------------------
399
  // Anything below requires admin authentication
400
  // --------------------------------------------
527
 
528
  add_action('admin_init', 'nfw_admin_init' );
529
 
530
+ // ---------------------------------------------------------------------
531
+ // Check if the user wants to remove her email from the notification list.
532
+
533
+ function nfw_init_emailremoval() {
534
+
535
+ if (! empty( $_GET['nfw_stop_notification'] ) ) {
536
+ require_once 'lib/email_sodium.php';
537
+ nfw_sodium_decrypt( $_GET['nfw_stop_notification'] );
538
+ }
539
+
540
+ }
541
+ add_action('init', 'nfw_init_emailremoval' );
542
+
543
+ // ---------------------------------------------------------------------
544
  // Check if the user is an admin and if we must whitelist them.
545
 
546
+ function nfw_auth_cookie( $cookie, $user_id, $expiration, $scheme, $token ) {
547
 
548
+ if ( $scheme != 'logged_in' ) { return $cookie; }
549
 
550
  $nfw_options = nfw_get_option( 'nfw_options' );
 
551
  // Don't do anything if NinjaFirewall is disabled:
552
+ if ( empty( $nfw_options['enabled'] ) ) { return $cookie; }
553
 
554
+ nfw_session_start();
555
+
556
+ $wp_user = get_user_by( 'id', $user_id );
557
+ // Fetch user roles
558
  $whoami = '';
559
+ foreach( $wp_user->roles as $k => $v ) {
560
  if ( $v == 'administrator' ) {
561
  $admin_flag = 1;
562
  }
567
  // Still nothing: Maybe an additional superadmin
568
  if ( empty( $whoami ) && is_multisite() ) {
569
  // $user->ID is required here
570
+ if ( is_super_admin( $wp_user->ID ) ) {
571
  $admin_flag = 1;
572
  $whoami = 'administrator';
573
  }
576
  // Are we supposed to send an alert?
577
  if (! empty($nfw_options['a_0']) ) {
578
  if ( ( $nfw_options['a_0'] == 1 && isset( $admin_flag ) ) || $nfw_options['a_0'] == 2 ) {
579
+ nfw_send_loginemail( $wp_user->data->user_login, $whoami );
580
  // Write event to log?
581
+ if (! empty( $nfw_options['a_41'] ) ) {
582
+ nfw_log2('Logged in user', "{$wp_user->data->user_login} ({$whoami})", 6, 0);
583
  }
584
  }
585
  }
589
  if ( ( $nfw_options['wl_admin'] == 1 && isset( $admin_flag ) ) || $nfw_options['wl_admin'] == 2 ) {
590
  // Set the goodguy flag:
591
  $_SESSION['nfw_goodguy'] = 1;
592
+ return $cookie;
593
  }
594
  }
595
 
597
  if ( isset( $_SESSION['nfw_goodguy'] ) ) {
598
  unset( $_SESSION['nfw_goodguy'] );
599
  }
600
+
601
+ return $cookie;
602
  }
603
 
604
  // Hook priority can be defined in the wp-config.php or .htninja
607
  } else {
608
  $NFW_LOGINHOOK = -999999999;
609
  }
 
610
 
611
+ add_filter( 'auth_cookie', 'nfw_auth_cookie', $NFW_LOGINHOOK, 5 );
612
 
613
+ /* ------------------------------------------------------------------ */
614
  function nfw_logout_hook() {
615
 
616
  nfw_session_start();
readme.txt CHANGED
@@ -3,7 +3,7 @@ Contributors: nintechnet, bruandet
3
  Tags: security, firewall, malware, protection, hack, antispam, virus, scanner, hacked site, brute force, seguridad, seguranca, sicherheit, sicurezza, veiligheid, classicpress
4
  Requires at least: 4.7
5
  Tested up to: 5.8
6
- Stable tag: 4.4
7
  Requires PHP: 5.5
8
  License: GPLv3 or later
9
  License URI: http://www.gnu.org/licenses/gpl-3.0.html
@@ -208,6 +208,17 @@ WordPress Sicherheit Plugin.
208
 
209
  Need more security? Take the time to explore our supercharged Premium edition: [NinjaFirewall WP+ Edition](https://nintechnet.com/ninjafirewall/wp-edition/?comparison)
210
 
 
 
 
 
 
 
 
 
 
 
 
211
  = 4.4 =
212
 
213
  * The "Full WAF" mode can be configured to exclude some directories. That can be done from the "NinjaFirewall > Dashboard" page by clicking on the new "Configure" button. There's no need to use the ".htninja" script to exclude folders anymore. That can be useful to exclude third-party applications that rely on PHP sessions and could behave erratically with the "Full WAF" mode (e.g., Piwik/Matomo, phpMyAdmin, forums etc).
3
  Tags: security, firewall, malware, protection, hack, antispam, virus, scanner, hacked site, brute force, seguridad, seguranca, sicherheit, sicurezza, veiligheid, classicpress
4
  Requires at least: 4.7
5
  Tested up to: 5.8
6
+ Stable tag: 4.4.1
7
  Requires PHP: 5.5
8
  License: GPLv3 or later
9
  License URI: http://www.gnu.org/licenses/gpl-3.0.html
208
 
209
  Need more security? Take the time to explore our supercharged Premium edition: [NinjaFirewall WP+ Edition](https://nintechnet.com/ninjafirewall/wp-edition/?comparison)
210
 
211
+ = 4.4.1 =
212
+
213
+ * Added support for MySQL/MariaDB database connection over SSL.
214
+ * NinjaFirewall will permanently monitor its scheduled tasks (cron) to make sure they are working. If they stopped, it would restart them and write the incident to its error log (which can be viewed from the "NinjaFirewall > Dashboard" page).
215
+ * Uninstalled plugins and themes will be removed from the cache used for security updates notifications.
216
+ * Error messages were rewritten for better understanding.
217
+ * The "Block attempts to publish, edit or delete a published post by users who do not have the right capabilities" policy will only apply if the content or the title of the post has been changed, so that plugins that are used to modify metadata such as the date and time will not be blocked.
218
+ * Users who do not have access to a WordPress installation any longer but keep receiving the firewall's email notifications, can remove their email address by clicking on the corresponding link found in every notification sent by NinjaFirewall.
219
+ * WP+ Edition (Premium): Updated GeoIP databases.
220
+ * Many additional small fixes and adjustments.
221
+
222
  = 4.4 =
223
 
224
  * The "Full WAF" mode can be configured to exclude some directories. That can be done from the "NinjaFirewall > Dashboard" page by clicking on the new "Configure" button. There's no need to use the ".htninja" script to exclude folders anymore. That can be useful to exclude third-party applications that rely on PHP sessions and could behave erratically with the "Full WAF" mode (e.g., Piwik/Matomo, phpMyAdmin, forums etc).
static/jquery.tipTip.js ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * TipTip
3
+ * Copyright 2010 Drew Wilson
4
+ * www.drewwilson.com
5
+ * code.drewwilson.com/entry/tiptip-jquery-plugin
6
+ *
7
+ * Version 1.3 - Updated: Mar. 23, 2010
8
+ *
9
+ * This Plug-In will create a custom tooltip to replace the default
10
+ * browser tooltip. It is extremely lightweight and very smart in
11
+ * that it detects the edges of the browser window and will make sure
12
+ * the tooltip stays within the current window size. As a result the
13
+ * tooltip will adjust itself to be displayed above, below, to the left
14
+ * or to the right depending on what is necessary to stay within the
15
+ * browser window. It is completely customizable as well via CSS.
16
+ *
17
+ * This TipTip jQuery plug-in is dual licensed under the MIT and GPL licenses:
18
+ * http://www.opensource.org/licenses/mit-license.php
19
+ * http://www.gnu.org/licenses/gpl.html
20
+ */
21
+ (function($){$.fn.tipTip=function(options){var defaults={activation:"hover",keepAlive:false,maxWidth:"200px",edgeOffset:3,defaultPosition:"bottom",delay:400,fadeIn:200,fadeOut:200,attribute:"title",content:false,enter:function(){},exit:function(){}};var opts=$.extend(defaults,options);if($("#tiptip_holder").length<=0){var tiptip_holder=$('<div id="tiptip_holder" style="max-width:'+opts.maxWidth+';"></div>');var tiptip_content=$('<div id="tiptip_content"></div>');var tiptip_arrow=$('<div id="tiptip_arrow"></div>');$("body").append(tiptip_holder.html(tiptip_content).prepend(tiptip_arrow.html('<div id="tiptip_arrow_inner"></div>')))}else{var tiptip_holder=$("#tiptip_holder");var tiptip_content=$("#tiptip_content");var tiptip_arrow=$("#tiptip_arrow")}return this.each(function(){var org_elem=$(this);if(opts.content){var org_title=opts.content}else{var org_title=org_elem.attr(opts.attribute)}if(org_title!=""){if(!opts.content){org_elem.removeAttr(opts.attribute)}var timeout=false;if(opts.activation=="hover"){org_elem.hover(function(){active_tiptip()},function(){if(!opts.keepAlive){deactive_tiptip()}});if(opts.keepAlive){tiptip_holder.hover(function(){},function(){deactive_tiptip()})}}else if(opts.activation=="focus"){org_elem.focus(function(){active_tiptip()}).blur(function(){deactive_tiptip()})}else if(opts.activation=="click"){org_elem.click(function(){active_tiptip();return false}).hover(function(){},function(){if(!opts.keepAlive){deactive_tiptip()}});if(opts.keepAlive){tiptip_holder.hover(function(){},function(){deactive_tiptip()})}}function active_tiptip(){opts.enter.call(this);tiptip_content.html(org_title);tiptip_holder.hide().removeAttr("class").css("margin","0");tiptip_arrow.removeAttr("style");var top=parseInt(org_elem.offset()['top']);var left=parseInt(org_elem.offset()['left']);var org_width=parseInt(org_elem.outerWidth());var org_height=parseInt(org_elem.outerHeight());var tip_w=tiptip_holder.outerWidth();var tip_h=tiptip_holder.outerHeight();var w_compare=Math.round((org_width-tip_w)/2);var h_compare=Math.round((org_height-tip_h)/2);var marg_left=Math.round(left+w_compare);var marg_top=Math.round(top+org_height+opts.edgeOffset);var t_class="";var arrow_top="";var arrow_left=Math.round(tip_w-12)/2;if(opts.defaultPosition=="bottom"){t_class="_bottom"}else if(opts.defaultPosition=="top"){t_class="_top"}else if(opts.defaultPosition=="left"){t_class="_left"}else if(opts.defaultPosition=="right"){t_class="_right"}var right_compare=(w_compare+left)<parseInt($(window).scrollLeft());var left_compare=(tip_w+left)>parseInt($(window).width());if((right_compare&&w_compare<0)||(t_class=="_right"&&!left_compare)||(t_class=="_left"&&left<(tip_w+opts.edgeOffset+5))){t_class="_right";arrow_top=Math.round(tip_h-13)/2;arrow_left=-12;marg_left=Math.round(left+org_width+opts.edgeOffset);marg_top=Math.round(top+h_compare)}else if((left_compare&&w_compare<0)||(t_class=="_left"&&!right_compare)){t_class="_left";arrow_top=Math.round(tip_h-13)/2;arrow_left=Math.round(tip_w);marg_left=Math.round(left-(tip_w+opts.edgeOffset+5));marg_top=Math.round(top+h_compare)}var top_compare=(top+org_height+opts.edgeOffset+tip_h+8)>parseInt($(window).height()+$(window).scrollTop());var bottom_compare=((top+org_height)-(opts.edgeOffset+tip_h+8))<0;if(top_compare||(t_class=="_bottom"&&top_compare)||(t_class=="_top"&&!bottom_compare)){if(t_class=="_top"||t_class=="_bottom"){t_class="_top"}else{t_class=t_class+"_top"}arrow_top=tip_h;marg_top=Math.round(top-(tip_h+5+opts.edgeOffset))}else if(bottom_compare|(t_class=="_top"&&bottom_compare)||(t_class=="_bottom"&&!top_compare)){if(t_class=="_top"||t_class=="_bottom"){t_class="_bottom"}else{t_class=t_class+"_bottom"}arrow_top=-12;marg_top=Math.round(top+org_height+opts.edgeOffset)}if(t_class=="_right_top"||t_class=="_left_top"){marg_top=marg_top+5}else if(t_class=="_right_bottom"||t_class=="_left_bottom"){marg_top=marg_top-5}if(t_class=="_left_top"||t_class=="_left_bottom"){marg_left=marg_left+5}tiptip_arrow.css({"margin-left":arrow_left+"px","margin-top":arrow_top+"px"});tiptip_holder.css({"margin-left":marg_left+"px","margin-top":marg_top+"px"}).attr("class","tip"+t_class);if(timeout){clearTimeout(timeout)}timeout=setTimeout(function(){tiptip_holder.stop(true,true).fadeIn(opts.fadeIn)},opts.delay)}function deactive_tiptip(){opts.exit.call(this);if(timeout){clearTimeout(timeout)}tiptip_holder.fadeOut(opts.fadeOut)}}})}})(jQuery);
static/ninjafirewall.css CHANGED
@@ -296,3 +296,118 @@ td.country-list {
296
  margin: .5em 0;
297
  padding: 2px;
298
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
296
  margin: .5em 0;
297
  padding: 2px;
298
  }
299
+ /* TipTip CSS - Version 1.2 */
300
+ .ninjafirewall-tip{
301
+ color:#3c434a;
302
+ display:inline-block;
303
+ font-size:1.2em;
304
+ font-style:normal;
305
+ position:relative;
306
+ vertical-align:middle;
307
+ height:18px;
308
+ line-height:18px;
309
+ width:18px;
310
+ }
311
+ .ninjafirewall-tip::after{
312
+ font-family:Dashicons;
313
+ font-weight:400;
314
+ font-variant:normal;
315
+ text-transform:none;
316
+ line-height:1;
317
+ -webkit-font-smoothing:antialiased;
318
+ margin:0;
319
+ text-indent:0;
320
+ position:absolute;
321
+ top:0;
322
+ left:0;
323
+ width:100%;
324
+ height:100%;
325
+ text-align:center;
326
+ content: "\f223";
327
+ cursor:help;
328
+ }
329
+ #tiptip_holder {
330
+ display: none;
331
+ position: absolute;
332
+ top: 0;
333
+ left: 0;
334
+ z-index: 99999;
335
+ }
336
+ #tiptip_holder.tip_top {
337
+ padding-bottom: 5px;
338
+ }
339
+ #tiptip_holder.tip_bottom {
340
+ padding-top: 5px;
341
+ }
342
+ #tiptip_holder.tip_right {
343
+ padding-left: 5px;
344
+ }
345
+ #tiptip_holder.tip_left {
346
+ padding-right: 5px;
347
+ }
348
+ #tiptip_content {
349
+ font-size: 14px;
350
+ color: #000;
351
+ padding: 4px 8px;
352
+ background-color:#F5F5B5;
353
+ border-radius: 4px;
354
+ -webkit-border-radius: 4px;
355
+ -moz-border-radius: 4px;
356
+ border:1px #666 solid;
357
+ }
358
+ #tiptip_arrow, #tiptip_arrow_inner {
359
+ position: absolute;
360
+ border-color: transparent;
361
+ border-style: solid;
362
+ border-width: 6px;
363
+ height: 0;
364
+ width: 0;
365
+ }
366
+ #tiptip_holder.tip_top #tiptip_arrow {
367
+ border-top-color: #fff;
368
+ border-top-color: rgba(255,255,255);
369
+ }
370
+ #tiptip_holder.tip_bottom #tiptip_arrow {
371
+ border-bottom-color: #fff;
372
+ border-bottom-color: rgba(255,255,255);
373
+ }
374
+ #tiptip_holder.tip_right #tiptip_arrow {
375
+ border-right-color: #fff;
376
+ border-right-color: rgba(255,255,255);
377
+ }
378
+ #tiptip_holder.tip_left #tiptip_arrow {
379
+ border-left-color: #fff;
380
+ border-left-color: rgba(255,255,255);
381
+ }
382
+ #tiptip_holder.tip_top #tiptip_arrow_inner {
383
+ margin-top: -7px;
384
+ margin-left: -6px;
385
+ border-top-color: rgb(25,25,25);
386
+ }
387
+ #tiptip_holder.tip_bottom #tiptip_arrow_inner {
388
+ margin-top: -5px;
389
+ margin-left: -6px;
390
+ border-bottom-color: rgb(25,25,25);
391
+ }
392
+ #tiptip_holder.tip_right #tiptip_arrow_inner {
393
+ margin-top: -6px;
394
+ margin-left: -5px;
395
+ border-right-color: rgb(25,25,25);
396
+ }
397
+ #tiptip_holder.tip_left #tiptip_arrow_inner {
398
+ margin-top: -6px;
399
+ margin-left: -7px;
400
+ border-left-color: rgb(25,25,25);
401
+ }
402
+ @media screen and (-webkit-min-device-pixel-ratio:0) {
403
+ #tiptip_content {
404
+ padding: 4px 8px 5px 8px;
405
+ background-color:#F5F5B5;
406
+ }
407
+ #tiptip_holder.tip_bottom #tiptip_arrow_inner {
408
+ border-bottom-color: rgba(45,45,45);
409
+ }
410
+ #tiptip_holder.tip_top #tiptip_arrow_inner {
411
+ border-top-color: rgba(20,20,20);
412
+ }
413
+ }
static/ninjafirewall.js CHANGED
@@ -19,6 +19,18 @@
19
  // =====================================================================
20
  // Generic.
21
 
 
 
 
 
 
 
 
 
 
 
 
 
22
  function nfwjs_switch_tabs( what, list ) {
23
  // Active tab:
24
  jQuery('#'+ what +'-options').show();
19
  // =====================================================================
20
  // Generic.
21
 
22
+ // TipTip tooltip
23
+ jQuery( document ).ready(function( $ ) {
24
+ $( '.ninjafirewall-tip' ).tipTip( {
25
+ 'attribute': 'data-tip',
26
+ 'fadeIn': 50,
27
+ 'fadeOut': 50,
28
+ 'delay': 100,
29
+ 'maxWidth' : '300px'
30
+ });
31
+ });
32
+
33
+
34
  function nfwjs_switch_tabs( what, list ) {
35
  // Active tab:
36
  jQuery('#'+ what +'-options').show();
uninstall.php CHANGED
@@ -39,6 +39,8 @@ nfw_uninstall();
39
 
40
  function nfw_uninstall() {
41
 
 
 
42
  // Unset the goodguy flag :
43
  if ( isset( $_SESSION['nfw_goodguy'] ) ) {
44
  unset( $_SESSION['nfw_goodguy'] );
@@ -117,19 +119,9 @@ function nfw_uninstall() {
117
  @file_put_contents( $ini, $data, LOCK_EX );
118
  }
119
 
120
- // Remove any scheduled cron job :
121
- if ( wp_next_scheduled('nfscanevent') ) {
122
- wp_clear_scheduled_hook('nfscanevent');
123
- }
124
- if ( wp_next_scheduled('nfsecupdates') ) {
125
- wp_clear_scheduled_hook('nfsecupdates');
126
- }
127
- if ( wp_next_scheduled('nfdailyreport') ) {
128
- wp_clear_scheduled_hook('nfdailyreport');
129
- }
130
- if ( wp_next_scheduled( 'nfwgccron' ) ) {
131
- wp_clear_scheduled_hook( 'nfwgccron' );
132
- }
133
 
134
  // Delete DB rows :
135
  delete_option('nfw_options');
39
 
40
  function nfw_uninstall() {
41
 
42
+ if (! defined( 'NFW_ENGINE_VERSION' ) ) { define( 'NFW_ENGINE_VERSION', true ); }
43
+
44
  // Unset the goodguy flag :
45
  if ( isset( $_SESSION['nfw_goodguy'] ) ) {
46
  unset( $_SESSION['nfw_goodguy'] );
119
  @file_put_contents( $ini, $data, LOCK_EX );
120
  }
121
 
122
+ // Remove any scheduled cron job
123
+ include_once 'lib/scheduled_tasks.php';
124
+ nfw_delete_scheduled_tasks();
 
 
 
 
 
 
 
 
 
 
125
 
126
  // Delete DB rows :
127
  delete_option('nfw_options');