From d4872154c4949217aa51d931232bb6d6276abd38 Mon Sep 17 00:00:00 2001 From: amin Date: Mon, 18 Aug 2014 10:53:52 +1000 Subject: [PATCH] github repository for all in one wordpress security --- .gitignore | 1 + .../admin/general/wp-security-list-table.php | 907 +++ all-in-one-wp-security/admin/index.html | 0 all-in-one-wp-security/admin/index.php | 5 + .../admin/wp-security-admin-init.php | 334 + .../admin/wp-security-admin-menu.php | 93 + .../admin/wp-security-blacklist-menu.php | 242 + .../admin/wp-security-brute-force-menu.php | 768 ++ .../admin/wp-security-dashboard-menu.php | 677 ++ .../admin/wp-security-database-menu.php | 555 ++ .../admin/wp-security-filescan-menu.php | 538 ++ .../admin/wp-security-filesystem-menu.php | 487 ++ .../admin/wp-security-firewall-menu.php | 908 +++ .../admin/wp-security-list-404.php | 205 + .../admin/wp-security-list-acct-activity.php | 159 + .../wp-security-list-comment-spammer-ip.php | 205 + .../admin/wp-security-list-locked-ip.php | 196 + .../wp-security-list-logged-in-users.php | 85 + .../admin/wp-security-list-login-fails.php | 158 + .../wp-security-list-registered-users.php | 241 + .../admin/wp-security-maintenance-menu.php | 137 + .../admin/wp-security-misc-options-menu.php | 172 + .../admin/wp-security-settings-menu.php | 695 ++ .../admin/wp-security-spam-menu.php | 357 + .../admin/wp-security-user-accounts-menu.php | 340 + .../admin/wp-security-user-login-menu.php | 573 ++ .../wp-security-user-registration-menu.php | 240 + .../admin/wp-security-whois-menu.php | 131 + all-in-one-wp-security/backups/index.html | 0 .../wp-security-feature-item-manager.php | 771 ++ .../grade-system/wp-security-feature-item.php | 40 + all-in-one-wp-security/classes/index.html | 0 all-in-one-wp-security/classes/index.php | 5 + .../classes/wp-security-backup.php | 261 + .../classes/wp-security-bot-protection.php | 38 + .../classes/wp-security-captcha.php | 120 + .../classes/wp-security-config.php | 56 + .../wp-security-configure-settings.php | 290 + .../classes/wp-security-cronjob-handler.php | 28 + .../wp-security-deactivation-tasks.php | 71 + .../classes/wp-security-debug-logger.php | 100 + .../classes/wp-security-file-scan.php | 665 ++ .../wp-security-general-init-tasks.php | 374 + .../classes/wp-security-installer.php | 154 + ...wp-security-process-renamed-login-page.php | 140 + .../classes/wp-security-user-login.php | 537 ++ .../classes/wp-security-user-registration.php | 68 + .../classes/wp-security-utility-file.php | 401 ++ .../classes/wp-security-utility-htaccess.php | 982 +++ .../wp-security-utility-ip-address.php | 164 + .../classes/wp-security-utility.php | 414 ++ .../classes/wp-security-wp-footer-content.php | 68 + .../classes/wp-security-wp-loaded-tasks.php | 42 + all-in-one-wp-security/css/index.html | 0 all-in-one-wp-security/css/wp-aiowps.css | 3 + .../css/wp-security-admin-styles.css | 354 + .../css/wp-security-site-lockout-page.css | 27 + all-in-one-wp-security/images/arrow.png | Bin 0 -> 2512 bytes all-in-one-wp-security/images/error.png | Bin 0 -> 786 bytes .../images/feature-difficulty-badge-bg.png | Bin 0 -> 3916 bytes .../images/feature-points-badge-bg.png | Bin 0 -> 4028 bytes all-in-one-wp-security/images/form_bg.png | Bin 0 -> 31104 bytes all-in-one-wp-security/images/index.html | 0 all-in-one-wp-security/images/info-icon.png | Bin 0 -> 797 bytes all-in-one-wp-security/images/loading.gif | Bin 0 -> 1849 bytes all-in-one-wp-security/images/plugin-icon.png | Bin 0 -> 1704 bytes .../images/plugin-icon2.png | Bin 0 -> 1760 bytes .../images/shield-info-icon-36.png | Bin 0 -> 4873 bytes .../images/shield-security-icon-36.png | Bin 0 -> 5196 bytes all-in-one-wp-security/images/success.png | Bin 0 -> 3315 bytes all-in-one-wp-security/index.html | 0 all-in-one-wp-security/js/index.html | 0 all-in-one-wp-security/js/masonry.pkgd.min.js | 9 + .../js/password-strength-tool.js | 154 + .../js/wp-security-admin-script.js | 40 + .../languages/aiowpsecurity-de_DE.mo | Bin 0 -> 995 bytes .../languages/aiowpsecurity-de_DE.po | 4760 +++++++++++++ .../languages/aiowpsecurity-es_ES.mo | Bin 0 -> 84002 bytes .../languages/aiowpsecurity-es_ES.po | 4017 +++++++++++ .../languages/aiowpsecurity-fa_IR.mo | Bin 0 -> 140066 bytes .../languages/aiowpsecurity-fa_IR.po | 4056 +++++++++++ .../languages/aiowpsecurity-hu_HU.mo | Bin 0 -> 3139 bytes .../languages/aiowpsecurity-hu_HU.po | 3544 ++++++++++ .../languages/aiowpsecurity-it_IT.mo | Bin 0 -> 118493 bytes .../languages/aiowpsecurity-it_IT.po | 6216 +++++++++++++++++ .../languages/aiowpsecurity-pt_BR.mo | Bin 0 -> 9011 bytes .../languages/aiowpsecurity-pt_BR.po | 3559 ++++++++++ .../languages/aiowpsecurity-ru_RU.mo | Bin 0 -> 108014 bytes .../languages/aiowpsecurity-ru_RU.po | 2879 ++++++++ .../languages/aiowpsecurity-zh_CN.mo | Bin 0 -> 1373 bytes .../languages/aiowpsecurity-zh_CN.po | 3424 +++++++++ .../languages/aiowpsecurity.pot | 3531 ++++++++++ all-in-one-wp-security/lib/index.html | 0 all-in-one-wp-security/lib/whois/LICENSE | 340 + .../lib/whois/handler.template.php | 40 + all-in-one-wp-security/lib/whois/npdata.ser | 1 + all-in-one-wp-security/lib/whois/whois.ae.php | 58 + .../lib/whois/whois.aero.php | 45 + all-in-one-wp-security/lib/whois/whois.ag.php | 45 + .../lib/whois/whois.asia.php | 44 + all-in-one-wp-security/lib/whois/whois.at.php | 102 + all-in-one-wp-security/lib/whois/whois.au.php | 63 + all-in-one-wp-security/lib/whois/whois.be.php | 76 + .../lib/whois/whois.biz.php | 45 + all-in-one-wp-security/lib/whois/whois.br.php | 84 + all-in-one-wp-security/lib/whois/whois.ca.php | 76 + .../lib/whois/whois.cat.php | 47 + all-in-one-wp-security/lib/whois/whois.ch.php | 82 + all-in-one-wp-security/lib/whois/whois.cl.php | 56 + .../lib/whois/whois.client.php | 595 ++ all-in-one-wp-security/lib/whois/whois.cn.php | 91 + all-in-one-wp-security/lib/whois/whois.co.php | 43 + .../lib/whois/whois.co.za.php | 73 + .../lib/whois/whois.coop.php | 106 + all-in-one-wp-security/lib/whois/whois.cz.php | 73 + all-in-one-wp-security/lib/whois/whois.de.php | 78 + .../lib/whois/whois.edu.php | 62 + all-in-one-wp-security/lib/whois/whois.eu.php | 85 + all-in-one-wp-security/lib/whois/whois.fi.php | 57 + all-in-one-wp-security/lib/whois/whois.fj.php | 67 + all-in-one-wp-security/lib/whois/whois.fm.php | 80 + all-in-one-wp-security/lib/whois/whois.fr.php | 78 + .../lib/whois/whois.gtld.afternic.php | 51 + .../lib/whois/whois.gtld.alldomains.php | 49 + .../lib/whois/whois.gtld.ascio.php | 51 + .../lib/whois/whois.gtld.assorted.php | 51 + .../lib/whois/whois.gtld.corporatedomains.php | 53 + .../lib/whois/whois.gtld.directnic.php | 53 + .../lib/whois/whois.gtld.domaindiscover.php | 51 + .../lib/whois/whois.gtld.domainpeople.php | 59 + .../lib/whois/whois.gtld.dotster.php | 53 + .../lib/whois/whois.gtld.dreamhost.php | 54 + .../lib/whois/whois.gtld.enom.php | 62 + .../lib/whois/whois.gtld.fabulous.php | 54 + .../lib/whois/whois.gtld.fastdomain.php | 78 + .../lib/whois/whois.gtld.gandi.php | 56 + .../lib/whois/whois.gtld.genericb.php | 40 + .../lib/whois/whois.gtld.godaddy.php | 56 + .../lib/whois/whois.gtld.iana.php | 51 + .../lib/whois/whois.gtld.interdomain.php | 80 + .../lib/whois/whois.gtld.itsyourdomain.php | 52 + .../lib/whois/whois.gtld.joker.php | 78 + .../lib/whois/whois.gtld.markmonitor.php | 55 + .../lib/whois/whois.gtld.melbourneit.php | 59 + .../lib/whois/whois.gtld.moniker.php | 52 + .../lib/whois/whois.gtld.namejuice.php | 53 + .../lib/whois/whois.gtld.nameking.php | 70 + .../lib/whois/whois.gtld.names4ever.php | 54 + .../lib/whois/whois.gtld.namevault.php | 52 + .../lib/whois/whois.gtld.networksolutions.php | 50 + .../lib/whois/whois.gtld.nicco.php | 62 + .../lib/whois/whois.gtld.nicline.php | 51 + .../lib/whois/whois.gtld.onlinenic.php | 83 + .../lib/whois/whois.gtld.opensrs.php | 58 + .../lib/whois/whois.gtld.ovh.php | 51 + .../lib/whois/whois.gtld.php | 81 + .../lib/whois/whois.gtld.psiusa.php | 90 + .../whois/whois.gtld.publicdomainregistry.php | 57 + .../lib/whois/whois.gtld.register.php | 62 + .../lib/whois/whois.gtld.rrpproxy.php | 92 + .../lib/whois/whois.gtld.schlund.php | 86 + .../lib/whois/whois.gtld.srsplus.php | 51 + .../lib/whois/whois.gtld.tmagnic.php | 52 + .../lib/whois/whois.gtld.tvcorp.php | 50 + .../lib/whois/whois.gtld.wildwestdomains.php | 52 + all-in-one-wp-security/lib/whois/whois.hu.php | 95 + .../lib/whois/whois.icon.png | Bin 0 -> 571 bytes .../lib/whois/whois.idna.php | 969 +++ all-in-one-wp-security/lib/whois/whois.ie.php | 64 + all-in-one-wp-security/lib/whois/whois.in.php | 45 + .../lib/whois/whois.info.php | 45 + .../lib/whois/whois.int.php | 44 + .../lib/whois/whois.ip.afrinic.php | 77 + .../lib/whois/whois.ip.apnic.php | 122 + .../lib/whois/whois.ip.arin.php | 78 + .../lib/whois/whois.ip.krnic.php | 112 + .../lib/whois/whois.ip.lacnic.php | 79 + .../lib/whois/whois.ip.lib.php | 120 + all-in-one-wp-security/lib/whois/whois.ip.php | 285 + .../lib/whois/whois.ip.ripe.php | 85 + all-in-one-wp-security/lib/whois/whois.ir.php | 60 + all-in-one-wp-security/lib/whois/whois.is.php | 69 + all-in-one-wp-security/lib/whois/whois.it.php | 78 + all-in-one-wp-security/lib/whois/whois.jp.php | 111 + all-in-one-wp-security/lib/whois/whois.lt.php | 64 + all-in-one-wp-security/lib/whois/whois.lu.php | 78 + all-in-one-wp-security/lib/whois/whois.ly.php | 72 + .../lib/whois/whois.main.php | 327 + all-in-one-wp-security/lib/whois/whois.me.php | 45 + .../lib/whois/whois.mobi.php | 47 + .../lib/whois/whois.museum.php | 45 + all-in-one-wp-security/lib/whois/whois.mx.php | 70 + .../lib/whois/whois.name.php | 45 + all-in-one-wp-security/lib/whois/whois.nl.php | 88 + all-in-one-wp-security/lib/whois/whois.nu.php | 90 + all-in-one-wp-security/lib/whois/whois.nz.php | 102 + .../lib/whois/whois.org.php | 47 + .../lib/whois/whois.org.za.php | 64 + .../lib/whois/whois.parser.php | 873 +++ all-in-one-wp-security/lib/whois/whois.pl.php | 54 + .../lib/whois/whois.pro.php | 43 + all-in-one-wp-security/lib/whois/whois.pt.php | 81 + all-in-one-wp-security/lib/whois/whois.ro.php | 99 + all-in-one-wp-security/lib/whois/whois.ru.php | 63 + .../lib/whois/whois.rwhois.php | 58 + all-in-one-wp-security/lib/whois/whois.sc.php | 45 + all-in-one-wp-security/lib/whois/whois.se.php | 58 + .../lib/whois/whois.servers.php | 252 + all-in-one-wp-security/lib/whois/whois.si.php | 55 + all-in-one-wp-security/lib/whois/whois.su.php | 63 + .../lib/whois/whois.tel.php | 45 + .../lib/whois/whois.travel.php | 43 + all-in-one-wp-security/lib/whois/whois.uk.php | 72 + all-in-one-wp-security/lib/whois/whois.us.php | 44 + .../lib/whois/whois.utils.php | 152 + all-in-one-wp-security/lib/whois/whois.ve.php | 75 + all-in-one-wp-security/lib/whois/whois.ws.php | 76 + .../lib/whois/whois.zanet.php | 90 + all-in-one-wp-security/license.txt | 674 ++ all-in-one-wp-security/logs/index.html | 0 .../logs/wp-security-log-cron-job.txt | 0 .../logs/wp-security-log.txt | 0 .../other-includes/index.html | 0 .../wp-security-rename-login-feature.php | 942 +++ .../wp-security-unlock-request.php | 109 + .../wp-security-visitor-lockout-page.php | 31 + all-in-one-wp-security/readme.txt | 414 ++ all-in-one-wp-security/wp-security-core.php | 272 + all-in-one-wp-security/wp-security.php | 41 + nbproject/project.properties | 7 + nbproject/project.xml | 9 + 231 files changed, 65580 insertions(+) create mode 100644 .gitignore create mode 100644 all-in-one-wp-security/admin/general/wp-security-list-table.php create mode 100644 all-in-one-wp-security/admin/index.html create mode 100644 all-in-one-wp-security/admin/index.php create mode 100644 all-in-one-wp-security/admin/wp-security-admin-init.php create mode 100644 all-in-one-wp-security/admin/wp-security-admin-menu.php create mode 100644 all-in-one-wp-security/admin/wp-security-blacklist-menu.php create mode 100644 all-in-one-wp-security/admin/wp-security-brute-force-menu.php create mode 100644 all-in-one-wp-security/admin/wp-security-dashboard-menu.php create mode 100644 all-in-one-wp-security/admin/wp-security-database-menu.php create mode 100644 all-in-one-wp-security/admin/wp-security-filescan-menu.php create mode 100644 all-in-one-wp-security/admin/wp-security-filesystem-menu.php create mode 100644 all-in-one-wp-security/admin/wp-security-firewall-menu.php create mode 100644 all-in-one-wp-security/admin/wp-security-list-404.php create mode 100644 all-in-one-wp-security/admin/wp-security-list-acct-activity.php create mode 100644 all-in-one-wp-security/admin/wp-security-list-comment-spammer-ip.php create mode 100644 all-in-one-wp-security/admin/wp-security-list-locked-ip.php create mode 100644 all-in-one-wp-security/admin/wp-security-list-logged-in-users.php create mode 100644 all-in-one-wp-security/admin/wp-security-list-login-fails.php create mode 100644 all-in-one-wp-security/admin/wp-security-list-registered-users.php create mode 100644 all-in-one-wp-security/admin/wp-security-maintenance-menu.php create mode 100644 all-in-one-wp-security/admin/wp-security-misc-options-menu.php create mode 100644 all-in-one-wp-security/admin/wp-security-settings-menu.php create mode 100644 all-in-one-wp-security/admin/wp-security-spam-menu.php create mode 100644 all-in-one-wp-security/admin/wp-security-user-accounts-menu.php create mode 100644 all-in-one-wp-security/admin/wp-security-user-login-menu.php create mode 100644 all-in-one-wp-security/admin/wp-security-user-registration-menu.php create mode 100644 all-in-one-wp-security/admin/wp-security-whois-menu.php create mode 100644 all-in-one-wp-security/backups/index.html create mode 100644 all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php create mode 100644 all-in-one-wp-security/classes/grade-system/wp-security-feature-item.php create mode 100644 all-in-one-wp-security/classes/index.html create mode 100644 all-in-one-wp-security/classes/index.php create mode 100644 all-in-one-wp-security/classes/wp-security-backup.php create mode 100644 all-in-one-wp-security/classes/wp-security-bot-protection.php create mode 100644 all-in-one-wp-security/classes/wp-security-captcha.php create mode 100644 all-in-one-wp-security/classes/wp-security-config.php create mode 100644 all-in-one-wp-security/classes/wp-security-configure-settings.php create mode 100644 all-in-one-wp-security/classes/wp-security-cronjob-handler.php create mode 100644 all-in-one-wp-security/classes/wp-security-deactivation-tasks.php create mode 100644 all-in-one-wp-security/classes/wp-security-debug-logger.php create mode 100644 all-in-one-wp-security/classes/wp-security-file-scan.php create mode 100644 all-in-one-wp-security/classes/wp-security-general-init-tasks.php create mode 100644 all-in-one-wp-security/classes/wp-security-installer.php create mode 100644 all-in-one-wp-security/classes/wp-security-process-renamed-login-page.php create mode 100644 all-in-one-wp-security/classes/wp-security-user-login.php create mode 100644 all-in-one-wp-security/classes/wp-security-user-registration.php create mode 100644 all-in-one-wp-security/classes/wp-security-utility-file.php create mode 100644 all-in-one-wp-security/classes/wp-security-utility-htaccess.php create mode 100644 all-in-one-wp-security/classes/wp-security-utility-ip-address.php create mode 100644 all-in-one-wp-security/classes/wp-security-utility.php create mode 100644 all-in-one-wp-security/classes/wp-security-wp-footer-content.php create mode 100644 all-in-one-wp-security/classes/wp-security-wp-loaded-tasks.php create mode 100644 all-in-one-wp-security/css/index.html create mode 100644 all-in-one-wp-security/css/wp-aiowps.css create mode 100644 all-in-one-wp-security/css/wp-security-admin-styles.css create mode 100644 all-in-one-wp-security/css/wp-security-site-lockout-page.css create mode 100644 all-in-one-wp-security/images/arrow.png create mode 100644 all-in-one-wp-security/images/error.png create mode 100644 all-in-one-wp-security/images/feature-difficulty-badge-bg.png create mode 100644 all-in-one-wp-security/images/feature-points-badge-bg.png create mode 100644 all-in-one-wp-security/images/form_bg.png create mode 100644 all-in-one-wp-security/images/index.html create mode 100644 all-in-one-wp-security/images/info-icon.png create mode 100644 all-in-one-wp-security/images/loading.gif create mode 100644 all-in-one-wp-security/images/plugin-icon.png create mode 100644 all-in-one-wp-security/images/plugin-icon2.png create mode 100644 all-in-one-wp-security/images/shield-info-icon-36.png create mode 100644 all-in-one-wp-security/images/shield-security-icon-36.png create mode 100644 all-in-one-wp-security/images/success.png create mode 100644 all-in-one-wp-security/index.html create mode 100644 all-in-one-wp-security/js/index.html create mode 100644 all-in-one-wp-security/js/masonry.pkgd.min.js create mode 100644 all-in-one-wp-security/js/password-strength-tool.js create mode 100644 all-in-one-wp-security/js/wp-security-admin-script.js create mode 100644 all-in-one-wp-security/languages/aiowpsecurity-de_DE.mo create mode 100644 all-in-one-wp-security/languages/aiowpsecurity-de_DE.po create mode 100644 all-in-one-wp-security/languages/aiowpsecurity-es_ES.mo create mode 100644 all-in-one-wp-security/languages/aiowpsecurity-es_ES.po create mode 100644 all-in-one-wp-security/languages/aiowpsecurity-fa_IR.mo create mode 100644 all-in-one-wp-security/languages/aiowpsecurity-fa_IR.po create mode 100644 all-in-one-wp-security/languages/aiowpsecurity-hu_HU.mo create mode 100644 all-in-one-wp-security/languages/aiowpsecurity-hu_HU.po create mode 100644 all-in-one-wp-security/languages/aiowpsecurity-it_IT.mo create mode 100644 all-in-one-wp-security/languages/aiowpsecurity-it_IT.po create mode 100644 all-in-one-wp-security/languages/aiowpsecurity-pt_BR.mo create mode 100644 all-in-one-wp-security/languages/aiowpsecurity-pt_BR.po create mode 100644 all-in-one-wp-security/languages/aiowpsecurity-ru_RU.mo create mode 100644 all-in-one-wp-security/languages/aiowpsecurity-ru_RU.po create mode 100644 all-in-one-wp-security/languages/aiowpsecurity-zh_CN.mo create mode 100644 all-in-one-wp-security/languages/aiowpsecurity-zh_CN.po create mode 100644 all-in-one-wp-security/languages/aiowpsecurity.pot create mode 100644 all-in-one-wp-security/lib/index.html create mode 100644 all-in-one-wp-security/lib/whois/LICENSE create mode 100644 all-in-one-wp-security/lib/whois/handler.template.php create mode 100644 all-in-one-wp-security/lib/whois/npdata.ser create mode 100644 all-in-one-wp-security/lib/whois/whois.ae.php create mode 100644 all-in-one-wp-security/lib/whois/whois.aero.php create mode 100644 all-in-one-wp-security/lib/whois/whois.ag.php create mode 100644 all-in-one-wp-security/lib/whois/whois.asia.php create mode 100644 all-in-one-wp-security/lib/whois/whois.at.php create mode 100644 all-in-one-wp-security/lib/whois/whois.au.php create mode 100644 all-in-one-wp-security/lib/whois/whois.be.php create mode 100644 all-in-one-wp-security/lib/whois/whois.biz.php create mode 100644 all-in-one-wp-security/lib/whois/whois.br.php create mode 100644 all-in-one-wp-security/lib/whois/whois.ca.php create mode 100644 all-in-one-wp-security/lib/whois/whois.cat.php create mode 100644 all-in-one-wp-security/lib/whois/whois.ch.php create mode 100644 all-in-one-wp-security/lib/whois/whois.cl.php create mode 100644 all-in-one-wp-security/lib/whois/whois.client.php create mode 100644 all-in-one-wp-security/lib/whois/whois.cn.php create mode 100644 all-in-one-wp-security/lib/whois/whois.co.php create mode 100644 all-in-one-wp-security/lib/whois/whois.co.za.php create mode 100644 all-in-one-wp-security/lib/whois/whois.coop.php create mode 100644 all-in-one-wp-security/lib/whois/whois.cz.php create mode 100644 all-in-one-wp-security/lib/whois/whois.de.php create mode 100644 all-in-one-wp-security/lib/whois/whois.edu.php create mode 100644 all-in-one-wp-security/lib/whois/whois.eu.php create mode 100644 all-in-one-wp-security/lib/whois/whois.fi.php create mode 100644 all-in-one-wp-security/lib/whois/whois.fj.php create mode 100644 all-in-one-wp-security/lib/whois/whois.fm.php create mode 100644 all-in-one-wp-security/lib/whois/whois.fr.php create mode 100644 all-in-one-wp-security/lib/whois/whois.gtld.afternic.php create mode 100644 all-in-one-wp-security/lib/whois/whois.gtld.alldomains.php create mode 100644 all-in-one-wp-security/lib/whois/whois.gtld.ascio.php create mode 100644 all-in-one-wp-security/lib/whois/whois.gtld.assorted.php create mode 100644 all-in-one-wp-security/lib/whois/whois.gtld.corporatedomains.php create mode 100644 all-in-one-wp-security/lib/whois/whois.gtld.directnic.php create mode 100644 all-in-one-wp-security/lib/whois/whois.gtld.domaindiscover.php create mode 100644 all-in-one-wp-security/lib/whois/whois.gtld.domainpeople.php create mode 100644 all-in-one-wp-security/lib/whois/whois.gtld.dotster.php create mode 100644 all-in-one-wp-security/lib/whois/whois.gtld.dreamhost.php create mode 100644 all-in-one-wp-security/lib/whois/whois.gtld.enom.php create mode 100644 all-in-one-wp-security/lib/whois/whois.gtld.fabulous.php create mode 100644 all-in-one-wp-security/lib/whois/whois.gtld.fastdomain.php create mode 100644 all-in-one-wp-security/lib/whois/whois.gtld.gandi.php create mode 100644 all-in-one-wp-security/lib/whois/whois.gtld.genericb.php create mode 100644 all-in-one-wp-security/lib/whois/whois.gtld.godaddy.php create mode 100644 all-in-one-wp-security/lib/whois/whois.gtld.iana.php create mode 100644 all-in-one-wp-security/lib/whois/whois.gtld.interdomain.php create mode 100644 all-in-one-wp-security/lib/whois/whois.gtld.itsyourdomain.php create mode 100644 all-in-one-wp-security/lib/whois/whois.gtld.joker.php create mode 100644 all-in-one-wp-security/lib/whois/whois.gtld.markmonitor.php create mode 100644 all-in-one-wp-security/lib/whois/whois.gtld.melbourneit.php create mode 100644 all-in-one-wp-security/lib/whois/whois.gtld.moniker.php create mode 100644 all-in-one-wp-security/lib/whois/whois.gtld.namejuice.php create mode 100644 all-in-one-wp-security/lib/whois/whois.gtld.nameking.php create mode 100644 all-in-one-wp-security/lib/whois/whois.gtld.names4ever.php create mode 100644 all-in-one-wp-security/lib/whois/whois.gtld.namevault.php create mode 100644 all-in-one-wp-security/lib/whois/whois.gtld.networksolutions.php create mode 100644 all-in-one-wp-security/lib/whois/whois.gtld.nicco.php create mode 100644 all-in-one-wp-security/lib/whois/whois.gtld.nicline.php create mode 100644 all-in-one-wp-security/lib/whois/whois.gtld.onlinenic.php create mode 100644 all-in-one-wp-security/lib/whois/whois.gtld.opensrs.php create mode 100644 all-in-one-wp-security/lib/whois/whois.gtld.ovh.php create mode 100644 all-in-one-wp-security/lib/whois/whois.gtld.php create mode 100644 all-in-one-wp-security/lib/whois/whois.gtld.psiusa.php create mode 100644 all-in-one-wp-security/lib/whois/whois.gtld.publicdomainregistry.php create mode 100644 all-in-one-wp-security/lib/whois/whois.gtld.register.php create mode 100644 all-in-one-wp-security/lib/whois/whois.gtld.rrpproxy.php create mode 100644 all-in-one-wp-security/lib/whois/whois.gtld.schlund.php create mode 100644 all-in-one-wp-security/lib/whois/whois.gtld.srsplus.php create mode 100644 all-in-one-wp-security/lib/whois/whois.gtld.tmagnic.php create mode 100644 all-in-one-wp-security/lib/whois/whois.gtld.tvcorp.php create mode 100644 all-in-one-wp-security/lib/whois/whois.gtld.wildwestdomains.php create mode 100644 all-in-one-wp-security/lib/whois/whois.hu.php create mode 100644 all-in-one-wp-security/lib/whois/whois.icon.png create mode 100644 all-in-one-wp-security/lib/whois/whois.idna.php create mode 100644 all-in-one-wp-security/lib/whois/whois.ie.php create mode 100644 all-in-one-wp-security/lib/whois/whois.in.php create mode 100644 all-in-one-wp-security/lib/whois/whois.info.php create mode 100644 all-in-one-wp-security/lib/whois/whois.int.php create mode 100644 all-in-one-wp-security/lib/whois/whois.ip.afrinic.php create mode 100644 all-in-one-wp-security/lib/whois/whois.ip.apnic.php create mode 100644 all-in-one-wp-security/lib/whois/whois.ip.arin.php create mode 100644 all-in-one-wp-security/lib/whois/whois.ip.krnic.php create mode 100644 all-in-one-wp-security/lib/whois/whois.ip.lacnic.php create mode 100644 all-in-one-wp-security/lib/whois/whois.ip.lib.php create mode 100644 all-in-one-wp-security/lib/whois/whois.ip.php create mode 100644 all-in-one-wp-security/lib/whois/whois.ip.ripe.php create mode 100644 all-in-one-wp-security/lib/whois/whois.ir.php create mode 100644 all-in-one-wp-security/lib/whois/whois.is.php create mode 100644 all-in-one-wp-security/lib/whois/whois.it.php create mode 100644 all-in-one-wp-security/lib/whois/whois.jp.php create mode 100644 all-in-one-wp-security/lib/whois/whois.lt.php create mode 100644 all-in-one-wp-security/lib/whois/whois.lu.php create mode 100644 all-in-one-wp-security/lib/whois/whois.ly.php create mode 100644 all-in-one-wp-security/lib/whois/whois.main.php create mode 100644 all-in-one-wp-security/lib/whois/whois.me.php create mode 100644 all-in-one-wp-security/lib/whois/whois.mobi.php create mode 100644 all-in-one-wp-security/lib/whois/whois.museum.php create mode 100644 all-in-one-wp-security/lib/whois/whois.mx.php create mode 100644 all-in-one-wp-security/lib/whois/whois.name.php create mode 100644 all-in-one-wp-security/lib/whois/whois.nl.php create mode 100644 all-in-one-wp-security/lib/whois/whois.nu.php create mode 100644 all-in-one-wp-security/lib/whois/whois.nz.php create mode 100644 all-in-one-wp-security/lib/whois/whois.org.php create mode 100644 all-in-one-wp-security/lib/whois/whois.org.za.php create mode 100644 all-in-one-wp-security/lib/whois/whois.parser.php create mode 100644 all-in-one-wp-security/lib/whois/whois.pl.php create mode 100644 all-in-one-wp-security/lib/whois/whois.pro.php create mode 100644 all-in-one-wp-security/lib/whois/whois.pt.php create mode 100644 all-in-one-wp-security/lib/whois/whois.ro.php create mode 100644 all-in-one-wp-security/lib/whois/whois.ru.php create mode 100644 all-in-one-wp-security/lib/whois/whois.rwhois.php create mode 100644 all-in-one-wp-security/lib/whois/whois.sc.php create mode 100644 all-in-one-wp-security/lib/whois/whois.se.php create mode 100644 all-in-one-wp-security/lib/whois/whois.servers.php create mode 100644 all-in-one-wp-security/lib/whois/whois.si.php create mode 100644 all-in-one-wp-security/lib/whois/whois.su.php create mode 100644 all-in-one-wp-security/lib/whois/whois.tel.php create mode 100644 all-in-one-wp-security/lib/whois/whois.travel.php create mode 100644 all-in-one-wp-security/lib/whois/whois.uk.php create mode 100644 all-in-one-wp-security/lib/whois/whois.us.php create mode 100644 all-in-one-wp-security/lib/whois/whois.utils.php create mode 100644 all-in-one-wp-security/lib/whois/whois.ve.php create mode 100644 all-in-one-wp-security/lib/whois/whois.ws.php create mode 100644 all-in-one-wp-security/lib/whois/whois.zanet.php create mode 100644 all-in-one-wp-security/license.txt create mode 100644 all-in-one-wp-security/logs/index.html create mode 100644 all-in-one-wp-security/logs/wp-security-log-cron-job.txt create mode 100644 all-in-one-wp-security/logs/wp-security-log.txt create mode 100644 all-in-one-wp-security/other-includes/index.html create mode 100644 all-in-one-wp-security/other-includes/wp-security-rename-login-feature.php create mode 100644 all-in-one-wp-security/other-includes/wp-security-unlock-request.php create mode 100644 all-in-one-wp-security/other-includes/wp-security-visitor-lockout-page.php create mode 100644 all-in-one-wp-security/readme.txt create mode 100644 all-in-one-wp-security/wp-security-core.php create mode 100644 all-in-one-wp-security/wp-security.php create mode 100644 nbproject/project.properties create mode 100644 nbproject/project.xml diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..14bc68c --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +/nbproject/private/ \ No newline at end of file diff --git a/all-in-one-wp-security/admin/general/wp-security-list-table.php b/all-in-one-wp-security/admin/general/wp-security-list-table.php new file mode 100644 index 0000000..f2fcc78 --- /dev/null +++ b/all-in-one-wp-security/admin/general/wp-security-list-table.php @@ -0,0 +1,907 @@ + '', + 'singular' => '', + 'ajax' => false, + 'screen' => null, + ) ); + + $this->screen = convert_to_screen( $args['screen'] ); + + add_filter( "manage_{$this->screen->id}_columns", array( &$this, 'get_columns' ), 0 ); + + if ( !$args['plural'] ) + $args['plural'] = $this->screen->base; + + $args['plural'] = sanitize_key( $args['plural'] ); + $args['singular'] = sanitize_key( $args['singular'] ); + + $this->_args = $args; + + if ( $args['ajax'] ) { + // wp_enqueue_script( 'list-table' ); + add_action( 'admin_footer', array( &$this, '_js_vars' ) ); + } + } + + /** + * Checks the current user's permissions + * @uses wp_die() + * + * @since 3.1.0 + * @access public + * @abstract + */ + function ajax_user_can() { + die( 'function AIOWPSecurity_List_Table::ajax_user_can() must be over-ridden in a sub-class.' ); + } + + /** + * Prepares the list of items for displaying. + * @uses AIOWPSecurity_List_Table::set_pagination_args() + * + * @since 3.1.0 + * @access public + * @abstract + */ + function prepare_items() { + die( 'function AIOWPSecurity_List_Table::prepare_items() must be over-ridden in a sub-class.' ); + } + + /** + * An internal method that sets all the necessary pagination arguments + * + * @param array $args An associative array with information about the pagination + * @access protected + */ + function set_pagination_args( $args ) { + $args = wp_parse_args( $args, array( + 'total_items' => 0, + 'total_pages' => 0, + 'per_page' => 0, + ) ); + + if ( !$args['total_pages'] && $args['per_page'] > 0 ) + $args['total_pages'] = ceil( $args['total_items'] / $args['per_page'] ); + + // redirect if page number is invalid and headers are not already sent + if ( ! headers_sent() && ( ! defined( 'DOING_AJAX' ) || ! DOING_AJAX ) && $args['total_pages'] > 0 && $this->get_pagenum() > $args['total_pages'] ) { + wp_redirect( add_query_arg( 'paged', $args['total_pages'] ) ); + exit; + } + + $this->_pagination_args = $args; + } + + /** + * Access the pagination args + * + * @since 3.1.0 + * @access public + * + * @param string $key + * @return array + */ + function get_pagination_arg( $key ) { + if ( 'page' == $key ) + return $this->get_pagenum(); + + if ( isset( $this->_pagination_args[$key] ) ) + return $this->_pagination_args[$key]; + } + + /** + * Whether the table has items to display or not + * + * @since 3.1.0 + * @access public + * + * @return bool + */ + function has_items() { + return !empty( $this->items ); + } + + /** + * Message to be displayed when there are no items + * + * @since 3.1.0 + * @access public + */ + function no_items() { + _e( 'No items found.' ); + } + + /** + * Display the search box. + * + * @since 3.1.0 + * @access public + * + * @param string $text The search button text + * @param string $input_id The search input id + */ + function search_box( $text, $input_id ) { + if ( empty( $_REQUEST['s'] ) && !$this->has_items() ) + return; + + $input_id = $input_id . '-search-input'; + + if ( ! empty( $_REQUEST['orderby'] ) ) + echo ''; + if ( ! empty( $_REQUEST['order'] ) ) + echo ''; + if ( ! empty( $_REQUEST['post_mime_type'] ) ) + echo ''; + if ( ! empty( $_REQUEST['detached'] ) ) + echo ''; +?> + + link ) with the list + * of views available on this table. + * + * @since 3.1.0 + * @access protected + * + * @return array + */ + function get_views() { + return array(); + } + + /** + * Display the list of views available on this table. + * + * @since 3.1.0 + * @access public + */ + function views() { + $views = $this->get_views(); + $views = apply_filters( 'views_' . $this->screen->id, $views ); + + if ( empty( $views ) ) + return; + + echo ""; + } + + /** + * Get an associative array ( option_name => option_title ) with the list + * of bulk actions available on this table. + * + * @since 3.1.0 + * @access protected + * + * @return array + */ + function get_bulk_actions() { + return array(); + } + + /** + * Display the bulk actions dropdown. + * + * @since 3.1.0 + * @access public + */ + function bulk_actions() { + if ( is_null( $this->_actions ) ) { + $no_new_actions = $this->_actions = $this->get_bulk_actions(); + // This filter can currently only be used to remove actions. + $this->_actions = apply_filters( 'bulk_actions-' . $this->screen->id, $this->_actions ); + $this->_actions = array_intersect_assoc( $this->_actions, $no_new_actions ); + $two = ''; + } else { + $two = '2'; + } + + if ( empty( $this->_actions ) ) + return; + + echo "\n"; + + submit_button( __( 'Apply' ), 'action', false, false, array( 'id' => "doaction$two" ) ); + echo "\n"; + } + + /** + * Get the current action selected from the bulk actions dropdown. + * + * @since 3.1.0 + * @access public + * + * @return string|bool The action name or False if no action was selected + */ + function current_action() { + if ( isset( $_REQUEST['action'] ) && -1 != $_REQUEST['action'] ) + return $_REQUEST['action']; + + if ( isset( $_REQUEST['action2'] ) && -1 != $_REQUEST['action2'] ) + return $_REQUEST['action2']; + + return false; + } + + /** + * Generate row actions div + * + * @since 3.1.0 + * @access protected + * + * @param array $actions The list of actions + * @param bool $always_visible Whether the actions should be always visible + * @return string + */ + function row_actions( $actions, $always_visible = false ) { + $action_count = count( $actions ); + $i = 0; + + if ( !$action_count ) + return ''; + + $out = '
'; + foreach ( $actions as $action => $link ) { + ++$i; + ( $i == $action_count ) ? $sep = '' : $sep = ' | '; + $out .= "$link$sep"; + } + $out .= '
'; + + return $out; + } + + /** + * Display a monthly dropdown for filtering items + * + * @since 3.1.0 + * @access protected + */ + function months_dropdown( $post_type ) { + global $wpdb, $wp_locale; + + $months = $wpdb->get_results( $wpdb->prepare( " + SELECT DISTINCT YEAR( post_date ) AS year, MONTH( post_date ) AS month + FROM $wpdb->posts + WHERE post_type = %s + ORDER BY post_date DESC + ", $post_type ) ); + + $month_count = count( $months ); + + if ( !$month_count || ( 1 == $month_count && 0 == $months[0]->month ) ) + return; + + $m = isset( $_GET['m'] ) ? (int) $_GET['m'] : 0; +?> + + __( 'List View' ), + 'excerpt' => __( 'Excerpt View' ) + ); + +?> + +
+ $title ) { + $class = ( $current_mode == $mode ) ? 'class="current"' : ''; + echo "$title\n"; + } + ?> +
+'; + + echo "" . number_format_i18n( get_comments_number() ) . ""; + + if ( $pending_comments ) + echo ''; + } + + /** + * Get the current page number + * + * @since 3.1.0 + * @access protected + * + * @return int + */ + function get_pagenum() { + $pagenum = isset( $_REQUEST['paged'] ) ? absint( $_REQUEST['paged'] ) : 0; + + if( isset( $this->_pagination_args['total_pages'] ) && $pagenum > $this->_pagination_args['total_pages'] ) + $pagenum = $this->_pagination_args['total_pages']; + + return max( 1, $pagenum ); + } + + /** + * Get number of items to display on a single page + * + * @since 3.1.0 + * @access protected + * + * @return int + */ + function get_items_per_page( $option, $default = 20 ) { + $per_page = (int) get_user_option( $option ); + if ( empty( $per_page ) || $per_page < 1 ) + $per_page = $default; + + return (int) apply_filters( $option, $per_page ); + } + + /** + * Display the pagination. + * + * @since 3.1.0 + * @access protected + */ + function pagination( $which ) { + if ( empty( $this->_pagination_args ) ) + return; + + extract( $this->_pagination_args, EXTR_SKIP ); + + $output = '' . sprintf( _n( '1 item', '%s items', $total_items ), number_format_i18n( $total_items ) ) . ''; + + $current = $this->get_pagenum(); + + $current_url = set_url_scheme( 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'] ); + + $current_url = remove_query_arg( array( 'hotkeys_highlight_last', 'hotkeys_highlight_first' ), $current_url ); + + $page_links = array(); + + $disable_first = $disable_last = ''; + if ( $current == 1 ) + $disable_first = ' disabled'; + if ( $current == $total_pages ) + $disable_last = ' disabled'; + + $page_links[] = sprintf( "%s", + 'first-page' . $disable_first, + esc_attr__( 'Go to the first page' ), + esc_url( remove_query_arg( 'paged', $current_url ) ), + '«' + ); + + $page_links[] = sprintf( "%s", + 'prev-page' . $disable_first, + esc_attr__( 'Go to the previous page' ), + esc_url( add_query_arg( 'paged', max( 1, $current-1 ), $current_url ) ), + '‹' + ); + + if ( 'bottom' == $which ) + $html_current_page = $current; + else + $html_current_page = sprintf( "", + esc_attr__( 'Current page' ), + $current, + strlen( $total_pages ) + ); + + $html_total_pages = sprintf( "%s", number_format_i18n( $total_pages ) ); + $page_links[] = '' . sprintf( _x( '%1$s of %2$s', 'paging' ), $html_current_page, $html_total_pages ) . ''; + + $page_links[] = sprintf( "%s", + 'next-page' . $disable_last, + esc_attr__( 'Go to the next page' ), + esc_url( add_query_arg( 'paged', min( $total_pages, $current+1 ), $current_url ) ), + '›' + ); + + $page_links[] = sprintf( "%s", + 'last-page' . $disable_last, + esc_attr__( 'Go to the last page' ), + esc_url( add_query_arg( 'paged', $total_pages, $current_url ) ), + '»' + ); + + $pagination_links_class = 'pagination-links'; + if ( ! empty( $infinite_scroll ) ) + $pagination_links_class = ' hide-if-js'; + $output .= "\n" . join( "\n", $page_links ) . ''; + + if ( $total_pages ) + $page_class = $total_pages < 2 ? ' one-page' : ''; + else + $page_class = ' no-pages'; + + $this->_pagination = "
$output
"; + + echo $this->_pagination; + } + + /** + * Get a list of columns. The format is: + * 'internal-name' => 'Title' + * + * @since 3.1.0 + * @access protected + * @abstract + * + * @return array + */ + function get_columns() { + die( 'function AIOWPSecurity_List_Table::get_columns() must be over-ridden in a sub-class.' ); + } + + /** + * Get a list of sortable columns. The format is: + * 'internal-name' => 'orderby' + * or + * 'internal-name' => array( 'orderby', true ) + * + * The second format will make the initial sorting order be descending + * + * @since 3.1.0 + * @access protected + * + * @return array + */ + function get_sortable_columns() { + return array(); + } + + /** + * Get a list of all, hidden and sortable columns, with filter applied + * + * @since 3.1.0 + * @access protected + * + * @return array + */ + function get_column_info() { + if ( isset( $this->_column_headers ) ) + return $this->_column_headers; + + $columns = get_column_headers( $this->screen ); + $hidden = get_hidden_columns( $this->screen ); + + $_sortable = apply_filters( "manage_{$this->screen->id}_sortable_columns", $this->get_sortable_columns() ); + + $sortable = array(); + foreach ( $_sortable as $id => $data ) { + if ( empty( $data ) ) + continue; + + $data = (array) $data; + if ( !isset( $data[1] ) ) + $data[1] = false; + + $sortable[$id] = $data; + } + + $this->_column_headers = array( $columns, $hidden, $sortable ); + + return $this->_column_headers; + } + + /** + * Return number of visible columns + * + * @since 3.1.0 + * @access public + * + * @return int + */ + function get_column_count() { + list ( $columns, $hidden ) = $this->get_column_info(); + $hidden = array_intersect( array_keys( $columns ), array_filter( $hidden ) ); + return count( $columns ) - count( $hidden ); + } + + /** + * Print column headers, accounting for hidden and sortable columns. + * + * @since 3.1.0 + * @access protected + * + * @param bool $with_id Whether to set the id attribute or not + */ + function print_column_headers( $with_id = true ) { + list( $columns, $hidden, $sortable ) = $this->get_column_info(); + + $current_url = set_url_scheme( 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'] ); + $current_url = remove_query_arg( 'paged', $current_url ); + + if ( isset( $_GET['orderby'] ) ) + $current_orderby = $_GET['orderby']; + else + $current_orderby = ''; + + if ( isset( $_GET['order'] ) && 'desc' == $_GET['order'] ) + $current_order = 'desc'; + else + $current_order = 'asc'; + + if ( ! empty( $columns['cb'] ) ) { + static $cb_counter = 1; + $columns['cb'] = '' + . ''; + $cb_counter++; + } + + foreach ( $columns as $column_key => $column_display_name ) { + $class = array( 'manage-column', "column-$column_key" ); + + $style = ''; + if ( in_array( $column_key, $hidden ) ) + $style = 'display:none;'; + + $style = ' style="' . $style . '"'; + + if ( 'cb' == $column_key ) + $class[] = 'check-column'; + elseif ( in_array( $column_key, array( 'posts', 'comments', 'links' ) ) ) + $class[] = 'num'; + + if ( isset( $sortable[$column_key] ) ) { + list( $orderby, $desc_first ) = $sortable[$column_key]; + + if ( $current_orderby == $orderby ) { + $order = 'asc' == $current_order ? 'desc' : 'asc'; + $class[] = 'sorted'; + $class[] = $current_order; + } else { + $order = $desc_first ? 'desc' : 'asc'; + $class[] = 'sortable'; + $class[] = $desc_first ? 'asc' : 'desc'; + } + + $column_display_name = '' . $column_display_name . ''; + } + + $id = $with_id ? "id='$column_key'" : ''; + + if ( !empty( $class ) ) + $class = "class='" . join( ' ', $class ) . "'"; + + echo "$column_display_name"; + } + } + + /** + * Display the table + * + * @since 3.1.0 + * @access public + */ + function display() { + extract( $this->_args ); + + $this->display_tablenav( 'top' ); + +?> + + + + print_column_headers(); ?> + + + + + + print_column_headers( false ); ?> + + + + > + display_rows_or_placeholder(); ?> + +
+display_tablenav( 'bottom' ); + } + + /** + * Get a list of CSS classes for the tag + * + * @since 3.1.0 + * @access protected + * + * @return array + */ + function get_table_classes() { + return array( 'widefat', 'fixed', $this->_args['plural'] ); + } + + /** + * Generate the table navigation above or below the table + * + * @since 3.1.0 + * @access protected + */ + function display_tablenav( $which ) { + if ( 'top' == $which ) + wp_nonce_field( 'bulk-' . $this->_args['plural'] ); +?> +
+ +
+ bulk_actions(); ?> +
+extra_tablenav( $which ); + $this->pagination( $which ); +?> + +
+
+ part of the table + * + * @since 3.1.0 + * @access protected + */ + function display_rows_or_placeholder() { + if ( $this->has_items() ) { + $this->display_rows(); + } else { + list( $columns, $hidden ) = $this->get_column_info(); + echo ''; + } + } + + /** + * Generate the table rows + * + * @since 3.1.0 + * @access protected + */ + function display_rows() { + foreach ( $this->items as $item ) + $this->single_row( $item ); + } + + /** + * Generates content for a single row of the table + * + * @since 3.1.0 + * @access protected + * + * @param object $item The current item + */ + function single_row( $item ) { + static $row_class = ''; + $row_class = ( $row_class == '' ? ' class="alternate"' : '' ); + + echo ''; + echo $this->single_row_columns( $item ); + echo ''; + } + + /** + * Generates the columns for a single row of the table + * + * @since 3.1.0 + * @access protected + * + * @param object $item The current item + */ + function single_row_columns( $item ) { + list( $columns, $hidden ) = $this->get_column_info(); + + foreach ( $columns as $column_name => $column_display_name ) { + $class = "class='$column_name column-$column_name'"; + + $style = ''; + if ( in_array( $column_name, $hidden ) ) + $style = ' style="display:none;"'; + + $attributes = "$class$style"; + + if ( 'cb' == $column_name ) { + echo ''; + } + elseif ( method_exists( $this, 'column_' . $column_name ) ) { + echo ""; + } + else { + echo ""; + } + } + } + + /** + * Handle an incoming ajax request (called from admin-ajax.php) + * + * @since 3.1.0 + * @access public + */ + function ajax_response() { + $this->prepare_items(); + + extract( $this->_args ); + extract( $this->_pagination_args, EXTR_SKIP ); + + ob_start(); + if ( ! empty( $_REQUEST['no_placeholder'] ) ) + $this->display_rows(); + else + $this->display_rows_or_placeholder(); + + $rows = ob_get_clean(); + + $response = array( 'rows' => $rows ); + + if ( isset( $total_items ) ) + $response['total_items_i18n'] = sprintf( _n( '1 item', '%s items', $total_items ), number_format_i18n( $total_items ) ); + + if ( isset( $total_pages ) ) { + $response['total_pages'] = $total_pages; + $response['total_pages_i18n'] = number_format_i18n( $total_pages ); + } + + die( json_encode( $response ) ); + } + + /** + * Send required variables to JavaScript land + * + * @access private + */ + function _js_vars() { + $args = array( + 'class' => get_class( $this ), + 'screen' => array( + 'id' => $this->screen->id, + 'base' => $this->screen->base, + ) + ); + + printf( "\n", json_encode( $args ) ); + } +} diff --git a/all-in-one-wp-security/admin/index.html b/all-in-one-wp-security/admin/index.html new file mode 100644 index 0000000..e69de29 diff --git a/all-in-one-wp-security/admin/index.php b/all-in-one-wp-security/admin/index.php new file mode 100644 index 0000000..485c60a --- /dev/null +++ b/all-in-one-wp-security/admin/index.php @@ -0,0 +1,5 @@ +admin_includes(); + add_action('admin_menu', array(&$this, 'create_admin_menus')); + + //make sure we are on our plugin's menu pages + if (isset($_GET['page']) && strpos($_GET['page'], AIOWPSEC_MENU_SLUG_PREFIX ) !== false ) { + add_action('admin_print_scripts', array(&$this, 'admin_menu_page_scripts')); + add_action('admin_print_styles', array(&$this, 'admin_menu_page_styles')); + add_action('init', array( &$this, 'init_hook_handler_for_admin_side')); + } + } + + function admin_includes() + { + include_once('wp-security-admin-menu.php'); + } + + function admin_menu_page_scripts() + { + wp_enqueue_script('jquery'); + wp_enqueue_script('postbox'); + wp_enqueue_script('dashboard'); + wp_enqueue_script('thickbox'); + wp_enqueue_script('media-upload'); + wp_register_script('aiowpsec-admin-js', AIO_WP_SECURITY_URL. '/js/wp-security-admin-script.js', array('jquery')); + wp_enqueue_script('aiowpsec-admin-js'); + wp_register_script('aiowpsec-pw-tool-js', AIO_WP_SECURITY_URL. '/js/password-strength-tool.js', array('jquery')); // We will enqueue this in the user acct menu class + } + + function admin_menu_page_styles() + { + wp_enqueue_style('dashboard'); + wp_enqueue_style('thickbox'); + wp_enqueue_style('global'); + wp_enqueue_style('wp-admin'); + wp_enqueue_style('aiowpsec-admin-css', AIO_WP_SECURITY_URL. '/css/wp-security-admin-styles.css'); + } + + function init_hook_handler_for_admin_side() + { + $this->aiowps_media_uploader_modification(); + $this->initialize_feature_manager(); + $this->do_other_admin_side_init_tasks(); + } + + function aiowps_media_uploader_modification() + { + //For changing button text inside media uploader (thickbox) + global $pagenow; + if ('media-upload.php' == $pagenow || 'async-upload.php' == $pagenow) + { + // Here we will customize the 'Insert into Post' Button text inside Thickbox + add_filter( 'gettext', array($this, 'aiowps_media_uploader_replace_thickbox_text'), 1, 2); + } + } + + function aiowps_media_uploader_replace_thickbox_text($translated_text, $text) + { + if ('Insert into Post' == $text) + { + $referer = strpos(wp_get_referer(), 'aiowpsec'); + if ($referer != '') + { + return ('Select File'); + } + } + return $translated_text; + } + + function initialize_feature_manager() + { + $aiowps_feature_mgr = new AIOWPSecurity_Feature_Item_Manager(); + $aiowps_feature_mgr->initialize_features(); + $aiowps_feature_mgr->check_and_set_feature_status(); + $aiowps_feature_mgr->calculate_total_points(); + $GLOBALS['aiowps_feature_mgr'] = $aiowps_feature_mgr; + } + + function do_other_admin_side_init_tasks() + { + global $aio_wp_security; + + //***New Feature improvement for Cookie Based Brute Force Protection***// + //The old "test cookie" used to be too easy to guess because someone could just read the code and get the value. + //So now we will drop a more secure test cookie using a 10 digit random string + + if($aio_wp_security->configs->get_value('aiowps_enable_brute_force_attack_prevention')=='1'){ + // This code is for users who had this feature saved using an older release. This will drop the new more secure test cookie to the browser and will write it to the .htaccess file too + $test_cookie = $aio_wp_security->configs->get_value('aiowps_cookie_brute_test'); + if(empty($test_cookie)){ + $random_suffix = AIOWPSecurity_Utility::generate_alpha_numeric_random_string(10); + $test_cookie_name = 'aiowps_cookie_test_'.$random_suffix; + $aio_wp_security->configs->set_value('aiowps_cookie_brute_test',$test_cookie_name); + $aio_wp_security->configs->save_config();//save the value + AIOWPSecurity_Utility::set_cookie_value($test_cookie_name, "1"); + + //Write this new cookie to the .htaccess file + $res = AIOWPSecurity_Utility_Htaccess::write_to_htaccess(); + if($res == -1){ + $aio_wp_security->debug_logger->log_debug("Error writing new test cookie with random suffix to .htaccess file!",4); + } + + } + } + //For cookie test form submission case + if (isset($_GET['page']) && $_GET['page'] == AIOWPSEC_BRUTE_FORCE_MENU_SLUG && isset($_GET['tab']) && $_GET['tab'] == 'tab2') + { + global $aio_wp_security; + if(isset($_POST['aiowps_do_cookie_test_for_bfla'])){ + $random_suffix = AIOWPSecurity_Utility::generate_alpha_numeric_random_string(10); + $test_cookie_name = 'aiowps_cookie_test_'.$random_suffix; + $aio_wp_security->configs->set_value('aiowps_cookie_brute_test',$test_cookie_name); + $aio_wp_security->configs->save_config();//save the value + AIOWPSecurity_Utility::set_cookie_value($test_cookie_name, "1"); + $cur_url = "admin.php?page=".AIOWPSEC_BRUTE_FORCE_MENU_SLUG."&tab=tab2"; + $redirect_url = AIOWPSecurity_Utility::add_query_data_to_url($cur_url, 'aiowps_cookie_test', "1"); + AIOWPSecurity_Utility::redirect_to_url($redirect_url); + } + + if(isset($_POST['aiowps_enable_brute_force_attack_prevention']))//Enabling the BFLA feature so drop the cookie again + { + $brute_force_feature_secret_word = sanitize_text_field($_POST['aiowps_brute_force_secret_word']); + if(empty($brute_force_feature_secret_word)){ + $brute_force_feature_secret_word = "aiowps_secret"; + } + AIOWPSecurity_Utility::set_cookie_value($brute_force_feature_secret_word, "1"); + } + + if(isset($_REQUEST['aiowps_cookie_test'])) + { + $test_cookie = $aio_wp_security->configs->get_value('aiowps_cookie_brute_test'); + $cookie_val = AIOWPSecurity_Utility::get_cookie_value($test_cookie); + if(empty($cookie_val)) + { + $aio_wp_security->configs->set_value('aiowps_cookie_test_success',''); + } + else + { + $aio_wp_security->configs->set_value('aiowps_cookie_test_success','1'); + } + $aio_wp_security->configs->save_config();//save the value + } + } + + if(isset($_POST['aiowps_save_wp_config']))//the wp-config backup operation + { + $nonce=$_REQUEST['_wpnonce']; + if (!wp_verify_nonce($nonce, 'aiowpsec-save-wp-config-nonce')) + { + $aio_wp_security->debug_logger->log_debug("Nonce check failed on wp_config file save!",4); + die("Nonce check failed on wp_config file save!"); + } + $wp_config_path = ABSPATH . 'wp-config.php'; + $result = AIOWPSecurity_Utility_File::backup_and_rename_wp_config($wp_config_path); //Backup the wp_config.php file + AIOWPSecurity_Utility_File::download_a_file_option1($wp_config_path, "wp-config-backup.txt"); + } + + //Handle export settings + if(isset($_POST['aiowps_export_settings']))//Do form submission tasks + { + $nonce=$_REQUEST['_wpnonce']; + if (!wp_verify_nonce($nonce, 'aiowpsec-export-settings-nonce')) + { + $aio_wp_security->debug_logger->log_debug("Nonce check failed on export AIOWPS settings!",4); + die("Nonce check failed on export AIOWPS settings!"); + } + $config_data = get_option('aio_wp_security_configs'); + $output = json_encode($config_data); + AIOWPSecurity_Utility_File::download_content_to_a_file($output); + } + + } + + function create_admin_menus() + { + $menu_icon_url = AIO_WP_SECURITY_URL.'/images/plugin-icon.png'; + $this->main_menu_page = add_menu_page(__('WP Security', 'aiowpsecurity'), __('WP Security', 'aiowpsecurity'), AIOWPSEC_MANAGEMENT_PERMISSION, AIOWPSEC_MAIN_MENU_SLUG , array(&$this, 'handle_dashboard_menu_rendering'), $menu_icon_url); + add_submenu_page(AIOWPSEC_MAIN_MENU_SLUG, __('Dashboard', 'aiowpsecurity'), __('Dashboard', 'aiowpsecurity') , AIOWPSEC_MANAGEMENT_PERMISSION, AIOWPSEC_MAIN_MENU_SLUG, array(&$this, 'handle_dashboard_menu_rendering')); + add_submenu_page(AIOWPSEC_MAIN_MENU_SLUG, __('Settings', 'aiowpsecurity'), __('Settings', 'aiowpsecurity') , AIOWPSEC_MANAGEMENT_PERMISSION, AIOWPSEC_SETTINGS_MENU_SLUG, array(&$this, 'handle_settings_menu_rendering')); + add_submenu_page(AIOWPSEC_MAIN_MENU_SLUG, __('User Accounts', 'aiowpsecurity'), __('User Accounts', 'aiowpsecurity') , AIOWPSEC_MANAGEMENT_PERMISSION, AIOWPSEC_USER_ACCOUNTS_MENU_SLUG, array(&$this, 'handle_user_accounts_menu_rendering')); + add_submenu_page(AIOWPSEC_MAIN_MENU_SLUG, __('User Login', 'aiowpsecurity'), __('User Login', 'aiowpsecurity') , AIOWPSEC_MANAGEMENT_PERMISSION, AIOWPSEC_USER_LOGIN_MENU_SLUG, array(&$this, 'handle_user_login_menu_rendering')); + add_submenu_page(AIOWPSEC_MAIN_MENU_SLUG, __('User Registration', 'aiowpsecurity'), __('User Registration', 'aiowpsecurity') , AIOWPSEC_MANAGEMENT_PERMISSION, AIOWPSEC_USER_REGISTRATION_MENU_SLUG, array(&$this, 'handle_user_registration_menu_rendering')); + add_submenu_page(AIOWPSEC_MAIN_MENU_SLUG, __('Database Security', 'aiowpsecurity'), __('Database Security', 'aiowpsecurity') , AIOWPSEC_MANAGEMENT_PERMISSION, AIOWPSEC_DB_SEC_MENU_SLUG, array(&$this, 'handle_database_menu_rendering')); + if (AIOWPSecurity_Utility::is_multisite_install() && get_current_blog_id() != 1){ + //Suppress the Filesystem Security menu if site is a multi site AND not the main site + }else{ + add_submenu_page(AIOWPSEC_MAIN_MENU_SLUG, __('Filesystem Security', 'aiowpsecurity'), __('Filesystem Security', 'aiowpsecurity') , AIOWPSEC_MANAGEMENT_PERMISSION, AIOWPSEC_FILESYSTEM_MENU_SLUG, array(&$this, 'handle_filesystem_menu_rendering')); + } + add_submenu_page(AIOWPSEC_MAIN_MENU_SLUG, __('WHOIS Lookup', 'aiowpsecurity'), __('WHOIS Lookup', 'aiowpsecurity') , AIOWPSEC_MANAGEMENT_PERMISSION, AIOWPSEC_WHOIS_MENU_SLUG, array(&$this, 'handle_whois_menu_rendering')); + if (AIOWPSecurity_Utility::is_multisite_install() && get_current_blog_id() != 1){ + //Suppress the Blacklist Manager menu if site is a multi site AND not the main site + }else{ + add_submenu_page(AIOWPSEC_MAIN_MENU_SLUG, __('Blacklist Manager', 'aiowpsecurity'), __('Blacklist Manager', 'aiowpsecurity') , AIOWPSEC_MANAGEMENT_PERMISSION, AIOWPSEC_BLACKLIST_MENU_SLUG, array(&$this, 'handle_blacklist_menu_rendering')); + } + if (AIOWPSecurity_Utility::is_multisite_install() && get_current_blog_id() != 1){ + //Suppress the firewall menu if site is a multi site AND not the main site + }else{ + add_submenu_page(AIOWPSEC_MAIN_MENU_SLUG, __('Firewall', 'aiowpsecurity'), __('Firewall', 'aiowpsecurity') , AIOWPSEC_MANAGEMENT_PERMISSION, AIOWPSEC_FIREWALL_MENU_SLUG, array(&$this, 'handle_firewall_menu_rendering')); + } + if (AIOWPSecurity_Utility::is_multisite_install() && get_current_blog_id() != 1){ + //Suppress the Brute Force menu if site is a multi site AND not the main site + }else{ + add_submenu_page(AIOWPSEC_MAIN_MENU_SLUG, __('Brute Force', 'aiowpsecurity'), __('Brute Force', 'aiowpsecurity') , AIOWPSEC_MANAGEMENT_PERMISSION, AIOWPSEC_BRUTE_FORCE_MENU_SLUG, array(&$this, 'handle_brute_force_menu_rendering')); + } + add_submenu_page(AIOWPSEC_MAIN_MENU_SLUG, __('SPAM Prevention', 'aiowpsecurity'), __('SPAM Prevention', 'aiowpsecurity') , AIOWPSEC_MANAGEMENT_PERMISSION, AIOWPSEC_SPAM_MENU_SLUG, array(&$this, 'handle_spam_menu_rendering')); + if (AIOWPSecurity_Utility::is_multisite_install() && get_current_blog_id() != 1){ + //Suppress the filescan menu if site is a multi site AND not the main site + }else{ + add_submenu_page(AIOWPSEC_MAIN_MENU_SLUG, __('Scanner', 'aiowpsecurity'), __('Scanner', 'aiowpsecurity') , AIOWPSEC_MANAGEMENT_PERMISSION, AIOWPSEC_FILESCAN_MENU_SLUG, array(&$this, 'handle_filescan_menu_rendering')); + } + add_submenu_page(AIOWPSEC_MAIN_MENU_SLUG, __('Maintenance', 'aiowpsecurity'), __('Maintenance', 'aiowpsecurity') , AIOWPSEC_MANAGEMENT_PERMISSION, AIOWPSEC_MAINTENANCE_MENU_SLUG, array(&$this, 'handle_maintenance_menu_rendering')); + add_submenu_page(AIOWPSEC_MAIN_MENU_SLUG, __('Miscellaneous', 'aiowpsecurity'), __('Miscellaneous', 'aiowpsecurity') , AIOWPSEC_MANAGEMENT_PERMISSION, AIOWPSEC_MISC_MENU_SLUG, array(&$this, 'handle_misc_menu_rendering')); + do_action('aiowpsecurity_admin_menu_created'); + } + + function handle_dashboard_menu_rendering() + { + include_once('wp-security-dashboard-menu.php'); + $this->dashboard_menu = new AIOWPSecurity_Dashboard_Menu(); + } + + function handle_settings_menu_rendering() + { + include_once('wp-security-settings-menu.php'); + $this->settings_menu = new AIOWPSecurity_Settings_Menu(); + + } + + function handle_user_accounts_menu_rendering() + { + include_once('wp-security-user-accounts-menu.php'); + $this->user_accounts_menu = new AIOWPSecurity_User_Accounts_Menu(); + } + + function handle_user_login_menu_rendering() + { + include_once('wp-security-user-login-menu.php'); + $this->user_login_menu = new AIOWPSecurity_User_Login_Menu(); + } + + function handle_user_registration_menu_rendering() + { + include_once('wp-security-user-registration-menu.php'); + $this->user_registration_menu = new AIOWPSecurity_User_Registration_Menu(); + } + + function handle_database_menu_rendering() + { + include_once('wp-security-database-menu.php'); + $this->db_security_menu = new AIOWPSecurity_Database_Menu(); + } + + function handle_filesystem_menu_rendering() + { + include_once('wp-security-filesystem-menu.php'); + $this->filesystem_menu = new AIOWPSecurity_Filesystem_Menu(); + } + + function handle_whois_menu_rendering() + { + include_once('wp-security-whois-menu.php'); + $this->whois_menu = new AIOWPSecurity_WhoIs_Menu(); + } + + function handle_blacklist_menu_rendering() + { + include_once('wp-security-blacklist-menu.php'); + $this->blacklist_menu = new AIOWPSecurity_Blacklist_Menu(); + } + + function handle_firewall_menu_rendering() + { + include_once('wp-security-firewall-menu.php'); + $this->firewall_menu = new AIOWPSecurity_Firewall_Menu(); + } + + function handle_brute_force_menu_rendering() + { + include_once('wp-security-brute-force-menu.php'); + $this->brute_force_menu = new AIOWPSecurity_Brute_Force_Menu(); + } + + function handle_maintenance_menu_rendering() + { + include_once('wp-security-maintenance-menu.php'); + $this->maintenance_menu = new AIOWPSecurity_Maintenance_Menu(); + } + + function handle_spam_menu_rendering() + { + include_once('wp-security-spam-menu.php'); + $this->spam_menu = new AIOWPSecurity_Spam_Menu(); + } + + function handle_filescan_menu_rendering() + { + include_once('wp-security-filescan-menu.php'); + $this->filescan_menu = new AIOWPSecurity_Filescan_Menu(); + } + + function handle_misc_menu_rendering() + { + include_once('wp-security-misc-options-menu.php'); + $this->misc_menu = new AIOWPSecurity_Misc_Options_Menu(); + } + +}//End of class + diff --git a/all-in-one-wp-security/admin/wp-security-admin-menu.php b/all-in-one-wp-security/admin/wp-security-admin-menu.php new file mode 100644 index 0000000..5451b84 --- /dev/null +++ b/all-in-one-wp-security/admin/wp-security-admin-menu.php @@ -0,0 +1,93 @@ + +
+

+

+
+ +
+
+ +
+

+
+ +
+
+

'; + _e('Settings successfully updated.','aiowpsecurity'); + echo '

'; + } + + static function show_msg_record_deleted_st() + { + echo '

'; + _e('The selected record(s) deleted successfully!','aiowpsecurity'); + echo '

'; + } + + function show_msg_updated($msg) + { + echo '

'; + echo $msg; + echo '

'; + } + + static function show_msg_updated_st($msg) + { + echo '

'; + echo $msg; + echo '

'; + } + + function show_msg_error($error_msg) + { + echo '

'; + echo $error_msg; + echo '

'; + } + + static function show_msg_error_st($error_msg) + { + echo '

'; + echo $error_msg; + echo '

'; + } + + function start_buffer() + { + ob_start(); + } + + function end_buffer_and_collect() + { + $output = ob_get_contents(); + ob_end_clean(); + return $output; + } +} \ No newline at end of file diff --git a/all-in-one-wp-security/admin/wp-security-blacklist-menu.php b/all-in-one-wp-security/admin/wp-security-blacklist-menu.php new file mode 100644 index 0000000..5937cd1 --- /dev/null +++ b/all-in-one-wp-security/admin/wp-security-blacklist-menu.php @@ -0,0 +1,242 @@ + 'render_tab1', + ); + + function __construct() + { + $this->render_menu_page(); + } + + function set_menu_tabs() + { + $this->menu_tabs = array( + 'tab1' => __('Ban Users', 'aiowpsecurity'), + ); + } + + function get_current_tab() + { + $tab_keys = array_keys($this->menu_tabs); + $tab = isset( $_GET['tab'] ) ? $_GET['tab'] : $tab_keys[0]; + return $tab; + } + + /* + * Renders our tabs of this menu as nav items + */ + function render_menu_tabs() + { + $current_tab = $this->get_current_tab(); + + echo ''; + } + + /* + * The menu rendering goes here + */ + function render_menu_page() + { + $this->set_menu_tabs(); + $tab = $this->get_current_tab(); + ?> +
+
+ render_menu_tabs(); + //$tab_keys = array_keys($this->menu_tabs); + call_user_func(array(&$this, $this->menu_tabs_handler[$tab])); + ?> +
+
+ debug_logger->log_debug("Nonce check failed for save blacklist settings!",4); + die(__('Nonce check failed for save blacklist settings!','aiowpsecurity')); + } + + if (isset($_POST["aiowps_enable_blacklisting"]) && empty($_POST['aiowps_banned_ip_addresses']) && empty($_POST['aiowps_banned_user_agents'])) + { + $this->show_msg_error('You must submit at least one IP address or one User Agent value or both!','aiowpsecurity'); + } + else + { + if (!empty($_POST['aiowps_banned_ip_addresses'])) + { + $ip_addresses = $_POST['aiowps_banned_ip_addresses']; + $ip_list_array = AIOWPSecurity_Utility_IP::create_ip_list_array_from_string_with_newline($ip_addresses); + $payload = AIOWPSecurity_Utility_IP::validate_ip_list($ip_list_array, 'blacklist'); + if($payload[0] == 1){ + //success case + $result = 1; + $list = $payload[1]; + $banned_ip_data = implode(PHP_EOL, $list); + $aio_wp_security->configs->set_value('aiowps_banned_ip_addresses',$banned_ip_data); + $_POST['aiowps_banned_ip_addresses'] = ''; //Clear the post variable for the banned address list + } + else{ + $result = -1; + $error_msg = $payload[1][0]; + $this->show_msg_error($error_msg); + } + + } + else + { + $aio_wp_security->configs->set_value('aiowps_banned_ip_addresses',''); //Clear the IP address config value + } + + if (!empty($_POST['aiowps_banned_user_agents'])) + { + $result = $result * $this->validate_user_agent_list(); + } + + if ($result == 1) + { + $aio_wp_security->configs->set_value('aiowps_enable_blacklisting',isset($_POST["aiowps_enable_blacklisting"])?'1':''); + $aio_wp_security->configs->save_config(); //Save the configuration + + //Recalculate points after the feature status/options have been altered + $aiowps_feature_mgr->check_feature_status_and_recalculate_points(); + + $this->show_msg_settings_updated(); + + $write_result = AIOWPSecurity_Utility_Htaccess::write_to_htaccess(); //now let's write to the .htaccess file + if ($write_result == -1) + { + $this->show_msg_error(__('The plugin was unable to write to the .htaccess file. Please edit file manually.','aiowpsecurity')); + $aio_wp_security->debug_logger->log_debug("AIOWPSecurity_Blacklist_Menu - The plugin was unable to write to the .htaccess file."); + } + } + } + } + ?> +

+
+ '.__('The All In One WP Security Blacklist feature gives you the option of banning certain host IP addresses or ranges and also user agents.', 'aiowpsecurity').' +
'.__('This feature will deny total site access for users which have IP addresses or user agents matching those which you have configured in the settings below.', 'aiowpsecurity').' +
'.__('The plugin achieves this by making appropriate modifications to your .htaccess file.', 'aiowpsecurity').' +
'.__('By blocking people via the .htaccess file your are using the most secure first line of defence which denies all access to blacklisted visitors as soon as they hit your hosting server.', 'aiowpsecurity').' +

'; + ?> +
+ +
+

+
+ output_feature_details_badge("blacklist-manager-ip-user-agent-blacklisting"); + ?> +
+ +
'; + $this->no_items(); + echo '
'; + echo $this->column_cb( $item ); + echo '"; + echo call_user_func( array( &$this, 'column_' . $column_name ), $item ); + echo ""; + echo $this->column_default( $item, $column_name ); + echo "
+ + + + + + + + + + + + +
: + configs->get_value('aiowps_enable_blacklisting')=='1') echo ' checked="checked"'; ?> value="1"/> + +
+ +
+ + + +
+ '.__('Each IP address must be on a new line.', 'aiowpsecurity').'

'; + echo '

'.__('To specify an IP range use a wildcard "*" character. Acceptable ways to use wildcards is shown in the examples below:', 'aiowpsecurity').'

'; + echo '

'.__('Example 1: 195.47.89.*', 'aiowpsecurity').'

'; + echo '

'.__('Example 2: 195.47.*.*', 'aiowpsecurity').'

'; + echo '

'.__('Example 3: 195.*.*.*', 'aiowpsecurity').'

'; + ?> +
+ +
+ +
+ + + + +
+ '.__('Each user agent string must be on a new line.', 'aiowpsecurity').'

'; + echo '

'.__('Example 1 - A single user agent string to block:', 'aiowpsecurity').'

'; + echo '

SquigglebotBot

'; + echo '

'.__('Example 2 - A list of more than 1 user agent strings to block', 'aiowpsecurity').'

'; + echo '

baiduspider
SquigglebotBot
SurveyBot
VoidEYE
webcrawl.net
YottaShopping_Bot

'; + ?> +
+ +
+ + + + 1) + { + sort( $agents ); + $agents = array_unique($agents, SORT_STRING); + } + + $banned_user_agent_data = implode(PHP_EOL, $agents); + $aio_wp_security->configs->set_value('aiowps_banned_user_agents',$banned_user_agent_data); + $_POST['aiowps_banned_user_agents'] = ''; //Clear the post variable for the banned address list + return 1; + } +} //end class \ No newline at end of file diff --git a/all-in-one-wp-security/admin/wp-security-brute-force-menu.php b/all-in-one-wp-security/admin/wp-security-brute-force-menu.php new file mode 100644 index 0000000..9a37b62 --- /dev/null +++ b/all-in-one-wp-security/admin/wp-security-brute-force-menu.php @@ -0,0 +1,768 @@ + 'render_tab1', + 'tab2' => 'render_tab2', + 'tab3' => 'render_tab3', + 'tab4' => 'render_tab4', + 'tab5' => 'render_tab5', + ); + + function __construct() + { + $this->render_menu_page(); + } + + function set_menu_tabs() + { + $this->menu_tabs = array( + 'tab1' => __('Rename Login Page','aiowpsecurity'), + 'tab2' => __('Cookie Based Brute Force Prevention', 'aiowpsecurity'), + 'tab3' => __('Login Captcha', 'aiowpsecurity'), + 'tab4' => __('Login Whitelist', 'aiowpsecurity'), + 'tab5' => __('Honeypot', 'aiowpsecurity'), + + ); + } + + function get_current_tab() + { + $tab_keys = array_keys($this->menu_tabs); + $tab = isset( $_GET['tab'] ) ? $_GET['tab'] : $tab_keys[0]; + return $tab; + } + + /* + * Renders our tabs of this menu as nav items + */ + function render_menu_tabs() + { + $current_tab = $this->get_current_tab(); + + echo ''; + } + + /* + * The menu rendering goes here + */ + function render_menu_page() + { + $this->set_menu_tabs(); + $tab = $this->get_current_tab(); + ?> +
+
+ render_menu_tabs(); + //$tab_keys = array_keys($this->menu_tabs); + call_user_func(array(&$this, $this->menu_tabs_handler[$tab])); + ?> +
+
+ debug_logger->log_debug("Nonce check failed for rename login page save!",4); + die("Nonce check failed for rename login page save!"); + } + + if (empty($_POST['aiowps_login_page_slug']) && isset($_POST["aiowps_enable_rename_login_page"])){ + $error .= '
'.__('Please enter a value for your login page slug.','aiowpsecurity'); + }else if (!empty($_POST['aiowps_login_page_slug'])){ + $aiowps_login_page_slug = sanitize_text_field($_POST['aiowps_login_page_slug']); + if($aiowps_login_page_slug == 'wp-admin'){ + $error .= '
'.__('You cannot use the value "wp-admin" for your login page slug.','aiowpsecurity'); + } + } + + if($error){ + $this->show_msg_error(__('Attention!','aiowpsecurity').$error); + }else{ + //Save all the form values to the options + if (isset($_POST["aiowps_enable_rename_login_page"])){ + $aio_wp_security->configs->set_value('aiowps_enable_rename_login_page', '1'); + $aio_wp_security->configs->set_value('aiowps_enable_brute_force_attack_prevention', '');//deactivate cookie based feature + }else{ + $aio_wp_security->configs->set_value('aiowps_enable_rename_login_page', ''); + } + $aio_wp_security->configs->set_value('aiowps_login_page_slug',$aiowps_login_page_slug); + $aio_wp_security->configs->save_config(); + + //Recalculate points after the feature status/options have been altered + $aiowps_feature_mgr->check_feature_status_and_recalculate_points(); + $res = AIOWPSecurity_Utility_Htaccess::write_to_htaccess(); //Delete the cookie based directives if that feature is active + if ($res){ + $this->show_msg_settings_updated(); + } + else if($res == -1){ + $this->show_msg_error(__('Could not delete the Cookie-based directives from the .htaccess file. Please check the file permissions.', 'aiowpsecurity')); + } + } + } + + ?> +
+ Cookie Based Brute Force Prevention'; + $white_list_feature_url = 'Login Page White List'; + echo '

'.__('An effective Brute Force prevention technique is to change the default WordPress login page URL.', 'aiowpsecurity').'

'. + '

'.__('Normally if you wanted to login to WordPress you would type your site\'s home URL followed by wp-login.php.', 'aiowpsecurity').'

'. + '

'.__('This feature allows you to change the login URL by setting your own slug and renaming the last portion of the login URL which contains the wp-login.php to any string that you like.', 'aiowpsecurity').'

'. + '

'.__('By doing this, malicious bots and hackers will not be able to access your login page because they will not know the correct login page URL.', 'aiowpsecurity').'

'. + '
'. + '

'.__('You may also be interested in the following alternative brute force prevention features:', 'aiowpsecurity').'

'. + '

'.$cookie_based_feature_url.'

'. + '

'.$white_list_feature_url.'

'; + ?> +
+ configs->get_value('aiowps_enable_rename_login_page')=='1') + { + ?> +
+

+

+

configs->get_value('aiowps_login_page_slug'); ?>

+

+
+ + +
+

+
+ output_feature_details_badge("bf-rename-login-page"); + ?> + +
+ + + + + + + + + + +
: + configs->get_value('aiowps_enable_rename_login_page')=='1') echo ' checked="checked"'; ?> value="1"/> + +
: + +
+ +
+
+ + debug_logger->log_debug("Nonce check failed on enable cookie based brute force prevention feature!",4); + die("Nonce check failed on enable cookie based brute force prevention feature!"); + } + + if(isset($_POST['aiowps_enable_brute_force_attack_prevention'])) + { + $brute_force_feature_secret_word = sanitize_text_field($_POST['aiowps_brute_force_secret_word']); + if(empty($brute_force_feature_secret_word)){ + $brute_force_feature_secret_word = "aiowps_secret"; + }else if(!ctype_alnum($brute_force_feature_secret_word)){ + $msg = '

'.__('Settings have not been saved - your secret word must consist only of alphanumeric characters, ie, letters and/or numbers only!', 'aiowpsecurity').'

'; + $error = true; + } + + if(filter_var($_POST['aiowps_cookie_based_brute_force_redirect_url'], FILTER_VALIDATE_URL)) + { + $aio_wp_security->configs->set_value('aiowps_cookie_based_brute_force_redirect_url',esc_url_raw($_POST['aiowps_cookie_based_brute_force_redirect_url'])); + } + else + { + $aio_wp_security->configs->set_value('aiowps_cookie_based_brute_force_redirect_url','http://127.0.0.1'); + } + + $aio_wp_security->configs->set_value('aiowps_enable_brute_force_attack_prevention','1'); + $aio_wp_security->configs->set_value('aiowps_enable_rename_login_page',''); //Disable the Rename Login Page feature + + if (!$error) + { + $aio_wp_security->configs->set_value('aiowps_brute_force_secret_word',$brute_force_feature_secret_word); + $msg = '

'.__('You have successfully enabled the cookie based brute force prevention feature', 'aiowpsecurity').'

'; + $msg .= '

'.__('From now on you will need to log into your WP Admin using the following URL:', 'aiowpsecurity').'

'; + $msg .= '

'.AIOWPSEC_WP_URL.'/?'.$brute_force_feature_secret_word.'=1

'; + $msg .= '

'.__('It is important that you save this URL value somewhere in case you forget it, OR,', 'aiowpsecurity').'

'; + $msg .= '

'.sprintf( __('simply remember to add a "?%s=1" to your current site URL address.', 'aiowpsecurity'), $brute_force_feature_secret_word).'

'; + } + } + else + { + $aio_wp_security->configs->set_value('aiowps_enable_brute_force_attack_prevention',''); + $msg = __('You have successfully saved cookie based brute force prevention feature settings.', 'aiowpsecurity'); + } + + if(isset($_POST['aiowps_brute_force_attack_prevention_pw_protected_exception'])) + { + $aio_wp_security->configs->set_value('aiowps_brute_force_attack_prevention_pw_protected_exception','1'); + } + else + { + $aio_wp_security->configs->set_value('aiowps_brute_force_attack_prevention_pw_protected_exception',''); + } + + if(isset($_POST['aiowps_brute_force_attack_prevention_ajax_exception'])) + { + $aio_wp_security->configs->set_value('aiowps_brute_force_attack_prevention_ajax_exception','1'); + } + else + { + $aio_wp_security->configs->set_value('aiowps_brute_force_attack_prevention_ajax_exception',''); + } + + if (!$error) + { + $aio_wp_security->configs->save_config();//save the value + + //Recalculate points after the feature status/options have been altered + $aiowps_feature_mgr->check_feature_status_and_recalculate_points(); + + $res = AIOWPSecurity_Utility_Htaccess::write_to_htaccess(); + if ($res){ + echo '

'; + echo $msg; + echo '

'; + } + else if($res == -1){ + $this->show_msg_error(__('Could not write to the .htaccess file. Please check the file permissions.', 'aiowpsecurity')); + } + } + else + { + $this->show_msg_error($msg); + } + } + + ?> +

+ +
+ '.__('A Brute Force Attack is when a hacker tries many combinations of usernames and passwords until they succeed in guessing the right combination.', 'aiowpsecurity'). + '
'.__('Due to the fact that at any one time there may be many concurrent login attempts occurring on your site via malicious automated robots, this also has a negative impact on your server\'s memory and performance.', 'aiowpsecurity'). + '
'.__('The features in this tab will stop the majority of Brute Force Login Attacks at the .htaccess level thus providing even better protection for your WP login page and also reducing the load on your server because the system does not have to run PHP code to process the login attempts.', 'aiowpsecurity').'

'; + ?> +
+
+ backup'; + $video_link = 'video tutorial'; + $info_msg = sprintf( __('Even though this feature should not have any impact on your site\'s general functionality you are strongly encouraged to take a %s of your .htaccess file before proceeding.', 'aiowpsecurity'), $backup_tab_link); + $info_msg1 = __('If this feature is not used correctly, you can get locked out of your site. A backed up .htaccess file will come in handy if that happens.', 'aiowpsecurity'); + $info_msg2 = sprintf( __('To learn more about how to use this feature please watch the following %s.', 'aiowpsecurity'), $video_link); + $brute_force_login_feature_link = 'Cookie-Based Brute Force Login Prevention'; + echo '

'.$info_msg. + '
'.$info_msg1. + '
'.$info_msg2.'

'; + ?> +
+ configs->get_value('aiowps_enable_brute_force_attack_prevention')=='1') + { + ?> +
+

+
+ + + +
+

+
+ output_feature_details_badge("firewall-enable-brute-force-attack-prevention"); + ?> +
+ + + + + + + + + + + + + + + + + + + + + + +
: + configs->get_value('aiowps_enable_brute_force_attack_prevention')=='1') echo ' checked="checked"'; ?> value="1"/> + + + +
+

+ '; + _e('To use this feature do the following:', 'aiowpsecurity'); + echo '
'; + _e('1) Enable the checkbox.', 'aiowpsecurity'); + echo '
'; + _e('2) Enter a secret word consisting of alphanumeric characters which will be difficult to guess. This secret word will be useful whenever you need to know the special URL which you will use to access the login page (see point below).', 'aiowpsecurity'); + echo '
'; + _e('3) You will then be provided with a special login URL. You will need to use this URL to login to your WordPress site instead of the usual login URL. NOTE: The system will deposit a special cookie in your browser which will allow you access to the WordPress administration login page.', 'aiowpsecurity'); + echo '
'; + _e('Any person trying to access your login page who does not have the special cookie in their browser will be automatically blocked.', 'aiowpsecurity'); + ?> +

+
+
: + +
: + + + + + +
+

+ '; + _e('This field will default to: http://127.0.0.1 if you do not enter a value.', 'aiowpsecurity'); + echo '
'; + _e('Useful Tip:', 'aiowpsecurity'); + echo '
'; + _e('It\'s a good idea to not redirect attempted brute force login attempts to your site because it increases the load on your server.', 'aiowpsecurity'); + echo '
'; + _e('Redirecting a hacker or malicious bot back to "http://127.0.0.1" is ideal because it deflects them back to their own local host and puts the load on their server instead of yours.', 'aiowpsecurity'); + ?> +

+
+
: + configs->get_value('aiowps_brute_force_attack_prevention_pw_protected_exception')=='1') echo ' checked="checked"'; ?> value="1"/> + + + +
+

+ '; + _e('By enabling this checkbox the plugin will add the necessary rules and exceptions to your .htacces file so that people trying to access these pages are not automatically blocked.', 'aiowpsecurity'); + echo '
'; + echo "".__('Helpful Tip:', 'aiowpsecurity').""; + echo '
'; + _e('If you do not use the WordPress password protection feature for your posts or pages then it is highly recommended that you leave this checkbox disabled.', 'aiowpsecurity'); + ?> +

+
+
: + configs->get_value('aiowps_brute_force_attack_prevention_ajax_exception')=='1') echo ' checked="checked"'; ?> value="1"/> + + + +
+

+ '; + _e('By enabling this checkbox the plugin will add the necessary rules and exceptions to your .htacces file so that AJAX operations will work as expected.', 'aiowpsecurity'); + ?> +

+
+
+ configs->get_value('aiowps_cookie_test_success'); + $bfla_feature_enabled = $aio_wp_security->configs->get_value('aiowps_enable_brute_force_attack_prevention'); + if($cookie_test_value == '1' || $bfla_feature_enabled == '1')//If the cookie test is successful or if the feature is already enabled then go ahead as normal + { + if (isset($_REQUEST['aiowps_cookie_test'])) + {//Cookie test was just performed and the test succeded + echo '

'; + _e('The cookie test was successful. You can now enable this feature.', 'aiowpsecurity'); + echo '

'; + } + echo ''; + } + else + { + //Cookie test needs to be performed + if(isset($_REQUEST['aiowps_cookie_test']) && $cookie_test_value != '1'){//Test failed + echo '

'; + _e('The cookie test failed on this server. So this feature cannot be used on this site.', 'aiowpsecurity'); + echo '

'; + } + + echo '

'; + _e("Before using this feature you are required to perform a cookie test first. This is to make sure that your browser cookie is working correctly and that you won't lock yourself out.", 'aiowpsecurity'); + echo '

'; + echo ''; + } + ?> +
+
+ debug_logger->log_debug("Nonce check failed on captcha settings save!",4); + die("Nonce check failed on captcha settings save!"); + } + + + //Save all the form values to the options + $random_20_digit_string = AIOWPSecurity_Utility::generate_alpha_numeric_random_string(20); //Generate random 20 char string for use during captcha encode/decode + $aio_wp_security->configs->set_value('aiowps_captcha_secret_key', $random_20_digit_string); + $aio_wp_security->configs->set_value('aiowps_enable_login_captcha',isset($_POST["aiowps_enable_login_captcha"])?'1':''); + $aio_wp_security->configs->set_value('aiowps_enable_custom_login_captcha',isset($_POST["aiowps_enable_custom_login_captcha"])?'1':''); + $aio_wp_security->configs->set_value('aiowps_enable_lost_password_captcha',isset($_POST["aiowps_enable_lost_password_captcha"])?'1':''); + $aio_wp_security->configs->save_config(); + + //Recalculate points after the feature status/options have been altered + $aiowps_feature_mgr->check_feature_status_and_recalculate_points(); + + $this->show_msg_settings_updated(); + } + ?> +
+ '.__('This feature allows you to add a captcha form on the WordPress login page.', 'aiowpsecurity').' +
'.__('Users who attempt to login will also need to enter the answer to a simple mathematical question - if they enter the wrong answer, the plugin will not allow them login even if they entered the correct username and password.', 'aiowpsecurity').' +
'.__('Therefore, adding a captcha form on the login page is another effective yet simple "Brute Force" prevention technique.', 'aiowpsecurity').' +

'; + ?> +
+
+
+

+
+ output_feature_details_badge("user-login-captcha"); + ?> + + + + + + + +
: + configs->get_value('aiowps_enable_login_captcha')=='1') echo ' checked="checked"'; ?> value="1"/> + +
+
+
+

+
+ output_feature_details_badge("custom-login-captcha"); + ?> + + + + + +
: + configs->get_value('aiowps_enable_custom_login_captcha')=='1') echo ' checked="checked"'; ?> value="1"/> + +
+
+
+

+
+ output_feature_details_badge("lost-password-captcha"); + ?> + + + + + + +
: + configs->get_value('aiowps_enable_lost_password_captcha')=='1') echo ' checked="checked"'; ?> value="1"/> + +
+
+ +
+ debug_logger->log_debug("Nonce check failed for save whitelist settings!",4); + die(__('Nonce check failed for save whitelist settings!','aiowpsecurity')); + } + + if (isset($_POST["aiowps_enable_whitelisting"]) && empty($_POST['aiowps_allowed_ip_addresses'])) + { + $this->show_msg_error('You must submit at least one IP address!','aiowpsecurity'); + } + else + { + if (!empty($_POST['aiowps_allowed_ip_addresses'])) + { + $ip_addresses = $_POST['aiowps_allowed_ip_addresses']; + $ip_list_array = AIOWPSecurity_Utility_IP::create_ip_list_array_from_string_with_newline($ip_addresses); + $payload = AIOWPSecurity_Utility_IP::validate_ip_list($ip_list_array, 'whitelist'); + if($payload[0] == 1){ + //success case + $result = 1; + $list = $payload[1]; + $banned_ip_data = implode(PHP_EOL, $list); + $aio_wp_security->configs->set_value('aiowps_allowed_ip_addresses',$banned_ip_data); + $_POST['aiowps_allowed_ip_addresses'] = ''; //Clear the post variable for the banned address list + } + else{ + $result = -1; + $error_msg = $payload[1][0]; + $this->show_msg_error($error_msg); + } + + } + else + { + $aio_wp_security->configs->set_value('aiowps_allowed_ip_addresses',''); //Clear the IP address config value + } + + if ($result == 1) + { + $aio_wp_security->configs->set_value('aiowps_enable_whitelisting',isset($_POST["aiowps_enable_whitelisting"])?'1':''); + $aio_wp_security->configs->save_config(); //Save the configuration + + //Recalculate points after the feature status/options have been altered + $aiowps_feature_mgr->check_feature_status_and_recalculate_points(); + + $this->show_msg_settings_updated(); + + $write_result = AIOWPSecurity_Utility_Htaccess::write_to_htaccess(); //now let's write to the .htaccess file + if ($write_result == -1) + { + $this->show_msg_error(__('The plugin was unable to write to the .htaccess file. Please edit file manually.','aiowpsecurity')); + $aio_wp_security->debug_logger->log_debug("AIOWPSecurity_whitelist_Menu - The plugin was unable to write to the .htaccess file."); + } + } + } + } + ?> +

+
+ '.__('The All In One WP Security Whitelist feature gives you the option of only allowing certain IP addresses or ranges to have access to your WordPress login page.', 'aiowpsecurity').' +
'.__('This feature will deny login access for all IP addresses which are not in your whitelist as configured in the settings below.', 'aiowpsecurity').' +
'.__('The plugin achieves this by writing the appropriate directives to your .htaccess file.', 'aiowpsecurity').' +
'.__('By allowing/blocking IP addresses via the .htaccess file your are using the most secure first line of defence because login access will only be granted to whitelisted IP addresses and other addresses will be blocked as soon as they try to access your login page.', 'aiowpsecurity').' +

'; + ?> +
+
+ Cookie-Based Brute Force Login Prevention'; + echo '

'.sprintf( __('Attention: If in addition to enabling the white list feature, you also have the %s feature enabled, you will still need to use your secret word in the URL when trying to access your WordPress login page.', 'aiowpsecurity'), $brute_force_login_feature_link).'

+

'.__('These features are NOT functionally related. Having both of them enabled on your site means you are creating 2 layers of security.', 'aiowpsecurity').'

'; + ?> +
+ +
+

+
+ output_feature_details_badge("whitelist-manager-ip-login-whitelisting"); + ?> +
+ + + + + + + + + + + + + + +
: + configs->get_value('aiowps_enable_whitelisting')=='1') echo ' checked="checked"'; ?> value="1"/> + +
: + + +
+ +
+ + + +
+ '.__('Each IP address must be on a new line.', 'aiowpsecurity').'

'; + echo '

'.__('To specify an IP range use a wildcard "*" character. Acceptable ways to use wildcards is shown in the examples below:', 'aiowpsecurity').'

'; + echo '

'.__('Example 1: 195.47.89.*', 'aiowpsecurity').'

'; + echo '

'.__('Example 2: 195.47.*.*', 'aiowpsecurity').'

'; + echo '

'.__('Example 3: 195.*.*.*', 'aiowpsecurity').'

'; + ?> +
+ +
+ +
+
+ debug_logger->log_debug("Nonce check failed on honeypot settings save!",4); + die("Nonce check failed on honeypot settings save!"); + } + + + //Save all the form values to the options + $aio_wp_security->configs->set_value('aiowps_enable_login_honeypot',isset($_POST["aiowps_enable_login_honeypot"])?'1':''); + $aio_wp_security->configs->save_config(); + + //Recalculate points after the feature status/options have been altered + $aiowps_feature_mgr->check_feature_status_and_recalculate_points(); + + $this->show_msg_settings_updated(); + } + ?> +
+ '.__('This feature allows you to add a special hidden "honeypot" field on the WordPress login page. This will only be visible to robots and not humans.', 'aiowpsecurity').' +
'.__('Since robots usually fill in every input field from a login form, they will also submit a value for the special hidden honeypot field.', 'aiowpsecurity').' +
'.__('The way honeypots work is that a hidden field is placed somewhere inside a form which only robots will submit. If that field contains a value when the form is submitted then a robot has most likely submitted the form and it is consquently dealt with.', 'aiowpsecurity').' +
'.__('Therefore, if the plugin detects that this field has a value when the login form is submitted, then the robot which is attempting to login to your site will be redirected to its localhost address - http://127.0.0.1.', 'aiowpsecurity').' +

'; + ?> +
+
+
+

+
+ output_feature_details_badge("login-honeypot"); + ?> + + + + + + + +
: + configs->get_value('aiowps_enable_login_honeypot')=='1') echo ' checked="checked"'; ?> value="1"/> + +
+
+ + +
+ 'render_tab1', + 'tab2' => 'render_tab2', + 'tab3' => 'render_tab3', + ); + + function __construct() + { + $this->render_menu_page(); + } + + function set_menu_tabs() + { + $this->menu_tabs = array( + 'tab1' => __('Dashboard','aiowpsecurity'), + 'tab2' => __('System Info','aiowpsecurity'), + 'tab3' => __('Locked IP Addresses','aiowpsecurity'), + ); + } + + function get_current_tab() + { + $tab_keys = array_keys($this->menu_tabs); + $tab = isset( $_GET['tab'] ) ? $_GET['tab'] : $tab_keys[0]; + return $tab; + } + + /* + * Renders our tabs of this menu as nav items + */ + function render_menu_tabs() + { + $current_tab = $this->get_current_tab(); + + echo ''; + } + + /* + * The menu rendering goes here + */ + function render_menu_page() + { + $this->set_menu_tabs(); + $tab = $this->get_current_tab(); + ?> +
+
+ render_menu_tabs(); + //$tab_keys = array_keys($this->menu_tabs); + call_user_func(array(&$this, $this->menu_tabs_handler[$tab])); + ?> +
+
+ '; + echo '

'.__('For information, updates and documentation, please visit the','aiowpsecurity').' '.__('AIO WP Security & Firewall Plugin','aiowpsecurity').' '.__('Page','aiowpsecurity').'

'; + echo '

'.__('Follow us','aiowpsecurity').' on '.__('Twitter, Google+ or via Email to stay up to date about the new security features of this plugin.','aiowpsecurity').'

'; + echo ''; + + echo "";//Include the google chart library + + global $aiowps_feature_mgr; + global $aio_wp_security; + $feature_mgr = $aiowps_feature_mgr; + $total_site_security_points = $feature_mgr->get_total_site_points(); + $total_security_points_achievable = $feature_mgr->get_total_achievable_points(); + + ?> +
+ +
+
+

+
+ + +
+ + + +
+
+ +
+
+

+
+ + feature_items; + $pt_src_chart_data = ""; + $pt_src_chart_data .= "['Feature Name', 'Points'],"; + foreach($feature_items as $item) + { + if($item->feature_status == $feature_mgr->feature_active) + { + $pt_src_chart_data .= "['".$item->feature_name."', ".$item->item_points."],"; + } + } + + ?> + +
+ +
+
+ +
+ +
+ +
+
+

+
+ + feature_items; + $username_admin_feature = $feature_mgr->get_feature_item_by_id("user-accounts-change-admin-user"); + echo ''; + echo '
'; + + $login_lockdown_feature = $feature_mgr->get_feature_item_by_id("user-login-login-lockdown"); + echo ''; + echo '
'; + + $filesystem_feature = $feature_mgr->get_feature_item_by_id("filesystem-file-permissions"); + echo ''; + echo '
'; + + $basic_firewall_feature = $feature_mgr->get_feature_item_by_id("firewall-basic-rules"); + echo ''; + echo '
'; + ?> +
+
+ +
+
+

+
+ get_results("SELECT * FROM $login_activity_table ORDER BY $orderby $order LIMIT 5", ARRAY_A); //Get the last 50 records + + if ($data == NULL){ + echo '

'.__('No data found!','aiowpsecurity').'

'; + + }else{ + $login_summary_table = ''; + echo '

'.__('Last 5 logins summary:','aiowpsecurity').'

'; + $login_summary_table .= ''; + $login_summary_table .= ''; + $login_summary_table .= ''; + $login_summary_table .= ''; + $login_summary_table .= ''; + $login_summary_table .= ''; + $login_summary_table .= ''; + $login_summary_table .= ''; + foreach ($data as $entry) { + $login_summary_table .= ''; + $login_summary_table .= ''; + $login_summary_table .= ''; + $login_summary_table .= ''; + $login_summary_table .= ''; + } + $login_summary_table .= '
'.__('User','aiowpsecurity').''.__('Date','aiowpsecurity').''.__('IP','aiowpsecurity').'
'.$entry['user_login'].''.$entry['login_date'].''.$entry['login_ip'].'
'; + echo $login_summary_table; + } + + echo '
'; + ?> +
+
+ +
+
+

+
+ configs->get_value('aiowps_site_lockout') == '1'){ + echo '

'.__('Maintenance mode is currently enabled. Remember to turn it off when you are done','aiowpsecurity').'

'; + } + else{ + echo '

'.__('Maintenance mode is currently off.','aiowpsecurity').'

'; + } + + echo ''; + echo '
'; + ?> +
+
+ + configs->get_value('aiowps_enable_brute_force_attack_prevention')=='1'){ + ?> +
+
+

+
+ '.__('Cookie-Based Brute Force','aiowpsecurity').''; + $brute_force_feature_secret_word = $aio_wp_security->configs->get_value('aiowps_brute_force_secret_word'); + echo '
'; + + echo '

'.sprintf( __('The %s feature is currently active.', 'aiowpsecurity'), $brute_force_login_feature_link).'

'; + echo '

'.__('Your new WordPress login URL is now:','aiowpsecurity').'

'; + echo '

'.AIOWPSEC_WP_URL.'/?'.$brute_force_feature_secret_word.'=1

'; + echo '
'; //yellow box div + echo '
'; + ?> +
+
+ configs->get_value('aiowps_enable_rename_login_page')=='1'){ + ?> +
+
+

+
+ '.__('Rename Login Page','aiowpsecurity').''; + echo '
'; + + echo '

'.sprintf( __('The %s feature is currently active.', 'aiowpsecurity'), $rename_login_feature_link).'

'; + echo '

'.__('Your new WordPress login URL is now:','aiowpsecurity').'

'; + echo '

'.$home_url.$aio_wp_security->configs->get_value('aiowps_login_page_slug').'

'; + echo '
'; //yellow box div + echo '
'; + ?> +
+
+ configs->get_value('aiowps_enable_automated_fcd_scan') == '1'){ + + echo '
'; + echo '
'; + echo '

'; + echo '
'; + + if($aio_wp_security->configs->get_value('aiowps_fcds_change_detected')){ + echo '
File change detected!
'; + echo '

Please review the changes from the scanner menu

'; + } + else{ + echo '
No recent file changes detected.
'; + } + + echo '
'; + echo '
';// + }//End if statement for automated scan box + ?> + +
+
+

+
+ Logged In Users'; + if (AIOWPSecurity_Utility::is_multisite_install()) + { + $logged_in_users = get_site_transient('users_online'); + $num_users = count($logged_in_users); + if($num_users > 1) + { + echo '

'.__('Number of users currently logged in site-wide is:','aiowpsecurity').' '.$num_users.'

'; + $info_msg = '

'.sprintf( __('Go to the %s menu to see more details', 'aiowpsecurity'), $users_online_link).'

'; + echo $info_msg.'
'; + } + else + { + echo '

'.__('There are no other site-wide users currently logged in.','aiowpsecurity').'

'; + } + } + else + { + $logged_in_users = get_transient('users_online'); + if ($logged_in_users === false || $logged_in_users == NULL) + { + $num_users = 0; + } + else + { + $num_users = count($logged_in_users); + } + if($num_users > 1) + { + echo '

'.__('Number of users currently logged into your site (including you) is:','aiowpsecurity').' '.$num_users.'

'; + $info_msg = '

'.sprintf( __('Go to the %s menu to see more details', 'aiowpsecurity'), $users_online_link).'

'; + echo $info_msg.'
'; + } + else + { + echo '

'.__('There are no other users currently logged in.','aiowpsecurity').'

'; + } + } + ?> +
+
+ +
+
+

+
+ Locked IP Addresses'; + + $locked_ips = AIOWPSecurity_Utility::get_locked_ips(); + if($locked_ips === FALSE) + { + echo '

'.__('There are no IP addresses currently locked out.','aiowpsecurity').'

'; + } + else + { + $num_ips = count($locked_ips); + echo '

'.__('Number of temporarily locked out IP addresses: ','aiowpsecurity').' '.$num_ips.'

'; + $info_msg = '

'.sprintf( __('Go to the %s menu to see more details', 'aiowpsecurity'), $locked_ips_link).'

'; + echo $info_msg.'
'; + } + + ?> +
+
+ +
+ +
+ +'; +?> + + + + + +
+

+
+ :
+ :
+ WPMU:
+ MySQL : db_version();?>
+ WP : prefix; ?>
+ PHP :
+ :
+ WP URL:
+ :
+ :
+ CURL :
+ :
+
+ +
+

+
+ :
+ : + +
+ + :
+ + :
+ + :
+ + :
+ + : +
+ + :
+ + : +
+ + :
+
+ +
+

+
+ + + + + + + + + + + '; + } + ?> + +
'.$plugin_details['Name'].''.$plugin_details['Version'].''.$plugin_details['PluginURI'].'
+
+ delete_lockdown_records(strip_tags($_REQUEST['lockdown_id'])); + } + + if($_REQUEST['action'] == 'unlock_ip'){ //Unlock link was clicked for a row in list table + $locked_ip_list->unlock_ip_range(strip_tags($_REQUEST['lockdown_id'])); + } + } + + ?> +
+

+
+ prepare_items(); + //echo "put table of locked entries here"; + ?> +
+ + + '; + } + ?> + + display(); ?> +
+
+ + 'render_tab1', + 'tab2' => 'render_tab2', + ); + + function __construct() + { + $this->render_menu_page(); + } + + function set_menu_tabs() + { + if (AIOWPSecurity_Utility::is_multisite_install() && get_current_blog_id() != 1){ + //Suppress the DB prefix change tab if site is a multi site AND not the main site + $this->menu_tabs = array( + //'tab1' => __('DB Prefix', 'aiowpsecurity'), + 'tab2' => __('DB Backup', 'aiowpsecurity'), + ); + }else{ + $this->menu_tabs = array( + 'tab1' => __('DB Prefix', 'aiowpsecurity'), + 'tab2' => __('DB Backup', 'aiowpsecurity'), + ); + } + + } + + function get_current_tab() + { + $tab_keys = array_keys($this->menu_tabs); + $tab = isset( $_GET['tab'] ) ? $_GET['tab'] : $tab_keys[0]; + return $tab; + } + + /* + * Renders our tabs of this menu as nav items + */ + function render_menu_tabs() + { + $current_tab = $this->get_current_tab(); + + echo ''; + } + + /* + * The menu rendering goes here + */ + function render_menu_page() + { + $this->set_menu_tabs(); + $tab = $this->get_current_tab(); + ?> +
+
+ render_menu_tabs(); + //$tab_keys = array_keys($this->menu_tabs); + call_user_func(array(&$this, $this->menu_tabs_handler[$tab])); + ?> +
+
+ prefix; + $new_db_prefix = ''; + $perform_db_change = false; + + if (isset($_POST['aiowps_db_prefix_change']))//Do form submission tasks + { + $nonce=$_REQUEST['_wpnonce']; + if (!wp_verify_nonce($nonce, 'aiowpsec-db-prefix-change-nonce')) + { + $aio_wp_security->debug_logger->log_debug("Nonce check failed for DB prefix change operation!",4); + die(__('Nonce check failed for DB prefix change operation!','aiowpsecurity')); + } + + //Let's first check if user's system allows writing to wp-config.php file. If plugin cannot write to wp-config we will not do the prefix change. + $config_file = ABSPATH.'wp-config.php'; + $file_write = AIOWPSecurity_Utility_File::is_file_writable($config_file); + if (!$file_write) + { + $this->show_msg_error(__('The plugin has detected that it cannot write to the wp-config.php file. This feature can only be used if the plugin can successfully write to the wp-config.php file.', 'aiowpsecurity')); + } + else + { + if( isset($_POST['aiowps_enable_random_prefix'])) + {//User has elected to generate a random DB prefix + $string = AIOWPSecurity_Utility::generate_alpha_numeric_random_string('6'); + $new_db_prefix = $string . '_'; + $perform_db_change = true; + }else + { + if (empty($_POST['aiowps_new_manual_db_prefix'])) + { + $this->show_msg_error(__('Please enter a value for the DB prefix.', 'aiowpsecurity')); + } + else + { + //User has chosen their own DB prefix value + $new_db_prefix = wp_strip_all_tags( trim( $_POST['aiowps_new_manual_db_prefix'] ) ); + $error = $wpdb->set_prefix( $new_db_prefix ); + if(is_wp_error($error)) + { + wp_die( __('ERROR: The table prefix can only contain numbers, letters, and underscores.', 'aiowpsecurity') ); + } + $perform_db_change = true; + } + } + } + } + ?> +

+
+ '.__('Your WordPress DB is the most important asset of your website because it contains a lot of your site\'s precious information.', 'aiowpsecurity').' +
'.__('The DB is also a target for hackers via methods such as SQL injections and malicious and automated code which targets certain tables.', 'aiowpsecurity').' +
'.__('One way to add a layer of protection for your DB is to change the default WordPress table prefix from "wp_" to something else which will be difficult for hackers to guess.', 'aiowpsecurity').' +
'.__('This feature allows you to easily change the prefix to a value of your choice or to a random value set by this plugin.', 'aiowpsecurity').' +

'; + ?> +
+ +
+

+
+ output_feature_details_badge("db-security-db-prefix"); + ?> + +
+ DB Backup'; + $info_msg = '

'.sprintf( __('It is recommended that you perform a %s before using this feature', 'aiowpsecurity'), $backup_tab_link).'

'; + echo $info_msg; + ?> +
+ +
+ + + + + + + + + + +
: + prefix; ?> + '.__('Your site is currently using the default WordPress DB prefix value of "wp_". + To increase your site\'s security you should consider changing the DB prefix value to another value.', 'aiowpsecurity').''; + } + ?> +
: + configs->get_value('aiowps_enable_random_prefix')=='1') echo ' checked="checked"'; ?> value="1"/> + +
+
+ +
+ +
+
+ change_db_prefix($old_db_prefix,$new_db_prefix); + } + } + + function render_tab2() + { + global $aio_wp_security; + global $aiowps_feature_mgr; + if (isset($_POST['aiowps_manual_db_backup'])) + { + $nonce=$_REQUEST['_wpnonce']; + if (!wp_verify_nonce($nonce, 'aiowpsec-db-manual-change-nonce')) + { + $aio_wp_security->debug_logger->log_debug("Nonce check failed for manual DB backup operation!",4); + die(__('Nonce check failed for manual DB backup operation!','aiowpsecurity')); + } + + $result = $aio_wp_security->backup_obj->execute_backup(); + if ($result) + { + $backup_file_name = $aio_wp_security->backup_obj->last_backup_file_name; + if (function_exists('is_multisite') && is_multisite()) + { + $aiowps_backup_file_path = $aio_wp_security->backup_obj->last_backup_file_dir_multisite . '/' . $backup_file_name; + } + else + { + $aiowps_backup_dir = WP_CONTENT_DIR.'/'.AIO_WP_SECURITY_BACKUPS_DIR_NAME; + $aiowps_backup_file_path = $aiowps_backup_dir. '/' . $backup_file_name; + } + echo '

'; + _e('DB Backup was successfully completed! You will receive the backup file via email if you have enabled "Send Backup File Via Email", otherwise you can retrieve it via FTP from the following directory:','aiowpsecurity'); + echo '

'; + _e('Your DB Backup File location: '); + echo ''.$aiowps_backup_file_path.''; + echo '

'; + echo '

'; + } + else + { + $aio_wp_security->debug_logger->log_debug("DB Backup - Backup operation failed!",4); + $this->show_msg_error(__('DB Backup failed. Please check the permissions of the backup directory.','aiowpsecurity')); + } + } + + if(isset($_POST['aiowps_schedule_backups']))//Do form submission tasks + { + $error = ''; + $nonce=$_REQUEST['_wpnonce']; + if (!wp_verify_nonce($nonce, 'aiowpsec-scheduled-backup-nonce')) + { + $aio_wp_security->debug_logger->log_debug("Nonce check failed on scheduled DB backup options save!",4); + die("Nonce check failed on scheduled DB backup options save!"); + } + + $backup_frequency = sanitize_text_field($_POST['aiowps_db_backup_frequency']); + if(!is_numeric($backup_frequency)) + { + $error .= '
'.__('You entered a non numeric value for the "backup time interval" field. It has been set to the default value.','aiowpsecurity'); + $backup_frequency = '4';//Set it to the default value for this field + } + + $files_to_keep = sanitize_text_field($_POST['aiowps_backup_files_stored']); + if(!is_numeric($files_to_keep)) + { + $error .= '
'.__('You entered a non numeric value for the "number of backup files to keep" field. It has been set to the default value.','aiowpsecurity'); + $files_to_keep = '2';//Set it to the default value for this field + } + + $email_address = sanitize_email($_POST['aiowps_backup_email_address']); + if(!is_email($email_address)) + { + $error .= '
'.__('You have entered an incorrect email address format. It has been set to your WordPress admin email as default.','aiowpsecurity'); + $email_address = get_bloginfo('admin_email'); //Set the default value to the blog admin email + } + + if($error) + { + $this->show_msg_error(__('Attention!','aiowpsecurity').$error); + } + + //Save all the form values to the options + $aio_wp_security->configs->set_value('aiowps_enable_automated_backups',isset($_POST["aiowps_enable_automated_backups"])?'1':''); + $aio_wp_security->configs->set_value('aiowps_db_backup_frequency',absint($backup_frequency)); + $aio_wp_security->configs->set_value('aiowps_db_backup_interval',$_POST["aiowps_db_backup_interval"]); + $aio_wp_security->configs->set_value('aiowps_backup_files_stored',absint($files_to_keep)); + $aio_wp_security->configs->set_value('aiowps_send_backup_email_address',isset($_POST["aiowps_send_backup_email_address"])?'1':''); + $aio_wp_security->configs->set_value('aiowps_backup_email_address',$email_address); + $aio_wp_security->configs->save_config(); + + //Recalculate points after the feature status/options have been altered + $aiowps_feature_mgr->check_feature_status_and_recalculate_points(); + $this->show_msg_settings_updated(); + + //Let's check if backup interval was set to less than 24 hours + if (isset($_POST["aiowps_enable_automated_backups"]) && ($backup_frequency < 24) && $_POST["aiowps_db_backup_interval"]==0) + { + $alert_user_msg = 'ATTENTION: You have configured your backups to occur at least once daily. For most websites we recommended that you choose a less frequent backup + schedule such as once every few days, once a week or once a month. Choosing a less frequent schedule will also help reduce your server load.'; + $this->show_msg_updated_st(__($alert_user_msg, 'aiowpsecurity')); + } + } + + ?> +
+

+
+
+ + + + + +
+ +
+
+
+

+
+ output_feature_details_badge("db-security-db-backup"); + ?> + +
+ + + + + + + + + + + + + + + + + + +
: + configs->get_value('aiowps_enable_automated_backups')=='1') echo ' checked="checked"'; ?> value="1"/> + +
: + + +
: + +
: + configs->get_value('aiowps_send_backup_email_address')=='1') echo ' checked="checked"'; ?> value="1"/> + +
+ +
+ +
+
+ + get_mysql_tables(DB_NAME); //Fix for deprecated php mysql_list_tables function + + //Count the number of tables + //$num_rows = mysql_num_rows( $result ); + if (is_array($result) && count($result) > 0){ + $num_rows = count($result); + }else{ + echo '

'.__('Error - Could not get tables or no tables found!', 'aiowpsecurity').'

'; + return; + } + $table_count = 0; + //TODO - after reading up on internationalization mixed with html code I found that the WP experts say to do it as below. We will need to clean up other areas where we haven't used the following convention + $info_msg_string = '

'.__('Starting DB prefix change operations.....', 'aiowpsecurity').'

'; + + $info_msg_string .= '

'.sprintf( __('Your WordPress system has a total of %s tables and your new DB prefix will be: %s', 'aiowpsecurity'), ''.$num_rows.'', ''.$table_new_prefix.'').'

'; + echo ($info_msg_string); + + //Do a back of the config file + if(!AIOWPSecurity_Utility_File::backup_and_rename_wp_config($config_file)) + { + echo '

'.__('Failed to make a backup of the wp-config.php file. This operation will not go ahead.', 'aiowpsecurity').'

'; + return; + } + else{ + echo '

'.__('A backup copy of your wp-config.php file was created successfully!', 'aiowpsecurity').'

'; + } + + //Rename all the table names + foreach ($result as $db_table) + { + //Get table name with old prefix + $table_old_name = $db_table; + + if ( strpos( $table_old_name, $table_old_prefix ) === 0 ) + { + //Get table name with new prefix + $table_new_name = $table_new_prefix . substr( $table_old_name, $old_prefix_length ); + + //Write query to rename tables name + $sql = "RENAME TABLE `".$table_old_name."` TO `".$table_new_name."`"; + //$sql = "RENAME TABLE %s TO %s"; + + //Execute the query + if ( false === $wpdb->query($sql) ) + { + $error = 1; + echo '

'.sprintf( __('%s table name update failed', 'aiowpsecurity'), ''.$table_old_name.'').'

'; + $aio_wp_security->debug_logger->log_debug("DB Security Feature - Unable to change prefix of table ".$table_old_name,4); + } else { + $table_count++; + } + } else + { + continue; + } + } + if ( @$error == 1 ) + { + echo '

'.sprintf( __('Please change the prefix manually for the above tables to: %s', 'aiowpsecurity'), ''.$table_new_prefix.'').'

'; + } else + { + echo '

'.sprintf( __('%s tables had their prefix updated successfully!', 'aiowpsecurity'), ''.$table_count.'').'

'; + } + + //Get wp-config.php file contents and modify it with new info + $config_contents = file($config_file); + $prefix_match_string = '$table_prefix='; //this is our search string for the wp-config.php file + foreach ($config_contents as $line_num => $line) { + $no_ws_line = preg_replace( '/\s+/', '', $line ); //Strip white spaces + if(strpos($no_ws_line, $prefix_match_string) !== FALSE){ + $config_contents[$line_num] = str_replace($table_old_prefix, $table_new_prefix, $line); + break; + } + } + //Now let's modify the wp-config.php file + if (AIOWPSecurity_Utility_File::write_content_to_file($config_file, $config_contents)) + { + echo '

'. __('wp-config.php file was updated successfully!', 'aiowpsecurity').'

'; + }else + { + echo '

'.sprintf( __('The "wp-config.php" file was not able to be modified. Please modify this file manually using your favourite editor and search + for variable "$table_prefix" and assign the following value to that variable: %s', 'aiowpsecurity'), ''.$table_new_prefix.'').'

'; + $aio_wp_security->debug_logger->log_debug("DB Security Feature - Unable to modify wp-config.php",4); + } + + //Now let's update the options table + $update_option_table_query = "UPDATE " . $table_new_prefix . "options + SET option_name = '".$table_new_prefix ."user_roles' + WHERE option_name = '".$table_old_prefix."user_roles' + LIMIT 1"; + + if ( false === $wpdb->query($update_option_table_query) ) + { + echo "

Changing value: ", + $table_old_prefix, + "user_roles in table ", + $table_new_prefix, + "options to ", + $table_new_prefix, + "user_roles

"; + + echo '

'.sprintf( __('There was an error when updating the options table.', 'aiowpsecurity')).'

'; + $aio_wp_security->debug_logger->log_debug("DB Security Feature - Error when updating the options table",4);//Log the highly unlikely event of DB error + } else + { + echo '

'.sprintf( __('The options table records which had references to the old DB prefix were updated successfully!', 'aiowpsecurity')).'

'; + } + //Now let's update the user meta table + $custom_sql = "SELECT user_id, meta_key + FROM " . $table_new_prefix . "usermeta + WHERE meta_key + LIKE '" . $table_old_prefix . "%'"; + + $meta_keys = $wpdb->get_results( $custom_sql ); + + $error_update_usermeta = ''; + + //Update all meta_key field values which have the old table prefix in user_meta table + foreach ($meta_keys as $meta_key ) { + + //Create new meta key + $new_meta_key = $table_new_prefix . substr( $meta_key->meta_key, $old_prefix_length ); + + $update_user_meta_sql = "UPDATE " . $table_new_prefix . "usermeta + SET meta_key='" . $new_meta_key . "' + WHERE meta_key='" . $meta_key->meta_key . "' + AND user_id='" . $meta_key->user_id."'"; + + if (false === $wpdb->query($update_user_meta_sql)) + { + $error_update_usermeta .= '

'.sprintf( __('Error updating user_meta table where new meta_key = %s, old meta_key = %s and user_id = %s.', 'aiowpsecurity'),$new_meta_key,$meta_key->meta_key,$meta_key->user_id).'

'; + echo $error_update_usermeta; + $aio_wp_security->debug_logger->log_debug("DB Security Feature - Error updating user_meta table where new meta_key = ".$new_meta_key." old meta_key = ".$meta_key->meta_key." and user_id = ".$meta_key->user_id,4);//Log the highly unlikely event of DB error + } + + } + echo '

'.__('The usermeta table records which had references to the old DB prefix were updated successfully!', 'aiowpsecurity').'

'; + //Display tasks finished message + $tasks_finished_msg_string = '

'. __('DB prefix change tasks have been completed.', 'aiowpsecurity').'

'; + echo ($tasks_finished_msg_string); + } + + /** + * This is an alternative to the deprecated "mysql_list_tables" + * Returns an array of table names + */ + function get_mysql_tables($database='') + { + global $aio_wp_security; + $tables = array(); + $list_tables_sql = "SHOW TABLES FROM {$database};"; + $mysqli = new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME); + + if ($mysqli->connect_errno) { + $aio_wp_security->debug_logger->log_debug("AIOWPSecurity_Database_Menu->get_mysql_tables() - DB connection error.",4); + return false; + } + + if ($result = $mysqli->query($list_tables_sql, MYSQLI_USE_RESULT)) { + //$temp = $result->fetch_all(); + + //Alternative way to get the tables + while ($row = $result->fetch_assoc()) { + foreach( $row AS $value ) { + $tables[] = $value; + } + //var_dump($row); + //$key = 'Tables_in_'.$database; + + } +// foreach($temp as $res){ +// $tables[] = $res[0]; +// } + $result->close(); + } + $mysqli->close(); + return $tables; + } + +} //end class \ No newline at end of file diff --git a/all-in-one-wp-security/admin/wp-security-filescan-menu.php b/all-in-one-wp-security/admin/wp-security-filescan-menu.php new file mode 100644 index 0000000..a92557b --- /dev/null +++ b/all-in-one-wp-security/admin/wp-security-filescan-menu.php @@ -0,0 +1,538 @@ + 'render_tab1', + 'tab2' => 'render_tab2', + 'tab3' => 'render_tab3', + ); + + function __construct() + { + $this->render_menu_page(); + } + + function set_menu_tabs() + { + $this->menu_tabs = array( + 'tab1' => __('File Change Detection','aiowpsecurity'), + 'tab2' => __('Malware Scan','aiowpsecurity'), + 'tab3' => __('DB Scan','aiowpsecurity'), + ); + } + + function get_current_tab() + { + $tab_keys = array_keys($this->menu_tabs); + $tab = isset( $_GET['tab'] ) ? $_GET['tab'] : $tab_keys[0]; + return $tab; + } + + /* + * Renders our tabs of this menu as nav items + */ + function render_menu_tabs() + { + $current_tab = $this->get_current_tab(); + + echo ''; + } + + /* + * The menu rendering goes here + */ + function render_menu_page() + { + $this->set_menu_tabs(); + $tab = $this->get_current_tab(); + ?> +
+
+ render_menu_tabs(); + //$tab_keys = array_keys($this->menu_tabs); + call_user_func(array(&$this, $this->menu_tabs_handler[$tab])); + ?> +
+
+ configs->set_value('aiowps_fcds_change_detected', FALSE); + $aio_wp_security->configs->save_config(); + + //Display the last scan results + $this->display_last_scan_results(); + } + + if (isset($_POST['aiowps_view_last_fcd_results'])) + { + //Display the last scan results + if (!$this->display_last_scan_results()){ + $this->show_msg_updated(__('There have been no file changes since the last scan.', 'aiowpsecurity')); + } + } + + if (isset($_POST['aiowps_manual_fcd_scan'])) + { + $nonce=$_REQUEST['_wpnonce']; + if (!wp_verify_nonce($nonce, 'aiowpsec-fcd-manual-scan-nonce')) + { + $aio_wp_security->debug_logger->log_debug("Nonce check failed for manual file change detection scan operation!",4); + die(__('Nonce check failed for manual file change detection scan operation!','aiowpsecurity')); + } + + $result = $aio_wp_security->scan_obj->execute_file_change_detection_scan(); + //If this is first scan display special message + if ($result['initial_scan'] == 1) + { + $this->show_msg_updated(__('The plugin has detected that this is your first file change detection scan. The file details from this scan will be used to detect file changes for future scans!','aiowpsecurity')); + }else if(!$aio_wp_security->configs->get_value('aiowps_fcds_change_detected')){ + $this->show_msg_updated(__('Scan Complete - There were no file changes detected!', 'aiowpsecurity')); + } + } + + if(isset($_POST['aiowps_schedule_fcd_scan']))//Do form submission tasks + { + $error = ''; + $reset_scan_data = FALSE; + $file_types = ''; + $files = ''; + + $nonce=$_REQUEST['_wpnonce']; + if (!wp_verify_nonce($nonce, 'aiowpsec-scheduled-fcd-scan-nonce')) + { + $aio_wp_security->debug_logger->log_debug("Nonce check failed for file change detection scan options save!",4); + die("Nonce check failed for file change detection scan options save!"); + } + + $fcd_scan_frequency = sanitize_text_field($_POST['aiowps_fcd_scan_frequency']); + if(!is_numeric($fcd_scan_frequency)) + { + $error .= '
'.__('You entered a non numeric value for the "backup time interval" field. It has been set to the default value.','aiowpsecurity'); + $fcd_scan_frequency = '4';//Set it to the default value for this field + } + + if (!empty($_POST['aiowps_fcd_exclude_filetypes'])) + { + $file_types = trim($_POST['aiowps_fcd_exclude_filetypes']); + //$file_types_array = preg_split( '/\r\n|\r|\n/', $file_types ); + + //Get the currently saved config value and check if this has changed. If so do another scan to reset the scan data so it omits these filetypes + if ($file_types != $aio_wp_security->configs->get_value('aiowps_fcd_exclude_filetypes')) + { + $reset_scan_data = TRUE; + } + } + + if (!empty($_POST['aiowps_fcd_exclude_files'])) + { + $files = trim($_POST['aiowps_fcd_exclude_files']); + //Get the currently saved config value and check if this has changed. If so do another scan to reset the scan data so it omits these files/dirs + if ($files != $aio_wp_security->configs->get_value('aiowps_fcd_exclude_files')) + { + $reset_scan_data = TRUE; + } + + } + + $email_address = sanitize_email($_POST['aiowps_fcd_scan_email_address']); + if(!is_email($email_address)) + { + $error .= '

'.__('You have entered an incorrect email address format. It has been set to your WordPress admin email as default.','aiowpsecurity').'

'; + $email_address = get_bloginfo('admin_email'); //Set the default value to the blog admin email + } + + if($error) + { + $this->show_msg_error(__('Attention!','aiowpsecurity').$error); + } + + //Save all the form values to the options + $aio_wp_security->configs->set_value('aiowps_enable_automated_fcd_scan',isset($_POST["aiowps_enable_automated_fcd_scan"])?'1':''); + $aio_wp_security->configs->set_value('aiowps_fcd_scan_frequency',absint($fcd_scan_frequency)); + $aio_wp_security->configs->set_value('aiowps_fcd_scan_interval',$_POST["aiowps_fcd_scan_interval"]); + $aio_wp_security->configs->set_value('aiowps_fcd_exclude_filetypes',$file_types); + $aio_wp_security->configs->set_value('aiowps_fcd_exclude_files',$files); + $aio_wp_security->configs->set_value('aiowps_send_fcd_scan_email',isset($_POST["aiowps_send_fcd_scan_email"])?'1':''); + $aio_wp_security->configs->set_value('aiowps_fcd_scan_email_address',$email_address); + $aio_wp_security->configs->save_config(); + + //Recalculate points after the feature status/options have been altered + $aiowps_feature_mgr->check_feature_status_and_recalculate_points(); + $this->show_msg_settings_updated(); + + //Let's check if backup interval was set to less than 24 hours + if (isset($_POST["aiowps_enable_automated_fcd_scan"]) && ($fcd_scan_frequency < 24) && $_POST["aiowps_fcd_scan_interval"]==0) + { + $alert_user_msg = 'ATTENTION: You have configured your file change detection scan to occur at least once daily. For most websites we recommended that you choose a less frequent + schedule such as once every few days, once a week or once a month. Choosing a less frequent schedule will also help reduce your server load.'; + $this->show_msg_updated(__($alert_user_msg, 'aiowpsecurity')); + } + + if($reset_scan_data) + { + //Clear old scan row and ask user to perform a fresh scan to reset the data + $aiowps_global_meta_tbl_name = AIOWPSEC_TBL_GLOBAL_META_DATA; + $where = array('meta_key1' => 'file_change_detection', 'meta_value1' => 'file_scan_data'); + $wpdb->delete( $aiowps_global_meta_tbl_name, $where); + $result = $aio_wp_security->scan_obj->execute_file_change_detection_scan(); + $new_scan_alert = __('NEW SCAN COMPLETED: The plugin has detected that you have made changes to the "File Types To Ignore" or "Files To Ignore" fields. + In order to ensure that future scan results are accurate, the old scan data has been refreshed.', 'aiowpsecurity'); + $this->show_msg_updated($new_scan_alert); + } + + } + + //Display an alert warning message if a file change was detected + if ($aio_wp_security->configs->get_value('aiowps_fcds_change_detected')) + { + $error_msg = __('All In One WP Security & Firewall has detected that there was a change in your host\'s files.', 'aiowpsecurity'); + + $button = '
'; + $error_msg .= $button; + $this->show_msg_error($error_msg); + } + + + ?> +
+ '.__('If given an opportunity hackers can insert their code or files into your system which they can then use to carry out malicious acts on your site.', 'aiowpsecurity'). + '
'.__('Being informed of any changes in your files can be a good way to quickly prevent a hacker from causing damage to your website.', 'aiowpsecurity'). + '
'.__('In general, WordPress core and plugin files and file types such as ".php" or ".js" should not change often and when they do, it is important that you are made aware when a change occurs and which file was affected.', 'aiowpsecurity'). + '
'.__('The "File Change Detection Feature" will notify you of any file change which occurs on your system, including the addition and deletion of files by performing a regular automated or manual scan of your system\'s files.', 'aiowpsecurity'). + '
'.__('This feature also allows you to exclude certain files or folders from the scan in cases where you know that they change often as part of their normal operation. (For example log files and certain caching plugin files may change often and hence you may choose to exclude such files from the file change detection scan)', 'aiowpsecurity').'

'; + ?> +
+ +
+

+
+
+ + + + + +
+ +
+
+
+

+
+
+ + + + + +
+ +
+
+
+

+
+ output_feature_details_badge("scan-file-change-detection"); + ?> + +
+ + + + + + + + + + + + + + + + + + + + + + +
: + configs->get_value('aiowps_enable_automated_fcd_scan')=='1') echo ' checked="checked"'; ?> value="1"/> + +
: + + +
: +
+ + + +
+ '.__('You can exclude file types from the scan which would not normally pose any security threat if they were changed. These can include things such as image files.', 'aiowpsecurity').'

'; + echo '

'.__('Example: If you want the scanner to ignore files of type jpg, png, and bmp, then you would enter the following:', 'aiowpsecurity').'

'; + echo '

'.__('jpg', 'aiowpsecurity').'

'; + echo '

'.__('png', 'aiowpsecurity').'

'; + echo '

'.__('bmp', 'aiowpsecurity').'

'; + ?> +
+
: +
+ + + +
+ '.__('You can exclude specific files/directories from the scan which would not normally pose any security threat if they were changed. These can include things such as log files.', 'aiowpsecurity').'

'; + echo '

'.__('Example: If you want the scanner to ignore certain files in different directories or whole directories, then you would enter the following:', 'aiowpsecurity').'

'; + echo '

'.__('cache/config/master.php', 'aiowpsecurity').'

'; + echo '

'.__('somedirectory', 'aiowpsecurity').'

'; + ?> +
+
: + configs->get_value('aiowps_send_fcd_scan_email')=='1') echo ' checked="checked"'; ?> value="1"/> + +
+ +
+ +
+
+ + +
+ '.__('What is Malware?', 'aiowpsecurity').''; + echo '

'.__('The word Malware stands for Malicious Software. It can consist of things like trojan horses, adware, worms, spyware and any other undesirable code which a hacker will try to inject into your website.', 'aiowpsecurity').'

'. + '

'.__('Often when malware code has been inserted into your site you will normally not notice anything out of the ordinary based on appearances, but it can have a dramatic effect on your site’s search ranking.', 'aiowpsecurity').'

'. + '

'.__('This is because the bots and spiders from search engines such as Google have the capability to detect malware when they are indexing the pages on your site, and consequently they can blacklist your website which will in turn affect your search rankings.', 'aiowpsecurity').'

'; + + $site_scanners_link = 'CLICK HERE'; + + echo '

'.__('Scanning For Malware', 'aiowpsecurity').'

'; + echo '

'.__('Due to the constantly changing and complex nature of Malware, scanning for such things using a standalone plugin will not work reliably. This is something best done via an external scan of your site regularly.', 'aiowpsecurity').'

'. + '

'.__('This is why we have created an easy-to-use scanning service which is hosted off our own server which will scan your site for malware once every day and notify you if it finds anything.', 'aiowpsecurity').'

'; + echo '

'.__('When you sign up for this service you will get the following:', 'aiowpsecurity').'

'; + echo ''; + echo '

'.sprintf(__('To learn more please %s.', 'aiowpsecurity'), $site_scanners_link).'

'; + ?> +
+ + '; + echo '

'.__('This feature performs a basic database scan which will look for any common suspicious-looking strings and javascript and html code in some of the Wordpress core tables.', 'aiowpsecurity'); + echo ''; + + echo '

'; + echo '

This feature can give you false positive result. We have temporarily deactivated this feature to make sure you don\'t lose some data on a false positive. We will re-introduced this feature after we rework it.

'; + echo '
'; + + return;//This feature is temporarily deactivated while we re-work the interface + + global $wpdb, $aio_wp_security; + $perform_db_scan = false; + if (isset($_POST['aiowps_manual_db_scan'])) + { + $nonce=$_REQUEST['_wpnonce']; + if (!wp_verify_nonce($nonce, 'aiowpsec-manual-db-scan-nonce')) + { + $aio_wp_security->debug_logger->log_debug("Nonce check failed for manual db scan operation!",4); + die(__('Nonce check failed for manual db scan operation!','aiowpsecurity')); + } + + $perform_db_scan = true; + } + + + ?> +
+ Malware Scan'; + echo '

'.__('This feature will perform a basic database scan which will look for any common suspicious-looking strings and javascript and html code in some of the Wordpress core tables.', 'aiowpsecurity'). + '
'.__('If the scan finds anything it will list all "potentially" malicious results but it is up to you to verify whether a result is a genuine example of a hacking attack or a false positive.', 'aiowpsecurity'). + '
'.__('As well as scanning for generic strings commonly used in malicious cases, this feature will also scan for some of the known "pharma" hack entries and if it finds any it will automatically delete them.', 'aiowpsecurity'). + '
'.__('The WordPress core tables scanned by this feature include: posts, postmeta, comments, links, users, usermeta, and options tables.', 'aiowpsecurity').'

'; + ?> +
+ +
+

+
+
+ + + + + +
+ +
+
+ scan_obj->execute_db_scan(); + echo $result; +// if ($result == 1) +// { +// $error_msg = '

'.__('The plugin has detected that there are some potentially suspicious entries in your database.', 'aiowpsecurity').'

'; +// $error_msg .= '

'.__('Please verify the results listed below to confirm whether the entries detected are genuinely suspicious or if they are false positives.', 'aiowpsecurity').'

'; +// $this->show_msg_error($error_msg); +// }else{ +// $this->show_msg_updated(__('The basic database scan was completed and no suspicious entries were detected.', 'aiowpsecurity')); +// } + } + } + + + /* + * Outputs the last scan results in a postbox + */ + function display_last_scan_results() + { + global $wpdb, $aio_wp_security; + //Let's get the results array from the DB + $query = "SELECT * FROM ".AIOWPSEC_TBL_GLOBAL_META_DATA." WHERE meta_key1='file_change_detection'"; + $scan_db_data = $wpdb->get_row($query, ARRAY_A); + if ($scan_db_data === NULL) + { + $aio_wp_security->debug_logger->log_debug("display_last_scan_results() - DB query for scan results data from global meta table returned NULL!",4); + return FALSE; + } + $date_last_scan = $scan_db_data['date_time']; + $scan_results_unserialized = maybe_unserialize($scan_db_data['meta_value5']); + if (empty($scan_results_unserialized['files_added']) && empty($scan_results_unserialized['files_removed']) && empty($scan_results_unserialized['files_changed'])){ + //No file change detected + return FALSE; + } + ?> +
+

+
+ '.__('The following files were added to your host.', 'aiowpsecurity').'
'; + $files_added_output .= ''; + $files_added_output .= ''; + $files_added_output .= ''; + $files_added_output .= ''; + $files_added_output .= ''; + $files_added_output .= ''; + foreach ($scan_results_unserialized['files_added'] as $key=>$value) { + $files_added_output .= ''; + $files_added_output .= ''; + $files_added_output .= ''; + $files_added_output .= ''; + $files_added_output .= ''; + } + $files_added_output .= '
'.__('File','aiowpsecurity').''.__('File Size','aiowpsecurity').''.__('File Modified','aiowpsecurity').'
'.$key.''.$value['filesize'].''.date('Y-m-d H:i:s',$value['last_modified']).'
'; + echo $files_added_output; + } + echo '
'; + if (!empty($scan_results_unserialized['files_removed'])) + { + //Output table of files removed + echo '
'.__('The following files were removed from your host.', 'aiowpsecurity').'
'; + $files_removed_output .= ''; + $files_removed_output .= ''; + $files_removed_output .= ''; + $files_removed_output .= ''; + $files_removed_output .= ''; + $files_removed_output .= ''; + foreach ($scan_results_unserialized['files_removed'] as $key=>$value) { + $files_removed_output .= ''; + $files_removed_output .= ''; + $files_removed_output .= ''; + $files_removed_output .= ''; + $files_removed_output .= ''; + } + $files_removed_output .= '
'.__('File','aiowpsecurity').''.__('File Size','aiowpsecurity').''.__('File Modified','aiowpsecurity').'
'.$key.''.$value['filesize'].''.date('Y-m-d H:i:s',$value['last_modified']).'
'; + echo $files_removed_output; + + } + + echo '
'; + + if (!empty($scan_results_unserialized['files_changed'])) + { + //Output table of files changed + echo '
'.__('The following files were changed on your host.', 'aiowpsecurity').'
'; + $files_changed_output .= ''; + $files_changed_output .= ''; + $files_changed_output .= ''; + $files_changed_output .= ''; + $files_changed_output .= ''; + $files_changed_output .= ''; + foreach ($scan_results_unserialized['files_changed'] as $key=>$value) { + $files_changed_output .= ''; + $files_changed_output .= ''; + $files_changed_output .= ''; + $files_changed_output .= ''; + $files_changed_output .= ''; + } + $files_changed_output .= '
'.__('File','aiowpsecurity').''.__('File Size','aiowpsecurity').''.__('File Modified','aiowpsecurity').'
'.$key.''.$value['filesize'].''.date('Y-m-d H:i:s',$value['last_modified']).'
'; + echo $files_changed_output; + } + + ?> +
+ 'render_tab1', + 'tab2' => 'render_tab2', + 'tab3' => 'render_tab3', + 'tab4' => 'render_tab4', + ); + + function __construct() + { + $this->render_menu_page(); + add_action( 'admin_footer', array( &$this, 'filesystem_menu_footer_code' ) ); + } + + function set_menu_tabs() + { + $this->menu_tabs = array( + 'tab1' => __('File Permissions','aiowpsecurity'), + 'tab2' => __('PHP File Editing','aiowpsecurity'), + 'tab3' => __('WP File Access','aiowpsecurity'), + 'tab4' => __('Host System Logs','aiowpsecurity'), + ); + } + + function get_current_tab() + { + $tab_keys = array_keys($this->menu_tabs); + $tab = isset( $_GET['tab'] ) ? $_GET['tab'] : $tab_keys[0]; + return $tab; + } + + /* + * Renders our tabs of this menu as nav items + */ + function render_menu_tabs() + { + $current_tab = $this->get_current_tab(); + + echo ''; + } + + /* + * The menu rendering goes here + */ + function render_menu_page() + { + $this->set_menu_tabs(); + $tab = $this->get_current_tab(); + ?> +
+
+ render_menu_tabs(); + //$tab_keys = array_keys($this->menu_tabs); + call_user_func(array(&$this, $this->menu_tabs_handler[$tab])); + ?> +
+
+ debug_logger->log_debug("Nonce check failed for manual DB backup operation!",4); + die(__('Nonce check failed for manual DB backup operation!','aiowpsecurity')); + } + if (isset($_POST['aiowps_permission_chg_file'])) + { + $folder_or_file = $_POST['aiowps_permission_chg_file']; + $rec_perm_oct_string = $_POST['aiowps_recommended_permissions']; //Convert the octal string to dec so the chmod func will accept it + $rec_perm_dec = octdec($rec_perm_oct_string); //Convert the octal string to dec so the chmod func will accept it + $perm_result = @chmod($_POST['aiowps_permission_chg_file'], $rec_perm_dec); + if ($perm_result === true) + { + $msg = sprintf( __('The permissions for %s were succesfully changed to %s', 'aiowpsecurity'), $folder_or_file, $rec_perm_oct_string); + $this->show_msg_updated($msg); + }else if($perm_result === false) + { + $msg = sprintf( __('Unable to change permissions for %s!', 'aiowpsecurity'), $folder_or_file); + $this->show_msg_error($msg); + } + } + } + ?> +

+
+ '.__('Your WordPress file and folder permission settings govern the accessability and read/write privileges of the files and folders which make up your WP installation.', 'aiowpsecurity').' +
'.__('Your WP installation already comes with reasonably secure file permission settings for the filesystem.', 'aiowpsecurity').' +
'.__('However, sometimes people or other plugins modify the various permission settings of certain core WP folders or files such that they end up making their site less secure because they chose the wrong permission values.', 'aiowpsecurity').' +
'.__('This feature will scan the critical WP core folders and files and will highlight any permission settings which are insecure.', 'aiowpsecurity').' +

'; + ?> +
+ +
+

+
+ output_feature_details_badge("filesystem-file-permissions"); + ?> +
+ + + + + + + + + + + + + files_and_dirs_to_check; + foreach ($files_dirs_to_check as $file_or_dir) + { + $this->show_wp_filesystem_permission_status($file_or_dir['name'],$file_or_dir['path'],$file_or_dir['permissions']); + } + ?> + + + + + + + + + +
+
+
+ debug_logger->log_debug("Nonce check failed on disable PHP file edit options save!",4); + die("Nonce check failed on disable PHP file edit options save!"); + } + + if(isset($_POST['aiowps_disable_file_editing'])) + { + + $res = AIOWPSecurity_Utility::disable_file_edits();//$this->disable_file_edits(); + } else + { + $res = AIOWPSecurity_Utility::enable_file_edits();//$this->enable_file_edits(); + } + if ($res) + { + //Save settings if no errors + $aio_wp_security->configs->set_value('aiowps_disable_file_editing',isset($_POST["aiowps_disable_file_editing"])?'1':''); + $aio_wp_security->configs->save_config(); + + //Recalculate points after the feature status/options have been altered + $aiowps_feature_mgr->check_feature_status_and_recalculate_points(); + $this->show_msg_updated(__('Your PHP file editing settings were saved successfully.', 'aiowpsecurity')); + } + else + { + $this->show_msg_error(__('Operation failed! Unable to modify or make a backup of wp-config.php file!', 'aiowpsecurity')); + } + //$this->show_msg_settings_updated(); + + } + ?> +

+
+ '.__('The Wordpress Dashboard by default allows administrators to edit PHP files, such as plugin and theme files.', 'aiowpsecurity').' +
'.__('This is often the first tool an attacker will use if able to login, since it allows code execution.', 'aiowpsecurity').' +
'.__('This feature will disable the ability for people to edit PHP files via the dashboard.', 'aiowpsecurity').' +

'; + ?> +
+ +
+

+
+ output_feature_details_badge("filesystem-file-editing"); + ?> + +
+ + + + + + +
: + configs->get_value('aiowps_disable_file_editing')=='1') echo ' checked="checked"'; ?> value="1"/> + +
+ +
+
+ debug_logger->log_debug("Nonce check failed on enable basic firewall settings!",4); + die("Nonce check failed on enable basic firewall settings!"); + } + + //Save settings + if(isset($_POST['aiowps_prevent_default_wp_file_access'])) + { + $aio_wp_security->configs->set_value('aiowps_prevent_default_wp_file_access','1'); + } + else + { + $aio_wp_security->configs->set_value('aiowps_prevent_default_wp_file_access',''); + } + + //Commit the config settings + $aio_wp_security->configs->save_config(); + + //Recalculate points after the feature status/options have been altered + $aiowps_feature_mgr->check_feature_status_and_recalculate_points(); + + //Now let's write the applicable rules to the .htaccess file + $res = AIOWPSecurity_Utility_Htaccess::write_to_htaccess(); + + if ($res) + { + $this->show_msg_updated(__('You have successfully saved the Prevent Access to Default WP Files configuration.', 'aiowpsecurity')); + } + else if($res == -1) + { + $this->show_msg_error(__('Could not write to the .htaccess file. Please check the file permissions.', 'aiowpsecurity')); + } + } + + ?> +

+
+ '.$info_msg.'

'.'

'.__('By preventing access to these files you are hiding some key pieces of information (such as WordPress version info) from potential hackers.', 'aiowpsecurity').'

'; + ?> +
+ +
+

+
+ output_feature_details_badge("block-wp-files-access"); + ?> +
+ + + + + + +
: + configs->get_value('aiowps_prevent_default_wp_file_access')=='1') echo ' checked="checked"'; ?> value="1"/> + +
+ +
+
+ configs->set_value('aiowps_system_log_file',$sys_log_file); + }else{ + $sys_log_file = 'error_log'; + $aio_wp_security->configs->set_value('aiowps_system_log_file',$sys_log_file); + } + $aio_wp_security->configs->save_config(); + }else{ + $sys_log_file = $aio_wp_security->configs->get_value('aiowps_system_log_file'); + } + + ?> +

+
+ '.__('Sometimes your hosting platform will produce error or warning logs in a file called "error_log".', 'aiowpsecurity').' +
'.__('Depending on the nature and cause of the error or warning, your hosting server can create multiple instances of this file in numerous directory locations of your WordPress installation.', 'aiowpsecurity').' +
'.__('By occassionally viewing the contents of these logs files you can keep informed of any underlying problems on your system which you might need to address.', 'aiowpsecurity').' +

'; + ?> +
+ +
+

+
+

Please click the button below to view the latest system logs:

+
+ +
: + + +
+
+ + + <?php __('Loading...', 'aiowpsecurity'); ?> + +
+
+ debug_logger->log_debug("Nonce check failed on view system log operation!",4); + die("Nonce check failed on view system log operation!"); + } + + $logResults = AIOWPSecurity_Utility_File::recursive_file_search($sys_log_file, 0, ABSPATH); + if (empty($logResults) || $logResults == NULL || $logResults == '' || $logResults === FALSE) + { + $this->show_msg_updated(__('No system logs were found!', 'aiowpsecurity')); + } + else + { + foreach($logResults as $file) + { + $this->display_system_logs_in_table($file); + } + } + } + } + + /* + * Scans WP key core files and directory permissions and populates a wp wide_fat table + * Displays a red background entry with a "Fix" button for permissions which are "777" + * Displays a yellow background entry with a "Fix" button for permissions which are less secure than the recommended + * Displays a green entry for permissions which are as secure or better than the recommended + */ + function show_wp_filesystem_permission_status($name,$path,$recommended) + { + $fix = false; + $configmod = AIOWPSecurity_Utility_File::get_file_permission($path); + if ($configmod == "0777"){ + $trclass = "aio_table_row_red"; //Display a red background if permissions are set as least secure ("777") + $fix = true; + } + else if($configmod != $recommended) + { + //$res = $this->is_file_permission_secure($recommended, $configmod); + $res = AIOWPSecurity_Utility_File::is_file_permission_secure($recommended, $configmod); + if ($res) + { + $trclass = "aio_table_row_green"; //If the current permissions are even tighter than recommended then display a green row + $fix = true; + } + else + { + $trclass = "aio_table_row_yellow"; //Display a yellow background if permissions are set to something different than recommended + $fix = true; + } + } + else + { + $trclass = "aio_table_row_green"; + } + echo ""; + echo '' . $name . ""; + echo ''. $path .""; + echo '' . $configmod . ''; + echo '' . $recommended . ''; + if ($fix) + { + echo ' + + + + '; + } else + { + echo ''.__('No Action Required', 'aiowpsecurity').''; + } + echo ""; + } + + + + function filesystem_menu_footer_code() + { + ?> + + debug_logger->log_debug("AIOWPSecurity_Filesystem_Menu - Unable to read file: ".$filepath,4); + + } + $last_50_entries = array_slice($error_file_contents, -50); //extract the last 50 entries + ?> + + + + + + + + "; + echo '"; + echo ""; + } + ?> + +
'.$filepath.'')); ?>
' . $entry . "
+ 'render_tab1', + 'tab2' => 'render_tab2', + 'tab3' => 'render_tab3', + 'tab4' => 'render_tab4', + 'tab5' => 'render_tab5', + 'tab6' => 'render_tab6', + ); + + function __construct() + { + $this->render_menu_page(); + } + + function set_menu_tabs() + { + $this->menu_tabs = array( + 'tab1' => __('Basic Firewall Rules', 'aiowpsecurity'), + 'tab2' => __('Additional Firewall Rules', 'aiowpsecurity'), + 'tab3' => __('5G Blacklist Firewall Rules', 'aiowpsecurity'), + 'tab4' => __('Internet Bots', 'aiowpsecurity'), + 'tab5' => __('Prevent Hotlinks', 'aiowpsecurity'), + 'tab6' => __('404 Detection', 'aiowpsecurity'), + ); + } + + function get_current_tab() + { + $tab_keys = array_keys($this->menu_tabs); + $tab = isset( $_GET['tab'] ) ? $_GET['tab'] : $tab_keys[0]; + return $tab; + } + + /* + * Renders our tabs of this menu as nav items + */ + function render_menu_tabs() + { + $current_tab = $this->get_current_tab(); + + echo ''; + } + + /* + * The menu rendering goes here + */ + function render_menu_page() + { + $this->set_menu_tabs(); + $tab = $this->get_current_tab(); + ?> +
+
+ render_menu_tabs(); + //$tab_keys = array_keys($this->menu_tabs); + call_user_func(array(&$this, $this->menu_tabs_handler[$tab])); + ?> +
+
+ debug_logger->log_debug("Nonce check failed on enable basic firewall settings!",4); + die("Nonce check failed on enable basic firewall settings!"); + } + + //Save settings + if(isset($_POST['aiowps_enable_basic_firewall'])) + { + $aio_wp_security->configs->set_value('aiowps_enable_basic_firewall','1'); + } + else + { + $aio_wp_security->configs->set_value('aiowps_enable_basic_firewall',''); + } + + $aio_wp_security->configs->set_value('aiowps_enable_pingback_firewall',isset($_POST["aiowps_enable_pingback_firewall"])?'1':''); + + //Commit the config settings + $aio_wp_security->configs->save_config(); + + //Recalculate points after the feature status/options have been altered + $aiowps_feature_mgr->check_feature_status_and_recalculate_points(); + + //Now let's write the applicable rules to the .htaccess file + $res = AIOWPSecurity_Utility_Htaccess::write_to_htaccess(); + + if ($res) + { + $this->show_msg_updated(__('Settings were successfully saved', 'aiowpsecurity')); + } + else if($res == -1) + { + $this->show_msg_error(__('Could not write to the .htaccess file. Please check the file permissions.', 'aiowpsecurity')); + } + } + + ?> +

+
+ + +
+ backup'; + $info_msg = sprintf( __('This should not have any impact on your site\'s general functionality but if you wish you can take a %s of your .htaccess file before proceeding.', 'aiowpsecurity'), $backup_tab_link); + echo '

'.__('The features in this tab allow you to activate some basic firewall security protection rules for your site.', 'aiowpsecurity'). + '
'.__('The firewall functionality is achieved via the insertion of special code into your currently active .htaccess file.', 'aiowpsecurity'). + '
'.$info_msg.'

'; + ?> +
+ configs->get_value('aiowps_enable_pingback_firewall')=='1') + { + ?> +
+

+

+

+
+ + + +
+

+
+ output_feature_details_badge("firewall-basic-rules"); + ?> + + + + + +
: + configs->get_value('aiowps_enable_basic_firewall')=='1') echo ' checked="checked"'; ?> value="1"/> + + + +
+ '.__('This setting will implement the following basic firewall protection mechanisms on your site:', 'aiowpsecurity').'

'; + echo '

'.__('1) Protect your htaccess file by denying access to it.', 'aiowpsecurity').'

'; + echo '

'.__('2) Disable the server signature.', 'aiowpsecurity').'

'; + echo '

'.__('3) Limit file upload size (10MB).', 'aiowpsecurity').'

'; + echo '

'.__('4) Protect your wp-config.php file by denying access to it.', 'aiowpsecurity').'

'; + echo '

'.__('The above firewall features will be applied via your .htaccess file and should not affect your site\'s overall functionality.', 'aiowpsecurity').'

'; + echo '

'.__('You are still advised to take a backup of your active .htaccess file just in case.', 'aiowpsecurity').'

'; + ?> +
+
+
+ +
+

+
+ output_feature_details_badge("firewall-pingback-rules"); + ?> + + + + + +
: + configs->get_value('aiowps_enable_pingback_firewall')=='1') echo ' checked="checked"'; ?> value="1"/> + + + +
+ '.__('This setting will add a directive in your .htaccess to disable access to the WordPress xmlrpc.php file which is responsible for the XML-RPC functionality such as pingbacks in WordPress.', 'aiowpsecurity').'

'; + echo '

'.__('Hackers can exploit various pingback vulnerabilities in the WordPress XML-RPC API in a number of ways such as:', 'aiowpsecurity').'

'; + echo '

'.__('1) Denial of Service (DoS) attacks', 'aiowpsecurity').'

'; + echo '

'.__('2) Hacking internal routers.', 'aiowpsecurity').'

'; + echo '

'.__('3) Scanning ports in internal networks to get info from various hosts.', 'aiowpsecurity').'

'; + echo '

'.__('Apart from the security protection benefit, this feature may also help reduce load on your server, particularly if your site currently has a lot of unwanted traffic hitting the XML-RPC API on your installation.', 'aiowpsecurity').'

'; + echo '

'.__('NOTE: You should only enable this feature if you are not currently using the XML-RPC functionality on your WordPress installation.', 'aiowpsecurity').'

'; + ?> +
+
+
+ +
+ debug_logger->log_debug("Nonce check failed on enable advanced firewall settings!",4); + die("Nonce check failed on enable advanced firewall settings!"); + } + + //Save settings + if(isset($_POST['aiowps_disable_index_views'])) + { + $aio_wp_security->configs->set_value('aiowps_disable_index_views','1'); + } + else + { + $aio_wp_security->configs->set_value('aiowps_disable_index_views',''); + } + + if(isset($_POST['aiowps_disable_trace_and_track'])) + { + $aio_wp_security->configs->set_value('aiowps_disable_trace_and_track','1'); + } + else + { + $aio_wp_security->configs->set_value('aiowps_disable_trace_and_track',''); + } + + if(isset($_POST['aiowps_forbid_proxy_comments'])) + { + $aio_wp_security->configs->set_value('aiowps_forbid_proxy_comments','1'); + } + else + { + $aio_wp_security->configs->set_value('aiowps_forbid_proxy_comments',''); + } + + if(isset($_POST['aiowps_deny_bad_query_strings'])) + { + $aio_wp_security->configs->set_value('aiowps_deny_bad_query_strings','1'); + } + else + { + $aio_wp_security->configs->set_value('aiowps_deny_bad_query_strings',''); + } + + if(isset($_POST['aiowps_advanced_char_string_filter'])) + { + $aio_wp_security->configs->set_value('aiowps_advanced_char_string_filter','1'); + } + else + { + $aio_wp_security->configs->set_value('aiowps_advanced_char_string_filter',''); + } + + //Commit the config settings + $aio_wp_security->configs->save_config(); + + //Now let's write the applicable rules to the .htaccess file + $res = AIOWPSecurity_Utility_Htaccess::write_to_htaccess(); + + if ($res) + { + $this->show_msg_updated(__('You have successfully saved the Additional Firewall Protection configuration', 'aiowpsecurity')); + } + else if($res == -1) + { + $this->show_msg_error(__('Could not write to the .htaccess file. Please check the file permissions.', 'aiowpsecurity')); + } + + if($error) + { + $this->show_msg_error($error); + } + + } + ?> +

+
+ backup'; + $info_msg = sprintf( __('Due to the nature of the code being inserted to the .htaccess file, this feature may break some functionality for certain plugins and you are therefore advised to take a %s of .htaccess before applying this configuration.', 'aiowpsecurity'), $backup_tab_link); + + echo '

'.__('This feature allows you to activate more advanced firewall settings to your site.', 'aiowpsecurity'). + '
'.__('The advanced firewall rules are applied via the insertion of special code to your currently active .htaccess file.', 'aiowpsecurity'). + '
'.$info_msg.'

'; + ?> +
+ +
+ + +
+

+
+ output_feature_details_badge("firewall-disable-index-views"); + ?> + + + + + +
: + configs->get_value('aiowps_disable_index_views')=='1') echo ' checked="checked"'; ?> value="1"/> + + + +
+

+ '; + _e('This feature will prevent the listing of contents for all directories.', 'aiowpsecurity'); + echo '
'; + _e('NOTE: In order for this feature to work "AllowOverride" of the Indexes directive must be enabled in your httpd.conf file. Ask your hosting provider to check this if you don\'t have access to httpd.conf', 'aiowpsecurity'); + ?> +

+
+
+
+
+

+
+ output_feature_details_badge("firewall-disable-trace-track"); + ?> + + + + + +
: + configs->get_value('aiowps_disable_trace_and_track')=='1') echo ' checked="checked"'; ?> value="1"/> + + + +
+

+ '; + _e('This hacking technique is usually used together with cross site scripting attacks (XSS).', 'aiowpsecurity'); + echo '
'; + _e('Disabling trace and track on your site will help prevent HTTP Trace attacks.', 'aiowpsecurity'); + ?> +

+
+
+
+
+

+
+ output_feature_details_badge("firewall-forbid-proxy-comments"); + ?> + + + + + + +
: + configs->get_value('aiowps_forbid_proxy_comments')=='1') echo ' checked="checked"'; ?> value="1"/> + + + +
+

+ '.__('By forbidding proxy comments you are in effect eliminating some SPAM and other proxy requests.', 'aiowpsecurity'); + ?> +

+
+
+
+
+

+
+ output_feature_details_badge("firewall-deny-bad-queries"); + ?> + + + + + + +
: + configs->get_value('aiowps_deny_bad_query_strings')=='1') echo ' checked="checked"'; ?> value="1"/> + + + +
+

+ '.__('NOTE: Some of these strings might be used for plugins or themes and hence this might break some functionality.', 'aiowpsecurity'); + echo '
'.__('You are therefore strongly advised to take a backup of your active .htaccess file before applying this feature.', 'aiowpsecurity').''; + ?> +

+
+
+
+
+

+
+ output_feature_details_badge("firewall-advanced-character-string-filter"); + ?> + + + + + + +
: + configs->get_value('aiowps_advanced_char_string_filter')=='1') echo ' checked="checked"'; ?> value="1"/> + + + +
+

+ '.__('This setting matches for common malicious string patterns and exploits and will produce a 403 error for the hacker attempting the query.', 'aiowpsecurity'); + echo '
'.__('NOTE: Some strings for this setting might break some functionality.', 'aiowpsecurity'); + echo '
'.__('You are therefore strongly advised to take a backup of your active .htaccess file before applying this feature.', 'aiowpsecurity').''; + ?> +

+
+
+
+ +
+ debug_logger->log_debug("Nonce check failed on enable 5G firewall settings!",4); + die("Nonce check failed on enable 5G firewall settings!"); + } + + //Save settings + if(isset($_POST['aiowps_enable_5g_firewall'])) + { + $aio_wp_security->configs->set_value('aiowps_enable_5g_firewall','1'); + } + else + { + $aio_wp_security->configs->set_value('aiowps_enable_5g_firewall',''); + } + + //Commit the config settings + $aio_wp_security->configs->save_config(); + + //Now let's write the applicable rules to the .htaccess file + $res = AIOWPSecurity_Utility_Htaccess::write_to_htaccess(); + + if ($res) + { + $this->show_msg_updated(__('You have successfully saved the 5G Firewall Protection configuration', 'aiowpsecurity')); + } + else if($res == -1) + { + $this->show_msg_error(__('Could not write to the .htaccess file. Please check the file permissions.', 'aiowpsecurity')); + } + } + + ?> +

+
+ backup'; + $info_msg = '

'.sprintf( __('This feature allows you to activate the 5G firewall security protection rules designed and produced by %s.', 'aiowpsecurity'), 'Perishable Press').'

'; + $info_msg .= '

'.__('The 5G Blacklist is a simple, flexible blacklist that helps reduce the number of malicious URL requests that hit your website.', 'aiowpsecurity').'

'; + $info_msg .= '

'.__('The added advantage of applying the 5G firewall to your site is that it has been tested and confirmed by the people at PerishablePress.com to be an optimal and least disruptive set of .htaccess security rules for general WP sites running on an Apache server or similar.', 'aiowpsecurity').'

'; + $info_msg .= '

'.sprintf( __('Therefore the 5G firewall rules should not have any impact on your site\'s general functionality but if you wish you can take a %s of your .htaccess file before proceeding.', 'aiowpsecurity'), $backup_tab_link).'

'; + echo $info_msg; + ?> +
+ +
+

+
+ output_feature_details_badge("firewall-enable-5g-blacklist"); + ?> + +
+ + + + + + +
: + configs->get_value('aiowps_enable_5g_firewall')=='1') echo ' checked="checked"'; ?> value="1"/> + + + +
+ '.__('This setting will implement the 5G security firewall protection mechanisms on your site which include the following things:', 'aiowpsecurity').'

'; + echo '

'.__('1) Block forbidden characters commonly used in exploitative attacks.', 'aiowpsecurity').'

'; + echo '

'.__('2) Block malicious encoded URL characters such as the ".css(" string.', 'aiowpsecurity').'

'; + echo '

'.__('3) Guard against the common patterns and specific exploits in the root portion of targeted URLs.', 'aiowpsecurity').'

'; + echo '

'.__('4) Stop attackers from manipulating query strings by disallowing illicit characters.', 'aiowpsecurity').'

'; + echo '

'.__('....and much more.', 'aiowpsecurity').'

'; + ?> +
+
+ +
+
+ debug_logger->log_debug("Nonce check failed for save internet bot settings!",4); + die("Nonce check failed for save internet bot settings!"); + } + + //Save settings + if(isset($_POST['aiowps_block_fake_googlebots'])) + { + $aio_wp_security->configs->set_value('aiowps_block_fake_googlebots','1'); + } + else + { + $aio_wp_security->configs->set_value('aiowps_block_fake_googlebots',''); + } + + //Commit the config settings + $aio_wp_security->configs->save_config(); + + $this->show_msg_updated(__('The Internet bot settings were successfully saved', 'aiowpsecurity')); + } + + ?> +

+
+ +
+ What is an Internet Bot'; + $info_msg .= '

'.sprintf( __('%s?', 'aiowpsecurity'), $wiki_link).'

'; + + $info_msg .= '

'. __('A bot is a piece of software which runs on the Internet and performs automatic tasks. For example when Google indexes your pages it uses automatic bots to achieve this task.', 'aiowpsecurity').'

'; + $info_msg .= '

'. __('A lot of bots are legitimate and non-malicous but not all bots are good and often you will find some which try to impersonate legitimate bots such as "Googlebot" but in reality they have nohing to do with Google at all.', 'aiowpsecurity').'

'; + $info_msg .= '

'. __('Although most of the bots out there are relatively harmless sometimes website owners want to have more control over which bots they allow into their site.', 'aiowpsecurity').'

'; + $info_msg .= '

'. __('This feature allows you to block bots which are impersonating as a Googlebot but actually aren\'t. (In other words they are fake Google bots)', 'aiowpsecurity').'

'; + $info_msg .= '

'.__('Googlebots have a unique indentity which cannot easily be forged and this feature will indentify any fake Google bots and block them from reading your site\'s pages.', 'aiowpsecurity').'

'; + echo $info_msg; + ?> +
+
+ '. __('Attention: Sometimes non-malicious Internet organizations might have bots which impersonate as a "Googlebot".', 'aiowpsecurity').'

'; + $info_msg_2 .= '

'.__('Just be aware that if you activate this feature the plugin will block all bots which use the "Googlebot" string in their User Agent information but are NOT officially from Google (irrespective whether they are malicious or not).', 'aiowpsecurity').'

'; + $info_msg_2 .= '

'.__('All other bots from other organizations such as "Yahoo", "Bing" etc will not be affected by this feature.', 'aiowpsecurity').'

'; + echo $info_msg_2; + ?> +
+ +
+

+
+ output_feature_details_badge("firewall-block-fake-googlebots"); + ?> + + + + + + +
: + configs->get_value('aiowps_block_fake_googlebots')=='1') echo ' checked="checked"'; ?> value="1"/> + + + +
+ '.__('This feature will check if the User Agent information of a bot contains the string "Googlebot".', 'aiowpsecurity').'

'; + echo '

'.__('It will then perform a few tests to verify if the bot is legitimately from Google and if so it will allow the bot to proceed.', 'aiowpsecurity').'

'; + echo '

'.__('If the bot fails the checks then the plugin will mark it as being a fake Googlebot and it will block it', 'aiowpsecurity').'

'; + ?> +
+
+
+ +
+ debug_logger->log_debug("Nonce check failed on prevent hotlinking options save!",4); + die("Nonce check failed on prevent hotlinking options save!"); + } + $aio_wp_security->configs->set_value('aiowps_prevent_hotlinking',isset($_POST["aiowps_prevent_hotlinking"])?'1':''); + $aio_wp_security->configs->save_config(); + + //Recalculate points after the feature status/options have been altered + $aiowps_feature_mgr->check_feature_status_and_recalculate_points(); + + //Now let's write the applicable rules to the .htaccess file + $res = AIOWPSecurity_Utility_Htaccess::write_to_htaccess(); + + if ($res) + { + $this->show_msg_updated(__('Settings were successfully saved', 'aiowpsecurity')); + } + else if($res == -1) + { + $this->show_msg_error(__('Could not write to the .htaccess file. Please check the file permissions.', 'aiowpsecurity')); + } + } + ?> +

+
+ '.__('A Hotlink is where someone displays an image on their site which is actually located on your site by using a direct link to the source of the image on your server.', 'aiowpsecurity'); + echo '
'.__('Due to the fact that the image being displayed on the other person\'s site is coming from your server, this can cause leaking of bandwidth and resources for you because your server has to present this image for the people viewing it on someone elses\'s site.','aiowpsecurity'); + echo '
'.__('This feature will prevent people from directly hotlinking images from your site\'s pages by writing some directives in your .htaccess file.', 'aiowpsecurity').'

'; + ?> +
+ +
+

+
+ output_feature_details_badge("prevent-hotlinking"); + ?> + +
+ + + + + + +
: + configs->get_value('aiowps_prevent_hotlinking')=='1') echo ' checked="checked"'; ?> value="1"/> + +
+ +
+
+ debug_logger->log_debug("Nonce check failed for delete all 404 event logs operation!",4); + die(__('Nonce check failed for delete all 404 event logs operation!','aiowpsecurity')); + } + global $wpdb; + $events_table_name = AIOWPSEC_TBL_EVENTS; + //Delete all 404 records from the events table + $where = array('event_type' => '404'); + $result = $wpdb->delete($events_table_name, $where); + + if ($result === FALSE) + { + $aio_wp_security->debug_logger->log_debug("404 Detection Feature - Delete all 404 event logs operation failed!",4); + $this->show_msg_error(__('404 Detection Feature - Delete all 404 event logs operation failed!','aiowpsecurity')); + } + else + { + $this->show_msg_updated(__('All 404 event logs were deleted from the DB successfully!','aiowpsecurity')); + } + } + + + include_once 'wp-security-list-404.php'; //For rendering the AIOWPSecurity_List_Table in tab1 + $event_list_404 = new AIOWPSecurity_List_404(); //For rendering the AIOWPSecurity_List_Table in tab1 + + if(isset($_POST['aiowps_save_404_detect_options']))//Do form submission tasks + { + $error = ''; + $nonce=$_REQUEST['_wpnonce']; + if (!wp_verify_nonce($nonce, 'aiowpsec-404-detection-nonce')) + { + $aio_wp_security->debug_logger->log_debug("Nonce check failed on 404 detection options save!",4); + die("Nonce check failed on 404 detection options save!"); + } + + /*** Currently the aiowps_enable_404_IP_lockout option is automatically enabled when the aiowps_enable_404_IP_lockout option is enabled. ***/ + //$aio_wp_security->configs->set_value('aiowps_enable_404_logging',isset($_POST["aiowps_enable_404_logging"])?'1':''); + $aio_wp_security->configs->set_value('aiowps_enable_404_logging',isset($_POST["aiowps_enable_404_IP_lockout"])?'1':''); + $aio_wp_security->configs->set_value('aiowps_enable_404_IP_lockout',isset($_POST["aiowps_enable_404_IP_lockout"])?'1':''); + + $lockout_time_length = isset($_POST['aiowps_404_lockout_time_length'])?sanitize_text_field($_POST['aiowps_404_lockout_time_length']):''; + if(!is_numeric($lockout_time_length)) + { + $error .= '
'.__('You entered a non numeric value for the lockout time length field. It has been set to the default value.','aiowpsecurity'); + $lockout_time_length = '60';//Set it to the default value for this field + } + + $redirect_url = isset($_POST['aiowps_404_lock_redirect_url'])?trim($_POST['aiowps_404_lock_redirect_url']):''; + if ($redirect_url == '' || esc_url($redirect_url, array('http', 'https')) == ''){ + $error .= '
'.__('You entered an incorrect format for the "Redirect URL" field. It has been set to the default value.','aiowpsecurity'); + $redirect_url = 'http://127.0.0.1'; + } + + if($error) + { + $this->show_msg_error(__('Attention!','aiowpsecurity').$error); + } + + $aio_wp_security->configs->set_value('aiowps_404_lockout_time_length',absint($lockout_time_length)); + $aio_wp_security->configs->set_value('aiowps_404_lock_redirect_url',$redirect_url); + $aio_wp_security->configs->save_config(); + + //Recalculate points after the feature status/options have been altered + $aiowps_feature_mgr->check_feature_status_and_recalculate_points(); + + $this->show_msg_settings_updated(); + } + + + if(isset($_REQUEST['action'])) //Do list table form row action tasks + { + if($_REQUEST['action'] == 'temp_block'){ //Temp Block link was clicked for a row in list table + $username = isset($_REQUEST['username'])?strip_tags($_REQUEST['ip_address']):''; + $event_list_404->block_ip(strip_tags($_REQUEST['ip_address']), $username); + } + + if($_REQUEST['action'] == 'delete_event_log'){ //Unlock link was clicked for a row in list table + $event_list_404->delete_404_event_records(strip_tags($_REQUEST['id'])); + } + } + ?> +

+
+ '.__('A 404 or Not Found error occurs when somebody tries to access a non-existent page on your website.', 'aiowpsecurity').' +
'.__('Typically, most 404 errors happen quite innocently when people have mis-typed a URL or used an old link to page which doesn\'t exist anymore.', 'aiowpsecurity').' +
'.__('However, in some cases you may find many repeated 404 errors which occur in a relatively short space of time and from the same IP address which are all attempting to access a variety of non-existent page URLs.', 'aiowpsecurity').' +
'.__('Such behaviour can mean that a hacker might be trying to find a particular page or URL for sinister reasons.', 'aiowpsecurity').' +

'.__('This feature allows you to monitor all 404 events which occur on your site, and it also gives you the option of blocking IP addresses for a configured length of time.', 'aiowpsecurity').' +
'.__('If you want to temporarily block an IP address, simply click the "Temp Block" link for the applicable IP entry in the "404 Event Logs" table below.', 'aiowpsecurity').'

'; + ?> +
+ +
+

+
+ output_feature_details_badge("firewall-enable-404-blocking"); + ?> + +
+ + + + + + + + + + + + + + + +
: + configs->get_value('aiowps_enable_404_IP_lockout')=='1') echo ' checked="checked"'; ?> value="1"/> + + + +
+

+ +

+
+
: + + + +
+

+ '; + _e('To temporarily lock an IP address, hover over the ID column and click the "Temp Block" link for the applicable IP entry.', 'aiowpsecurity'); + ?> +

+
+
: + +
+ + +
+
+
+

+
+ prepare_items(); + //echo "put table of locked entries here"; + ?> +
+ + + '; + } + ?> + + display(); ?> +
+
+
+

+
+
+ + + + + +
+ +
+
+ + 'item', //singular name of the listed records + 'plural' => 'items', //plural name of the listed records + 'ajax' => false //does this table support ajax? + ) ); + + } + + function column_default($item, $column_name){ + return $item[$column_name]; + } + + function column_id($item){ + $tab = strip_tags($_REQUEST['tab']); + $ip = $item['ip_or_host']; + + $blocked_ips_tab = 'tab3'; + //Check if this IP address is locked + $is_locked = AIOWPSecurity_Utility::check_locked_ip($ip); + if($is_locked){ + //Build row actions + $actions = array( + 'unblock' => sprintf('Unblock',AIOWPSEC_MAIN_MENU_SLUG,$blocked_ips_tab), + 'delete' => sprintf('Delete',AIOWPSEC_FIREWALL_MENU_SLUG,$tab,'delete_event_log',$item['id']), + ); + + }else{ + //Build row actions + $actions = array( + 'temp_block' => sprintf('Temp Block',AIOWPSEC_FIREWALL_MENU_SLUG,$tab,'temp_block',$item['ip_or_host'],$item['username']), + 'delete' => sprintf('Delete',AIOWPSEC_FIREWALL_MENU_SLUG,$tab,'delete_event_log',$item['id']), + ); + } + + //Return the user_login contents + return sprintf('%1$s %2$s', + /*$1%s*/ $item['id'], + /*$2%s*/ $this->row_actions($actions) + ); + } + + function column_status($item){ + $ip = $item['ip_or_host']; + //Check if this IP address is locked + $is_locked = AIOWPSecurity_Utility::check_locked_ip($ip); + if($is_locked){ + return 'temporarily blocked'; + }else{ + return ''; + } + } + + function column_cb($item){ + return sprintf( + '', + /*$1%s*/ $this->_args['singular'], //Let's simply repurpose the table's singular label + /*$2%s*/ $item['id'] //The value of the checkbox should be the record's id + ); + } + + function get_columns(){ + $columns = array( + 'cb' => '', //Render a checkbox + 'id' => 'ID', + 'event_type' => 'Event Type', + 'ip_or_host' => 'IP Address', + 'url' => 'Attempted URL', + 'referer_info' => 'Referer', + 'event_date' => 'Date', + 'status' => 'Lock Status', + ); + return $columns; + } + + function get_sortable_columns() { + $sortable_columns = array( + 'id' => array('id',false), + 'event_type' => array('event_type',false), + 'ip_or_host' => array('ip_or_host',false), + 'url' => array('url',false), + 'referer_info' => array('referer_info',false), + 'event_date' => array('event_date',false), + 'status' => array('status',false), + ); + return $sortable_columns; + } + + function get_bulk_actions() { + $actions = array( + //'unlock' => 'Unlock', + 'delete' => 'Delete' + ); + return $actions; + } + + function process_bulk_action() { + if('delete'===$this->current_action()) + {//Process delete bulk actions + if(!isset($_REQUEST['item'])) + { + AIOWPSecurity_Admin_Menu::show_msg_error_st(__('Please select some records using the checkboxes','aiowpsecurity')); + }else + { + $this->delete_404_event_records(($_REQUEST['item'])); + } + } + } + + + /* + * This function will lock an IP address by adding it to the "login_lockdown" table + */ + function block_ip($entries, $username='') + { + global $wpdb; + $events_table = AIOWPSEC_TBL_LOGIN_LOCKDOWN; + if (is_array($entries)) + { + //lock multiple records + $ip_list = "(" .implode(",",$entries) .")"; //Create comma separate list for DB operation + //TODO + } elseif ($entries != NULL) + { + //Block single record + AIOWPSecurity_Utility::lock_IP($entries, '404', $username); + } + } + + /* + * This function will delete selected 404 records from the "events" table. + * The function accepts either an array of IDs or a single ID + */ + function delete_404_event_records($entries) + { + global $wpdb; + $events_table = AIOWPSEC_TBL_EVENTS; + if (is_array($entries)) + { + //Delete multiple records + $id_list = "(" .implode(",",$entries) .")"; //Create comma separate list for DB operation + $delete_command = "DELETE FROM ".$events_table." WHERE id IN ".$id_list; + $result = $wpdb->query($delete_command); + if($result != NULL) + { + AIOWPSecurity_Admin_Menu::show_msg_record_deleted_st(); + } + } + elseif ($entries != NULL) + { + //Delete single record + $delete_command = "DELETE FROM ".$events_table." WHERE id = '".absint($entries)."'"; + $result = $wpdb->query($delete_command); + if($result != NULL) + { + AIOWPSecurity_Admin_Menu::show_msg_record_deleted_st(); + } + } + } + + function prepare_items() { + /** + * First, lets decide how many records per page to show + */ + $per_page = 20; + $columns = $this->get_columns(); + $hidden = array(); + $sortable = $this->get_sortable_columns(); + + $this->_column_headers = array($columns, $hidden, $sortable); + + $this->process_bulk_action(); + + global $wpdb; + $events_table_name = AIOWPSEC_TBL_EVENTS; + + /* -- Ordering parameters -- */ + //Parameters that are going to be used to order the result + $orderby = !empty($_GET["orderby"]) ? mysql_real_escape_string($_GET["orderby"]) : 'id'; + $order = !empty($_GET["order"]) ? mysql_real_escape_string($_GET["order"]) : 'DESC'; + + $data = $wpdb->get_results("SELECT * FROM $events_table_name ORDER BY $orderby $order", ARRAY_A); + $new_data = array(); + foreach($data as $row){ + //lets insert an empty "status" column - we will use later + $row['status'] = ''; + $new_data[] = $row; + } + $current_page = $this->get_pagenum(); + $total_items = count($new_data); + $new_data = array_slice($new_data,(($current_page-1)*$per_page),$per_page); + $this->items = $new_data; + $this->set_pagination_args( array( + 'total_items' => $total_items, //WE have to calculate the total number of items + 'per_page' => $per_page, //WE have to determine how many items to show on a page + 'total_pages' => ceil($total_items/$per_page) //WE have to calculate the total number of pages + ) ); + } +} \ No newline at end of file diff --git a/all-in-one-wp-security/admin/wp-security-list-acct-activity.php b/all-in-one-wp-security/admin/wp-security-list-acct-activity.php new file mode 100644 index 0000000..d0157eb --- /dev/null +++ b/all-in-one-wp-security/admin/wp-security-list-acct-activity.php @@ -0,0 +1,159 @@ + 'item', //singular name of the listed records + 'plural' => 'items', //plural name of the listed records + 'ajax' => false //does this table support ajax? + ) ); + + } + + function column_default($item, $column_name){ + return $item[$column_name]; + } + + function column_user_id($item){ + $tab = strip_tags($_REQUEST['tab']); + //Build row actions + $actions = array( + 'delete' => sprintf('Delete',AIOWPSEC_USER_LOGIN_MENU_SLUG,$tab,'delete_acct_activity_rec',$item['id']), + ); + + //Return the user_login contents + return sprintf('%1$s %2$s', + /*$1%s*/ $item['user_id'], + /*$2%s*/ $this->row_actions($actions) + ); + } + + + function column_cb($item){ + return sprintf( + '', + /*$1%s*/ $this->_args['singular'], //Let's simply repurpose the table's singular label + /*$2%s*/ $item['id'] //The value of the checkbox should be the record's id + ); + } + + function get_columns(){ + $columns = array( + 'cb' => '', //Render a checkbox + 'user_id' => 'User ID', + 'user_login' => 'Username', + 'login_date' => 'Login Date', + 'logout_date' => 'Logout Date', + 'login_ip' => 'IP' + ); + return $columns; + } + + function get_sortable_columns() { + $sortable_columns = array( + 'user_id' => array('user_id',false), + 'user_login' => array('user_login',false), + 'login_date' => array('login_date',false), + 'login_ip' => array('login_ip',false), + 'logout_date' => array('logout_date',false), + ); + return $sortable_columns; + } + + function get_bulk_actions() { + $actions = array( + 'delete' => 'Delete' + ); + return $actions; + } + + function process_bulk_action() { + if('delete'===$this->current_action()) + {//Process delete bulk actions + if(!isset($_REQUEST['item'])) + { + $error_msg = '

'; + $error_msg .= __('Please select some records using the checkboxes','aiowpsecurity'); + $error_msg .= '

'; + _e($error_msg); + } else{ + $this->delete_login_activity_records(($_REQUEST['item'])); + } + } + } + + + + /* + * This function will delete selected records from the "user_login_activity" table. + * The function accepts either an array of IDs or a single ID + */ + function delete_login_activity_records($entries) + { + global $wpdb; + $login_activity_table = AIOWPSEC_TBL_USER_LOGIN_ACTIVITY; + if (is_array($entries)) + { + //Delete multiple records + $id_list = "(" .implode(",",$entries) .")"; //Create comma separate list for DB operation + $delete_command = "DELETE FROM ".$login_activity_table." WHERE id IN ".$id_list; + $result = $wpdb->query($delete_command); + if($result != NULL) + { + $success_msg = '

'; + $success_msg .= __('The selected entries were deleted successfully!','aiowpsecurity'); + $success_msg .= '

'; + _e($success_msg); + } + } + elseif ($entries != NULL) + { + //Delete single record + $delete_command = "DELETE FROM ".$login_activity_table." WHERE id = '".absint($entries)."'"; + $result = $wpdb->query($delete_command); + if($result != NULL) + { + $success_msg = '

'; + $success_msg .= __('The selected entry was deleted successfully!','aiowpsecurity'); + $success_msg .= '

'; + _e($success_msg); + } + } + } + + function prepare_items() { + /** + * First, lets decide how many records per page to show + */ + $per_page = 20; + $columns = $this->get_columns(); + $hidden = array(); + $sortable = $this->get_sortable_columns(); + + $this->_column_headers = array($columns, $hidden, $sortable); + + $this->process_bulk_action(); + + global $wpdb; + $login_activity_table = AIOWPSEC_TBL_USER_LOGIN_ACTIVITY; + + /* -- Ordering parameters -- */ + //Parameters that are going to be used to order the result + $orderby = !empty($_GET["orderby"]) ? mysql_real_escape_string($_GET["orderby"]) : 'login_date'; + $order = !empty($_GET["order"]) ? mysql_real_escape_string($_GET["order"]) : 'DESC'; + + $data = $wpdb->get_results("SELECT * FROM $login_activity_table ORDER BY $orderby $order LIMIT 50", ARRAY_A); //Get the last 50 records + $current_page = $this->get_pagenum(); + $total_items = count($data); + $data = array_slice($data,(($current_page-1)*$per_page),$per_page); + $this->items = $data; + $this->set_pagination_args( array( + 'total_items' => $total_items, //WE have to calculate the total number of items + 'per_page' => $per_page, //WE have to determine how many items to show on a page + 'total_pages' => ceil($total_items/$per_page) //WE have to calculate the total number of pages + ) ); + } +} \ No newline at end of file diff --git a/all-in-one-wp-security/admin/wp-security-list-comment-spammer-ip.php b/all-in-one-wp-security/admin/wp-security-list-comment-spammer-ip.php new file mode 100644 index 0000000..cb61fab --- /dev/null +++ b/all-in-one-wp-security/admin/wp-security-list-comment-spammer-ip.php @@ -0,0 +1,205 @@ + 'item', //singular name of the listed records + 'plural' => 'items', //plural name of the listed records + 'ajax' => false //does this table support ajax? + ) ); + + } + + function column_default($item, $column_name){ + return $item[$column_name]; + } + + function column_comment_author_IP($item){ + $tab = strip_tags($_REQUEST['tab']); + //Build row actions + if (AIOWPSecurity_Utility::is_multisite_install() && get_current_blog_id() != 1){ + //Suppress the block link if site is a multi site AND not the main site + $actions = array(); //blank array + }else{ + $actions = array( + 'block' => sprintf('Block',AIOWPSEC_SPAM_MENU_SLUG,$tab,'block_spammer_ip',$item['comment_author_IP']), + ); + } + + //Return the user_login contents + return sprintf('%1$s %2$s', + /*$1%s*/ $item['comment_author_IP'], + /*$2%s*/ $this->row_actions($actions) + ); + } + + + function column_cb($item){ + return sprintf( + '', + /*$1%s*/ $this->_args['singular'], //Let's simply repurpose the table's singular label + /*$2%s*/ $item['comment_author_IP'] //The value of the checkbox should be the record's id + ); + } + + function get_columns(){ + $columns = array( + 'cb' => '', //Render a checkbox + 'comment_author_IP' => 'Spammer IP', + 'amount' => 'Number of SPAM Comments From This IP', + ); + return $columns; + } + + function get_sortable_columns() { + $sortable_columns = array( + 'comment_author_IP' => array('comment_author_IP',false), + 'amount' => array('amount',false), + ); + return $sortable_columns; + } + + function get_bulk_actions() { + if (AIOWPSecurity_Utility::is_multisite_install() && get_current_blog_id() != 1){ + //Suppress the block link if site is a multi site AND not the main site + $actions = array(); //blank array + }else{ + $actions = array( + 'block' => 'Block' + ); + } + return $actions; + } + + function process_bulk_action() { + global $aio_wp_security; + if('block'===$this->current_action()) + { + //Process block bulk actions + if(!isset($_REQUEST['item'])) + { + $error_msg = '

'; + $error_msg .= __('Please select some records using the checkboxes','aiowpsecurity'); + $error_msg .= '

'; + _e($error_msg); + } else { + $this->block_spammer_ip_records(($_REQUEST['item'])); + } + } + } + + + + /* + * This function will add the selected IP addresses to the blacklist. + * The function accepts either an array of IDs or a single ID + */ + function block_spammer_ip_records($entries) + { + global $wpdb, $aio_wp_security; + $raw_banned_ip_list = $aio_wp_security->configs->get_value('aiowps_banned_ip_addresses'); + $currently_banned_ips = explode(PHP_EOL, $aio_wp_security->configs->get_value('aiowps_banned_ip_addresses')); + if (is_array($entries)) + { + //Bulk selection using checkboxes were used + foreach ($entries as $ip_add) + { + if (!empty($currently_banned_ips) && !(sizeof($currently_banned_ips) == 1 && trim($currently_banned_ips[0]) == '')) + { + //Check if the IP address is already in the blacklist. If not add it to the list. + if (!in_array($ip_add, $currently_banned_ips)) + { + $raw_banned_ip_list .= PHP_EOL.$ip_add; + } + } + else + { + //if blacklist is currently empty just add all IP addresses to the list regardless + $raw_banned_ip_list .= PHP_EOL.$ip_add; + } + } + } + else if ($entries != NULL) + { + //individual entry where "block" link was clicked + //Check if the IP address is already in the blacklist. If not add it to the list. + if (!in_array($entries, $currently_banned_ips)) + { + $raw_banned_ip_list .= PHP_EOL.$entries; + } + } + + //Let's save the selected IP addresses to the blacklist config + $aio_wp_security->configs->set_value('aiowps_banned_ip_addresses',$raw_banned_ip_list); //Save the blocked IP address config variable with the newly added addresses + $aio_wp_security->configs->save_config(); + AIOWPSecurity_Admin_Menu::show_msg_updated_st(__('The selected IP addresses were saved in the blacklist configuration settings.','aiowpsecurity')); + + //Let's check if the Enable Blacklisting flag has been set - If so, we will write the new data to the .htaccess file. + if($aio_wp_security->configs->get_value('aiowps_enable_blacklisting')=='1') + { + $write_result = AIOWPSecurity_Utility_Htaccess::write_to_htaccess(); + if ($write_result == -1) + { + AIOWPSecurity_Admin_Menu::show_msg_error_st(__('The plugin was unable to write to the .htaccess file. Please edit file manually.','aiowpsecurity')); + $aio_wp_security->debug_logger->log_debug("AIOWPSecurity_Blacklist_Menu - The plugin was unable to write to the .htaccess file."); + } + else + { + + AIOWPSecurity_Admin_Menu::show_msg_updated_st(__('The .htaccess file was successfully modified to include the selected IP addresses.','aiowpsecurity')); + } + } + else + { + $blacklist_settings_link = 'Ban Users'; + $info_msg = '

'.__('NOTE: The .htaccess file was not modified because you have disabled the "Enable IP or User Agent Blacklisting" check box.', 'aiowpsecurity'). + '
'.sprintf( __('To block these IP addresses you will need to enable the above flag in the %s menu', 'aiowpsecurity'), $blacklist_settings_link).'

'; + AIOWPSecurity_Admin_Menu::show_msg_updated_st($info_msg); + } + } + + function prepare_items() { + //First, lets decide how many records per page to show + $per_page = 20; + $columns = $this->get_columns(); + $hidden = array(); + $sortable = $this->get_sortable_columns(); + + $this->_column_headers = array($columns, $hidden, $sortable); + + $this->process_bulk_action(); + + global $wpdb; + global $aio_wp_security; + $minimum_comments_per_ip = $aio_wp_security->configs->get_value('aiowps_spam_ip_min_comments'); + if(empty($minimum_comments_per_ip)){ + $minimum_comments_per_ip = 5; + } + /* -- Ordering parameters -- */ + //Parameters that are going to be used to order the result + $orderby = !empty($_GET["orderby"]) ? mysql_real_escape_string($_GET["orderby"]) : 'amount'; + $order = !empty($_GET["order"]) ? mysql_real_escape_string($_GET["order"]) : 'DESC'; + + $sql = "SELECT comment_author_IP, COUNT(*) AS amount + FROM $wpdb->comments + WHERE comment_approved = 'spam' + GROUP BY comment_author_IP + HAVING amount >= $minimum_comments_per_ip + ORDER BY $orderby $order + "; + $data = $wpdb->get_results($sql, ARRAY_A); + $current_page = $this->get_pagenum(); + $total_items = count($data); + $data = array_slice($data,(($current_page-1)*$per_page),$per_page); + $this->items = $data; + $this->set_pagination_args( array( + 'total_items' => $total_items, //WE have to calculate the total number of items + 'per_page' => $per_page, //WE have to determine how many items to show on a page + 'total_pages' => ceil($total_items/$per_page) //WE have to calculate the total number of pages + )); + } +} \ No newline at end of file diff --git a/all-in-one-wp-security/admin/wp-security-list-locked-ip.php b/all-in-one-wp-security/admin/wp-security-list-locked-ip.php new file mode 100644 index 0000000..7eecd10 --- /dev/null +++ b/all-in-one-wp-security/admin/wp-security-list-locked-ip.php @@ -0,0 +1,196 @@ + 'item', //singular name of the listed records + 'plural' => 'items', //plural name of the listed records + 'ajax' => false //does this table support ajax? + ) ); + + } + + function column_default($item, $column_name){ + return $item[$column_name]; + } + + function column_failed_login_ip($item){ + $tab = isset($_REQUEST['tab'])?strip_tags($_REQUEST['tab']):''; + //Build row actions + $actions = array( + 'unlock' => sprintf('Unlock',AIOWPSEC_MAIN_MENU_SLUG,$tab,'unlock_ip',$item['id']), + 'delete' => sprintf('Delete',AIOWPSEC_USER_LOGIN_MENU_SLUG,$tab,'delete_blocked_ip',$item['id']), + ); + + //Return the user_login contents + return sprintf('%1$s %2$s', + /*$1%s*/ $item['failed_login_ip'], + /*$2%s*/ $this->row_actions($actions) + ); + } + + + function column_cb($item){ + return sprintf( + '', + /*$1%s*/ $this->_args['singular'], //Let's simply repurpose the table's singular label + /*$2%s*/ $item['id'] //The value of the checkbox should be the record's id + ); + } + + function get_columns(){ + $columns = array( + 'cb' => '', //Render a checkbox + 'failed_login_ip' => 'Locked IP/Range', + 'user_id' => 'User ID', + 'user_login' => 'Username', + 'lock_reason' => 'Reason', + 'lockdown_date' => 'Date Locked', + 'release_date' => 'Release Date' + ); + return $columns; + } + + function get_sortable_columns() { + $sortable_columns = array( + 'failed_login_ip' => array('failed_login_ip',false), + 'user_id' => array('user_id',false), + 'user_login' => array('user_login',false), + 'lock_reason' => array('lock_reason',false), + 'lockdown_date' => array('lockdown_date',false), + 'release_date' => array('release_date',false) + ); + return $sortable_columns; + } + + function get_bulk_actions() { + $actions = array( + 'unlock' => 'Unlock', + 'delete' => 'Delete' + ); + return $actions; + } + + function process_bulk_action() { + if('delete'===$this->current_action()) + {//Process delete bulk actions + if(!isset($_REQUEST['item'])) + { + AIOWPSecurity_Admin_Menu::show_msg_error_st(__('Please select some records using the checkboxes','aiowpsecurity')); + }else + { + $this->delete_lockdown_records(($_REQUEST['item'])); + } + } + + if('unlock'===$this->current_action()) + {//Process unlock bulk actions + if(!isset($_REQUEST['item'])) + { + AIOWPSecurity_Admin_Menu::show_msg_error_st(__('Please select some records using the checkboxes','aiowpsecurity')); + }else + { + $this->unlock_ip_range(($_REQUEST['item'])); + } + } + } + + + /* + * This function will unlock an IP range by modifying the "release_date" column of a record in the "login_lockdown" table + */ + function unlock_ip_range($entries) + { + global $wpdb; + $lockdown_table = AIOWPSEC_TBL_LOGIN_LOCKDOWN; + if (is_array($entries)) + { + //Unlock multiple records + $id_list = "(" .implode(",",$entries) .")"; //Create comma separate list for DB operation + $unlock_command = "UPDATE ".$lockdown_table." SET release_date = now() WHERE id IN ".$id_list; + $result = $wpdb->query($unlock_command); + if($result != NULL) + { + AIOWPSecurity_Admin_Menu::show_msg_updated_st(__('The selected IP entries were unlocked successfully!','aiowpsecurity')); + } + } elseif ($entries != NULL) + { + //Delete single record + $unlock_command = "UPDATE ".$lockdown_table." SET release_date = now() WHERE id = '".absint($entries)."'"; + $result = $wpdb->query($unlock_command); + if($result != NULL) + { + AIOWPSecurity_Admin_Menu::show_msg_updated_st(__('The selected IP entry was unlocked successfully!','aiowpsecurity')); + } + } + } + + /* + * This function will delete selected records from the "login_lockdown" table. + * The function accepts either an array of IDs or a single ID + */ + function delete_lockdown_records($entries) + { + global $wpdb; + $lockdown_table = AIOWPSEC_TBL_LOGIN_LOCKDOWN; + if (is_array($entries)) + { + //Delete multiple records + $id_list = "(" .implode(",",$entries) .")"; //Create comma separate list for DB operation + $delete_command = "DELETE FROM ".$lockdown_table." WHERE id IN ".$id_list; + $result = $wpdb->query($delete_command); + if($result != NULL) + { + AIOWPSecurity_Admin_Menu::show_msg_record_deleted_st(); + } + } + elseif ($entries != NULL) + { + //Delete single record + $delete_command = "DELETE FROM ".$lockdown_table." WHERE id = '".absint($entries)."'"; + $result = $wpdb->query($delete_command); + if($result != NULL) + { + AIOWPSecurity_Admin_Menu::show_msg_record_deleted_st(); + } + } + } + + function prepare_items() { + /** + * First, lets decide how many records per page to show + */ + $per_page = 20; + $columns = $this->get_columns(); + $hidden = array(); + $sortable = $this->get_sortable_columns(); + + $this->_column_headers = array($columns, $hidden, $sortable); + + $this->process_bulk_action(); + + global $wpdb; + $lockdown_table_name = AIOWPSEC_TBL_LOGIN_LOCKDOWN; + + /* -- Ordering parameters -- */ + //Parameters that are going to be used to order the result + $orderby = !empty($_GET["orderby"]) ? mysql_real_escape_string($_GET["orderby"]) : 'lockdown_date'; + $order = !empty($_GET["order"]) ? mysql_real_escape_string($_GET["order"]) : 'DESC'; + + $data = $wpdb->get_results("SELECT * FROM $lockdown_table_name WHERE release_date > now() ORDER BY $orderby $order", ARRAY_A); + //$data = $wpdb->get_results("SELECT ID, floor((UNIX_TIMESTAMP(release_date)-UNIX_TIMESTAMP(now()))/60) AS minutes_left, ". + // "failed_login_IP FROM $lockdown_table_name WHERE release_date > now()", ARRAY_A); + $current_page = $this->get_pagenum(); + $total_items = count($data); + $data = array_slice($data,(($current_page-1)*$per_page),$per_page); + $this->items = $data; + $this->set_pagination_args( array( + 'total_items' => $total_items, //WE have to calculate the total number of items + 'per_page' => $per_page, //WE have to determine how many items to show on a page + 'total_pages' => ceil($total_items/$per_page) //WE have to calculate the total number of pages + ) ); + } +} \ No newline at end of file diff --git a/all-in-one-wp-security/admin/wp-security-list-logged-in-users.php b/all-in-one-wp-security/admin/wp-security-list-logged-in-users.php new file mode 100644 index 0000000..0a6bd65 --- /dev/null +++ b/all-in-one-wp-security/admin/wp-security-list-logged-in-users.php @@ -0,0 +1,85 @@ + 'item', //singular name of the listed records + 'plural' => 'items', //plural name of the listed records + 'ajax' => false //does this table support ajax? + ) ); + + } + + function column_default($item, $column_name){ + return $item[$column_name]; + } + + + function get_columns(){ + $columns = array( + 'user_id' => 'User ID', + 'username' => 'Login Name', + 'ip_address' => 'IP Address', + ); + return $columns; + } + + function get_sortable_columns() { + $sortable_columns = array( + 'user_id' => array('user_id',false), + 'username' => array('username',false), + 'ip_address' => array('ip_address',false), + ); + return $sortable_columns; + } + + function get_bulk_actions() { + return array(); + } + + function process_bulk_action() { + } + + function prepare_items() { + //First, lets decide how many records per page to show + $per_page = 20; + $columns = $this->get_columns(); + $hidden = array(); + $sortable = $this->get_sortable_columns(); + + $this->_column_headers = array($columns, $hidden, $sortable); + + //$this->process_bulk_action(); + + global $wpdb; + global $aio_wp_security; + /* -- Ordering parameters -- */ + //Parameters that are going to be used to order the result + $orderby = !empty($_GET["orderby"]) ? mysql_real_escape_string($_GET["orderby"]) : 'user_id'; + $order = !empty($_GET["order"]) ? mysql_real_escape_string($_GET["order"]) : 'DESC'; + + $logged_in_users = (AIOWPSecurity_Utility::is_multisite_install() ? get_site_transient('users_online') : get_transient('users_online')); + + foreach ($logged_in_users as $key=>$val) + { + $userdata = get_userdata($val['user_id']); + $username = $userdata->user_login; + $val['username'] = $username; + $logged_in_users[$key] = $val; + } + $data = $logged_in_users; + $current_page = $this->get_pagenum(); + $total_items = count($data); + $data = array_slice($data,(($current_page-1)*$per_page),$per_page); + $this->items = $data; + $this->set_pagination_args( array( + 'total_items' => $total_items, //WE have to calculate the total number of items + 'per_page' => $per_page, //WE have to determine how many items to show on a page + 'total_pages' => ceil($total_items/$per_page) //WE have to calculate the total number of pages + )); + } +} \ No newline at end of file diff --git a/all-in-one-wp-security/admin/wp-security-list-login-fails.php b/all-in-one-wp-security/admin/wp-security-list-login-fails.php new file mode 100644 index 0000000..207c099 --- /dev/null +++ b/all-in-one-wp-security/admin/wp-security-list-login-fails.php @@ -0,0 +1,158 @@ + 'item', //singular name of the listed records + 'plural' => 'items', //plural name of the listed records + 'ajax' => false //does this table support ajax? + ) ); + + } + + function column_default($item, $column_name){ + return $item[$column_name]; + } + + function column_login_attempt_ip($item){ + $tab = strip_tags($_REQUEST['tab']); + //Build row actions + $actions = array( + 'delete' => sprintf('Delete',AIOWPSEC_USER_LOGIN_MENU_SLUG,$tab,'delete_failed_login_rec',$item['id']), + ); + + //Return the user_login contents + return sprintf('%1$s %2$s', + /*$1%s*/ $item['login_attempt_ip'], + /*$2%s*/ $this->row_actions($actions) + ); + } + + + function column_cb($item){ + return sprintf( + '', + /*$1%s*/ $this->_args['singular'], //Let's simply repurpose the table's singular label + /*$2%s*/ $item['id'] //The value of the checkbox should be the record's id + ); + } + + function get_columns(){ + $columns = array( + 'cb' => '', //Render a checkbox + 'login_attempt_ip' => 'Login IP Range', + 'user_id' => 'User ID', + 'user_login' => 'Username', + 'failed_login_date' => 'Date' + ); + return $columns; + } + + function get_sortable_columns() { + $sortable_columns = array( + 'login_attempt_ip' => array('login_attempt_ip',false), + 'user_id' => array('user_id',false), + 'user_login' => array('user_login',false), + 'failed_login_date' => array('failed_login_date',false), + ); + return $sortable_columns; + } + + function get_bulk_actions() { + $actions = array( + 'delete' => 'Delete' + ); + return $actions; + } + + function process_bulk_action() { + global $aio_wp_security; + if('delete'===$this->current_action()) + {//Process delete bulk actions + if(!isset($_REQUEST['item'])) + { + $error_msg = '

'; + $error_msg .= __('Please select some records using the checkboxes','aiowpsecurity'); + $error_msg .= '

'; + _e($error_msg); + } else{ + $this->delete_login_failed_records(($_REQUEST['item'])); + + } + } + } + + + + /* + * This function will delete selected records from the "failed_logins" table. + * The function accepts either an array of IDs or a single ID + */ + function delete_login_failed_records($entries) + { + global $wpdb, $aio_wp_security; + $failed_login_table = AIOWPSEC_TBL_FAILED_LOGINS; + if (is_array($entries)) + { + //Delete multiple records + $id_list = "(" .implode(",",$entries) .")"; //Create comma separate list for DB operation + $delete_command = "DELETE FROM ".$failed_login_table." WHERE ID IN ".$id_list; + $result = $wpdb->query($delete_command); + if($result != NULL) + { + $success_msg = '

'; + $success_msg .= __('The selected entries were deleted successfully!','aiowpsecurity'); + $success_msg .= '

'; + _e($success_msg); + } + } elseif ($entries != NULL) + { + //Delete single record + $delete_command = "DELETE FROM ".$failed_login_table." WHERE ID = '".absint($entries)."'"; + $result = $wpdb->query($delete_command); + if($result != NULL) + { + $success_msg = '

'; + $success_msg .= __('The selected entry was deleted successfully!','aiowpsecurity'); + $success_msg .= '

'; + _e($success_msg); + } + } + } + + function prepare_items() { + /** + * First, lets decide how many records per page to show + */ + $per_page = 20; + $columns = $this->get_columns(); + $hidden = array(); + $sortable = $this->get_sortable_columns(); + + $this->_column_headers = array($columns, $hidden, $sortable); + + $this->process_bulk_action(); + + global $wpdb; + $failed_logins_table_name = AIOWPSEC_TBL_FAILED_LOGINS; + + /* -- Ordering parameters -- */ + //Parameters that are going to be used to order the result + $orderby = !empty($_GET["orderby"]) ? mysql_real_escape_string($_GET["orderby"]) : 'failed_login_date'; + $order = !empty($_GET["order"]) ? mysql_real_escape_string($_GET["order"]) : 'DESC'; + + $data = $wpdb->get_results("SELECT * FROM $failed_logins_table_name ORDER BY $orderby $order", ARRAY_A); + $current_page = $this->get_pagenum(); + $total_items = count($data); + $data = array_slice($data,(($current_page-1)*$per_page),$per_page); + $this->items = $data; + $this->set_pagination_args( array( + 'total_items' => $total_items, //WE have to calculate the total number of items + 'per_page' => $per_page, //WE have to determine how many items to show on a page + 'total_pages' => ceil($total_items/$per_page) //WE have to calculate the total number of pages + ) ); + } +} \ No newline at end of file diff --git a/all-in-one-wp-security/admin/wp-security-list-registered-users.php b/all-in-one-wp-security/admin/wp-security-list-registered-users.php new file mode 100644 index 0000000..47cea6d --- /dev/null +++ b/all-in-one-wp-security/admin/wp-security-list-registered-users.php @@ -0,0 +1,241 @@ + 'item', //singular name of the listed records + 'plural' => 'items', //plural name of the listed records + 'ajax' => false //does this table support ajax? + ) ); + + } + + function column_default($item, $column_name){ + return $item[$column_name]; + } + + function column_ID($item){ + //$tab = strip_tags($_REQUEST['tab']); + //Build row actions + $actions = array( + 'approve_acct' => sprintf('Approve',AIOWPSEC_USER_REGISTRATION_MENU_SLUG,'approve_acct',$item['ID']), + 'delete_acct' => sprintf('Delete',AIOWPSEC_USER_REGISTRATION_MENU_SLUG,'delete_acct',$item['ID']), + ); + + //Return the user_login contents + return sprintf('%1$s %2$s', + /*$1%s*/ $item['ID'], + /*$2%s*/ $this->row_actions($actions) + ); + } + + + function column_cb($item){ + return sprintf( + '', + /*$1%s*/ $this->_args['singular'], //Let's simply repurpose the table's singular label + /*$2%s*/ $item['ID'] //The value of the checkbox should be the record's id + ); + } + + + function get_columns(){ + $columns = array( + 'cb' => '', //Render a checkbox + 'ID' => 'User ID', + 'user_login' => 'Login Name', + 'user_email' => 'Email', + 'user_registered' => 'Register Date', + 'account_status' => 'Account Status' + ); + return $columns; + } + + function get_sortable_columns() { + $sortable_columns = array( +// 'ID' => array('ID',false), +// 'user_login' => array('user_login',false), +// 'user_email' => array('user_email',false), +// 'user_registered' => array('user_registered',false), +// 'account_status' => array('account_status',false), + ); + return $sortable_columns; + } + + function get_bulk_actions() { + $actions = array( + 'approve' => 'Approve', + 'delete' => 'Delete' + ); + return $actions; + } + + function process_bulk_action() { + if('approve'===$this->current_action()) + {//Process approve bulk actions + if(!isset($_REQUEST['item'])) + { + AIOWPSecurity_Admin_Menu::show_msg_error_st(__('Please select some records using the checkboxes','aiowpsecurity')); + }else + { + $this->approve_selected_accounts(($_REQUEST['item'])); + } + } + + if('delete'===$this->current_action()) + {//Process delete bulk actions + if(!isset($_REQUEST['item'])) + { + AIOWPSecurity_Admin_Menu::show_msg_error_st(__('Please select some records using the checkboxes','aiowpsecurity')); + }else + { + $this->delete_selected_accounts(($_REQUEST['item'])); + } + } + + } + + function approve_selected_accounts($entries) + { + global $wpdb, $aio_wp_security; + $meta_key = 'aiowps_account_status'; + $meta_value = 'approved'; //set account status + $failed_accts = ''; //string to store comma separated accounts which failed to update + $at_least_one_updated = false; + if (is_array($entries)) + { + //Let's go through each entry and approve + foreach($entries as $user_id) + { + $result = update_user_meta($user_id, $meta_key, $meta_value); + if($result === false) + { + $failed_accts .= ' '.$user_id.','; + $aio_wp_security->debug_logger->log_debug("AIOWPSecurity_List_Registered_Users::approve_selected_accounts() - could not approve account ID: $user_id",4); + }else{ + $at_least_one_updated = true; + $user = get_user_by('id', $user_id); + if($user === false){ + //don't send mail + }else{ + //TODO send email to account holder + $to_email_address = $user->user_email; + $subject = '['.get_option('siteurl').'] '. __('Your account is now active','aiowpsecurity'); + $email_msg .= __('Your account with username:','aiowpsecurity').$user->ID." is now active.\n"; + $email_header = 'From: '.get_bloginfo( 'name' ).' <'.get_bloginfo('admin_email').'>' . "\r\n\\"; + $sendMail = wp_mail($to_email_address, $subject, $email_msg, $email_header); + } + } + } + if ($at_least_one_updated){ + AIOWPSecurity_Admin_Menu::show_msg_updated_st(__('The selected accounts were approved successfully!','aiowpsecurity')); + } + if ($failed_accts != ''){//display any failed account updates + rtrim($failed_accts); + AIOWPSecurity_Admin_Menu::show_msg_error_st(__('The following accounts failed to update successfully: ','aiowpsecurity').$failed_accts); + } + } elseif ($entries != NULL) + { + //Approve single account + $result = update_user_meta($entries, $meta_key, $meta_value); + if($result) + { + AIOWPSecurity_Admin_Menu::show_msg_updated_st(__('The selected account was approved successfully!','aiowpsecurity')); + //TODO send email to account holder + $user = get_user_by('id', $entries); + $to_email_address = $user->user_email; + $subject = '['.get_option('siteurl').'] '. __('Your account is now active','aiowpsecurity'); + $email_msg .= __('Your account with username: ','aiowpsecurity').$user->user_login." is now active.\n"; + $email_header = 'From: '.get_bloginfo( 'name' ).' <'.get_bloginfo('admin_email').'>' . "\r\n\\"; + $sendMail = wp_mail($to_email_address, $subject, $email_msg, $email_header); + + }else if($result === false){ + $aio_wp_security->debug_logger->log_debug("AIOWPSecurity_List_Registered_Users::approve_selected_accounts() - could not approve account ID: $user_id",4); + } + } + } + + function delete_selected_accounts($entries) + { + global $wpdb, $aio_wp_security; + if (is_array($entries)) + { + //Let's go through each entry and delete account + foreach($entries as $user_id) + { + $result = wp_delete_user($user_id); + if($result !== true) + { + $aio_wp_security->debug_logger->log_debug("AIOWPSecurity_List_Registered_Users::delete_selected_accounts() - could not delete account ID: $user_id",4); + } + } + AIOWPSecurity_Admin_Menu::show_msg_updated_st(__('The selected accounts were deleted successfully!','aiowpsecurity')); + } elseif ($entries != NULL) + { + //Delete single account + + $result = wp_delete_user($entries); + if($result === true) + { + AIOWPSecurity_Admin_Menu::show_msg_updated_st(__('The selected account was deleted successfully!','aiowpsecurity')); + } + else + { + $aio_wp_security->debug_logger->log_debug("AIOWPSecurity_List_Registered_Users::delete_selected_accounts() - could not delete account ID: $entries",4); + } + } + } + + function prepare_items() { + //First, lets decide how many records per page to show + $per_page = 20; + $columns = $this->get_columns(); + $hidden = array(); + $sortable = $this->get_sortable_columns(); + + $this->_column_headers = array($columns, $hidden, $sortable); + + $this->process_bulk_action(); + + global $wpdb; + global $aio_wp_security; + /* -- Ordering parameters -- */ + //Parameters that are going to be used to order the result +// $orderby = !empty($_GET["orderby"]) ? mysql_real_escape_string($_GET["orderby"]) : 'user_id'; +// $order = !empty($_GET["order"]) ? mysql_real_escape_string($_GET["order"]) : 'DESC'; + + //Get registered users which have the special 'aiowps_account_status' meta key set to 'pending' + $data = $this->get_registered_user_data('pending'); + + $current_page = $this->get_pagenum(); + $total_items = count($data); + $data = array_slice($data,(($current_page-1)*$per_page),$per_page); + $this->items = $data; + $this->set_pagination_args( array( + 'total_items' => $total_items, //WE have to calculate the total number of items + 'per_page' => $per_page, //WE have to determine how many items to show on a page + 'total_pages' => ceil($total_items/$per_page) //WE have to calculate the total number of pages + )); + } + + //Returns all users who have the special 'aiowps_account_status' meta key + function get_registered_user_data($status='') + { + $user_fields = array( 'ID', 'user_login', 'user_email', 'user_registered'); + $user_query = new WP_User_Query(array('meta_key' => 'aiowps_account_status', 'meta_value' => $status, 'fields' => $user_fields)); + $user_results = $user_query->results; + + $final_data = array(); + foreach ($user_results as $user) + { + $temp_array = get_object_vars($user); //Turn the object into array + $temp_array['account_status'] = get_user_meta($temp_array['ID'], 'aiowps_account_status', true); + $final_data[] = $temp_array; + } + return $final_data; + } +} \ No newline at end of file diff --git a/all-in-one-wp-security/admin/wp-security-maintenance-menu.php b/all-in-one-wp-security/admin/wp-security-maintenance-menu.php new file mode 100644 index 0000000..18ef700 --- /dev/null +++ b/all-in-one-wp-security/admin/wp-security-maintenance-menu.php @@ -0,0 +1,137 @@ + 'render_tab1', + ); + + function __construct() + { + $this->render_menu_page(); + } + + function set_menu_tabs() + { + $this->menu_tabs = array( + 'tab1' => __('Visitor Lockout', 'aiowpsecurity'), + ); + } + + function get_current_tab() + { + $tab_keys = array_keys($this->menu_tabs); + $tab = isset( $_GET['tab'] ) ? $_GET['tab'] : $tab_keys[0]; + return $tab; + } + + /* + * Renders our tabs of this menu as nav items + */ + function render_menu_tabs() + { + $current_tab = $this->get_current_tab(); + + echo ''; + } + + /* + * The menu rendering goes here + */ + function render_menu_page() + { + $this->set_menu_tabs(); + $tab = $this->get_current_tab(); + ?> +
+
+ render_menu_tabs(); + //$tab_keys = array_keys($this->menu_tabs); + call_user_func(array(&$this, $this->menu_tabs_handler[$tab])); + ?> +
+
+ debug_logger->log_debug("Nonce check failed on site lockout feature settings save!",4); + die("Nonce check failed on site lockout feature settings save!"); + } + + //Save settings + $aio_wp_security->configs->set_value('aiowps_site_lockout',isset($_POST["aiowps_site_lockout"])?'1':''); + $maint_msg = htmlentities(stripslashes($_POST['aiowps_site_lockout_msg']), ENT_COMPAT, "UTF-8"); + $aio_wp_security->configs->set_value('aiowps_site_lockout_msg',$maint_msg);//Text area/msg box + $aio_wp_security->configs->save_config(); + + $this->show_msg_updated(__('Site lockout feature settings saved!', 'aiowpsecurity')); + + } + ?> +
+

+
+
+ +
+ '.__('This feature allows you to put your site into "maintenance mode" by locking down the front-end to all visitors except logged in users with super admin privileges.', 'aiowpsecurity').'

'; + echo '

'.__('Locking your site down to general visitors can be useful if you are investigating some issues on your site or perhaps you might be doing some maintenance and wish to keep out all traffic for security reasons.', 'aiowpsecurity').'

'; + ?> +
+ + + + + + + + + + +
: + configs->get_value('aiowps_site_lockout')=='1') echo ' checked="checked"'; ?> value="1"/> + +
+ configs->get_value('aiowps_site_lockout_msg'); + if(empty($aiowps_site_lockout_msg_raw)){ + $aiowps_site_lockout_msg_raw = 'This site is currently not available. Please try again later.'; + } + $aiowps_site_lockout_msg = html_entity_decode($aiowps_site_lockout_msg_raw, ENT_COMPAT, "UTF-8"); + $aiowps_site_lockout_msg_settings = array('textarea_name' => 'aiowps_site_lockout_msg', 'media_buttons' => false); + wp_editor($aiowps_site_lockout_msg, "aiowps_site_lockout_msg_editor_content", $aiowps_site_lockout_msg_settings); + ?> +
+ +
+ +
+ +
+
+
+ 'render_tab1', + 'tab2' => 'render_tab2', + ); + + function __construct() + { + $this->render_menu_page(); + } + + function set_menu_tabs() + { + $this->menu_tabs = array( + 'tab1' => __('Copy Protection', 'aiowpsecurity'), + 'tab2' => __('Frames', 'aiowpsecurity'), + ); + } + + function get_current_tab() + { + $tab_keys = array_keys($this->menu_tabs); + $tab = isset( $_GET['tab'] ) ? $_GET['tab'] : $tab_keys[0]; + return $tab; + } + + /* + * Renders our tabs of this menu as nav items + */ + function render_menu_tabs() + { + $current_tab = $this->get_current_tab(); + + echo ''; + } + + /* + * The menu rendering goes here + */ + function render_menu_page() + { + $this->set_menu_tabs(); + $tab = $this->get_current_tab(); + ?> +
+
+ render_menu_tabs(); + //$tab_keys = array_keys($this->menu_tabs); + call_user_func(array(&$this, $this->menu_tabs_handler[$tab])); + ?> +
+
+ debug_logger->log_debug("Nonce check failed on copy protection feature settings save!",4); + die("Nonce check failed on copy protection feature settings save!"); + } + + //Save settings + $aio_wp_security->configs->set_value('aiowps_copy_protection',isset($_POST["aiowps_copy_protection"])?'1':''); + $aio_wp_security->configs->save_config(); + + $this->show_msg_updated(__('Copy Protection feature settings saved!', 'aiowpsecurity')); + + } + ?> +
+

+
+
+ +
+ '.__('This feature allows you to disable the ability to select and copy text from your front end.', 'aiowpsecurity').'

'; + ?> +
+ + + + + + +
: + configs->get_value('aiowps_copy_protection')=='1') echo ' checked="checked"'; ?> value="1"/> + +
+ +
+ +
+
+
+ debug_logger->log_debug("Nonce check failed on prevent display inside frame feature settings save!",4); + die("Nonce check failed on prevent display inside frame feature settings save!"); + } + + //Save settings + $aio_wp_security->configs->set_value('aiowps_prevent_site_display_inside_frame',isset($_POST["aiowps_prevent_site_display_inside_frame"])?'1':''); + $aio_wp_security->configs->save_config(); + + $this->show_msg_updated(__('Frame Display Prevention feature settings saved!', 'aiowpsecurity')); + + } + ?> +
+

+
+
+ +
+ '.__('This feature allows you to prevent other sites from displaying any of your content via a frame or iframe.', 'aiowpsecurity').'

'; + echo '

'.__('When enabled, this feature will set the "X-Frame-Options" paramater to "sameorigin" in the HTTP header.', 'aiowpsecurity').'

'; + ?> +
+ + + + + + +
: + configs->get_value('aiowps_prevent_site_display_inside_frame')=='1') echo ' checked="checked"'; ?> value="1"/> + +
+ +
+ +
+
+
+ 'render_tab1', + 'tab2' => 'render_tab2', + 'tab3' => 'render_tab3', + 'tab4' => 'render_tab4', + 'tab5' => 'render_tab5', + ); + + function __construct() + { + $this->render_menu_page(); + } + + function set_menu_tabs() + { + $this->menu_tabs = array( + 'tab1' => __('General Settings', 'aiowpsecurity'), + 'tab2' => '.htaccess '.__('File', 'aiowpsecurity'), + 'tab3' => 'wp-config.php '.__('File', 'aiowpsecurity'), + 'tab4' => __('WP Meta Info', 'aiowpsecurity'), + 'tab5' => __('Import/Export', 'aiowpsecurity'), + ); + } + + function get_current_tab() + { + $tab_keys = array_keys($this->menu_tabs); + $tab = isset( $_GET['tab'] ) ? $_GET['tab'] : $tab_keys[0]; + return $tab; + } + + /* + * Renders our tabs of this menu as nav items + */ + function render_menu_tabs() + { + $current_tab = $this->get_current_tab(); + + echo ''; + } + + /* + * The menu rendering goes here + */ + function render_menu_page() + { + $this->set_menu_tabs(); + $tab = $this->get_current_tab(); + ?> +
+
+ render_menu_tabs(); + //$tab_keys = array_keys($this->menu_tabs); + call_user_func(array(&$this, $this->menu_tabs_handler[$tab])); + ?> +
+
+ debug_logger->log_debug("Nonce check failed on disable all security features!",4); + die("Nonce check failed on disable all security features!"); + } + AIOWPSecurity_Configure_Settings::turn_off_all_security_features(); + //Now let's clear the applicable rules from the .htaccess file + $res = AIOWPSecurity_Utility_Htaccess::write_to_htaccess(); + + //Now let's revert the disable editing setting in the wp-config.php file if necessary + $res2 = AIOWPSecurity_Utility::enable_file_edits(); + + if ($res) + { + $this->show_msg_updated(__('All the security features have been disabled successfully!', 'aiowpsecurity')); + } + else if($res == -1) + { + $this->show_msg_error(__('Could not write to the .htaccess file. Please restore your .htaccess file manually using the restore functionality in the ".htaccess File".', 'aiowpsecurity')); + } + + if(!$res2) + { + $this->show_msg_error(__('Could not write to the wp-config.php. Please restore your wp-config.php file manually using the restore functionality in the "wp-config.php File".', 'aiowpsecurity')); + } + } + + if(isset($_POST['aiowpsec_disable_all_firewall_rules']))//Do form submission tasks + { + $nonce=$_REQUEST['_wpnonce']; + if (!wp_verify_nonce($nonce, 'aiowpsec-disable-all-firewall-rules')) + { + $aio_wp_security->debug_logger->log_debug("Nonce check failed on disable all firewall rules!",4); + die("Nonce check failed on disable all firewall rules!"); + } + AIOWPSecurity_Configure_Settings::turn_off_all_firewall_rules(); + //Now let's clear the applicable rules from the .htaccess file + $res = AIOWPSecurity_Utility_Htaccess::write_to_htaccess(); + + if ($res) + { + $this->show_msg_updated(__('All firewall rules have been disabled successfully!', 'aiowpsecurity')); + } + else if($res == -1) + { + $this->show_msg_error(__('Could not write to the .htaccess file. Please restore your .htaccess file manually using the restore functionality in the ".htaccess File".', 'aiowpsecurity')); + } + } + ?> +
+

For information, updates and documentation, please visit the AIO WP Security & Firewall Plugin Page.

+

Follow us on Twitter, Google+ or via Email to stay upto date about the new security features of this plugin.

+
+ +
+

+
+

+

+

+

+

    +
  • +
  • +
  • +
+

+
+ +
+

+
+
"> + +
+ '.__('If you think that some plugin functionality on your site is broken due to a security feature you enabled in this plugin, then use the following option to turn off all the security features of this plugin.', 'aiowpsecurity').'

'; + ?> +
+
+ +
+
+
+ +
+

+
+
"> + +
+ '.__('This feature will disable all firewall rules which are currently active in this plugin and it will also delete these rules from your .htacess file. Use it if you think one of the firewall rules is causing an issue on your site.', 'aiowpsecurity').'

'; + ?> +
+
+ +
+
+
+ debug_logger->log_debug("Nonce check failed on htaccess file save!",4); + die("Nonce check failed on htaccess file save!"); + } + $htaccess_path = ABSPATH . '.htaccess'; + $result = AIOWPSecurity_Utility_File::backup_and_rename_htaccess($htaccess_path); //Backup the htaccess file + + if ($result) + { + $random_prefix = AIOWPSecurity_Utility::generate_alpha_numeric_random_string(10); + $aiowps_backup_dir = WP_CONTENT_DIR.'/'.AIO_WP_SECURITY_BACKUPS_DIR_NAME; + if (rename($aiowps_backup_dir.'/'.'.htaccess.backup', $aiowps_backup_dir.'/'.$random_prefix.'_htaccess_backup.txt')) + { + echo '

'; + _e('Your .htaccess file was successfully backed up! Using an FTP program go to the "/wp-content/aiowps_backups" directory to save a copy of the file to your computer.','aiowpsecurity'); + echo '

'; + } + else + { + $aio_wp_security->debug_logger->log_debug("htaccess file rename failed during backup!",4); + $this->show_msg_error(__('htaccess file rename failed during backup. Please check your root directory for the backup file using FTP.','aiowpsecurity')); + } + } + else + { + $aio_wp_security->debug_logger->log_debug("htaccess - Backup operation failed!",4); + $this->show_msg_error(__('htaccess backup failed.','aiowpsecurity')); + } + } + + if(isset($_POST['aiowps_restore_htaccess_button']))//Do form submission tasks + { + $nonce=$_REQUEST['_wpnonce']; + if (!wp_verify_nonce($nonce, 'aiowpsec-restore-htaccess-nonce')) + { + $aio_wp_security->debug_logger->log_debug("Nonce check failed on htaccess file restore!",4); + die("Nonce check failed on htaccess file restore!"); + } + + if (empty($_POST['aiowps_htaccess_file'])) + { + $this->show_msg_error(__('Please choose a .htaccess to restore from.', 'aiowpsecurity')); + } + else + { + //Let's copy the uploaded .htaccess file into the active root file + $new_htaccess_file_path = trim($_POST['aiowps_htaccess_file']); + //TODO + //Verify that file chosen has contents which are relevant to .htaccess file + $is_htaccess = AIOWPSecurity_Utility_Htaccess::check_if_htaccess_contents($new_htaccess_file_path); + if ($is_htaccess == 1) + { + $active_root_htaccess = ABSPATH.'.htaccess'; + if (!copy($new_htaccess_file_path, $active_root_htaccess)) + { + //Failed to make a backup copy + $aio_wp_security->debug_logger->log_debug("htaccess - Restore from .htaccess operation failed!",4); + $this->show_msg_error(__('htaccess file restore failed. Please attempt to restore the .htaccess manually using FTP.','aiowpsecurity')); + } + else + { + $this->show_msg_updated(__('Your .htaccess file has successfully been restored!', 'aiowpsecurity')); + } + } + else + { + $aio_wp_security->debug_logger->log_debug("htaccess restore failed - Contents of restore file appear invalid!",4); + $this->show_msg_error(__('htaccess Restore operation failed! Please check the contents of the file you are trying to restore from.','aiowpsecurity')); + } + } + } + + ?> +

+
+ '.__('Your ".htaccess" file is a key component of your website\'s security and it can be modified to implement various levels of protection mechanisms.', 'aiowpsecurity').' +
'.__('This feature allows you to backup and save your currently active .htaccess file should you need to re-use the the backed up file in the future.', 'aiowpsecurity').' +
'.__('You can also restore your site\'s .htaccess settings using a backed up .htaccess file.', 'aiowpsecurity').' +

'; + ?> +
+ +
+

+
+
+ +

+ +
+
+
+

+
+
+ + + + + + +
: + + +

+ +

+
+ +
+
+
+

+
+ + +
+ + debug_logger->log_debug("Nonce check failed on wp-config file restore!",4); + die("Nonce check failed on wp-config file restore!"); + } + + if (empty($_POST['aiowps_wp_config_file'])) + { + $this->show_msg_error(__('Please choose a wp-config.php file to restore from.', 'aiowpsecurity')); + } + else + { + //Let's copy the uploaded wp-config.php file into the active root file + $new_wp_config_file_path = trim($_POST['aiowps_wp_config_file']); + + //Verify that file chosen is a wp-config.file + $is_wp_config = $this->check_if_wp_config_contents($new_wp_config_file_path); + if ($is_wp_config == 1) + { + $active_root_wp_config = ABSPATH.'wp-config.php'; + if (!copy($new_wp_config_file_path, $active_root_wp_config)) + { + //Failed to make a backup copy + $aio_wp_security->debug_logger->log_debug("wp-config.php - Restore from backed up wp-config operation failed!",4); + $this->show_msg_error(__('wp-config.php file restore failed. Please attempt to restore this file manually using FTP.','aiowpsecurity')); + } + else + { + $this->show_msg_updated(__('Your wp-config.php file has successfully been restored!', 'aiowpsecurity')); + } + } + else + { + $aio_wp_security->debug_logger->log_debug("wp-config.php restore failed - Contents of restore file appear invalid!",4); + $this->show_msg_error(__('wp-config.php Restore operation failed! Please check the contents of the file you are trying to restore from.','aiowpsecurity')); + } + } + } + + ?> +

+
+ '.__('Your "wp-config.php" file is one of the most important in your WordPress installation. It is a primary configuration file and contains crucial things such as details of your database and other critical components.', 'aiowpsecurity').' +
'.__('This feature allows you to backup and save your currently active wp-config.php file should you need to re-use the the backed up file in the future.', 'aiowpsecurity').' +
'.__('You can also restore your site\'s wp-config.php settings using a backed up wp-config.php file.', 'aiowpsecurity').' +

'; + ?> +
+ +
+

+
+
+ +

+ + +
+
+
+

+
+
+ + + + + + +
: + + +

+ +

+
+ +
+
+
+

+
+ + +
+ + debug_logger->log_debug("Nonce check failed on remove wp meta info options save!",4); + die("Nonce check failed on remove wp meta info options save!"); + } + $aio_wp_security->configs->set_value('aiowps_remove_wp_generator_meta_info',isset($_POST["aiowps_remove_wp_generator_meta_info"])?'1':''); + $aio_wp_security->configs->save_config(); + + //Recalculate points after the feature status/options have been altered + $aiowps_feature_mgr->check_feature_status_and_recalculate_points(); + + $this->show_msg_settings_updated(); + } + ?> +

+
+ '.__('Wordpress generator automatically adds some meta information inside the "head" tags of every page on your site\'s front end. Below is an example of this:', 'aiowpsecurity'); + echo '
<meta name="generator" content="WordPress 3.5.1" />'; + echo '
'.__('The above meta information shows which version of WordPress your site is currently running and thus can help hackers or crawlers scan your site to see if you have an older version of WordPress or one with a known exploit.', 'aiowpsecurity').' +
'.__('This feature will allow you to remove the WP generator meta info from your site\'s pages.', 'aiowpsecurity').' +

'; + ?> +
+ +
+

+
+ output_feature_details_badge("wp-generator-meta-tag"); + ?> + +
+ + + + + + +
: + configs->get_value('aiowps_remove_wp_generator_meta_info')=='1') echo ' checked="checked"'; ?> value="1"/> + +
+ +
+
+ debug_logger->log_debug("Nonce check failed on import AIOWPS settings!",4); + die("Nonce check failed on import AIOWPS settings!"); + } + + if (empty($_POST['aiowps_import_settings_file'])) + { + $this->show_msg_error(__('Please choose a file to import your settings from.', 'aiowpsecurity')); + } + else + { + //Let's get the uploaded import file path + $submitted_import_file_path = trim($_POST['aiowps_import_settings_file']); + $attachment_id = AIOWPSecurity_Utility_File::get_attachment_id_from_url($submitted_import_file_path); //we'll need this later for deleting + + //Verify that file chosen has valid AIOWPS settings contents + $aiowps_settings_file_contents = $this->check_if_valid_aiowps_settings_file($submitted_import_file_path); + if ($aiowps_settings_file_contents != -1) + { + //Apply the settings and delete the file + $settings_array = json_decode($aiowps_settings_file_contents, true); + $aiowps_settings_applied = update_option('aio_wp_security_configs', $settings_array); + + if (!$aiowps_settings_applied) + { + //Failed to import settings + $aio_wp_security->debug_logger->log_debug("Import AIOWPS settings from file operation failed!",4); + $this->show_msg_error(__('Import AIOWPS settings from file operation failed!','aiowpsecurity')); + + //Delete the uploaded settings file for security purposes + wp_delete_attachment( $attachment_id, true ); + if ( false === wp_delete_attachment( $attachment_id, true ) ){ + $this->show_msg_error(__('The deletion of the import file failed. Please delete this file manually via the media menu for security purposes.', 'aiowpsecurity')); + }else{ + $this->show_msg_updated(__('The file you uploaded was also deleted for security purposes because it contains security settings details.', 'aiowpsecurity')); + } + } + else + { + //Delete the uploaded settings file for security purposes + wp_delete_attachment( $attachment_id, true ); + if ( false === wp_delete_attachment( $attachment_id, true ) ){ + $this->show_msg_updated(__('Your AIOWPS settings were successfully imported.', 'aiowpsecurity')); + $this->show_msg_error(__('The deletion of the import file failed. Please delete this file manually via the media menu for security purposes because it contains security settings details.', 'aiowpsecurity')); + }else{ + $this->show_msg_updated(__('Your AIOWPS settings were successfully imported. The file you uploaded was also deleted for security purposes because it contains security settings details.', 'aiowpsecurity')); + } + } + } + else + { + //Invalid settings file + $aio_wp_security->debug_logger->log_debug("The contents of your settings file appear invalid!",4); + $this->show_msg_error(__('The contents of your settings file appear invalid. Please check the contents of the file you are trying to import settings from.','aiowpsecurity')); + //Let's also delete the uploaded settings file for security purposes + wp_delete_attachment( $attachment_id, true ); + if ( false === wp_delete_attachment( $attachment_id, true ) ){ + $this->show_msg_error(__('The deletion of the import file failed. Please delete this file manually via the media menu for security purposes.', 'aiowpsecurity')); + }else{ + $this->show_msg_updated(__('The file you uploaded was also deleted for security purposes because it contains security settings details.', 'aiowpsecurity')); + } + + } + } + } + + + ?> +

+
+ '.__('This section allows you to export or import your All In One WP Security & Firewall settings.', 'aiowpsecurity'); + echo '
'.__('This can be handy if you wanted to save time by applying the settings from one site to another site.', 'aiowpsecurity').' +
'.__('NOTE: Before importing, it is your responsibility to know what settings you are trying to import. Importing settings blindly can cause you to be locked out of your site.', 'aiowpsecurity').' +
'.__('For Example: If a settings item rely on the domain URL then it may not work correctly when imported into a different domain.','aiowpsecurity').' +

'; + ?> +
+ +
+

+
+
+ + + + + +
+ +
+
+
+

+
+
+ + + + + + + +
: + + +

+ +

+
+ +
+
+ debug_logger->log_debug("check_if_valid_aiowps_settings_file() returned fail - file_get_contents returned null or false",4); + return -1; + } + + //Check a known aiowps config strings to see if it is contained within this file + if(strpos($file_contents, 'aiowps_enable_login_lockdown') === FALSE){ + $is_aiopws_settings = false; + }else{ + $is_aiopws_settings = true; + } + if ($is_aiopws_settings) + { + return $file_contents; + } + else + { + $aio_wp_security->debug_logger->log_debug("check_if_valid_aiowps_settings_file() returned fail - Not a valid AIOWPS config file!",4); + return -1; + } + + } + +} //end class \ No newline at end of file diff --git a/all-in-one-wp-security/admin/wp-security-spam-menu.php b/all-in-one-wp-security/admin/wp-security-spam-menu.php new file mode 100644 index 0000000..a63c9e6 --- /dev/null +++ b/all-in-one-wp-security/admin/wp-security-spam-menu.php @@ -0,0 +1,357 @@ + 'render_tab1', + 'tab2' => 'render_tab2', + 'tab3' => 'render_tab3', + ); + + function __construct() + { + $this->render_menu_page(); + } + + function set_menu_tabs() + { + $this->menu_tabs = array( + 'tab1' => __('Comment SPAM', 'aiowpsecurity'), + 'tab2' => __('Comment SPAM IP Monitoring', 'aiowpsecurity'), + 'tab3' => __('BuddyPress', 'aiowpsecurity'), + ); + } + + function get_current_tab() + { + $tab_keys = array_keys($this->menu_tabs); + $tab = isset( $_GET['tab'] ) ? $_GET['tab'] : $tab_keys[0]; + return $tab; + } + + /* + * Renders our tabs of this menu as nav items + */ + function render_menu_tabs() + { + $current_tab = $this->get_current_tab(); + + echo ''; + } + + /* + * The menu rendering goes here + */ + function render_menu_page() + { + $this->set_menu_tabs(); + $tab = $this->get_current_tab(); + ?> +
+
+ render_menu_tabs(); + //$tab_keys = array_keys($this->menu_tabs); + call_user_func(array(&$this, $this->menu_tabs_handler[$tab])); + ?> +
+
+ debug_logger->log_debug("Nonce check failed on save comment spam settings!",4); + die("Nonce check failed on save comment spam settings!"); + } + + //Save settings + $random_20_digit_string = AIOWPSecurity_Utility::generate_alpha_numeric_random_string(20); //Generate random 20 char string for use during captcha encode/decode + $aio_wp_security->configs->set_value('aiowps_captcha_secret_key', $random_20_digit_string); + + $aio_wp_security->configs->set_value('aiowps_enable_comment_captcha',isset($_POST["aiowps_enable_comment_captcha"])?'1':''); + $aio_wp_security->configs->set_value('aiowps_enable_spambot_blocking',isset($_POST["aiowps_enable_spambot_blocking"])?'1':''); + + //Commit the config settings + $aio_wp_security->configs->save_config(); + + //Recalculate points after the feature status/options have been altered + $aiowps_feature_mgr->check_feature_status_and_recalculate_points(); + + //Now let's write the applicable rules to the .htaccess file + $res = AIOWPSecurity_Utility_Htaccess::write_to_htaccess(); + + if ($res) + { + $this->show_msg_updated(__('Settings were successfully saved', 'aiowpsecurity')); + } + else if($res == -1) + { + $this->show_msg_error(__('Could not write to the .htaccess file. Please check the file permissions.', 'aiowpsecurity')); + } + } + + ?> +

+
+ + +
+

+
+
+ '.__('This feature will add a simple math captcha field in the WordPress comments form.', 'aiowpsecurity'). + '
'.__('Adding a captcha field in the comment form is a simple way of greatly reducing SPAM comments from bots without using .htaccess rules.', 'aiowpsecurity').'

'; + ?> +
+ output_feature_details_badge("comment-form-captcha"); + ?> + + + + + +
: + configs->get_value('aiowps_enable_comment_captcha')=='1') echo ' checked="checked"'; ?> value="1"/> + +
+
+ +
+

+
+
+ '.__('A large portion of WordPress blog comment SPAM is mainly produced by automated bots and not necessarily by humans. ', 'aiowpsecurity'). + '
'.__('This feature will greatly minimize the useless and unecessary traffic and load on your server resulting from SPAM comments by blocking all comment requests which do not originate from your domain.', 'aiowpsecurity'). + '
'.__('In other words, if the comment was not submitted by a human who physically submitted the comment on your site, the request will be blocked.', 'aiowpsecurity').'

'; + ?> +
+ output_feature_details_badge("block-spambots"); + if (AIOWPSecurity_Utility::is_multisite_install() && get_current_blog_id() != 1) + { + //Hide config settings if MS and not main site + AIOWPSecurity_Utility::display_multisite_message(); + } + else + { + ?> + + + + + +
: + configs->get_value('aiowps_enable_spambot_blocking')=='1') echo ' checked="checked"'; ?> value="1"/> + + + +
+ '.__('This feature will implement a firewall rule to block all comment attempts which do not originate from your domain.', 'aiowpsecurity').'

'; + echo '

'.__('A legitimate comment is one which is submitted by a human who physically fills out the comment form and clicks the submit button. For such events, the HTTP_REFERRER is always set to your own domain.', 'aiowpsecurity').'

'; + echo '

'.__('A comment submitted by a spambot is done by directly calling the comments.php file, which usually means that the HTTP_REFERRER value is not your domain and often times empty.', 'aiowpsecurity').'

'; + echo '

'.__('This feature will check and block comment requests which are not referred by your domain thus greatly reducing your overall blog SPAM and PHP requests done by the server to process these comments.', 'aiowpsecurity').'

'; + ?> +
+
+ +
+ + +
+ debug_logger->log_debug("Nonce check failed for list SPAM comment IPs!",4); + die(__('Nonce check failed for list SPAM comment IPs!','aiowpsecurity')); + } + + $min_comments_per_ip = sanitize_text_field($_POST['aiowps_spam_ip_min_comments']); + if(!is_numeric($min_comments_per_ip)) + { + $error .= '
'.__('You entered a non numeric value for the minimum SPAM comments per IP field. It has been set to the default value.','aiowpsecurity'); + $min_comments_per_ip = '5';//Set it to the default value for this field + } + + if($error) + { + $this->show_msg_error(__('Attention!','aiowpsecurity').$error); + } + + //Save all the form values to the options + $aio_wp_security->configs->set_value('aiowps_spam_ip_min_comments',absint($min_comments_per_ip)); + $aio_wp_security->configs->save_config(); + $info_msg_string = sprintf( __('Displaying results for IP addresses which have posted a minimum of %s SPAM comments', 'aiowpsecurity'), $min_comments_per_ip); + $this->show_msg_updated($info_msg_string); + + } + + if(isset($_REQUEST['action'])) //Do list table form row action tasks + { + if($_REQUEST['action'] == 'block_spammer_ip') + { //The "block" link was clicked for a row in the list table + $spammer_ip_list->block_spammer_ip_records(strip_tags($_REQUEST['spammer_ip'])); + } + } + + ?> +
+ '.__('This tab displays a list of the IP addresses of the people or bots who have left SPAM comments on your site.', 'aiowpsecurity').' +
'.__('This information can be handy for identifying the most persistent IP addresses or ranges used by spammers.', 'aiowpsecurity').' +
'.__('By inspecting the IP address data coming from spammers you will be in a better position to determine which addresses or address ranges you should block by adding them to your blacklist.', 'aiowpsecurity').' +
'.__('To add one or more of the IP addresses displayed in the table below to your blacklist, simply click the "Block" link for the individual row or select more than one address + using the checkboxes and then choose the "block" option from the Bulk Actions dropdown list and click the "Apply" button.', 'aiowpsecurity').' +

'; + ?> +
+
+

+
+
+ + + + + + +
: + + + +
+ '.__('Example 1: Setting this value to "0" or "1" will list ALL IP addresses which were used to submit SPAM comments.', 'aiowpsecurity').'

'; + echo '

'.__('Example 2: Setting this value to "5" will list only those IP addresses which were used to submit 5 SPAM comments or more on your site.', 'aiowpsecurity').'

'; + ?> +
+ +
+ +
+
+
+

+
+ '; + echo '

'.__('The plugin has detected that you are using a Multi-Site WordPress installation.', 'aiowpsecurity').'

+

'.__('Only the "superadmin" can block IP addresses from the main site.', 'aiowpsecurity').'

+

'.__('Take note of the IP addresses you want blocked and ask the superadmin to add these to the blacklist using the "Blacklist Manager" on the main site.', 'aiowpsecurity').'

'; + echo '
'; + } + //Fetch, prepare, sort, and filter our data... + $spammer_ip_list->prepare_items(); + //echo "put table of locked entries here"; + ?> +
+ + + + + display(); ?> +
+
+ debug_logger->log_debug("Nonce check failed on save comment spam settings!",4); + die("Nonce check failed on save comment spam settings!"); + } + + //Save settings + $aio_wp_security->configs->set_value('aiowps_enable_bp_register_captcha',isset($_POST["aiowps_enable_bp_register_captcha"])?'1':''); + + //Commit the config settings + $aio_wp_security->configs->save_config(); + + //Recalculate points after the feature status/options have been altered + $aiowps_feature_mgr->check_feature_status_and_recalculate_points(); + + $this->show_msg_updated(__('Settings were successfully saved', 'aiowpsecurity')); + } + + ?> +

+
+ + +
+

+
+
+ '.__('This feature will add a simple math captcha field in the BuddyPress registration form.', 'aiowpsecurity'). + '
'.__('Adding a captcha field in the registration form is a simple way of greatly reducing SPAM signups from bots without using .htaccess rules.', 'aiowpsecurity').'

'; + ?> +
+ output_feature_details_badge("bp-register-captcha"); + ?> + + + + + +
: + configs->get_value('aiowps_enable_bp_register_captcha')=='1') echo ' checked="checked"'; ?> value="1"/> + +
+
+ +
+ show_msg_error(__('BuddyPress is not active! In order to use this feature you will need to have BuddyPress installed and activated.', 'aiowpsecurity')); + } + } + +} //end class \ No newline at end of file diff --git a/all-in-one-wp-security/admin/wp-security-user-accounts-menu.php b/all-in-one-wp-security/admin/wp-security-user-accounts-menu.php new file mode 100644 index 0000000..ebb6ee5 --- /dev/null +++ b/all-in-one-wp-security/admin/wp-security-user-accounts-menu.php @@ -0,0 +1,340 @@ + 'render_tab1', + 'tab2' => 'render_tab2', + 'tab3' => 'render_tab3', + ); + function __construct() + { + $this->render_user_account_menu_page(); + + //Add the JS library for password tool - make sure we are on our password tab + if (isset($_GET['page']) && strpos($_GET['page'], AIOWPSEC_USER_ACCOUNTS_MENU_SLUG ) !== false) { + if (isset($_GET['tab']) && $_GET['tab'] == 'tab3'){ + wp_enqueue_script('aiowpsec-pw-tool-js'); + } + } + } + + function set_menu_tabs() + { + $this->menu_tabs = array( + 'tab1' => __('WP Username', 'aiowpsecurity'), + 'tab2' => __('Display Name', 'aiowpsecurity'), + 'tab3' => __('Password', 'aiowpsecurity') + ); + } + + function get_current_tab() + { + $tab_keys = array_keys($this->menu_tabs); + $tab = isset( $_GET['tab'] ) ? $_GET['tab'] : $tab_keys[0]; + return $tab; + } + + /* + * Renders our tabs of this menu as nav items + */ + function render_menu_tabs() + { + $current_tab = $this->get_current_tab(); + + echo ''; + } + + /* + * The menu rendering goes here + */ + function render_user_account_menu_page() + { + $this->set_menu_tabs(); + $tab = $this->get_current_tab(); + ?> +
+
+ render_menu_tabs(); + //$tab_keys = array_keys($this->menu_tabs); + call_user_func(array(&$this, $this->menu_tabs_handler[$tab])); + ?> +
+
+ validate_change_username_form(); + } + ?> +

+
+ '.__('By default, WordPress sets the administrator username to "admin" at installation time.', 'aiowpsecurity').' +
'.__('A lot of hackers try to take advantage of this information by attempting "Brute Force Login Attacks" where they repeatedly try to guess the password by using "admin" for username.', 'aiowpsecurity').' +
'.__('From a security perspective, changing the default "admin" user name is one of the first and smartest things you should do on your site.', 'aiowpsecurity').' +

'.__('This feature will allow you to change your default "admin" user name to a more secure name of your choosing.', 'aiowpsecurity').' +

'; + ?> +
+ + postbox($postbox_title, $this->get_all_admin_accounts($blog_id)); + } else { + $this->postbox($postbox_title, $this->get_all_admin_accounts()); + } + ?> +
+

+
+ output_feature_details_badge("user-accounts-change-admin-user"); + + if (AIOWPSecurity_Utility::check_user_exists('admin') || AIOWPSecurity_Utility::check_user_exists('Admin')) + { + echo '

'.__('Your site currently has an account which uses the default "admin" username. + It is highly recommended that you change this name to something else. + Use the following field to change the admin username.', 'aiowpsecurity').'

'; + ?> +
+ + + + + + +
+

+
+ +
+

+
+

'; + _e ('No action required! ', 'aiowpsecurity'); + echo '
'; + _e ('Your site does not have any account which uses the default "admin" username. ', 'aiowpsecurity'); + _e ('This is good security practice.', 'aiowpsecurity'); + echo '

'; + } + ?> +
+ + +

+
+ '.__('When you submit a post or answer a comment, WordPress will usually display your "nickname".', 'aiowpsecurity').' +
'.__('By default the nickname is set to the login (or user) name of your account.', 'aiowpsecurity').' +
'.__('From a security perspective, leaving your nickname the same as your user name is bad practice because it gives a hacker at least half of your account\'s login credentials.', 'aiowpsecurity').' +

'.__('Therefore to further tighten your site\'s security you are advised to change your nickname and Display name to be different from your Username.', 'aiowpsecurity').' +

'; + ?> +
+ +
+

+
+ output_feature_details_badge("user-accounts-display-name"); + + //now let's find any accounts which have login name same as display name + $login_nick_name_accounts = AIOWPSecurity_Utility::check_identical_login_and_nick_names(); + if ($login_nick_name_accounts) { + echo '

'.__('Your site currently has the following accounts which have an identical login name and display name.', 'aiowpsecurity').' + ('.__('Click on the link to edit the settings of that particular user account', 'aiowpsecurity').'

'; + ?> + + '; + // echo ''; + echo ''; + echo ''; + } + ?> +
'.$usr['user_login'].'
+

'.__('No action required.', 'aiowpsecurity').' +
'.__('Your site does not have a user account where the display name is identical to the username.', 'aiowpsecurity').'

'; + } + ?> +
+ + +

+
+ '.__('Poor password selection is one of the most common weak points of many sites and is usually the first thing a hacker will try to exploit when attempting to break into your site.', 'aiowpsecurity').'

'. + '

'.__('Many people fall into the trap of using a simple word or series of numbers as their password. Such a predictable and simple password would take a competent hacker merely minutes to guess your password by using a simple script which cycles through the easy and most common combinations.', 'aiowpsecurity').'

'. + '

'.__('The longer and more complex your password is the harder it is for hackers to "crack" because more complex passwords require much greater computing power and time.', 'aiowpsecurity').'

'. + '

'.__('This section contains a useful password strength tool which you can use to check whether your password is sufficiently strong enough.', 'aiowpsecurity').'

'; + ?> +
+ +
+

+
+

This password tool uses an algorithm which calculates how long it would take for your password to be cracked using the computing power of an off-the-shelf current model desktop PC with high end processor, graphics card and appropriate password cracking software.

+
+ +
+
+
+
+
+ +
+
+ +

+
+
+
+ debug_logger->log_debug("Nonce check failed on admin username change operation!",4); + die(__('Nonce check failed on admin username change operation!','aiowpsecurity')); + } + if (!empty($_POST['aiowps_new_user_name'])) { + $new_username = sanitize_text_field($_POST['aiowps_new_user_name']); + if (validate_username($new_username)) + { + if (AIOWPSecurity_Utility::check_user_exists($new_username)){ + $errors .= __('Username ', 'aiowpsecurity').$new_username.__(' already exists. Please enter another value. ', 'aiowpsecurity'); + } + else + { + //let's check if currently logged in username is 'admin' + global $user_login; + get_currentuserinfo(); + if (strtolower($user_login) == 'admin'){ + $username_is_admin = TRUE; + } else { + $username_is_admin = FALSE; + } + //Now let's change the username + $result = $wpdb->query("UPDATE `" . $wpdb->users . "` SET user_login = '" . esc_sql($new_username) . "' WHERE user_login='admin';"); + if (!$result) { + //There was an error updating the users table + $user_update_error = __('The database update operation of the user account failed!', 'aiowpsecurity'); + //TODO## - add error logging here + $return_msg = '

'.$user_update_error.'

'; + return $return_msg; + } + + //multisite considerations + if ( AIOWPSecurity_Utility::is_multisite_install() ) { //process sitemeta if we're in a multi-site situation + $oldAdmins = $wpdb->get_var( "SELECT meta_value FROM `" . $wpdb->sitemeta . "` WHERE meta_key = 'site_admins'" ); + $newAdmins = str_replace( '5:"admin"', strlen( $new_username ) . ':"' . esc_sql( $new_username ) . '"', $oldAdmins ); + $wpdb->query( "UPDATE `" . $wpdb->sitemeta . "` SET meta_value = '" . esc_sql( $newAdmins ) . "' WHERE meta_key = 'site_admins'" ); + } + + //If user is logged in with username "admin" then log user out and send to login page so they can login again + if ($username_is_admin) { + //Lets logout the user + $aio_wp_security->debug_logger->log_debug("Logging User Out with login ".$user_login. " because they changed their username."); + $after_logout_url = AIOWPSecurity_Utility::get_current_page_url(); + $after_logout_payload = 'redirect_to='.$after_logout_url.'&msg='.$aio_wp_security->user_login_obj->key_login_msg.'=admin_user_changed';//Place the handle for the login screen message in the URL + $encrypted_payload = base64_encode($after_logout_payload); + $logout_url = AIOWPSEC_WP_URL.'?aiowpsec_do_log_out=1'; + $logout_url = AIOWPSecurity_Utility::add_query_data_to_url($logout_url, 'al_additional_data', $encrypted_payload); + AIOWPSecurity_Utility::redirect_to_url($logout_url); + } + } + } + else {//An invalid username was entered + $errors .= __('You entered an invalid username. Please enter another value. ', 'aiowpsecurity'); + } + } + else {//No username value was entered + $errors .= __('Please enter a value for your username. ', 'aiowpsecurity'); + } + + if (strlen($errors)> 0){//We have some validation or other error + $return_msg = '

' . $errors . '

'; + } + else{ + $return_msg = '

'.__('Username Successfully Changed!', 'aiowpsecurity').'

'; + } + return $return_msg; + } + + + /* + * This function will retrieve all user accounts which have 'administrator' role and will return html code with results in a table + */ + function get_all_admin_accounts($blog_id='') { + //TODO: Have included the "blog_id" variable for future use for cases where people want to search particular blog (eg, multi-site) + if ($blog_id) { + $admin_users = get_users('blog_id='.$blog_id.'orderby=login&role=administrator'); + } else { + $admin_users = get_users('orderby=login&role=administrator'); + } + //now let's put the results in an HTML table + $account_output = ""; + if ($admin_users != NULL) { + $account_output .= ''; + $account_output .= ''; + foreach ($admin_users as $entry) { + $account_output .= ''; + if (strtolower($entry->user_login) == 'admin') { + $account_output .= ''; + }else { + $account_output .= ''; + } + $user_acct_edit_link = get_option('siteurl').'/wp-admin/user-edit.php?user_id='; + $account_output .= ''; + $account_output .= ''; + } + $account_output .= '
'.__('Account Login Name', 'aiowpsecurity').'
'.$entry->user_login.''.$entry->user_login.'Edit User
'; + } + return $account_output; + } +} //end class \ No newline at end of file diff --git a/all-in-one-wp-security/admin/wp-security-user-login-menu.php b/all-in-one-wp-security/admin/wp-security-user-login-menu.php new file mode 100644 index 0000000..0e8243f --- /dev/null +++ b/all-in-one-wp-security/admin/wp-security-user-login-menu.php @@ -0,0 +1,573 @@ + 'render_tab1', + 'tab2' => 'render_tab2', + 'tab3' => 'render_tab3', + 'tab4' => 'render_tab4', + 'tab5' => 'render_tab5', + ); + + function __construct() + { + $this->render_user_login_menu_page(); + } + + function set_menu_tabs() + { + $this->menu_tabs = array( + 'tab1' => __('Login Lockdown', 'aiowpsecurity'), + 'tab2' => __('Failed Login Records', 'aiowpsecurity'), + 'tab3' => __('Force Logout', 'aiowpsecurity'), + 'tab4' => __('Account Activity Logs', 'aiowpsecurity'), + 'tab5' => __('Logged In Users', 'aiowpsecurity'), + ); + } + + function get_current_tab() + { + $tab_keys = array_keys($this->menu_tabs); + $tab = isset( $_GET['tab'] ) ? $_GET['tab'] : $tab_keys[0]; + return $tab; + } + + /* + * Renders our tabs of this menu as nav items + */ + function render_menu_tabs() + { + $current_tab = $this->get_current_tab(); + + echo ''; + } + + /* + * The menu rendering goes here + */ + function render_user_login_menu_page() + { + $this->set_menu_tabs(); + $tab = $this->get_current_tab(); + ?> +
+
+ render_menu_tabs(); + //$tab_keys = array_keys($this->menu_tabs); + call_user_func(array(&$this, $this->menu_tabs_handler[$tab])); + ?> +
+
+ debug_logger->log_debug("Nonce check failed on login lockdown options save!",4); + die("Nonce check failed on login lockdown options save!"); + } + + $max_login_attempt_val = sanitize_text_field($_POST['aiowps_max_login_attempts']); + if(!is_numeric($max_login_attempt_val)) + { + $error .= '
'.__('You entered a non numeric value for the max login attempts field. It has been set to the default value.','aiowpsecurity'); + $max_login_attempt_val = '3';//Set it to the default value for this field + } + + $login_retry_time_period = sanitize_text_field($_POST['aiowps_retry_time_period']); + if(!is_numeric($login_retry_time_period)) + { + $error .= '
'.__('You entered a non numeric value for the login retry time period field. It has been set to the default value.','aiowpsecurity'); + $login_retry_time_period = '5';//Set it to the default value for this field + } + + $lockout_time_length = sanitize_text_field($_POST['aiowps_lockout_time_length']); + if(!is_numeric($lockout_time_length)) + { + $error .= '
'.__('You entered a non numeric value for the lockout time length field. It has been set to the default value.','aiowpsecurity'); + $lockout_time_length = '60';//Set it to the default value for this field + } + + $email_address = sanitize_email($_POST['aiowps_email_address']); + if(!is_email($email_address)) + { + $error .= '
'.__('You have entered an incorrect email address format. It has been set to your WordPress admin email as default.','aiowpsecurity'); + $email_address = get_bloginfo('admin_email'); //Set the default value to the blog admin email + } + + if($error) + { + $this->show_msg_error(__('Attention!','aiowpsecurity').$error); + } + + //Save all the form values to the options + $random_20_digit_string = AIOWPSecurity_Utility::generate_alpha_numeric_random_string(20); //Generate random 20 char string for use during captcha encode/decode + $aio_wp_security->configs->set_value('aiowps_unlock_request_secret_key', $random_20_digit_string); + + $aio_wp_security->configs->set_value('aiowps_enable_login_lockdown',isset($_POST["aiowps_enable_login_lockdown"])?'1':''); + $aio_wp_security->configs->set_value('aiowps_allow_unlock_requests',isset($_POST["aiowps_allow_unlock_requests"])?'1':''); + $aio_wp_security->configs->set_value('aiowps_max_login_attempts',absint($max_login_attempt_val)); + $aio_wp_security->configs->set_value('aiowps_retry_time_period',absint($login_retry_time_period)); + $aio_wp_security->configs->set_value('aiowps_lockout_time_length',absint($lockout_time_length)); + $aio_wp_security->configs->set_value('aiowps_set_generic_login_msg',isset($_POST["aiowps_set_generic_login_msg"])?'1':''); + $aio_wp_security->configs->set_value('aiowps_enable_invalid_username_lockdown',isset($_POST["aiowps_enable_invalid_username_lockdown"])?'1':''); + $aio_wp_security->configs->set_value('aiowps_enable_email_notify',isset($_POST["aiowps_enable_email_notify"])?'1':''); + $aio_wp_security->configs->set_value('aiowps_email_address',$email_address); + $aio_wp_security->configs->save_config(); + + //Recalculate points after the feature status/options have been altered + $aiowps_feature_mgr->check_feature_status_and_recalculate_points(); + + $this->show_msg_settings_updated(); + } + + + if(isset($_REQUEST['action'])) //Do list table form row action tasks + { + if($_REQUEST['action'] == 'delete_blocked_ip'){ //Delete link was clicked for a row in list table + $locked_ip_list->delete_lockdown_records(strip_tags($_REQUEST['lockdown_id'])); + } + + if($_REQUEST['action'] == 'unlock_ip'){ //Unlock link was clicked for a row in list table + $locked_ip_list->unlock_ip_range(strip_tags($_REQUEST['lockdown_id'])); + } + } + ?> +

+
+ Cookie-Based Brute Force Login Prevention'; + echo '

'.__('One of the ways hackers try to compromise sites is via a ', 'aiowpsecurity').''.__('Brute Force Login Attack', 'aiowpsecurity').'. +
'.__('This is where attackers use repeated login attempts until they guess the password.', 'aiowpsecurity').' +
'.__('Apart from choosing strong passwords, monitoring and blocking IP addresses which are involved in repeated login failures in a short period of time is a very effective way to stop these types of attacks.', 'aiowpsecurity'). + '

'.sprintf( __('You may also want to checkout our %s feature for another secure way to protect against these types of attacks.', 'aiowpsecurity'), $brute_force_login_feature_link).'

'; + ?> +
+ +
+

+
+ output_feature_details_badge("user-login-login-lockdown"); + ?> + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
: + configs->get_value('aiowps_enable_login_lockdown')=='1') echo ' checked="checked"'; ?> value="1"/> + +
: + configs->get_value('aiowps_allow_unlock_requests')=='1') echo ' checked="checked"'; ?> value="1"/> + +
: + +
: + +
: + +
: + configs->get_value('aiowps_set_generic_login_msg')=='1') echo ' checked="checked"'; ?> value="1"/> + +
: + configs->get_value('aiowps_enable_invalid_username_lockdown')=='1') echo ' checked="checked"'; ?> value="1"/> + +
: + configs->get_value('aiowps_enable_email_notify')=='1') echo ' checked="checked"'; ?> value="1"/> + +
+ +
+ +
+
+
+

+
+
+ Locked IP Addresses'; + echo '

'.sprintf( __('To see a list of all locked IP addresses and ranges go to the %s tab in the dashboard menu.', 'aiowpsecurity'), $locked_ips_link).'

'; + ?> +
+
+ debug_logger->log_debug("Nonce check failed for delete all failed login records operation!",4); + die(__('Nonce check failed for delete all failed login records operation!','aiowpsecurity')); + } + $failed_logins_table = AIOWPSEC_TBL_FAILED_LOGINS; + //Delete all records from the failed logins table + $result = $wpdb->query("truncate $failed_logins_table"); + + if ($result === FALSE) + { + $aio_wp_security->debug_logger->log_debug("User Login Feature - Delete all failed login records operation failed!",4); + $this->show_msg_error(__('User Login Feature - Delete all failed login records operation failed!','aiowpsecurity')); + } + else + { + $this->show_msg_updated(__('All records from the Failed Logins table were deleted successfully!','aiowpsecurity')); + } + } + + include_once 'wp-security-list-login-fails.php'; //For rendering the AIOWPSecurity_List_Table in tab2 + $failed_login_list = new AIOWPSecurity_List_Login_Failed_Attempts(); //For rendering the AIOWPSecurity_List_Table in tab2 + if(isset($_REQUEST['action'])) //Do row action tasks for list table form for failed logins + { + if($_REQUEST['action'] == 'delete_failed_login_rec'){ //Delete link was clicked for a row in list table + $failed_login_list->delete_login_failed_records(strip_tags($_REQUEST['failed_login_id'])); + } + } + ?> +
+ '.__('This tab displays the failed login attempts for your site.', 'aiowpsecurity').' +
'.__('The information below can be handy if you need to do security investigations because it will show you the IP range, username and ID (if applicable) and the time/date of the failed login attempt.', 'aiowpsecurity').' +

'; + ?> +
+
+

+
+ prepare_items(); + //echo "put table of locked entries here"; + ?> +
+ + + + + display(); ?> +
+
+
+

+
+
+ + + + + +
+ +
+
+ + debug_logger->log_debug("Nonce check failed on force logout options save!",4); + die("Nonce check failed on force logout options save!"); + } + + $logout_time_period = sanitize_text_field($_POST['aiowps_logout_time_period']); + if(!is_numeric($logout_time_period)) + { + $error .= '
'.__('You entered a non numeric value for the logout time period field. It has been set to the default value.','aiowpsecurity'); + $logout_time_period = '1';//Set it to the default value for this field + } + else + { + if($logout_time_period < 1){ + $logout_time_period = '1'; + } + } + + if($error) + { + $this->show_msg_error(__('Attention!','aiowpsecurity').$error); + } + + //Save all the form values to the options + $aio_wp_security->configs->set_value('aiowps_logout_time_period',absint($logout_time_period)); + $aio_wp_security->configs->set_value('aiowps_enable_forced_logout',isset($_POST["aiowps_enable_forced_logout"])?'1':''); + $aio_wp_security->configs->save_config(); + + //Recalculate points after the feature status/options have been altered + $aiowps_feature_mgr->check_feature_status_and_recalculate_points(); + + $this->show_msg_settings_updated(); + } + ?> +
+ '.__('Setting an expiry period for your WP administration session is a simple way to protect against unauthorized access to your site from your computer.', 'aiowpsecurity').' +
'.__('This feature allows you to specify a time period in minutes after which the admin session will expire and the user will be forced to log back in.', 'aiowpsecurity').' +

'; + ?> +
+
+

+
+ output_feature_details_badge("user-login-force-logout"); + ?> + +
+ + + + + + + + + + +
: + configs->get_value('aiowps_enable_forced_logout')=='1') echo ' checked="checked"'; ?> value="1"/> + +
: + +
+ +
+
+ delete_login_activity_records(strip_tags($_REQUEST['activity_login_rec'])); + } + } + ?> +
+ '.__('This tab displays the login activity for WordPress admin accounts registered with your site.', 'aiowpsecurity').' +
'.__('The information below can be handy if you need to do security investigations because it will show you the last 50 recent login events by username, IP address and time/date.', 'aiowpsecurity').' +

'; + ?> +
+
+

+
+ prepare_items(); + //echo "put table of locked entries here"; + ?> +
+ + + + + display(); ?> +
+
+ debug_logger->log_debug("Nonce check failed for users logged in list!",4); + die(__('Nonce check failed for users logged in list!','aiowpsecurity')); + } + + $user_list->prepare_items(); + +// if(isset($_REQUEST['action'])) //Do list table form row action tasks +// { + //no actions for now +// } + } + + ?> +
+

+
+
+ + +
+
+ +
+ '.__('This tab displays all users who are currently logged into your site.', 'aiowpsecurity').' +
'.__('If you suspect there is a user or users who are logged in which should not be, you can block them by inspecting the IP addresses from the data below and adding them to your blacklist.', 'aiowpsecurity').' +

'; + ?> +
+
+

+
+ prepare_items(); + //echo "put table of locked entries here"; + ?> +
+ + + + + display(); ?> +
+
+ query($unlock_command); + if($result != NULL) + { + $this->show_msg_updated(__('The selected IP entries were unlocked successfully!','aiowpsecurity')); + } + } elseif ($entries != NULL) + { + //Delete single record + $unlock_command = "UPDATE ".$lockdown_table." SET release_date = now() WHERE ID = '".absint($entries)."'"; + $result = $wpdb->query($unlock_command); + if($result != NULL) + { + $this->show_msg_updated(__('The selected IP entry was unlocked successfully!','aiowpsecurity')); + } + } + //$aio_wp_security->debug_logger->log_debug("IP range unlocked from login_lockdown table - lockdown ID: ".$lockdown_id,0); + } + + /* + * This function will delete selected records from the "login_lockdown" table. + * The function accepts either an array of IDs or a single ID + */ + function delete_lockdown_records($entries) + { + global $wpdb, $aio_wp_security; + $lockdown_table = AIOWPSEC_TBL_LOGIN_LOCKDOWN; + if (is_array($entries)) + { + //Delete multiple records + $id_list = "(" .implode(",",$entries) .")"; //Create comma separate list for DB operation + $delete_command = "DELETE FROM ".$lockdown_table." WHERE ID IN ".$id_list; + $result = $wpdb->query($delete_command); + if($result != NULL) + { + $this->show_msg_updated(__('The selected records were deleted successfully!','aiowpsecurity')); + } + } elseif ($entries != NULL) + { + //Delete single record + $delete_command = "DELETE FROM ".$lockdown_table." WHERE ID = '".absint($entries)."'"; + $result = $wpdb->query($delete_command); + if($result != NULL) + { + $this->show_msg_updated(__('The selected record was deleted successfully!','aiowpsecurity')); + } + //$aio_wp_security->debug_logger->log_debug("Record deleted from login_lockdown table - lockdown ID: ".$entries,0); + } + } + +} //end class \ No newline at end of file diff --git a/all-in-one-wp-security/admin/wp-security-user-registration-menu.php b/all-in-one-wp-security/admin/wp-security-user-registration-menu.php new file mode 100644 index 0000000..57ad5e9 --- /dev/null +++ b/all-in-one-wp-security/admin/wp-security-user-registration-menu.php @@ -0,0 +1,240 @@ + 'render_tab1', + 'tab2' => 'render_tab2', + ); + + function __construct() + { + $this->render_menu_page(); + } + + function set_menu_tabs() + { + $this->menu_tabs = array( + 'tab1' => __('Manual Approval', 'aiowpsecurity'), + 'tab2' => __('Registration Captcha', 'aiowpsecurity'), + ); + } + + function get_current_tab() + { + $tab_keys = array_keys($this->menu_tabs); + $tab = isset( $_GET['tab'] ) ? $_GET['tab'] : $tab_keys[0]; + return $tab; + } + + /* + * Renders our tabs of this menu as nav items + */ + function render_menu_tabs() + { + $current_tab = $this->get_current_tab(); + + echo ''; + } + + /* + * The menu rendering goes here + */ + function render_menu_page() + { + $this->set_menu_tabs(); + $tab = $this->get_current_tab(); + ?> +
+
+ render_menu_tabs(); + //$tab_keys = array_keys($this->menu_tabs); + call_user_func(array(&$this, $this->menu_tabs_handler[$tab])); + ?> +
+
+ debug_logger->log_debug("Nonce check failed on save user registration settings!",4); + die("Nonce check failed on save user registration settings!"); + } + + //Save settings + $aio_wp_security->configs->set_value('aiowps_enable_manual_registration_approval',isset($_POST["aiowps_enable_manual_registration_approval"])?'1':''); + + //Commit the config settings + $aio_wp_security->configs->save_config(); + + //Recalculate points after the feature status/options have been altered + $aiowps_feature_mgr->check_feature_status_and_recalculate_points(); + + $this->show_msg_updated(__('Settings were successfully saved', 'aiowpsecurity')); + } + + if(isset($_REQUEST['action'])) //Do list table form row action tasks + { + if($_REQUEST['action'] == 'approve_acct'){ //Delete link was clicked for a row in list table + $user_list->approve_selected_accounts(strip_tags($_REQUEST['user_id'])); + } + + if($_REQUEST['action'] == 'delete_acct'){ //Unlock link was clicked for a row in list table + $user_list->delete_selected_accounts(strip_tags($_REQUEST['user_id'])); + } + } + + + ?> +

+
+ +
+

+
+
+ '.__('If your site allows people to create their own accounts via the WordPress registration form, then you can minimize SPAM or bogus registrations by manually approving each registration.', 'aiowpsecurity'). + '
'.__('This feature will automatically set a newly registered account to "pending" until the administrator activates it. Therefore undesirable registrants will be unable to log in without your express approval.', 'aiowpsecurity'). + '
'.__('You can view all accounts which have been newly registered via the handy table below and you can also perform bulk activation/deactivation/deletion tasks on each account.', 'aiowpsecurity').'

'; + ?> +
+ output_feature_details_badge("manually-approve-registrations"); + if (AIOWPSecurity_Utility::is_multisite_install() && get_current_blog_id() != 1) + { + //Hide config settings if MS and not main site + AIOWPSecurity_Utility::display_multisite_message(); + } + else + { + ?> + + + + + +
: + configs->get_value('aiowps_enable_manual_registration_approval')=='1') echo ' checked="checked"'; ?> value="1"/> + +
+ + +
+
+
+

+
+ prepare_items(); + ?> +
+ + + + display(); ?> +
+ debug_logger->log_debug("Nonce check failed on registration captcha settings save!",4); + die("Nonce check failed on registration captcha settings save!"); + } + + + //Save all the form values to the options + $random_20_digit_string = AIOWPSecurity_Utility::generate_alpha_numeric_random_string(20); //Generate random 20 char string for use during captcha encode/decode + $aio_wp_security->configs->set_value('aiowps_captcha_secret_key', $random_20_digit_string); + $aio_wp_security->configs->set_value('aiowps_enable_registration_page_captcha',isset($_POST["aiowps_enable_registration_page_captcha"])?'1':''); + $aio_wp_security->configs->save_config(); + + //Recalculate points after the feature status/options have been altered + $aiowps_feature_mgr->check_feature_status_and_recalculate_points(); + + $this->show_msg_settings_updated(); + } + ?> +
+ '.__('This feature allows you to add a captcha form on the WordPress registration page.', 'aiowpsecurity').' +
'.__('Users who attempt to register will also need to enter the answer to a simple mathematical question - if they enter the wrong answer, the plugin will not allow them to register.', 'aiowpsecurity').' +
'.__('Therefore, adding a captcha form on the registration page is another effective yet simple SPAM registration prevention technique.', 'aiowpsecurity').' +

'; + ?> +
+
+

+
+ '; + $special_msg .= '

'.__('The core default behaviour for WordPress Multi Site regarding user registration is that all users are registered via the main site.','aiowpsecurity').'

'; + $special_msg .= '

'.__('Therefore, if you would like to add a captcha form to the registration page for a Multi Site, please go to "Registration Captcha" settings on the main site.','aiowpsecurity').'

'; + $special_msg .= '
'; + echo $special_msg; + } + else + { + //Display security info badge + global $aiowps_feature_mgr; + $aiowps_feature_mgr->output_feature_details_badge("user-registration-captcha"); + ?> + + + + + + + + +
: + configs->get_value('aiowps_enable_registration_page_captcha')=='1') echo ' checked="checked"'; ?> value="1"/> + +
+ + +
+ 'render_tab1', + ); + + function __construct() + { + $this->render_menu_page(); + } + + function set_menu_tabs() + { + $this->menu_tabs = array( + 'tab1' => __('WhoIS Lookup', 'aiowpsecurity'), + ); + } + + function get_current_tab() + { + $tab_keys = array_keys($this->menu_tabs); + $tab = isset( $_GET['tab'] ) ? $_GET['tab'] : $tab_keys[0]; + return $tab; + } + + /* + * Renders our tabs of this menu as nav items + */ + function render_menu_tabs() + { + $current_tab = $this->get_current_tab(); + + echo ''; + } + + /* + * The menu rendering goes here + */ + function render_menu_page() + { + $this->set_menu_tabs(); + $tab = $this->get_current_tab(); + ?> +
+
+ render_menu_tabs(); + //$tab_keys = array_keys($this->menu_tabs); + call_user_func(array(&$this, $this->menu_tabs_handler[$tab])); + ?> +
+
+ +

+
+ '.__('This feature allows you to look up more detailed information about an IP address or domain name by querying the WHOIS API.', 'aiowpsecurity').' +

'; + ?> +
+ +
+

+
+
+ + + + + + +
: + +
+ +
+
+ debug_logger->log_debug("Nonce check failed on WHOIS lookup!",4); + die("Nonce check failed on WHOIS lookup!"); + } + + require_once(AIO_WP_SECURITY_LIB_PATH.'/whois/whois.main.php'); + require_once(AIO_WP_SECURITY_LIB_PATH.'/whois/whois.utils.php'); + $input_val = trim($_POST['aiowps_whois_lookup_field']); + if (filter_var($input_val, FILTER_VALIDATE_IP) || filter_var(gethostbyname($input_val), FILTER_VALIDATE_IP)) + { + //$info_msg_string = '

'.sprintf( __('WHOIS lookup successfully completed. Please see the results below:', 'aiowpsecurity')).'

'; + //echo ($info_msg_string); + $this->show_msg_updated(__('WHOIS lookup successfully completed. Please see the results below:', 'aiowpsecurity')); + $whois = new Whois(); + $result = $whois->Lookup($input_val); + if (!empty($result['rawdata'])) + { + $utils = new utils; + $winfo = $utils->showHTML($result); + echo $winfo; + } + } + else + { + $this->show_msg_error(__('You have entered an incorrectly formatted IP address or domain name. Please try again.','aiowpsecurity')); + } + } + } +} //end class \ No newline at end of file diff --git a/all-in-one-wp-security/backups/index.html b/all-in-one-wp-security/backups/index.html new file mode 100644 index 0000000..e69de29 diff --git a/all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php b/all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php new file mode 100644 index 0000000..64e8062 --- /dev/null +++ b/all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php @@ -0,0 +1,771 @@ +feature_items = array(); + //Settings Menu Features + //WP Generator Meta + $this->feature_items[] = new AIOWPSecurity_Feature_Item("wp-generator-meta-tag", __("Remove WP Generatore Meta Tag", "aiowpsecurity"), $this->feature_point_1, $this->sec_level_basic); + + //Prevent Image Hotlinks + $this->feature_items[] = new AIOWPSecurity_Feature_Item("prevent-hotlinking", __("Prevent Image Hotlinking", "aiowpsecurity"), $this->feature_point_2, $this->sec_level_basic); + + //User Accounts Menu Features + //Change Admin Username + $this->feature_items[] = new AIOWPSecurity_Feature_Item("user-accounts-change-admin-user", __("Change Admin Username", "aiowpsecurity"), $this->feature_point_3, $this->sec_level_basic); + //Change Display Name + $this->feature_items[] = new AIOWPSecurity_Feature_Item("user-accounts-display-name", __("Change Display Name", "aiowpsecurity"), $this->feature_point_1, $this->sec_level_basic); + + //User Login Menu Features + //Locking Lockdown + $this->feature_items[] = new AIOWPSecurity_Feature_Item("user-login-login-lockdown", __("Login Lockdown", "aiowpsecurity"), $this->feature_point_4, $this->sec_level_basic); + //Login Captcha + $this->feature_items[] = new AIOWPSecurity_Feature_Item("user-login-captcha", __("Login Captcha", "aiowpsecurity"), $this->feature_point_4, $this->sec_level_basic); + $this->feature_items[] = new AIOWPSecurity_Feature_Item("custom-login-captcha", __("Custom Login Captcha", "aiowpsecurity"), $this->feature_point_4, $this->sec_level_basic); + //Lost Password Captcha + $this->feature_items[] = new AIOWPSecurity_Feature_Item("lost-password-captcha", __("Lost Password Captcha", "aiowpsecurity"), $this->feature_point_2, $this->sec_level_basic); + //Login whitelisting + $this->feature_items[] = new AIOWPSecurity_Feature_Item("whitelist-manager-ip-login-whitelisting", __("Login IP Whitelisting", "aiowpsecurity"), $this->feature_point_3, $this->sec_level_inter); + //Force Logout + $this->feature_items[] = new AIOWPSecurity_Feature_Item("user-login-force-logout", __("Force Logout", "aiowpsecurity"), $this->feature_point_1, $this->sec_level_basic); + + //User Registration + //Manually approve registrations + $this->feature_items[] = new AIOWPSecurity_Feature_Item("manually-approve-registrations", __("Registration Approval", "aiowpsecurity"), $this->feature_point_4, $this->sec_level_basic); + //Registration Captcha + $this->feature_items[] = new AIOWPSecurity_Feature_Item("user-registration-captcha", __("Registration Captcha", "aiowpsecurity"), $this->feature_point_4, $this->sec_level_basic); + + //Database Security Menu Features + //DB Prefix + $this->feature_items[] = new AIOWPSecurity_Feature_Item("db-security-db-prefix", __("DB Prefix", "aiowpsecurity"), $this->feature_point_2, $this->sec_level_inter); + //DB Backup + $this->feature_items[] = new AIOWPSecurity_Feature_Item("db-security-db-backup", __("DB Backup", "aiowpsecurity"), $this->feature_point_4, $this->sec_level_basic); + + //File System Security Menu Features + //File Permissions + $this->feature_items[] = new AIOWPSecurity_Feature_Item("filesystem-file-permissions", __("File Permissions", "aiowpsecurity"), $this->feature_point_4, $this->sec_level_basic); + //PHP File Editing + $this->feature_items[] = new AIOWPSecurity_Feature_Item("filesystem-file-editing", __("File Editing", "aiowpsecurity"), $this->feature_point_2, $this->sec_level_basic); + //Prevent Access WP Install Files + $this->feature_items[] = new AIOWPSecurity_Feature_Item("block-wp-files-access", __("WordPress Files Access", "aiowpsecurity"), $this->feature_point_2, $this->sec_level_basic); + + //Blacklist Manager Menu Features + //IP and user agent blacklisting + $this->feature_items[] = new AIOWPSecurity_Feature_Item("blacklist-manager-ip-user-agent-blacklisting", __("IP and User Agent Blacklisting", "aiowpsecurity"), $this->feature_point_3, $this->sec_level_inter); + + //Firewall Menu Features + //Basic firewall + $this->feature_items[] = new AIOWPSecurity_Feature_Item("firewall-basic-rules", __("Enable Basic Firewall", "aiowpsecurity"), $this->feature_point_3, $this->sec_level_basic); + $this->feature_items[] = new AIOWPSecurity_Feature_Item("firewall-pingback-rules", __("Enable Pingback Vulnerability Protection", "aiowpsecurity"), $this->feature_point_3, $this->sec_level_basic); + $this->feature_items[] = new AIOWPSecurity_Feature_Item("firewall-enable-404-blocking", __("Enable IP blocking for 404 detection", "aiowpsecurity"), $this->feature_point_1, $this->sec_level_inter); + + //Brute Force Menu Features + //Rename Login page + $this->feature_items[] = new AIOWPSecurity_Feature_Item("bf-rename-login-page", __("Enable Rename Login Page", "aiowpsecurity"), $this->feature_point_2, $this->sec_level_inter); + //Login Honeypot + $this->feature_items[] = new AIOWPSecurity_Feature_Item("login-honeypot", __("Enable Login Honeypot", "aiowpsecurity"), $this->feature_point_2, $this->sec_level_inter); + + //Additional and Advanced firewall + $this->feature_items[] = new AIOWPSecurity_Feature_Item("firewall-enable-brute-force-attack-prevention", __("Enable Brute Force Attack Prevention", "aiowpsecurity"), $this->feature_point_4, $this->sec_level_advanced); + $this->feature_items[] = new AIOWPSecurity_Feature_Item("firewall-disable-index-views", __("Disable Index Views", "aiowpsecurity"), $this->feature_point_1, $this->sec_level_inter); + $this->feature_items[] = new AIOWPSecurity_Feature_Item("firewall-disable-trace-track", __("Disable Trace and Track", "aiowpsecurity"), $this->feature_point_2, $this->sec_level_advanced); + $this->feature_items[] = new AIOWPSecurity_Feature_Item("firewall-forbid-proxy-comments", __("Forbid Proxy Comments", "aiowpsecurity"), $this->feature_point_2, $this->sec_level_advanced); + $this->feature_items[] = new AIOWPSecurity_Feature_Item("firewall-deny-bad-queries", __("Deny Bad Queries", "aiowpsecurity"), $this->feature_point_3, $this->sec_level_advanced); + $this->feature_items[] = new AIOWPSecurity_Feature_Item("firewall-advanced-character-string-filter", __("Advanced Character String Filter", "aiowpsecurity"), $this->feature_point_3, $this->sec_level_advanced); + $this->feature_items[] = new AIOWPSecurity_Feature_Item("firewall-enable-5g-blacklist", __("5G Blacklist", "aiowpsecurity"), $this->feature_point_4, $this->sec_level_advanced); + $this->feature_items[] = new AIOWPSecurity_Feature_Item("firewall-block-fake-googlebots", __("Block Fake Googlebots", "aiowpsecurity"), $this->feature_point_1, $this->sec_level_advanced); + //SPAM Prevention + $this->feature_items[] = new AIOWPSecurity_Feature_Item("block-spambots", __("Block Spambots", "aiowpsecurity"), $this->feature_point_2, $this->sec_level_basic); + //Comment Captcha + $this->feature_items[] = new AIOWPSecurity_Feature_Item("comment-form-captcha", __("Comment Captcha", "aiowpsecurity"), $this->feature_point_4, $this->sec_level_basic); + //BuddyPress Registration Captcha + $this->feature_items[] = new AIOWPSecurity_Feature_Item("bp-register-captcha", __("BuddyPress Registration Captcha", "aiowpsecurity"), $this->feature_point_1, $this->sec_level_basic); + + //Filescan + //File change detection + $this->feature_items[] = new AIOWPSecurity_Feature_Item("scan-file-change-detection", __("File Change Detection", "aiowpsecurity"), $this->feature_point_4, $this->sec_level_inter); + + } + + function get_feature_item_by_id($feature_id) + { + foreach($this->feature_items as $item) + { + if($item->feature_id == $feature_id) + { + return $item; + } + } + return ""; + } + + function output_feature_details_badge($feature_id) + { + $cau_feature_item = $this->get_feature_item_by_id($feature_id); + $cau_security_level = $cau_feature_item->security_level; + $cau_security_points = $cau_feature_item->item_points; + $cau_your_points = 0; + if($cau_feature_item->feature_status == $this->feature_active){ + $cau_your_points = $cau_security_points; + } + $level_str = $cau_feature_item->get_security_level_string($cau_security_level); + ?> +
+
+ +
+
+ +
+
+ check_and_set_feature_status(); + $this->calculate_total_points(); + } + + function check_and_set_feature_status() + { + foreach($this->feature_items as $item) + { + if($item->feature_id == "wp-generator-meta-tag") + { + $this->check_remove_wp_generator_meta_feature($item); + } + + if($item->feature_id == "prevent-hotlinking") + { + $this->check_prevent_hotlinking_feature($item); + } + + if($item->feature_id == "user-accounts-change-admin-user") + { + $this->check_user_accounts_change_admin_user_feature($item); + } + if($item->feature_id == "user-accounts-display-name") + { + $this->check_user_accounts_display_name_feature($item); + } + + if($item->feature_id == "db-security-db-prefix") + { + $this->check_db_security_db_prefix_feature($item); + } + if($item->feature_id == "db-security-db-backup") + { + $this->check_db_security_db_backup_feature($item); + } + + if($item->feature_id == "user-login-login-lockdown") + { + $this->check_login_lockdown_feature($item); + } + if($item->feature_id == "user-login-captcha") + { + $this->check_login_captcha_feature($item); + } + if($item->feature_id == "custom-login-captcha") + { + $this->check_custom_login_captcha_feature($item); + } + if($item->feature_id == "lost-password-captcha") + { + $this->check_lost_password_captcha_feature($item); + } + if($item->feature_id == "comment-form-captcha") + { + $this->check_comment_captcha_feature($item); + } + if($item->feature_id == "bp-register-captcha") + { + $this->check_bp_register_captcha_feature($item); + } + if($item->feature_id == "whitelist-manager-ip-login-whitelisting") + { + $this->check_login_whitelist_feature($item); + } + if($item->feature_id == "user-login-force-logout") + { + $this->check_force_logout_feature($item); + } + + if($item->feature_id == "manually-approve-registrations") + { + $this->check_registration_approval_feature($item); + } + if($item->feature_id == "user-registration-captcha") + { + $this->check_registration_captcha_feature($item); + } + + + if($item->feature_id == "filesystem-file-permissions") + { + $this->check_filesystem_permissions_feature($item); + } + if($item->feature_id == "filesystem-file-editing") + { + $this->check_filesystem_file_editing_feature($item); + } + if($item->feature_id == "block-wp-files-access") + { + $this->check_block_wp_files_access_feature($item); + } + + if($item->feature_id == "blacklist-manager-ip-user-agent-blacklisting") + { + $this->check_enable_ip_useragent_blacklist_feature($item); + } + + if($item->feature_id == "firewall-basic-rules") + { + $this->check_enable_basic_firewall_feature($item); + } + + if($item->feature_id == "firewall-pingback-rules") + { + $this->check_enable_pingback_firewall_feature($item); + } + + if($item->feature_id == "firewall-enable-404-blocking") + { + $this->check_enable_404_blocking_feature($item); + } + + if($item->feature_id == "firewall-enable-brute-force-attack-prevention") + { + $this->check_enable_bfap_firewall_feature($item); + } + if($item->feature_id == "firewall-disable-index-views") + { + $this->check_disable_index_views_firewall_feature($item); + } + if($item->feature_id == "firewall-disable-trace-track") + { + $this->check_disable_trace_track_firewall_feature($item); + } + if($item->feature_id == "firewall-forbid-proxy-comments") + { + $this->check_forbid_proxy_comments_firewall_feature($item); + } + if($item->feature_id == "firewall-deny-bad-queries") + { + $this->check_deny_bad_queries_firewall_feature($item); + } + if($item->feature_id == "firewall-advanced-character-string-filter") + { + $this->check_advanced_char_string_filter_firewall_feature($item); + } + if($item->feature_id == "firewall-enable-5g-blacklist") + { + $this->check_enable_5G_blacklist_firewall_feature($item); + } + if($item->feature_id == "firewall-block-fake-googlebots") + { + $this->check_block_fake_googlebots_firewall_feature($item); + } + + if($item->feature_id == "bf-rename-login-page") + { + $this->check_enable_rename_login_page_feature($item); + } + + if($item->feature_id == "login-honeypot") + { + $this->check_enable_login_honeypot_feature($item); + } + + if($item->feature_id == "block-spambots") + { + $this->check_enable_block_spambots_feature($item); + } + + if($item->feature_id == "scan-file-change-detection") + { + $this->check_enable_fcd_scan_feature($item); + } + + } + } + + function calculate_total_points() + { + foreach($this->feature_items as $item) + { + if($item->feature_status == "active") + { + $this->total_points = $this->total_points + intval($item->item_points); + } + } + } + + function get_total_site_points() + { + return $this->total_points; + } + + function get_total_achievable_points() + { + foreach($this->feature_items as $item) + { + $this->total_achievable_points = $this->total_achievable_points + intval($item->item_points); + } + return $this->total_achievable_points; + } + + function check_remove_wp_generator_meta_feature($item) + { + global $aio_wp_security; + if ($aio_wp_security->configs->get_value('aiowps_remove_wp_generator_meta_info') == '1') { + $item->set_feature_status($this->feature_active); + } + else + { + $item->set_feature_status($this->feature_inactive); + } + } + + function check_prevent_hotlinking_feature($item) + { + global $aio_wp_security; + if ($aio_wp_security->configs->get_value('aiowps_prevent_hotlinking') == '1') { + $item->set_feature_status($this->feature_active); + } + else + { + $item->set_feature_status($this->feature_inactive); + } + } + + function check_user_accounts_change_admin_user_feature($item) + { + if (AIOWPSecurity_Utility::check_user_exists('admin')) { + $item->set_feature_status($this->feature_inactive); + } + else + { + $item->set_feature_status($this->feature_active); + } + } + + function check_user_accounts_display_name_feature($item) + { + if (AIOWPSecurity_Utility::check_identical_login_and_nick_names()) { + $item->set_feature_status($this->feature_inactive); + } + else + { + $item->set_feature_status($this->feature_active); + } + } + + function check_login_lockdown_feature($item) + { + global $aio_wp_security; + if ($aio_wp_security->configs->get_value('aiowps_enable_login_lockdown') == '1') { + $item->set_feature_status($this->feature_active); + } + else + { + $item->set_feature_status($this->feature_inactive); + } + } + + function check_login_captcha_feature($item) + { + global $aio_wp_security; + if ($aio_wp_security->configs->get_value('aiowps_enable_login_captcha') == '1') { + $item->set_feature_status($this->feature_active); + } + else + { + $item->set_feature_status($this->feature_inactive); + } + } + + function check_custom_login_captcha_feature($item) + { + global $aio_wp_security; + if ($aio_wp_security->configs->get_value('aiowps_enable_custom_login_captcha') == '1') { + $item->set_feature_status($this->feature_active); + } + else + { + $item->set_feature_status($this->feature_inactive); + } + } + + function check_lost_password_captcha_feature($item) + { + global $aio_wp_security; + if ($aio_wp_security->configs->get_value('aiowps_enable_lost_password_captcha') == '1') { + $item->set_feature_status($this->feature_active); + } + else + { + $item->set_feature_status($this->feature_inactive); + } + } + + function check_comment_captcha_feature($item) + { + global $aio_wp_security; + if ($aio_wp_security->configs->get_value('aiowps_enable_comment_captcha') == '1') { + $item->set_feature_status($this->feature_active); + } + else + { + $item->set_feature_status($this->feature_inactive); + } + } + + function check_bp_register_captcha_feature($item) + { + global $aio_wp_security; + if ($aio_wp_security->configs->get_value('aiowps_enable_bp_register_captcha') == '1') { + $item->set_feature_status($this->feature_active); + } + else + { + $item->set_feature_status($this->feature_inactive); + } + } + + function check_login_whitelist_feature($item) + { + global $aio_wp_security; + if ($aio_wp_security->configs->get_value('aiowps_enable_whitelisting') == '1') { + $item->set_feature_status($this->feature_active); + } + else + { + $item->set_feature_status($this->feature_inactive); + } + } + + function check_force_logout_feature($item) + { + global $aio_wp_security; + if ($aio_wp_security->configs->get_value('aiowps_enable_forced_logout') == '1') { + $item->set_feature_status($this->feature_active); + } + else + { + $item->set_feature_status($this->feature_inactive); + } + } + + function check_registration_approval_feature($item) + { + global $aio_wp_security; + if ($aio_wp_security->configs->get_value('aiowps_enable_manual_registration_approval') == '1') { + $item->set_feature_status($this->feature_active); + } + else + { + $item->set_feature_status($this->feature_inactive); + } + } + + function check_registration_captcha_feature($item) + { + global $aio_wp_security; + if ($aio_wp_security->configs->get_value('aiowps_enable_registration_page_captcha') == '1') { + $item->set_feature_status($this->feature_active); + } + else + { + $item->set_feature_status($this->feature_inactive); + } + } + + + function check_db_security_db_prefix_feature($item) + { + global $wpdb; + if ($wpdb->prefix == 'wp_') { + $item->set_feature_status($this->feature_inactive); + } + else + { + $item->set_feature_status($this->feature_active); + } + } + + function check_db_security_db_backup_feature($item) + { + global $aio_wp_security; + if ($aio_wp_security->configs->get_value('aiowps_enable_automated_backups') == '1') { + $item->set_feature_status($this->feature_active); + } + else + { + $item->set_feature_status($this->feature_inactive); + } + } + + function check_filesystem_permissions_feature($item) + { + //TODO + $is_secure = 1; + $util = new AIOWPSecurity_Utility_File; + $files_dirs_to_check = $util->files_and_dirs_to_check; + foreach ($files_dirs_to_check as $file_or_dir) + { + $actual_perm = AIOWPSecurity_Utility_File::get_file_permission($file_or_dir['path']); + $is_secure = $is_secure*AIOWPSecurity_Utility_File::is_file_permission_secure($file_or_dir['permissions'], $actual_perm); + } + + //Only if all of the files' permissions are deemed secure give this a thumbs up + if ($is_secure == 1) + { + $item->set_feature_status($this->feature_active); + } + else + { + $item->set_feature_status($this->feature_inactive); + } + } + + function check_filesystem_file_editing_feature($item) + { + global $aio_wp_security; + if ($aio_wp_security->configs->get_value('aiowps_disable_file_editing') == '1') { + $item->set_feature_status($this->feature_active); + } + else + { + $item->set_feature_status($this->feature_inactive); + } + } + + function check_block_wp_files_access_feature($item) + { + global $aio_wp_security; + if ($aio_wp_security->configs->get_value('aiowps_prevent_default_wp_file_access') == '1') { + $item->set_feature_status($this->feature_active); + } + else + { + $item->set_feature_status($this->feature_inactive); + } + } + + function check_enable_ip_useragent_blacklist_feature($item) + { + global $aio_wp_security; + if ($aio_wp_security->configs->get_value('aiowps_enable_blacklisting') == '1') { + $item->set_feature_status($this->feature_active); + } + else + { + $item->set_feature_status($this->feature_inactive); + } + } + + function check_enable_basic_firewall_feature($item) + { + global $aio_wp_security; + if ($aio_wp_security->configs->get_value('aiowps_enable_basic_firewall') == '1') { + $item->set_feature_status($this->feature_active); + } + else + { + $item->set_feature_status($this->feature_inactive); + } + } + + function check_enable_pingback_firewall_feature($item) + { + global $aio_wp_security; + if ($aio_wp_security->configs->get_value('aiowps_enable_pingback_firewall') == '1') { + $item->set_feature_status($this->feature_active); + } + else + { + $item->set_feature_status($this->feature_inactive); + } + } + + + function check_disable_trace_track_firewall_feature($item) + { + global $aio_wp_security; + if ($aio_wp_security->configs->get_value('aiowps_disable_trace_and_track') == '1') { + $item->set_feature_status($this->feature_active); + } + else + { + $item->set_feature_status($this->feature_inactive); + } + } + + function check_disable_index_views_firewall_feature($item) + { + global $aio_wp_security; + if ($aio_wp_security->configs->get_value('aiowps_disable_index_views') == '1') { + $item->set_feature_status($this->feature_active); + } + else + { + $item->set_feature_status($this->feature_inactive); + } + } + + function check_enable_bfap_firewall_feature($item) + { + global $aio_wp_security; + if ($aio_wp_security->configs->get_value('aiowps_enable_brute_force_attack_prevention') == '1') { + $item->set_feature_status($this->feature_active); + } + else + { + $item->set_feature_status($this->feature_inactive); + } + } + + function check_forbid_proxy_comments_firewall_feature($item) + { + global $aio_wp_security; + if ($aio_wp_security->configs->get_value('aiowps_forbid_proxy_comments') == '1') { + $item->set_feature_status($this->feature_active); + } + else + { + $item->set_feature_status($this->feature_inactive); + } + } + + function check_deny_bad_queries_firewall_feature($item) + { + global $aio_wp_security; + if ($aio_wp_security->configs->get_value('aiowps_deny_bad_query_strings') == '1') { + $item->set_feature_status($this->feature_active); + } + else + { + $item->set_feature_status($this->feature_inactive); + } + } + + function check_advanced_char_string_filter_firewall_feature($item) + { + global $aio_wp_security; + if ($aio_wp_security->configs->get_value('aiowps_advanced_char_string_filter') == '1') { + $item->set_feature_status($this->feature_active); + } + else + { + $item->set_feature_status($this->feature_inactive); + } + } + + function check_enable_5G_blacklist_firewall_feature($item) + { + global $aio_wp_security; + if ($aio_wp_security->configs->get_value('aiowps_enable_5g_firewall') == '1') { + $item->set_feature_status($this->feature_active); + } + else + { + $item->set_feature_status($this->feature_inactive); + } + } + + function check_block_fake_googlebots_firewall_feature($item) + { + global $aio_wp_security; + if ($aio_wp_security->configs->get_value('aiowps_block_fake_googlebots') == '1') { + $item->set_feature_status($this->feature_active); + } + else + { + $item->set_feature_status($this->feature_inactive); + } + } + + function check_enable_404_blocking_feature($item) + { + global $aio_wp_security; + if ($aio_wp_security->configs->get_value('aiowps_enable_404_IP_lockout') == '1') { + $item->set_feature_status($this->feature_active); + } + else + { + $item->set_feature_status($this->feature_inactive); + } + } + + function check_enable_rename_login_page_feature($item) + { + global $aio_wp_security; + if ($aio_wp_security->configs->get_value('aiowps_enable_rename_login_page') == '1') { + $item->set_feature_status($this->feature_active); + } + else + { + $item->set_feature_status($this->feature_inactive); + } + } + + function check_enable_login_honeypot_feature($item) + { + global $aio_wp_security; + if ($aio_wp_security->configs->get_value('aiowps_enable_login_honeypot') == '1') { + $item->set_feature_status($this->feature_active); + } + else + { + $item->set_feature_status($this->feature_inactive); + } + } + + function check_enable_block_spambots_feature($item) + { + global $aio_wp_security; + if ($aio_wp_security->configs->get_value('aiowps_enable_spambot_blocking') == '1') { + $item->set_feature_status($this->feature_active); + } + else + { + $item->set_feature_status($this->feature_inactive); + } + } + + function check_enable_fcd_scan_feature($item) + { + global $aio_wp_security; + if ($aio_wp_security->configs->get_value('aiowps_enable_automated_fcd_scan') == '1') { + $item->set_feature_status($this->feature_active); + } + else + { + $item->set_feature_status($this->feature_inactive); + } + } + +} \ No newline at end of file diff --git a/all-in-one-wp-security/classes/grade-system/wp-security-feature-item.php b/all-in-one-wp-security/classes/grade-system/wp-security-feature-item.php new file mode 100644 index 0000000..0e83f83 --- /dev/null +++ b/all-in-one-wp-security/classes/grade-system/wp-security-feature-item.php @@ -0,0 +1,40 @@ +feature_id = $feature_id; + $this->feature_name = $feature_name; + $this->item_points = $item_points; + $this->security_level = $security_level; + } + + function set_feature_status($status) + { + $this->feature_status = $status; + } + + function get_security_level_string($level) + { + $level_string = ""; + if($level == "1"){ + $level_string = __('Basic', 'aiowpsecurity'); + } + else if($level == "2"){ + $level_string = __('Intermediate', 'aiowpsecurity'); + } + else if($level == "3"){ + $level_string = __('Advanced', 'aiowpsecurity'); + } + return $level_string; + } + +} + diff --git a/all-in-one-wp-security/classes/index.html b/all-in-one-wp-security/classes/index.html new file mode 100644 index 0000000..e69de29 diff --git a/all-in-one-wp-security/classes/index.php b/all-in-one-wp-security/classes/index.php new file mode 100644 index 0000000..485c60a --- /dev/null +++ b/all-in-one-wp-security/classes/index.php @@ -0,0 +1,5 @@ +prefix); + $db_query = "SHOW TABLES LIKE '".$site_pref."%'"; + $tables = $wpdb->get_results( $db_query, ARRAY_N ); + $is_multi_site = true; + } + else + { + //get all of the tables + $tables = $wpdb->get_results( 'SHOW TABLES', ARRAY_N ); + } + + $return = ''; + + //cycle through each table + foreach($tables as $table) + { + $result = $wpdb->get_results( 'SELECT * FROM `' . $table[0] . '`;', ARRAY_N ); + $num_fields = sizeof( $wpdb->get_results( 'DESCRIBE `' . $table[0] . '`;' ) ); + + $return.= 'DROP TABLE IF EXISTS `' . $table[0] . '`;'; + $row2 = $wpdb->get_row( 'SHOW CREATE TABLE `' . $table[0] . '`;', ARRAY_N ); + $return.= PHP_EOL . PHP_EOL . $row2[1] . ";" . PHP_EOL . PHP_EOL; + + foreach( $result as $row ) + { + $return .= 'INSERT INTO `' . $table[0] . '` VALUES('; + + for( $j=0; $j < $num_fields; $j++ ) { + + $row[$j] = addslashes( $row[$j] ); + //$row[$j] = ereg_replace( PHP_EOL, "\n", $row[$j] ); //deprecated! + $row[$j] = preg_replace( "/".PHP_EOL."/", "\n", $row[$j] ); + + if ( isset( $row[$j] ) ) { + $return .= '"' . $row[$j] . '"' ; + } else { + $return.= '""'; + } + + if ( $j < ( $num_fields - 1 ) ) { + $return .= ','; + } + + } + $return .= ");" . PHP_EOL; + } + $return .= PHP_EOL . PHP_EOL; + } + $return .= PHP_EOL . PHP_EOL; + + //Check to see if the main "backups" directory exists - create it otherwise + + $aiowps_backup_dir = WP_CONTENT_DIR.'/'.AIO_WP_SECURITY_BACKUPS_DIR_NAME; + $aiowps_backup_url = content_url().'/'.AIO_WP_SECURITY_BACKUPS_DIR_NAME; + if (!AIOWPSecurity_Utility_File::create_dir($aiowps_backup_dir)) + { + $aio_wp_security->debug_logger->log_debug("Creation of DB backup directory failed!",4); + return false; + } + + //Generate a random prefix for more secure filenames + $random_prefix = $random_prefix = AIOWPSecurity_Utility::generate_alpha_numeric_random_string(10); + + if ($is_multi_site) + { + global $current_blog; + $blog_id = $current_blog->blog_id; + //Get the current site name string for use later + $site_name = get_bloginfo('name'); + + $site_name = strtolower($site_name); + + //make alphaunermic + $site_name = preg_replace("/[^a-z0-9_\s-]/", "", $site_name); + + //Cleanup multiple instances of dashes or whitespaces + $site_name = preg_replace("/[\s-]+/", " ", $site_name); + + //Convert whitespaces and underscore to dash + $site_name = preg_replace("/[\s_]/", "-", $site_name); + + $file = $random_prefix.'-database-backup-site-name-' . $site_name . '-' . current_time( 'timestamp' ); + + //We will create a sub dir for the blog using its blog id + $dirpath = $aiowps_backup_dir . '/blogid_' . $blog_id . '/'; + + //Create a subdirectory for this blog_id + if (!AIOWPSecurity_Utility_File::create_dir($dirpath)) + { + $aio_wp_security->debug_logger->log_debug("Creation failed of DB backup directory for the following multisite blog ID: ".$blog_details->blog_id,4); + return false; + } + + $handle = @fopen( $dirpath . $file . '.sql', 'w+' ); + } + else + { + $dirpath = $aiowps_backup_dir; + $file = $random_prefix.'-database-backup-' . current_time( 'timestamp' ); + $handle = @fopen( $dirpath . '/' . $file . '.sql', 'w+' ); + } + + $fw_res = @fwrite( $handle, $return ); + if (!$fw_res) + { + return false; + } + @fclose( $handle ); + + //zip the file + if ( class_exists( 'ZipArchive' ) ) + { + $zip = new ZipArchive(); + $archive = $zip->open($dirpath . '/' . $file . '.zip', ZipArchive::CREATE); + $zip->addFile($dirpath . '/' . $file . '.sql', $file . '.sql' ); + $zip->close(); + + //delete .sql and keep zip + @unlink( $dirpath . '/' . $file . '.sql' ); + $fileext = '.zip'; + } else + { + $fileext = '.sql'; + } + $this->last_backup_file_name = $file . $fileext;//database-backup-1367644822.zip or database-backup-1367644822.sql + $this->last_backup_file_path = $dirpath . '/' . $file . $fileext; + if ($is_multi_site) + { + $this->last_backup_file_dir_multisite = $aiowps_backup_dir . '/blogid_' . $blog_id; + } + + $this->aiowps_send_backup_email(); //Send backup file via email if applicable + $this->aiowps_delete_backup_files(); + return true; + } + + function aiowps_send_backup_email() + { + global $aio_wp_security; + if ( $aio_wp_security->configs->get_value('aiowps_send_backup_email_address') == '1' ) + { + //Get the right email address. + if ( is_email( $aio_wp_security->configs->get_value('aiowps_backup_email_address') ) ) + { + $toaddress = $aio_wp_security->configs->get_value('aiowps_backup_email_address'); + } else + { + $toaddress = get_site_option( 'admin_email' ); + } + + $to = $toaddress; + $headers = 'From: ' . get_option( 'blogname' ) . ' <' . get_option('admin_email') . '>' . PHP_EOL; + $subject = __( 'All In One WP Security - Site Database Backup', 'aiowpsecurity' ) . ' ' . date( 'l, F jS, Y \a\\t g:i a', current_time( 'timestamp' ) ); + $attachment = array( $this->last_backup_file_path ); + $message = __( 'Attached is your latest DB backup file for site URL', 'aiowpsecurity' ) . ' ' . get_option( 'siteurl' ) . __( ' generated on', 'aiowpsecurity' ) . ' ' . date( 'l, F jS, Y \a\\t g:i a', current_time( 'timestamp' ) ); + + wp_mail( $to, $subject, $message, $headers, $attachment ); + } + } + + function aiowps_delete_backup_files() + { + global $aio_wp_security; + if ( $aio_wp_security->configs->get_value('aiowps_backup_files_stored') > 0 ) + { + $path_parts = pathinfo($this->last_backup_file_path); + $backups_path = $path_parts['dirname']; + $files = scandir( $backups_path . '/', 1 ); + + $count = 0; + + foreach ( $files as $file ) + { + if ( strstr( $file, 'database-backup' ) ) + { + if ( $count >= $aio_wp_security->configs->get_value('aiowps_backup_files_stored') ) + { + @unlink( $backups_path . '/' . $file ); + } + $count++; + } + + } + } + } + + function aiowps_scheduled_backup_handler() + { + global $aio_wp_security; + if($aio_wp_security->configs->get_value('aiowps_enable_automated_backups')=='1') + { + $aio_wp_security->debug_logger->log_debug_cron("DB Backup - Scheduled backup is enabled. Checking if a backup needs to be done now..."); + $current_time = strtotime(current_time('mysql')); + $backup_frequency = $aio_wp_security->configs->get_value('aiowps_db_backup_frequency'); //Number of hours or days or months interval per backup + $interval_setting = $aio_wp_security->configs->get_value('aiowps_db_backup_interval'); //Hours/Days/Months + switch($interval_setting) + { + case '0': + $interval = 'hours'; + break; + case '1': + $interval = 'days'; + break; + case '2': + $interval = 'weeks'; + break; + } + $last_backup_time = $aio_wp_security->configs->get_value('aiowps_last_backup_time'); + if ($last_backup_time != NULL) + { + $last_backup_time = strtotime($aio_wp_security->configs->get_value('aiowps_last_backup_time')); + $next_backup_time = strtotime("+".abs($backup_frequency).$interval, $last_backup_time); + if ($next_backup_time <= $current_time) + { + //It's time to do a backup + $result = $this->execute_backup(); + if ($result) + { + $aio_wp_security->configs->set_value('aiowps_last_backup_time', current_time('mysql')); + $aio_wp_security->configs->save_config(); + $aio_wp_security->debug_logger->log_debug_cron("DB Backup - Scheduled backup was successfully completed."); + } + else + { + $aio_wp_security->debug_logger->log_debug_cron("DB Backup - Scheduled backup operation failed!",4); + } + } + } + else + { + //Set the last backup time to now so it can trigger for the next scheduled period + $aio_wp_security->configs->set_value('aiowps_last_backup_time', current_time('mysql')); + $aio_wp_security->configs->save_config(); + } + } + } +} \ No newline at end of file diff --git a/all-in-one-wp-security/classes/wp-security-bot-protection.php b/all-in-one-wp-security/classes/wp-security-bot-protection.php new file mode 100644 index 0000000..b7c777c --- /dev/null +++ b/all-in-one-wp-security/classes/wp-security-bot-protection.php @@ -0,0 +1,38 @@ +configs->get_value('aiowps_enable_bp_register_captcha') == '1' && defined('BP_VERSION')){ + //if buddy press feature active add action hook so buddy press can display our errors properly on bp registration form + do_action( 'bp_aiowps-captcha-answer_errors' ); + } + $cap_form = '

'; + $cap_form .= '

'; + $maths_question_output = $this->generate_maths_question(); + $cap_form .= $maths_question_output . '

'; + echo $cap_form; + } + + function generate_maths_question() + { + global $aio_wp_security; + //For now we will only do plus, minus, multiplication + $equation_string = ''; + $operator_type = array('+', '−', '×'); + + $operand_display = array('word', 'number'); + + //let's now generate an equation + $operator = $operator_type[rand(0,2)]; + + if($operator === '×'){ + //Don't make the question too hard if multiplication + $first_digit = rand(1,5); + $second_digit = rand(1,5); + }else{ + $first_digit = rand(1,20); + $second_digit = rand(1,20); + } + + if($operand_display[rand(0,1)] == 'word'){ + $first_operand = $this->number_word_mapping($first_digit); + }else{ + $first_operand = $first_digit; + } + + if($operand_display[rand(0,1)] == 'word'){ + $second_operand = $this->number_word_mapping($second_digit); + }else{ + $second_operand = $second_digit; + } + + //Let's caluclate the result and construct the equation string + if($operator === '+') + { + //Addition + $result = $first_digit+$second_digit; + $equation_string .= $first_operand . ' ' . $operator . ' ' . $second_operand . ' = '; + } + else if($operator === '−') + { + //Subtraction + //If we are going to be negative let's swap operands around + if($first_digit < $second_digit){ + $equation_string .= $second_operand . ' ' . $operator . ' ' . $first_operand . ' = '; + $result = $second_digit-$first_digit; + }else{ + $equation_string .= $first_operand . ' ' . $operator . ' ' . $second_operand . ' = '; + $result = $first_digit-$second_digit; + } + } + elseif($operator === '×') + { + //Multiplication + $equation_string .= $first_operand . ' ' . $operator . ' ' . $second_operand . ' = '; + $result = $first_digit*$second_digit; + } + + //Let's encode correct answer + $captcha_secret_string = $aio_wp_security->configs->get_value('aiowps_captcha_secret_key'); + $current_time = time(); + $enc_result = base64_encode($current_time.$captcha_secret_string.$result); + $equation_string .= ''; + $equation_string .= ''; + $equation_string .= ''; + return $equation_string; + } + + function number_word_mapping($num) + { + $number_map = array( + 1 => __('one', 'aiowpsecurity'), + 2 => __('two', 'aiowpsecurity'), + 3 => __('three', 'aiowpsecurity'), + 4 => __('four', 'aiowpsecurity'), + 5 => __('five', 'aiowpsecurity'), + 6 => __('six', 'aiowpsecurity'), + 7 => __('seven', 'aiowpsecurity'), + 8 => __('eight', 'aiowpsecurity'), + 9 => __('nine', 'aiowpsecurity'), + 10 => __('ten', 'aiowpsecurity'), + 11 => __('eleven', 'aiowpsecurity'), + 12 => __('twelve', 'aiowpsecurity'), + 13 => __('thirteen', 'aiowpsecurity'), + 14 => __('fourteen', 'aiowpsecurity'), + 15 => __('fifteen', 'aiowpsecurity'), + 16 => __('sixteen', 'aiowpsecurity'), + 17 => __('seventeen', 'aiowpsecurity'), + 18 => __('eighteen', 'aiowpsecurity'), + 19 => __('nineteen', 'aiowpsecurity'), + 20 => __('twenty', 'aiowpsecurity'), + ); + return $number_map[$num]; + } + +} \ No newline at end of file diff --git a/all-in-one-wp-security/classes/wp-security-config.php b/all-in-one-wp-security/classes/wp-security-config.php new file mode 100644 index 0000000..cd88ed9 --- /dev/null +++ b/all-in-one-wp-security/classes/wp-security-config.php @@ -0,0 +1,56 @@ +message_stack = new stdClass(); + } + + function load_config(){ + $this->configs = get_option('aio_wp_security_configs'); + } + + function get_value($key){ + return isset($this->configs[$key])?$this->configs[$key] : ''; + } + + function set_value($key, $value){ + $this->configs[$key] = $value; + } + + function add_value($key, $value){ + if(!is_array($this->configs)){$this->configs = array();} + + if (array_key_exists($key, $this->configs)){ + //Don't update the value for this key + } + else{//It is safe to update the value for this key + $this->configs[$key] = $value; + } + } + + function save_config(){ + update_option('aio_wp_security_configs', $this->configs); + } + + function get_stacked_message($key){ + if(isset($this->message_stack->{$key})) + return $this->message_stack->{$key}; + return ""; + } + + function set_stacked_message($key,$value){ + $this->message_stack->{$key} = $value; + } + + static function get_instance(){ + if(empty(self::$_this)){ + self::$_this = new AIOWPSecurity_Config(); + self::$_this->load_config(); + return self::$_this; + } + return self::$_this; + } +} diff --git a/all-in-one-wp-security/classes/wp-security-configure-settings.php b/all-in-one-wp-security/classes/wp-security-configure-settings.php new file mode 100644 index 0000000..e4da646 --- /dev/null +++ b/all-in-one-wp-security/classes/wp-security-configure-settings.php @@ -0,0 +1,290 @@ +configs->set_value('aiowps_remove_wp_generator_meta_info','');//Checkbox + + //Prevent Image Hotlinks + $aio_wp_security->configs->set_value('aiowps_prevent_hotlinking','');//Checkbox + //General Settings Page + + //User password feature + + //Lockdown feature + $aio_wp_security->configs->set_value('aiowps_enable_login_lockdown','');//Checkbox + $aio_wp_security->configs->set_value('aiowps_allow_unlock_requests','');//Checkbox + $aio_wp_security->configs->set_value('aiowps_max_login_attempts','3'); + $aio_wp_security->configs->set_value('aiowps_retry_time_period','5'); + $aio_wp_security->configs->set_value('aiowps_lockout_time_length','60'); + $aio_wp_security->configs->set_value('aiowps_set_generic_login_msg','');//Checkbox + $aio_wp_security->configs->set_value('aiowps_enable_email_notify','');//Checkbox + $aio_wp_security->configs->set_value('aiowps_email_address',$blog_email_address);//text field + $aio_wp_security->configs->set_value('aiowps_enable_forced_logout','');//Checkbox + $aio_wp_security->configs->set_value('aiowps_logout_time_period','60'); + $aio_wp_security->configs->set_value('aiowps_enable_invalid_username_lockdown','');//Checkbox + $aio_wp_security->configs->set_value('aiowps_unlock_request_secret_key',AIOWPSecurity_Utility::generate_alpha_numeric_random_string(20));//Hidden secret value which will be used to do some unlock request processing. This will be assigned a random string generated when lockdown settings saved + + //Captcha feature + $aio_wp_security->configs->set_value('aiowps_enable_login_captcha','');//Checkbox + $aio_wp_security->configs->set_value('aiowps_enable_custom_login_captcha','');//Checkbox + $aio_wp_security->configs->set_value('aiowps_enable_lost_password_captcha','');//Checkbox + $aio_wp_security->configs->set_value('aiowps_captcha_secret_key',AIOWPSecurity_Utility::generate_alpha_numeric_random_string(20));//Hidden secret value which will be used to do some captcha processing. This will be assigned a random string generated when captcha settings saved + + //Login Whitelist feature + $aio_wp_security->configs->set_value('aiowps_enable_whitelisting','');//Checkbox + $aio_wp_security->configs->set_value('aiowps_allowed_ip_addresses',''); + + //User registration + $aio_wp_security->configs->set_value('aiowps_enable_manual_registration_approval','');//Checkbox + $aio_wp_security->configs->set_value('aiowps_enable_registration_page_captcha','');//Checkbox + + //DB Security feature + //$aio_wp_security->configs->set_value('aiowps_new_manual_db_pefix',''); //text field + $aio_wp_security->configs->set_value('aiowps_enable_random_prefix','');//Checkbox + $aio_wp_security->configs->set_value('aiowps_enable_automated_backups','');//Checkbox + $aio_wp_security->configs->set_value('aiowps_db_backup_frequency','4'); + $aio_wp_security->configs->set_value('aiowps_db_backup_interval','2'); //Dropdown box where (0,1,2) => (hours,days,weeks) + $aio_wp_security->configs->set_value('aiowps_backup_files_stored','2'); + $aio_wp_security->configs->set_value('aiowps_send_backup_email_address','');//Checkbox + $aio_wp_security->configs->set_value('aiowps_backup_email_address',$blog_email_address); + + //Filesystem Security feature + $aio_wp_security->configs->set_value('aiowps_disable_file_editing','');//Checkbox + $aio_wp_security->configs->set_value('aiowps_prevent_default_wp_file_access','');//Checkbox + $aio_wp_security->configs->set_value('aiowps_system_log_file','error_log'); + + //Blacklist feature + $aio_wp_security->configs->set_value('aiowps_enable_blacklisting','');//Checkbox + $aio_wp_security->configs->set_value('aiowps_banned_ip_addresses',''); + + //Firewall features + $aio_wp_security->configs->set_value('aiowps_enable_basic_firewall','');//Checkbox + $aio_wp_security->configs->set_value('aiowps_enable_pingback_firewall','');//Checkbox + $aio_wp_security->configs->set_value('aiowps_disable_index_views','');//Checkbox + $aio_wp_security->configs->set_value('aiowps_disable_trace_and_track','');//Checkbox + $aio_wp_security->configs->set_value('aiowps_forbid_proxy_comments','');//Checkbox + $aio_wp_security->configs->set_value('aiowps_deny_bad_query_strings','');//Checkbox + $aio_wp_security->configs->set_value('aiowps_advanced_char_string_filter','');//Checkbox + $aio_wp_security->configs->set_value('aiowps_enable_5g_firewall','');//Checkbox + + //404 detection + $aio_wp_security->configs->set_value('aiowps_enable_404_logging','');//Checkbox + $aio_wp_security->configs->set_value('aiowps_enable_404_IP_lockout','');//Checkbox + $aio_wp_security->configs->set_value('aiowps_404_lockout_time_length','60'); + $aio_wp_security->configs->set_value('aiowps_404_lock_redirect_url','http://127.0.0.1'); + + //Brute Force features + $aio_wp_security->configs->set_value('aiowps_enable_rename_login_page','');//Checkbox + $aio_wp_security->configs->set_value('aiowps_enable_login_honeypot','');//Checkbox + + $aio_wp_security->configs->set_value('aiowps_enable_brute_force_attack_prevention','');//Checkbox + $aio_wp_security->configs->set_value('aiowps_brute_force_secret_word',''); + $aio_wp_security->configs->set_value('aiowps_cookie_brute_test',''); + $aio_wp_security->configs->set_value('aiowps_cookie_based_brute_force_redirect_url','http://127.0.0.1'); + $aio_wp_security->configs->set_value('aiowps_brute_force_attack_prevention_pw_protected_exception','');//Checkbox + $aio_wp_security->configs->set_value('aiowps_brute_force_attack_prevention_ajax_exception','');//Checkbox + + //Maintenance menu - Visitor lockout feature + $aio_wp_security->configs->set_value('aiowps_site_lockout','');//Checkbox + $aio_wp_security->configs->set_value('aiowps_site_lockout_msg','');//Text area/msg box + + //SPAM Prevention menu + $aio_wp_security->configs->set_value('aiowps_enable_spambot_blocking','');//Checkbox + $aio_wp_security->configs->set_value('aiowps_enable_comment_captcha','');//Checkbox + + //Filescan features + //File change detection feature + $aio_wp_security->configs->set_value('aiowps_enable_automated_fcd_scan','');//Checkbox + $aio_wp_security->configs->set_value('aiowps_fcd_scan_frequency','4'); + $aio_wp_security->configs->set_value('aiowps_fcd_scan_interval','2'); //Dropdown box where (0,1,2) => (hours,days,weeks) + $aio_wp_security->configs->set_value('aiowps_fcd_exclude_filetypes',''); + $aio_wp_security->configs->set_value('aiowps_fcd_exclude_files',''); + $aio_wp_security->configs->set_value('aiowps_send_fcd_scan_email','');//Checkbox + $aio_wp_security->configs->set_value('aiowps_fcd_scan_email_address',$blog_email_address); + $aio_wp_security->configs->set_value('aiowps_fcds_change_detected', FALSE); //used to display a global alert on site when file change detected + + //Misc Options + //Copy protection feature + $aio_wp_security->configs->set_value('aiowps_copy_protection','');//Checkbox + //Prevent others from dislaying your site in iframe + $aio_wp_security->configs->set_value('aiowps_prevent_site_display_inside_frame','');//Checkbox + + + //TODO - keep adding default options for any fields that require it + + //Save it + $aio_wp_security->configs->save_config(); + } + + static function add_option_values() + { + global $aio_wp_security; + $blog_email_address = get_bloginfo('admin_email'); //Get the blog admin email address - we will use as the default value + + //WP Generator Meta Tag feature + $aio_wp_security->configs->add_value('aiowps_remove_wp_generator_meta_info','');//Checkbox + + //Prevent Image Hotlinks + $aio_wp_security->configs->add_value('aiowps_prevent_hotlinking','');//Checkbox + + //General Settings Page + + //User password feature + + //Lockdown feature + $aio_wp_security->configs->add_value('aiowps_enable_login_lockdown','');//Checkbox + $aio_wp_security->configs->add_value('aiowps_allow_unlock_requests','');//Checkbox + $aio_wp_security->configs->add_value('aiowps_max_login_attempts','3'); + $aio_wp_security->configs->add_value('aiowps_retry_time_period','5'); + $aio_wp_security->configs->add_value('aiowps_lockout_time_length','60'); + $aio_wp_security->configs->add_value('aiowps_set_generic_login_msg','');//Checkbox + $aio_wp_security->configs->add_value('aiowps_enable_email_notify','');//Checkbox + $aio_wp_security->configs->add_value('aiowps_email_address',$blog_email_address);//text field + $aio_wp_security->configs->add_value('aiowps_enable_forced_logout','');//Checkbox + $aio_wp_security->configs->add_value('aiowps_logout_time_period','60'); + $aio_wp_security->configs->add_value('aiowps_enable_invalid_username_lockdown','');//Checkbox + $aio_wp_security->configs->add_value('aiowps_unlock_request_secret_key',AIOWPSecurity_Utility::generate_alpha_numeric_random_string(20));//Hidden secret value which will be used to do some unlock request processing. This will be assigned a random string generated when lockdown settings saved + + //Login Whitelist feature + $aio_wp_security->configs->add_value('aiowps_enable_whitelisting','');//Checkbox + $aio_wp_security->configs->add_value('aiowps_allowed_ip_addresses',''); + //Captcha feature + $aio_wp_security->configs->add_value('aiowps_enable_login_captcha','');//Checkbox + $aio_wp_security->configs->add_value('aiowps_enable_custom_login_captcha','');//Checkbox + $aio_wp_security->configs->add_value('aiowps_captcha_secret_key',AIOWPSecurity_Utility::generate_alpha_numeric_random_string(20));//Hidden secret value which will be used to do some captcha processing. This will be assigned a random string generated when captcha settings saved + + //User registration + $aio_wp_security->configs->add_value('aiowps_enable_manual_registration_approval','');//Checkbox + $aio_wp_security->configs->add_value('aiowps_enable_registration_page_captcha','');//Checkbox + + //DB Security feature + //$aio_wp_security->configs->add_value('aiowps_new_manual_db_pefix',''); //text field + $aio_wp_security->configs->add_value('aiowps_enable_random_prefix','');//Checkbox + $aio_wp_security->configs->add_value('aiowps_enable_automated_backups','');//Checkbox + $aio_wp_security->configs->add_value('aiowps_db_backup_frequency','4'); + $aio_wp_security->configs->add_value('aiowps_db_backup_interval','2'); //Dropdown box where (0,1,2) => (hours,days,weeks) + $aio_wp_security->configs->add_value('aiowps_backup_files_stored','2'); + $aio_wp_security->configs->add_value('aiowps_send_backup_email_address','');//Checkbox + $aio_wp_security->configs->add_value('aiowps_backup_email_address',$blog_email_address); + + //Filesystem Security feature + $aio_wp_security->configs->add_value('aiowps_disable_file_editing','');//Checkbox + $aio_wp_security->configs->add_value('aiowps_prevent_default_wp_file_access','');//Checkbox + $aio_wp_security->configs->add_value('aiowps_system_log_file','error_log'); + + + //Blacklist feature + $aio_wp_security->configs->add_value('aiowps_enable_blacklisting','');//Checkbox + $aio_wp_security->configs->add_value('aiowps_banned_ip_addresses',''); + + //Firewall features + $aio_wp_security->configs->add_value('aiowps_enable_basic_firewall','');//Checkbox + $aio_wp_security->configs->add_value('aiowps_enable_pingback_firewall','');//Checkbox + $aio_wp_security->configs->add_value('aiowps_disable_index_views','');//Checkbox + $aio_wp_security->configs->add_value('aiowps_disable_trace_and_track','');//Checkbox + $aio_wp_security->configs->add_value('aiowps_forbid_proxy_comments','');//Checkbox + $aio_wp_security->configs->add_value('aiowps_deny_bad_query_strings','');//Checkbox + $aio_wp_security->configs->add_value('aiowps_advanced_char_string_filter','');//Checkbox + $aio_wp_security->configs->add_value('aiowps_enable_5g_firewall','');//Checkbox + + //404 detection + $aio_wp_security->configs->add_value('aiowps_enable_404_logging','');//Checkbox + $aio_wp_security->configs->add_value('aiowps_enable_404_IP_lockout','');//Checkbox + $aio_wp_security->configs->add_value('aiowps_404_lockout_time_length','60'); + $aio_wp_security->configs->add_value('aiowps_404_lock_redirect_url','http://127.0.0.1'); + + //Brute Force features + $aio_wp_security->configs->add_value('aiowps_enable_rename_login_page','');//Checkbox + $aio_wp_security->configs->add_value('aiowps_enable_login_honeypot','');//Checkbox + + $aio_wp_security->configs->add_value('aiowps_enable_brute_force_attack_prevention','');//Checkbox + $aio_wp_security->configs->add_value('aiowps_brute_force_secret_word',''); + $aio_wp_security->configs->add_value('aiowps_cookie_brute_test',''); + $aio_wp_security->configs->add_value('aiowps_cookie_based_brute_force_redirect_url','http://127.0.0.1'); + $aio_wp_security->configs->add_value('aiowps_brute_force_attack_prevention_pw_protected_exception','');//Checkbox + $aio_wp_security->configs->add_value('aiowps_brute_force_attack_prevention_ajax_exception','');//Checkbox + + //Maintenance menu - Visitor lockout feature + $aio_wp_security->configs->add_value('aiowps_site_lockout','');//Checkbox + $aio_wp_security->configs->add_value('aiowps_site_lockout_msg','');//Text area/msg box + + //SPAM Prevention menu + $aio_wp_security->configs->add_value('aiowps_enable_spambot_blocking','');//Checkbox + $aio_wp_security->configs->add_value('aiowps_enable_comment_captcha','');//Checkbox + + //Filescan features + //File change detection feature + $aio_wp_security->configs->add_value('aiowps_enable_automated_fcd_scan','');//Checkbox + $aio_wp_security->configs->add_value('aiowps_fcd_scan_frequency','4'); + $aio_wp_security->configs->add_value('aiowps_fcd_scan_interval','2'); //Dropdown box where (0,1,2) => (hours,days,weeks) + $aio_wp_security->configs->add_value('aiowps_fcd_exclude_filetypes',''); + $aio_wp_security->configs->add_value('aiowps_fcd_exclude_files',''); + $aio_wp_security->configs->add_value('aiowps_send_fcd_scan_email','');//Checkbox + $aio_wp_security->configs->add_value('aiowps_fcd_scan_email_address',$blog_email_address); + $aio_wp_security->configs->add_value('aiowps_fcds_change_detected',FALSE); //used to display a global alert on site when file change detected + + //Misc Options + //Copy protection feature + $aio_wp_security->configs->add_value('aiowps_copy_protection','');//Checkbox + //Prevent others from dislaying your site in iframe + $aio_wp_security->configs->add_value('aiowps_prevent_site_display_inside_frame','');//Checkbox + + + //TODO - keep adding default options for any fields that require it + + //Save it + $aio_wp_security->configs->save_config(); + } + + static function turn_off_all_security_features() + { + AIOWPSecurity_Configure_Settings::set_default_settings(); + } + + static function turn_off_all_firewall_rules() + { + global $aio_wp_security; + $aio_wp_security->configs->set_value('aiowps_enable_blacklisting','');//Checkbox + $aio_wp_security->configs->set_value('aiowps_enable_whitelisting','');//Checkbox + + $aio_wp_security->configs->set_value('aiowps_enable_basic_firewall','');//Checkbox + $aio_wp_security->configs->set_value('aiowps_enable_pingback_firewall','');//Checkbox + $aio_wp_security->configs->set_value('aiowps_disable_index_views','');//Checkbox + $aio_wp_security->configs->set_value('aiowps_disable_trace_and_track','');//Checkbox + $aio_wp_security->configs->set_value('aiowps_forbid_proxy_comments','');//Checkbox + $aio_wp_security->configs->set_value('aiowps_deny_bad_query_strings','');//Checkbox + $aio_wp_security->configs->set_value('aiowps_advanced_char_string_filter','');//Checkbox + $aio_wp_security->configs->set_value('aiowps_enable_5g_firewall','');//Checkbox + $aio_wp_security->configs->set_value('aiowps_enable_brute_force_attack_prevention','');//Checkbox + + $aio_wp_security->configs->set_value('aiowps_prevent_default_wp_file_access','');//Checkbox + + $aio_wp_security->configs->set_value('aiowps_enable_spambot_blocking','');//Checkbox + + //404 detection + $aio_wp_security->configs->set_value('aiowps_enable_404_logging','');//Checkbox + $aio_wp_security->configs->set_value('aiowps_enable_404_IP_lockout','');//Checkbox + + $aio_wp_security->configs->save_config(); + } + + static function restore_to_factory_default() + { + //TOOD - complete the implementation + //restore wp_config_file();//TODO - //TODO - write implementation in the utility class + //restore site_htaccess_file();//TODO - write implementation in the utility class + //AIOWPSecurity_Configure_Settings::set_default_settings(); + //Maybe allow them to revert the DB Prefix too? + //File permissions + } +} diff --git a/all-in-one-wp-security/classes/wp-security-cronjob-handler.php b/all-in-one-wp-security/classes/wp-security-cronjob-handler.php new file mode 100644 index 0000000..90f04a7 --- /dev/null +++ b/all-in-one-wp-security/classes/wp-security-cronjob-handler.php @@ -0,0 +1,28 @@ +debug_logger->log_debug_cron("Cronjob_Handler - Hourly cron handler got fired."); + + //do_action('aiowps_force_logout_check'); + //do_action('aiowps_check_password_stuff'); + do_action('aiowps_perform_scheduled_backup_tasks'); + do_action('aiowps_perform_fcd_scan_tasks'); + } + +// function aiowps_daily_cron_event_handler() +// { +// +// } + +} + diff --git a/all-in-one-wp-security/classes/wp-security-deactivation-tasks.php b/all-in-one-wp-security/classes/wp-security-deactivation-tasks.php new file mode 100644 index 0000000..4996090 --- /dev/null +++ b/all-in-one-wp-security/classes/wp-security-deactivation-tasks.php @@ -0,0 +1,71 @@ +blogid; + // Get all blog ids + $blogids = $wpdb->get_col("SELECT blog_id FROM $wpdb->blogs"); + foreach ($blogids as $blog_id) { + switch_to_blog($blog_id); + } + switch_to_blog($old_blog); + return; + } + } + + //Let's backup .htaccess contents when AIOWPS was active + $ht_file = ABSPATH . '.htaccess'; + $key_desc_ht_backup = 'aiowps_htaccess_backup'; //This will be the key to decribe the entry we are inserting into the global_meta table + AIOWPSecurity_Utility_File::backup_file_contents_to_db($ht_file, $key_desc_ht_backup); //Store the original htaccess contents in our global_meta table (ie, before AIOWPS was active) + + //Let's backup wp_config.php contents + $wp_config_file = ABSPATH . 'wp-config.php'; + $key_desc_wp_config_backup = 'aiowps_wp_config_php_backup'; //This will be the key to decribe the entry we are inserting into the global_meta table + AIOWPSecurity_Utility_File::backup_file_contents_to_db($wp_config_file, $key_desc_wp_config_backup); //Store the original htaccess contents in our global_meta table (ie, before AIOWPS was active) + + //Restore original contents of .htaccess file upon deactivation + $htaccess_file_contents = AIOWPSecurity_Deactivation::get_original_file_contents('original_htaccess_backup'); + if ($htaccess_file_contents) + { + if (file_put_contents($ht_file, $htaccess_file_contents) === false) + { + //File write failed + $aio_wp_security->debug_logger->log_debug("AIOWPSecurity_Deactivation::run_deactivation_tasks() - Failed to write to .htaccess file",4); + } + } + + //Restore original contents of wp-config.php file upon deactivation + $wp_config_file_contents = AIOWPSecurity_Deactivation::get_original_file_contents('original_wp_config_php_backup'); + if ($wp_config_file_contents) + { + if (file_put_contents($wp_config_file, $wp_config_file_contents) === false) + { + //File write failed + $aio_wp_security->debug_logger->log_debug("AIOWPSecurity_Deactivation::run_deactivation_tasks() - Failed to write to wp-config.php file",4); + } + } + } + + static function get_original_file_contents($key_description) + { + global $wpdb; + $aiowps_global_meta_tbl_name = AIOWPSEC_TBL_GLOBAL_META_DATA; + $resultset = $wpdb->get_row("SELECT * FROM $aiowps_global_meta_tbl_name WHERE meta_key1 = '$key_description'", OBJECT); + if($resultset){ + $file_contents = maybe_unserialize($resultset->meta_value2); + return $file_contents; + } + else + { + return false; + } + } +} diff --git a/all-in-one-wp-security/classes/wp-security-debug-logger.php b/all-in-one-wp-security/classes/wp-security-debug-logger.php new file mode 100644 index 0000000..13906da --- /dev/null +++ b/all-in-one-wp-security/classes/wp-security-debug-logger.php @@ -0,0 +1,100 @@ +debug_logger->log_debug("Log messaged goes here"); + */ +class AIOWPSecurity_Logger +{ + var $log_folder_path; + var $default_log_file = 'wp-security-log.txt'; + var $default_log_file_cron = 'wp-security-log-cron-job.txt'; + var $debug_enabled = false; + var $debug_status = array('SUCCESS','STATUS','NOTICE','WARNING','FAILURE','CRITICAL'); + var $section_break_marker = "\n----------------------------------------------------------\n\n"; + var $log_reset_marker = "-------- Log File Reset --------\n"; + + function __construct() + { + $this->log_folder_path = AIO_WP_SECURITY_PATH . '/logs'; + //TODO - check config and if debug is enabled then set the enabled flag to true + $this->debug_enabled = true; + } + + function get_debug_timestamp() + { + return '['.date('m/d/Y g:i A').'] - '; + } + + function get_debug_status($level) + { + $size = count($this->debug_status); + if($level >= $size){ + return 'UNKNOWN'; + } + else{ + return $this->debug_status[$level]; + } + } + + function get_section_break($section_break) + { + if ($section_break) { + return $this->section_break_marker; + } + return ""; + } + + function append_to_file($content,$file_name) + { + if(empty($file_name))$file_name = $this->default_log_file; + $debug_log_file = $this->log_folder_path.'/'.$file_name; + $fp=fopen($debug_log_file,'a'); + fwrite($fp, $content); + fclose($fp); + } + + function reset_log_file($file_name='') + { + if(empty($file_name))$file_name = $this->default_log_file; + $debug_log_file = $this->log_folder_path.'/'.$file_name; + $content = $this->get_debug_timestamp().$this->log_reset_marker; + $fp=fopen($debug_log_file,'w'); + fwrite($fp, $content); + fclose($fp); + } + + function log_debug($message,$level=0,$section_break=false,$file_name='') + { + if (!$this->debug_enabled) return; + $content = $this->get_debug_timestamp();//Timestamp + $content .= $this->get_debug_status($level);//Debug status + $content .= ' : '; + $content .= $message . "\n"; + $content .= $this->get_section_break($section_break); + $this->append_to_file($content, $file_name); + } + + function log_debug_cron($message,$level=0,$section_break=false) + { + if (!$this->debug_enabled) return; + $content = $this->get_debug_timestamp();//Timestamp + $content .= $this->get_debug_status($level);//Debug status + $content .= ' : '; + $content .= $message . "\n"; + $content .= $this->get_section_break($section_break); + //$file_name = $this->default_log_file_cron; + $this->append_to_file($content, $this->default_log_file_cron); + } + + //TODO - this function need to be completed + static function log_debug_st($message,$level=0,$section_break=false,$file_name='') + { + $content = "\n". $message . "\n"; + $debug_log_file = 'wp-security-log-static.txt'; + //$debug_log_file = AIO_WP_SECURITY_PATH .'/wp-security-log.txt'; + $fp=fopen($debug_log_file,'a'); + fwrite($fp, $content); + fclose($fp); + } +} \ No newline at end of file diff --git a/all-in-one-wp-security/classes/wp-security-file-scan.php b/all-in-one-wp-security/classes/wp-security-file-scan.php new file mode 100644 index 0000000..53de838 --- /dev/null +++ b/all-in-one-wp-security/classes/wp-security-file-scan.php @@ -0,0 +1,665 @@ +has_scan_data()){ + $scanned_data = $this->do_file_change_scan(); //Scan the filesystem and get details + $last_scan_data = $this->get_last_scan_data(); + $scan_result = $this->compare_scan_data($last_scan_data,$scanned_data); + $scan_result['initial_scan'] = ''; + $this->save_scan_data_to_db($scanned_data, 'update', $scan_result); + if (!empty($scan_result['files_added']) || !empty($scan_result['files_removed']) || !empty($scan_result['files_changed'])){ + //This means there was a change detected + $aio_wp_security->configs->set_value('aiowps_fcds_change_detected', TRUE); + $aio_wp_security->configs->save_config(); + $aio_wp_security->debug_logger->log_debug("File Change Detection Feature: change to filesystem detected!"); + + $this->aiowps_send_file_change_alert_email(); //Send file change scan results via email if applicable + }else if(empty($scan_result['files_added']) && empty($scan_result['files_removed']) && empty($scan_result['files_changed'])){ + //Reset the change flag + $aio_wp_security->configs->set_value('aiowps_fcds_change_detected', FALSE); + $aio_wp_security->configs->save_config(); + } + return $scan_result; + } + else{ + $scanned_data = $this->do_file_change_scan(); + $this->save_scan_data_to_db($scanned_data); + $scan_result['initial_scan'] = '1'; + return $scan_result; + } + } + + function aiowps_send_file_change_alert_email() + { + global $aio_wp_security; + if ( $aio_wp_security->configs->get_value('aiowps_send_fcd_scan_email') == '1' ) + { + //Get the right email address. + if ( is_email( $aio_wp_security->configs->get_value('aiowps_fcd_scan_email_address') ) ) + { + $toaddress = $aio_wp_security->configs->get_value('aiowps_fcd_scan_email_address'); + } else + { + $toaddress = get_site_option( 'admin_email' ); + } + + $to = $toaddress; + $headers = 'From: ' . get_option( 'blogname' ) . ' <' . get_option('admin_email') . '>' . PHP_EOL; + $subject = __( 'All In One WP Security - File change detected!', 'aiowpsecurity' ) . ' ' . date( 'l, F jS, Y \a\\t g:i a', current_time( 'timestamp' ) ); + //$attachment = array(); + $message = __( 'A file change was detected on your system for site URL', 'aiowpsecurity' ) . ' ' . get_option( 'siteurl' ) . __( '. Scan was generated on', 'aiowpsecurity' ) . ' ' . date( 'l, F jS, Y \a\\t g:i a', current_time( 'timestamp' ) ); + $message .= "\r\n".__( 'Login to your site to view the scan details.', 'aiowpsecurity' ); + + wp_mail( $to, $subject, $message, $headers ); + } + } + + function aiowps_scheduled_fcd_scan_handler() + { + global $aio_wp_security; + if($aio_wp_security->configs->get_value('aiowps_enable_automated_fcd_scan')=='1') + { + $aio_wp_security->debug_logger->log_debug_cron("Filescan - Scheduled fcd_scan is enabled. Checking now to see if scan needs to be done..."); + $current_time = strtotime(current_time('mysql')); + $fcd_scan_frequency = $aio_wp_security->configs->get_value('aiowps_fcd_scan_frequency'); //Number of hours or days or months interval + $interval_setting = $aio_wp_security->configs->get_value('aiowps_fcd_scan_interval'); //Hours/Days/Months + switch($interval_setting) + { + case '0': + $interval = 'hours'; + break; + case '1': + $interval = 'days'; + break; + case '2': + $interval = 'weeks'; + break; + } + $last_fcd_scan_time = $aio_wp_security->configs->get_value('aiowps_last_fcd_scan_time'); + if ($last_fcd_scan_time != NULL) + { + $last_fcd_scan_time = strtotime($aio_wp_security->configs->get_value('aiowps_last_fcd_scan_time')); + $next_fcd_scan_time = strtotime("+".abs($fcd_scan_frequency).$interval, $last_fcd_scan_time); + if ($next_fcd_scan_time <= $current_time) + { + //It's time to do a filescan + $result = $this->execute_file_change_detection_scan(ABSPATH); +// if ($result) +// { + $aio_wp_security->configs->set_value('aiowps_last_fcd_scan_time', current_time('mysql')); + $aio_wp_security->configs->save_config(); + $aio_wp_security->debug_logger->log_debug_cron("Filescan - Scheduled filescan was successfully completed."); +// } +// else +// { +// $aio_wp_security->debug_logger->log_debug_cron("Filescan - Scheduled filescan operation failed!",4); +// } + } + } + else + { + //Set the last scan time to now so it can trigger for the next scheduled period + $aio_wp_security->configs->set_value('aiowps_last_fcd_scan_time', current_time('mysql')); + $aio_wp_security->configs->save_config(); + } + } + } + + /* Returns true if there is at least one previous scaned data in the DB. False otherwise */ + function has_scan_data() + { + global $wpdb; + //For scanced data the meta_key1 column valu is 'file_change_detection', meta_value1 column value is 'file_scan_data'. Then the data is stored in meta_value4 column. + $aiowps_global_meta_tbl_name = AIOWPSEC_TBL_GLOBAL_META_DATA; + $resultset = $wpdb->get_row("SELECT * FROM $aiowps_global_meta_tbl_name WHERE meta_key1 = 'file_change_detection' AND meta_value1='file_scan_data'", OBJECT); + if($resultset){ + $scan_data = maybe_unserialize($resultset->meta_value4); + if(!empty($scan_data)){ + return true; + } + } + return false; + } + + function get_last_scan_data() + { + global $wpdb; + //For scanned data the meta_key1 column valu is 'file_change_detection', meta_value1 column value is 'file_scan_data'. Then the data is stored in meta_value4 column. + $aiowps_global_meta_tbl_name = AIOWPSEC_TBL_GLOBAL_META_DATA; + $resultset = $wpdb->get_row("SELECT * FROM $aiowps_global_meta_tbl_name WHERE meta_key1 = 'file_change_detection' AND meta_value1='file_scan_data'", OBJECT); + if($resultset){ + $scan_data = maybe_unserialize($resultset->meta_value4); + return $scan_data; + } + return array(); //return empty array if no old scan data + } + + function save_scan_data_to_db($scanned_data, $save_type = 'insert', $scan_result = array()) + { + global $wpdb, $aio_wp_security; + $result = ''; + //For scanned data the meta_key1 column value is 'file_change_detection', meta_value1 column value is 'file_scan_data'. Then the data is stored in meta_value4 column. + $aiowps_global_meta_tbl_name = AIOWPSEC_TBL_GLOBAL_META_DATA; + $payload = serialize($scanned_data); + $scan_result = serialize($scan_result); + $date_time = current_time('mysql'); + $data = array('date_time' => $date_time, 'meta_key1' => 'file_change_detection', 'meta_value1' => 'file_scan_data', 'meta_value4' => $payload, 'meta_key5' => 'last_scan_result', 'meta_value5' => $scan_result); + if($save_type == 'insert'){ + $result = $wpdb->insert($aiowps_global_meta_tbl_name, $data); + } + else{ + $where = array('meta_key1' => 'file_change_detection', 'meta_value1' => 'file_scan_data'); + $result = $wpdb->update($aiowps_global_meta_tbl_name, $data, $where); + + } + if ($result === false){ + $aio_wp_security->debug_logger->log_debug("save_scan_data_to_db() - Error inserting data to DB!",4); + return false; + }else{ + return true; + } + } + + function do_file_change_scan($start_dir=ABSPATH) + { + global $aio_wp_security; + $filescan_data = array(); + $dit = new RecursiveDirectoryIterator($start_dir); + $rit = new RecursiveIteratorIterator( + $dit, RecursiveIteratorIterator::SELF_FIRST, RecursiveIteratorIterator::CATCH_GET_CHILD); + + $file_types_to_skip = $aio_wp_security->configs->get_value('aiowps_fcd_exclude_filetypes'); + + foreach ($rit as $fileinfo) { + if ($fileinfo->isDir()) continue; //skip directories + if ($fileinfo->getFilename() == 'wp-security-log-cron-job.txt' || $fileinfo->getFilename() == 'wp-security-log.txt') continue; //skip aiowps log files + //Let's omit any file types from the scan which were specified in the settings if necessary + if (!empty($file_types_to_skip)){ + $file_types_to_skip = strtolower($file_types_to_skip); + //$current_file_ext = strtolower($fileinfo->getExtension()); //getExtension() only available on PHP 5.3.6 or higher + $ext = pathinfo($fileinfo->getFilename(), PATHINFO_EXTENSION); + $current_file_ext = strtolower($ext); + if (!empty($current_file_ext)){ + if (strpos($file_types_to_skip, $current_file_ext) !== FALSE) continue; + } + } + //Let's omit specific files or directories from the scan which were specified in the settings + $filename = $fileinfo->getPathname(); + if(file_exists($filename) === FALSE){ + continue; //if file doesn't exist move on to next iteration + } + $files_to_skip = $aio_wp_security->configs->get_value('aiowps_fcd_exclude_files'); + if (!empty($files_to_skip)) + { + $file_array = explode(PHP_EOL, $files_to_skip); + $skip_this = FALSE; + foreach ($file_array as $f_or_dir) + { + if (strpos($filename, trim($f_or_dir)) !== FALSE){ + $skip_this = TRUE; + } + } + if ($skip_this) continue; + } + $filescan_data[$filename] = array(); + $filescan_data[$filename]['last_modified'] = $fileinfo->getMTime(); + $filescan_data[$filename]['filesize'] = $fileinfo->getSize(); + + } + return $filescan_data; + } + + function compare_scan_data($last_scan_data, $new_scanned_data) + { + $files_added = @array_diff_assoc( $new_scanned_data, $last_scan_data ); //Identify new files added: get all files which are in the new scan but not present in the old scan + $files_removed = @array_diff_assoc( $last_scan_data, $new_scanned_data ); //Identify files deleted : get all files which are in the old scan but not present in the new scan + $new_scan_minus_added = @array_diff_key( $new_scanned_data, $files_added ); //Get all files in current scan which were not newly added + $old_scan_minus_deleted = @array_diff_key( $last_scan_data, $files_removed ); //Get all files in old scan which were not deleted + $file_changes_detected = array(); + + //compare file hashes and mod dates + foreach ( $new_scan_minus_added as $entry => $key) { + if ( array_key_exists( $entry, $old_scan_minus_deleted ) ) + { + //check filesize and last_modified values + if (strcmp($key['last_modified'], $old_scan_minus_deleted[$entry]['last_modified']) != 0 || + strcmp($key['filesize'], $old_scan_minus_deleted[$entry]['filesize']) != 0) + { + $file_changes_detected[$entry]['filesize'] = $key['filesize']; + $file_changes_detected[$entry]['last_modified'] = $key['last_modified']; + } + } + + } + + //create single array of all changes + $results = array( + 'files_added' => $files_added, + 'files_removed' => $files_removed, + 'files_changed' => $file_changes_detected + ); + return $results; + } + + function execute_db_scan() + { + global $aio_wp_security; + global $wpdb; + + //$aio_wp_security->admin_init->filescan_menu->start_buffer(); + ob_start(); + + $info_msg_string = '

'.__('Starting DB scan.....please wait while the plugin scans your database.......', 'aiowpsecurity').'

'; + echo $info_msg_string; + + //Options table + echo '

'.__('Scanning options table.........', 'aiowpsecurity').'

'; + $options_table = $wpdb->prefix . 'options'; + $sql= "SELECT option_id,option_value,option_name + FROM $options_table WHERE + INSTR(LCASE(option_name), 'class_generic_support') + + INSTR(LCASE(option_name), 'widget_generic_support') + + INSTR(LCASE(option_name), 'fwp') + + INSTR(LCASE(option_name), 'wp_check_hash') + + INSTR(LCASE(option_name), 'ftp_credentials') + + INSTR(LCASE(option_name), 'page_option') + + INSTR(LCASE(option_value), '0 + "; + + $results = $wpdb->get_results($sql, ARRAY_A); + $sus_options_entry_found = false; + + $found_options = ''; + + if ($results) { + foreach ($results as $entry) { + $found_options = ''; + $known_pharma_hack = false; + $option_id = $entry['option_id']; + $option_name = $entry['option_name']; + $option_value = $entry['option_value']; + + if (strpos(strtolower($option_name),'class_generic_support')!==false){ + $known_pharma_hack = true; + $found_options.="Known WP Pharma Hack Entry: class_generic_support "; + } + if (strpos(strtolower($option_name),'widget_generic_support')!==false){ + $known_pharma_hack = true; + $found_options.="Known WP Pharma Hack Entry: widget_generic_support "; + } + if (strpos(strtolower($option_name),'fwp')!==false){ + $known_pharma_hack = true; + $found_options.="Known WP Pharma Hack Entry: fwp "; + } + if (strpos(strtolower($option_name),'wp_check_hash')!==false){ + $known_pharma_hack = true; + $found_options.="Known WP Pharma Hack Entry: wp_check_hash "; + } + if (strpos(strtolower($option_name),'ftp_credentials')!==false){ + $known_pharma_hack = true; + $found_options.="Known WP Pharma Hack Entry: ftp_credentials "; + } + if (strpos(strtolower($option_name),'page_option')!==false){ + $known_pharma_hack = true; + $found_options.="Known WP Pharma Hack Entry: page_option "; + } + + + //Turned off for false positive +// if (strpos($option_name,'rss_')!==false) { +// if($option_name == 'rss_use_language' || $option_name == 'rss_use_excerpt' || $option_name == 'rss_excerpt_length'){ +// //any one of these entries are ok. +// continue; +// }else{ +// $known_pharma_hack = true; +// $found_options.="Known WP Pharma Hack Entry found in options table with option_name: ".$option_name; +// } +// } + + //If known pharma hack entry was found delete it + if($known_pharma_hack){ + echo '

'.sprintf( __('%s and option_id: %s', 'aiowpsecurity'), $found_options, $entry['option_id']).'

'; + $delete_sql = $wpdb->delete($options_table, array('option_name'=>$option_name)); + if($delete_sql === FALSE){ + echo '

'.sprintf( __('Deletion of known pharma hack entry for option_name %s failed. Please delete this entry manually!', 'aiowpsecurity'), $entry['option_name']).'

'; + }else{ + echo '

'.sprintf( __('The options table entry with known pharma hack for option_id %s with option_name %s was successfully deleted', 'aiowpsecurity'), $entry['option_id'], $entry['option_name']).'

'; + } + + } + +// if (strpos($option_name, '_transient_feed') !== false){ +// continue; +// } + if (strpos(strtolower($option_value),''.sprintf( __('Possible suspicious entry found (for option_id: %s) - %s ', 'aiowpsecurity'), $entry['option_id'], $found_options).'

'; + + if($found_options != ''){ + $sus_options_entry_found = true; + } + } + } + + if(!$sus_options_entry_found){ + echo '

'.__('No suspicious entries found in options table', 'aiowpsecurity').'

'; + } + + //Posts table + echo '

'.__('Scanning posts table.........', 'aiowpsecurity').'

'; + $posts_table = $wpdb->prefix . 'posts'; + $sql= "SELECT ID,post_author,post_title,post_name,guid,post_content,post_mime_type + FROM $posts_table WHERE + INSTR(LCASE(post_author), '0 + "; + + $results = $wpdb->get_results($sql, ARRAY_A); + $sus_posts_entry_found = false; + $found_posts = ''; + if ($results) { + foreach ($results as $entry) { + $found_posts = ''; + if (strpos(strtolower($entry['post_author']),''.sprintf( __('Possible suspicious entry found (for Post ID: %s) in the following column - %s ', 'aiowpsecurity'), $entry['ID'], $found_posts).'

'; + + if($found_options != ''){ + $sus_posts_entry_found = true; + } + } + } + + if(!$sus_posts_entry_found){ + echo '

'.__('No suspicious entries found in posts table', 'aiowpsecurity').'

'; + } + + //Links table + echo '

'.__('Scanning links table.........', 'aiowpsecurity').'

'; + $links_table = $wpdb->prefix . 'links'; + $sql= "SELECT link_id,link_url,link_image,link_description,link_notes,link_rel,link_rss + FROM $links_table WHERE + INSTR(LCASE(link_url), '0 + "; + + $results = $wpdb->get_results($sql, ARRAY_A); + $sus_links_entry_found = false; + $found_links = ''; + if ($results) { + foreach ($results as $entry) { + $found_links = ''; + if (strpos(strtolower($entry['link_url']),''.sprintf( __('Possible suspicious entry - %s ', 'aiowpsecurity'), $found_links).'

'; + + if($found_options != ''){ + $sus_links_entry_found = true; + } + } + } + + if(!$sus_links_entry_found) { + echo '

'.__('No suspicious entries found in links table', 'aiowpsecurity').'

'; + } + + //Comments table + echo '

'.__('Scanning comments table.........', 'aiowpsecurity').'

'; + $comments_table = $wpdb->prefix . 'comments'; + $sql= "SELECT comment_ID,comment_author_url,comment_agent,comment_author,comment_author_email,comment_content + FROM $comments_table WHERE + INSTR(LCASE(comment_author_url), '0 + "; + + $results = $wpdb->get_results($sql, ARRAY_A); + $sus_comments_entry_found = false; + $found_comments = ''; + if ($results) { + foreach ($results as $entry) { + $found_comments = ''; + if (strpos(strtolower($entry['comment_author']),''.sprintf( __('Possible suspicious entry - %s ', 'aiowpsecurity'), $found_comments).'

'; + + if($found_comments != ''){ + $sus_comments_entry_found = true; + } + } + } + + if(!$sus_comments_entry_found) { + echo '

'.__('No suspicious entries found in comments table', 'aiowpsecurity').'

'; + } + + //postmeta table + echo '

'.__('Scanning postmeta table.........', 'aiowpsecurity').'

'; + $postmeta_table = $wpdb->prefix . 'postmeta'; + $sql= "SELECT meta_id,meta_value + FROM $postmeta_table WHERE + INSTR(LCASE(meta_value), 'eval(')>0 + "; + + $results = $wpdb->get_results($sql, ARRAY_A); + $sus_postmeta_entry_found = false; + $found_postmeta = ''; + if ($results) { + foreach ($results as $entry) { + $found_postmeta = ''; + if (strpos(strtolower($entry['meta_value']),'eval(')!==false) $found_postmeta.="eval() statement found in the meta_value field for meta_id: ".$entry['meta_id']; + + echo '

'.sprintf( __('Possible suspicious entry - %s ', 'aiowpsecurity'), $found_postmeta).'

'; + + if($found_postmeta != ''){ + $sus_postmeta_entry_found = true; + } + } + } + + if(!$sus_postmeta_entry_found) { + echo '

'.__('No suspicious entries found in postmeta table', 'aiowpsecurity').'

'; + } + + //usermeta table + echo '

'.__('Scanning usermeta table.........', 'aiowpsecurity').'

'; + $usermeta_table = $wpdb->prefix . 'usermeta'; + $sql= "SELECT umeta_id,meta_value + FROM $usermeta_table WHERE + INSTR(LCASE(meta_value), 'eval(')>0 + "; + + $results = $wpdb->get_results($sql, ARRAY_A); + $sus_usermeta_entry_found = false; + $found_usermeta = ''; + if ($results) { + foreach ($results as $entry) { + $found_usermeta = ''; + if (strpos(strtolower($entry['meta_value']),'eval(')!==false) $found_usermeta.="eval() statement found in the meta_value field for meta_id: ".$entry['umeta_id']; + + echo '

'.sprintf( __('Possible suspicious entry - %s ', 'aiowpsecurity'), $found_usermeta).'

'; + + if($found_usermeta != ''){ + $sus_usermeta_entry_found = true; + } + } + } + + if(!$sus_usermeta_entry_found) { + echo '

'.__('No suspicious entries found in usermeta table', 'aiowpsecurity').'

'; + } + + //users table + echo '

'.__('Scanning users table.........', 'aiowpsecurity').'

'; + $users_table = $wpdb->prefix . 'users'; + $sql= "SELECT ID,user_login,user_nicename,user_email,user_url,display_name + FROM $users_table WHERE + INSTR(LCASE(user_login), '0 + "; + + $results = $wpdb->get_results($sql, ARRAY_A); + $sus_users_entry_found = false; + $found_users = ''; + if ($results) { + foreach ($results as $entry) { + $found_users = ''; + if (strpos(strtolower($entry['user_login']),''.sprintf( __('Possible suspicious entry - %s ', 'aiowpsecurity'), $found_users).'

'; + + if($found_users != ''){ + $sus_users_entry_found = true; + } + } + } + + if(!$sus_users_entry_found) { + echo '

'.__('No suspicious entries found in users table', 'aiowpsecurity').'

'; + } + + $output = ob_get_contents(); + ob_end_clean(); + + if($found_options != '' || $found_posts != '' || $found_links != '' || $found_comments != '' || $found_postmeta != '' || $found_usermeta != '' || $found_users != ''){ + $error_msg = '

'.__('The plugin has detected that there are some potentially suspicious entries in your database.', 'aiowpsecurity').'

'; + $error_msg .= '

'.__('Please verify the results listed below to confirm whether the entries detected are genuinely suspicious or if they are false positives.', 'aiowpsecurity').'

'; + $error_msg .= '

'; + + //Display a yellow box disclaimer stating that if no suspicious entries found does not necessarily mean site is not currently hacked + $malware_scan_tab_link = 'Malware Scan'; + $info_msg = ''.__('Disclaimer:').'
'; + $info_msg .= __('Even though this database scan has revealed some suspicious entries, this does not necessarily mean that other parts of your DB or site are also not compromised.', 'aiowpsecurity').'
'; + $info_msg .= __('Please note that database scan performed by this feature is basic and looks for common malicious entries. Since hackers are continually evolving their methods this scan is not meant to be a guaranteed catch-all for malware.', 'aiowpsecurity').'
'; + $info_msg .= sprintf( __('It is your responsibility to do the due diligence and perform a robust %s on your site if you wish to be more certain that your site is clean.', 'aiowpsecurity'), $malware_scan_tab_link); + $disclaimer = '

'.$info_msg.'

'; + + return $error_msg.$disclaimer.$output; + + }else{ + $scan_complete_msg = '

'; + $scan_complete_msg .= __('DB Scan was completed successfully. No suspicious entries found.'); + $scan_complete_msg .= '

'; + + //Display a yellow box disclaimer stating that if no suspicious entries found does not necessarily mean site is not currently hacked + $malware_scan_tab_link = 'Malware Scan'; + $info_msg = ''.__('Disclaimer:').'
'; + $info_msg .= __('Even though the database scan has not revealed any suspicious entries, this does not necessarily mean that your site is actually completely clean or not compromised.', 'aiowpsecurity').'
'; + $info_msg .= __('Please note that database scan performed by this feature is basic and looks for common malicious entries. Since hackers are continually evolving their methods this scan is not meant to be a guaranteed catch-all for malware.', 'aiowpsecurity').'
'; + $info_msg .= sprintf( __('It is your responsibility to do the due diligence and perform a robust %s on your site if you wish to be more certain that your site is clean.', 'aiowpsecurity'), $malware_scan_tab_link); + $disclaimer = '

'.$info_msg.'

'; + + return $scan_complete_msg.$disclaimer.$output; + } + } +} \ No newline at end of file diff --git a/all-in-one-wp-security/classes/wp-security-general-init-tasks.php b/all-in-one-wp-security/classes/wp-security-general-init-tasks.php new file mode 100644 index 0000000..6912a09 --- /dev/null +++ b/all-in-one-wp-security/classes/wp-security-general-init-tasks.php @@ -0,0 +1,374 @@ +configs->get_value('aiowps_prevent_site_display_inside_frame') == '1'){ + send_frame_options_header(); //send X-Frame-Options: SAMEORIGIN in HTTP header + } + + if($aio_wp_security->configs->get_value('aiowps_remove_wp_generator_meta_info') == '1'){ + add_filter('the_generator', array(&$this,'remove_wp_generator_meta_info')); + } + + //For the cookie based brute force prevention feature + $bfcf_secret_word = $aio_wp_security->configs->get_value('aiowps_brute_force_secret_word'); + if(isset($_GET[$bfcf_secret_word])){ + //If URL contains secret word in query param then set cookie and then redirect to the login page + AIOWPSecurity_Utility::set_cookie_value($bfcf_secret_word, "1"); + AIOWPSecurity_Utility::redirect_to_url(AIOWPSEC_WP_URL."/wp-admin"); + } + + //For user unlock request feature + if(isset($_POST['aiowps_unlock_request']) || isset($_POST['aiowps_wp_submit_unlock_request'])){ + nocache_headers(); + remove_action('wp_head','head_addons',7); + include_once(AIO_WP_SECURITY_PATH.'/other-includes/wp-security-unlock-request.php'); + exit(); + } + + if(isset($_GET['aiowps_auth_key'])){ + //If URL contains unlock key in query param then process the request + $unlock_key = strip_tags($_GET['aiowps_auth_key']); + AIOWPSecurity_User_Login::process_unlock_request($unlock_key); + } + + //For honeypot feature + if(isset($_POST['aio_special_field'])){ + $special_field_value = strip_tags($_POST['aio_special_field']); + if(!empty($special_field_value)){ + //This means a robot has submitted the login form! + //Redirect back to its localhost + AIOWPSecurity_Utility::redirect_to_url('http://127.0.0.1'); + } + } + + //For 404 IP lockout feature + if($aio_wp_security->configs->get_value('aiowps_enable_404_IP_lockout') == '1'){ + if (!is_user_logged_in() || !current_user_can('administrator')) { + $this->do_404_lockout_tasks(); + } + } + + + //For login captcha feature + if($aio_wp_security->configs->get_value('aiowps_enable_login_captcha') == '1'){ + if (!is_user_logged_in()) { + add_action('login_form', array(&$this, 'insert_captcha_question_form')); + } + } + + //For custom login form captcha feature, ie, when wp_login_form() function is used to generate login form + if($aio_wp_security->configs->get_value('aiowps_enable_custom_login_captcha') == '1'){ + if (!is_user_logged_in()) { + add_filter( 'login_form_middle', array(&$this, 'insert_captcha_custom_login'), 10, 2); //For cases where the WP wp_login_form() function is used + } + } + + //For honeypot feature + if($aio_wp_security->configs->get_value('aiowps_enable_login_honeypot') == '1'){ + if (!is_user_logged_in()) { + add_action( 'login_enqueue_scripts', array(&$this, 'login_enqueue_scripts')); + add_action('login_form', array(&$this, 'insert_honeypot_hidden_field')); + } + } + + + //For lost password captcha feature + if($aio_wp_security->configs->get_value('aiowps_enable_lost_password_captcha') == '1'){ + if (!is_user_logged_in()) { + add_action('lostpassword_form', array(&$this, 'insert_captcha_question_form')); + add_action('lostpassword_post', array(&$this, 'process_lost_password_form_post')); + } + } + + //For registration page captcha feature + if (AIOWPSecurity_Utility::is_multisite_install()){ + $blog_id = get_current_blog_id(); + switch_to_blog($blog_id); + if($aio_wp_security->configs->get_value('aiowps_enable_registration_page_captcha') == '1'){ + if (!is_user_logged_in()) { + add_action('signup_extra_fields', array(&$this, 'insert_captcha_question_form_multi')); + //add_action('preprocess_signup_form', array(&$this, 'process_signup_form_multi')); + add_filter( 'wpmu_validate_user_signup', array(&$this, 'process_signup_form_multi') ); + + } + } + restore_current_blog(); + }else{ + if($aio_wp_security->configs->get_value('aiowps_enable_registration_page_captcha') == '1'){ + if (!is_user_logged_in()) { + add_action('register_form', array(&$this, 'insert_captcha_question_form')); + } + } + } + + + //For comment captcha feature + if (AIOWPSecurity_Utility::is_multisite_install()){ + $blog_id = get_current_blog_id(); + switch_to_blog($blog_id); + if($aio_wp_security->configs->get_value('aiowps_enable_comment_captcha') == '1'){ + add_action( 'comment_form_after_fields', array(&$this, 'insert_captcha_question_form'), 1 ); + add_action( 'comment_form_logged_in_after', array(&$this, 'insert_captcha_question_form'), 1 ); + add_filter( 'preprocess_comment', array(&$this, 'process_comment_post') ); + } + restore_current_blog(); + }else{ + if($aio_wp_security->configs->get_value('aiowps_enable_comment_captcha') == '1'){ + add_action( 'comment_form_after_fields', array(&$this, 'insert_captcha_question_form'), 1 ); + add_action( 'comment_form_logged_in_after', array(&$this, 'insert_captcha_question_form'), 1 ); + add_filter( 'preprocess_comment', array(&$this, 'process_comment_post') ); + } + } + + //For buddypress registration captcha feature + if($aio_wp_security->configs->get_value('aiowps_enable_bp_register_captcha') == '1'){ + add_action('bp_account_details_fields', array(&$this, 'insert_captcha_question_form')); + add_action('bp_signup_validate', array(&$this, 'buddy_press_signup_validate_captcha')); + } + + + //For feature which displays logged in users + $this->update_logged_in_user_transient(); + + //For block fake googlebots feature + if($aio_wp_security->configs->get_value('aiowps_block_fake_googlebots') == '1'){ + include_once(AIO_WP_SECURITY_PATH.'/classes/wp-security-bot-protection.php'); + AIOWPSecurity_Fake_Bot_Protection::block_fake_googlebots(); + } + + //For 404 event logging + if($aio_wp_security->configs->get_value('aiowps_enable_404_logging') == '1'){ + add_action('wp_head', array(&$this, 'check_404_event')); + } + + //Add more tasks that need to be executed at init time + + } + + function remove_wp_generator_meta_info() + { + return ''; + } + + function do_404_lockout_tasks(){ + global $aio_wp_security; + $redirect_url = $aio_wp_security->configs->get_value('aiowps_404_lock_redirect_url'); //This is the redirect URL for blocked users + + $visitor_ip = AIOWPSecurity_Utility_IP::get_user_ip_address(); + + $is_locked = AIOWPSecurity_Utility::check_locked_ip($visitor_ip); + + if($is_locked){ + //redirect blocked user to configured URL + AIOWPSecurity_Utility::redirect_to_url($redirect_url); + }else{ + //allow through + } + } + + function update_logged_in_user_transient(){ + if(is_user_logged_in()){ + $current_user_ip = AIOWPSecurity_Utility_IP::get_user_ip_address(); + // get the logged in users list from transients entry + $logged_in_users = (AIOWPSecurity_Utility::is_multisite_install() ? get_site_transient('users_online') : get_transient('users_online')); +// $logged_in_users = get_transient('users_online'); + $current_user = wp_get_current_user(); + $current_user = $current_user->ID; + $current_time = current_time('timestamp'); + + $current_user_info = array("user_id" => $current_user, "last_activity" => $current_time, "ip_address" => $current_user_ip); //We will store last activity time and ip address in transient entry + + if($logged_in_users === false || $logged_in_users == NULL){ + $logged_in_users = array(); + $logged_in_users[] = $current_user_info; + AIOWPSecurity_Utility::is_multisite_install() ? set_site_transient('users_online', $logged_in_users, 30 * 60) : set_transient('users_online', $logged_in_users, 30 * 60); +// set_transient('users_online', $logged_in_users, 30 * 60); //Set transient with the data obtained above and also set the expire to 30min + } + else + { + $key = 0; + $do_nothing = false; + $update_existing = false; + $item_index = 0; + foreach ($logged_in_users as $value) + { + if($value['user_id'] == $current_user && strcmp($value['ip_address'], $current_user_ip) == 0) + { + if ($value['last_activity'] < ($current_time - (15 * 60))) + { + $update_existing = true; + $item_index = $key; + break; + }else{ + $do_nothing = true; + break; + } + } + $key++; + } + + if($update_existing) + { + //Update transient if the last activity was less than 15 min ago for this user + $logged_in_users[$item_index] = $current_user_info; + AIOWPSecurity_Utility::is_multisite_install() ? set_site_transient('users_online', $logged_in_users, 30 * 60) : set_transient('users_online', $logged_in_users, 30 * 60); + }else if($do_nothing){ + //Do nothing + }else{ + $logged_in_users[] = $current_user_info; + AIOWPSecurity_Utility::is_multisite_install() ? set_site_transient('users_online', $logged_in_users, 30 * 60) : set_transient('users_online', $logged_in_users, 30 * 60); + } + } + } + } + + function insert_captcha_custom_login($cust_html_code, $args) + { + global $aio_wp_security; + $cap_form = '

'; + $cap_form .= '

'; + $maths_question_output = $aio_wp_security->captcha_obj->generate_maths_question(); + $cap_form .= $maths_question_output . '

'; + + $cust_html_code .= $cap_form; + return $cust_html_code; + } + + function insert_captcha_question_form_multi($error) + { + global $aio_wp_security; + $aio_wp_security->captcha_obj->display_captcha_form(); + } + + function process_signup_form_multi($result) + { + global $aio_wp_security; + //Check if captcha enabled + if (array_key_exists('aiowps-captcha-answer', $_POST)) //If the register form with captcha was submitted then do some processing + { + isset($_POST['aiowps-captcha-answer'])?$captcha_answer = strip_tags(trim($_POST['aiowps-captcha-answer'])): $captcha_answer = ''; + $captcha_secret_string = $aio_wp_security->configs->get_value('aiowps_captcha_secret_key'); + $submitted_encoded_string = base64_encode($_POST['aiowps-captcha-temp-string'].$captcha_secret_string.$captcha_answer); + if($submitted_encoded_string !== $_POST['aiowps-captcha-string-info']) + { + //This means a wrong answer was entered + $result['errors']->add('generic', __('ERROR: Your answer was incorrect - please try again.', 'aiowpsecurity')); + } + } + return $result; + } + + function insert_captcha_question_form(){ + global $aio_wp_security; + $aio_wp_security->captcha_obj->display_captcha_form(); + } + + function insert_honeypot_hidden_field(){ + global $aio_wp_security; + $honey_input = '

'; + $honey_input .= '

'; + echo $honey_input; + } + + function process_comment_post( $comment ) + { + global $aio_wp_security; + if (is_user_logged_in()) { + return $comment; + } + + //Don't process captcha for comment replies inside admin menu + if (isset( $_REQUEST['action'] ) && $_REQUEST['action'] == 'replyto-comment' && + (check_ajax_referer('replyto-comment', '_ajax_nonce', false) || check_ajax_referer('replyto-comment', '_ajax_nonce-replyto-comment', false))) { + return $comment; + } + + //Don't do captcha for pingback/trackback + if ($comment['comment_type'] != '' && $comment['comment_type'] != 'comment') { + return $comment; + } + + if (isset($_REQUEST['aiowps-captcha-answer'])) + { + // If answer is empty + if ($_REQUEST['aiowps-captcha-answer'] == ''){ + wp_die( __('Please enter an answer in the CAPTCHA field.', 'aiowpsecurity' ) ); + } + $captcha_answer = trim($_REQUEST['aiowps-captcha-answer']); + $captcha_secret_string = $aio_wp_security->configs->get_value('aiowps_captcha_secret_key'); + $submitted_encoded_string = base64_encode($_POST['aiowps-captcha-temp-string'].$captcha_secret_string.$captcha_answer); + if ($_REQUEST['aiowps-captcha-string-info'] === $submitted_encoded_string){ + //Correct answer given + return($comment); + }else{ + //Wrong answer + wp_die( __('Error: You entered an incorrect CAPTCHA answer. Please go back and try again.', 'aiowpsecurity')); + } + } + } + + function process_lost_password_form_post() + { + global $aio_wp_security; + //Check if captcha enabled + if ($aio_wp_security->configs->get_value('aiowps_enable_lost_password_captcha') == '1') + { + if (array_key_exists('aiowps-captcha-answer', $_POST)) //If the lost pass form with captcha was submitted then do some processing + { + isset($_POST['aiowps-captcha-answer'])?($captcha_answer = strip_tags(trim($_POST['aiowps-captcha-answer']))):($captcha_answer = ''); + $captcha_secret_string = $aio_wp_security->configs->get_value('aiowps_captcha_secret_key'); + $submitted_encoded_string = base64_encode($_POST['aiowps-captcha-temp-string'].$captcha_secret_string.$captcha_answer); + if($submitted_encoded_string !== $_POST['aiowps-captcha-string-info']) + { + add_filter('allow_password_reset', array(&$this, 'add_lostpassword_captcha_error_msg')); + } + } + } + + } + + function add_lostpassword_captcha_error_msg() + { + //Insert an error just before the password reset process kicks in + return new WP_Error('aiowps_captcha_error',__('ERROR: Your answer was incorrect - please try again.', 'aiowpsecurity')); + } + + function check_404_event() + { + if(is_404()){ + //This means a 404 event has occurred - let's log it! + AIOWPSecurity_Utility::event_logger('404'); + } + + } + + function login_enqueue_scripts() + { +// echo '';//Load the CSS file + wp_enqueue_style('aiowps-stylesheet', AIO_WP_SECURITY_URL.'/css/wp-aiowps.css'); + } + + + function buddy_press_signup_validate_captcha($errors) + { + global $bp, $aio_wp_security; + //Check if captcha enabled + if (array_key_exists('aiowps-captcha-answer', $_POST)) //If the register form with captcha was submitted then do some processing + { + isset($_POST['aiowps-captcha-answer'])?$captcha_answer = strip_tags(trim($_POST['aiowps-captcha-answer'])): $captcha_answer = ''; + $captcha_secret_string = $aio_wp_security->configs->get_value('aiowps_captcha_secret_key'); + $submitted_encoded_string = base64_encode($_POST['aiowps-captcha-temp-string'].$captcha_secret_string.$captcha_answer); + if($submitted_encoded_string !== $_POST['aiowps-captcha-string-info']) + { + //This means a wrong answer was entered + $bp->signup->errors['aiowps-captcha-answer'] = __('Your CAPTCHA answer was incorrect - please try again.', 'aiowpsecurity'); + } + } + + return; + } +} \ No newline at end of file diff --git a/all-in-one-wp-security/classes/wp-security-installer.php b/all-in-one-wp-security/classes/wp-security-installer.php new file mode 100644 index 0000000..c755a5b --- /dev/null +++ b/all-in-one-wp-security/classes/wp-security-installer.php @@ -0,0 +1,154 @@ +blogid; + // Get all blog ids + $blogids = $wpdb->get_col("SELECT blog_id FROM $wpdb->blogs"); + foreach ($blogids as $blog_id) { + switch_to_blog($blog_id); + AIOWPSecurity_Installer::create_db_tables(); + AIOWPSecurity_Configure_Settings::add_option_values(); + } + AIOWPSecurity_Installer::create_db_backup_dir(); //Create a backup dir in the WP uploads directory + switch_to_blog($old_blog); + return; + } + } + AIOWPSecurity_Installer::create_db_tables(); + AIOWPSecurity_Configure_Settings::add_option_values(); + AIOWPSecurity_Installer::create_db_backup_dir(); //Create a backup dir in the WP uploads directory + + } + + static function create_db_tables() + { + //global $wpdb; + require_once(ABSPATH . 'wp-admin/includes/upgrade.php'); + + //"User Login" related tables + $lockdown_tbl_name = AIOWPSEC_TBL_LOGIN_LOCKDOWN; + $failed_login_tbl_name = AIOWPSEC_TBL_FAILED_LOGINS; + $user_login_activity_tbl_name = AIOWPSEC_TBL_USER_LOGIN_ACTIVITY; + $aiowps_global_meta_tbl_name = AIOWPSEC_TBL_GLOBAL_META_DATA; + $aiowps_event_tbl_name = AIOWPSEC_TBL_EVENTS; + + $ld_tbl_sql = "CREATE TABLE " . $lockdown_tbl_name . " ( + id bigint(20) NOT NULL AUTO_INCREMENT, + user_id bigint(20) NOT NULL, + user_login VARCHAR(150) NOT NULL, + lockdown_date datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + release_date datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + failed_login_ip varchar(100) NOT NULL DEFAULT '', + lock_reason varchar(128) NOT NULL DEFAULT '', + unlock_key varchar(128) NOT NULL DEFAULT '', + PRIMARY KEY (id) + )ENGINE=MyISAM DEFAULT CHARSET=utf8;"; + dbDelta($ld_tbl_sql); + + $fl_tbl_sql = "CREATE TABLE " . $failed_login_tbl_name . " ( + id bigint(20) NOT NULL AUTO_INCREMENT, + user_id bigint(20) NOT NULL, + user_login VARCHAR(150) NOT NULL, + failed_login_date datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + login_attempt_ip varchar(100) NOT NULL DEFAULT '', + PRIMARY KEY (id) + )ENGINE=MyISAM DEFAULT CHARSET=utf8;"; + dbDelta($fl_tbl_sql); + + $ula_tbl_sql = "CREATE TABLE " . $user_login_activity_tbl_name . " ( + id bigint(20) NOT NULL AUTO_INCREMENT, + user_id bigint(20) NOT NULL, + user_login VARCHAR(150) NOT NULL, + login_date datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + logout_date datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + login_ip varchar(100) NOT NULL DEFAULT '', + login_country varchar(150) NOT NULL DEFAULT '', + browser_type varchar(150) NOT NULL DEFAULT '', + PRIMARY KEY (id) + )ENGINE=MyISAM DEFAULT CHARSET=utf8;"; + dbDelta($ula_tbl_sql); + + $gm_tbl_sql = "CREATE TABLE " . $aiowps_global_meta_tbl_name . " ( + meta_id bigint(20) NOT NULL auto_increment, + date_time datetime NOT NULL default '0000-00-00 00:00:00', + meta_key1 varchar(255) NOT NULL, + meta_key2 varchar(255) NOT NULL, + meta_key3 varchar(255) NOT NULL, + meta_key4 varchar(255) NOT NULL, + meta_key5 varchar(255) NOT NULL, + meta_value1 varchar(255) NOT NULL, + meta_value2 text NOT NULL, + meta_value3 text NOT NULL, + meta_value4 longtext NOT NULL, + meta_value5 longtext NOT NULL, + PRIMARY KEY (meta_id) + )ENGINE=MyISAM DEFAULT CHARSET=utf8;"; + dbDelta($gm_tbl_sql); + + $evt_tbl_sql = "CREATE TABLE " . $aiowps_event_tbl_name . " ( + id bigint(20) NOT NULL AUTO_INCREMENT, + event_type VARCHAR(150) NOT NULL DEFAULT '', + username VARCHAR(150), + user_id bigint(20), + event_date datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + ip_or_host varchar(100), + referer_info varchar(255), + url varchar(255), + event_data longtext, + PRIMARY KEY (id) + )ENGINE=MyISAM DEFAULT CHARSET=utf8;"; + dbDelta($evt_tbl_sql); + + update_option("aiowpsec_db_version", AIO_WP_SECURITY_DB_VERSION); + } + + static function create_db_backup_dir() + { + global $aio_wp_security; + //Create our folder in the "wp-content" directory + $aiowps_dir = WP_CONTENT_DIR.'/'.AIO_WP_SECURITY_BACKUPS_DIR_NAME; + if(!is_dir($aiowps_dir)) { + mkdir($aiowps_dir , 0755, true); + //Let's also create an empty index.html file in this folder + $index_file = $aiowps_dir.'/index.html'; + $handle = fopen($index_file, 'w'); //or die('Cannot open file: '.$index_file); + fclose($handle); + } + //Create an .htacces file + //Write some rules which will only allow people originating from wp admin page to download the DB backup + $rules = ''; + $rules .= 'order deny,allow +deny from all' . PHP_EOL; + $file = $aiowps_dir.'/.htaccess'; + $write_result = file_put_contents($file, $rules); + if ($write_result === false) + { + $aio_wp_security->debug_logger->log_debug("Creation of .htaccess file in ".AIO_WP_SECURITY_BACKUPS_DIR_NAME." directory failed!",4); + } + } + +// //Read entire contents of file at activation time and store serialized contents in our global_meta table +// static function backup_file_contents_to_db_at_activation($src_file, $key_description) +// { +// //First check if a backup entry already exists in the global_meta table +// global $wpdb; +// $aiowps_global_meta_tbl_name = AIOWPSEC_TBL_GLOBAL_META_DATA; +// $resultset = $wpdb->get_row("SELECT * FROM $aiowps_global_meta_tbl_name WHERE meta_key1 = '$key_description'", OBJECT); +// if($resultset){ +// return; //Don't override original backup if one exists - so just return +// } +// +// //Otherwise read the contents of the file and store in global_meta table +// AIOWPSecurity_Utility_File::backup_file_contents_to_db($src_file, $key_description); +// return; +// } +} diff --git a/all-in-one-wp-security/classes/wp-security-process-renamed-login-page.php b/all-in-one-wp-security/classes/wp-security-process-renamed-login-page.php new file mode 100644 index 0000000..0dbd0fb --- /dev/null +++ b/all-in-one-wp-security/classes/wp-security-process-renamed-login-page.php @@ -0,0 +1,140 @@ +get_error_code() === 'already_active' || $result->get_error_code() === 'blog_taken')){ + $aiowps_new_login_url = AIOWPSecurity_Process_Renamed_Login_Page::new_login_url(); + wp_safe_redirect($aiowps_new_login_url . (!empty($_SERVER['QUERY_STRING']) ? '?' . $_SERVER['QUERY_STRING'] : '')); + die; + } + } + } + } + AIOWPSecurity_Process_Renamed_Login_Page::aiowps_set_404(); + } + + } + + function aiowps_site_url($url, $path) + { + return $this->aiowps_filter_wp_login_file($url); + } + + function aiowps_wp_redirect($location, $status) + { + return $this->aiowps_filter_wp_login_file($location); + } + + //Filter register link on the login page + function register_link($registration_url) + { + return $this->aiowps_filter_wp_login_file($registration_url); + } + + //Filter all login url strings on the login page + function aiowps_filter_wp_login_file($url) + { + if (strpos($url, 'wp-login.php') !== false){ + $args = explode( '?', $url ); + if (isset($args[1])){ + parse_str($args[1], $args); + $url = add_query_arg($args, AIOWPSecurity_Process_Renamed_Login_Page::new_login_url()); + }else{ + $url = AIOWPSecurity_Process_Renamed_Login_Page::new_login_url(); + } + } + return $url; + } + + static function renamed_login_init_tasks() + { + global $aio_wp_security; + //case where someone attempting to reach wp-admin + if (is_admin() && !is_user_logged_in() && !defined('DOING_AJAX')){ + //Check if the maintenance (lockout) mode is active - if so prevent access to site by not displaying 404 page! + if($aio_wp_security->configs->get_value('aiowps_site_lockout') == '1'){ + AIOWPSecurity_WP_Loaded_Tasks::site_lockout_tasks(); + }else{ + AIOWPSecurity_Process_Renamed_Login_Page::aiowps_set_404(); + } + } + + //case where someone attempting to reach wp-login + if(isset($_SERVER['REQUEST_URI']) && strpos( $_SERVER['REQUEST_URI'], 'wp-login.php' ) && !is_user_logged_in()){ + //Check if the maintenance (lockout) mode is active - if so prevent access to site by not displaying 404 page! + if($aio_wp_security->configs->get_value('aiowps_site_lockout') == '1'){ + AIOWPSecurity_WP_Loaded_Tasks::site_lockout_tasks(); + }else{ + AIOWPSecurity_Process_Renamed_Login_Page::aiowps_set_404(); + } + } + + //case where someone attempting to reach the standard register or signup pages + if(isset( $_SERVER['REQUEST_URI'] ) && strpos( $_SERVER['REQUEST_URI'], 'wp-register.php' ) || + isset( $_SERVER['REQUEST_URI'] ) && strpos( $_SERVER['REQUEST_URI'], 'wp-signup.php' )){ + //Check if the maintenance (lockout) mode is active - if so prevent access to site by not displaying 404 page! + if($aio_wp_security->configs->get_value('aiowps_site_lockout') == '1'){ + AIOWPSecurity_WP_Loaded_Tasks::site_lockout_tasks(); + }else{ + AIOWPSecurity_Process_Renamed_Login_Page::aiowps_set_404(); + } + } + + $parsed_url = parse_url($_SERVER['REQUEST_URI']); + + $login_slug = $aio_wp_security->configs->get_value('aiowps_login_page_slug'); + + if(untrailingslashit($parsed_url['path']) === home_url($login_slug, 'relative') + || (!get_option('permalink_structure') && isset($_GET[$login_slug]))){ + status_header( 200 ); + require_once(AIO_WP_SECURITY_PATH . '/other-includes/wp-security-rename-login-feature.php' ); + die; + } + } + + static function new_login_url() + { + global $aio_wp_security; + $login_slug = $aio_wp_security->configs->get_value('aiowps_login_page_slug'); + if(get_option('permalink_structure')){ + return trailingslashit(trailingslashit(home_url()) . $login_slug); + }else{ + return trailingslashit(home_url()) . '?' . $login_slug; + } + } + + static function aiowps_set_404() + { + global $wp_query; + status_header(404); + $wp_query->set_404(); + if ((($template = get_404_template()) || ($template = get_index_template())) + && ($template = apply_filters('template_include', $template))){ + include($template); + } + die; + } + +} \ No newline at end of file diff --git a/all-in-one-wp-security/classes/wp-security-user-login.php b/all-in-one-wp-security/classes/wp-security-user-login.php new file mode 100644 index 0000000..7439bc5 --- /dev/null +++ b/all-in-one-wp-security/classes/wp-security-user-login.php @@ -0,0 +1,537 @@ +initialize(); + remove_filter('authenticate', 'wp_authenticate_username_password', 20, 3); + add_filter('authenticate', array(&$this, 'aiowp_auth_login'), 10, 3); + add_action('aiowps_force_logout_check', array(&$this, 'aiowps_force_logout_action_handler')); + //add_action('wp_login', array(&$this, 'wp_login_action_handler'), 10, 2); + add_action('clear_auth_cookie', array(&$this, 'wp_logout_action_handler')); + add_filter('login_message', array(&$this, 'aiowps_login_message')); //WP filter to add or modify messages on the login page + } + + protected function initialize() + { + $this->key_login_msg = 'aiowps_login_msg_id'; + } + + + /* + * This function will take care of the authentication operations + * It will return a WP_User object if successful or WP_Error if not + */ + function aiowp_auth_login($user, $username, $password) + { + global $wpdb, $aio_wp_security; + $login_attempts_permitted = $aio_wp_security->configs->get_value('aiowps_max_login_attempts'); + + $user_locked = $this->check_locked_user(); + if ($user_locked != NULL) { + if($aio_wp_security->configs->get_value('aiowps_allow_unlock_requests')=='1') + { + add_action('login_form', array(&$this, 'insert_unlock_request_form')); + } + $aio_wp_security->debug_logger->log_debug("Login attempt from blocked IP range - ".$user_locked['failed_login_ip'],2); + return new WP_Error('authentication_failed', __('ERROR: Login failed because your IP address has been blocked. Please contact the administrator.', 'aiowpsecurity')); + //$unlock_msg_form = $this->user_unlock_message(); + //return new WP_Error('authentication_failed', __('ERROR: Login failed because your IP address has been blocked. + // Please contact the administrator.', 'aiowpsecurity').$unlock_msg_form); + } + + //Check if captcha enabled + if ($aio_wp_security->configs->get_value('aiowps_enable_login_captcha') == '1') + { + if (array_key_exists('aiowps-captcha-answer', $_POST)) //If the login form with captcha was submitted then do some processing + { + isset($_POST['aiowps-captcha-answer'])?($captcha_answer = strip_tags(trim($_POST['aiowps-captcha-answer']))):($captcha_answer = ''); + $captcha_secret_string = $aio_wp_security->configs->get_value('aiowps_captcha_secret_key'); + $submitted_encoded_string = base64_encode($_POST['aiowps-captcha-temp-string'].$captcha_secret_string.$captcha_answer); + if($submitted_encoded_string !== $_POST['aiowps-captcha-string-info']) + { + //This means a wrong answer was entered + $this->increment_failed_logins($username); + if($aio_wp_security->configs->get_value('aiowps_enable_login_lockdown')=='1') + { + if($login_attempts_permitted <= $this->get_login_fail_count()) + { + $this->lock_the_user($username, 'login_fail'); + } + else + { + return new WP_Error('authentication_failed', __('ERROR: Your answer was incorrect - please try again.', 'aiowpsecurity')); + } + } + return new WP_Error('authentication_failed', __('ERROR: Your answer was incorrect - please try again.', 'aiowpsecurity')); + } + } + } + + if ( is_a($user, 'WP_User') ) { return $user; } //Existing WP core code + + if ( empty($username) || empty($password) ) { //Existing WP core code + $error = new WP_Error(); + if (empty($username)){ + $error->add('empty_username', __('ERROR: The username field is empty.', 'aiowpsecurity')); + } + + if (empty($password)){ + $error->add('empty_password', __('ERROR: The password field is empty.', 'aiowpsecurity')); + } + return $error; + } + + $userdata = get_user_by('login',$username); + if (!$userdata) + { + //This means an unknown username is being used for login + $this->increment_failed_logins($username); + if($aio_wp_security->configs->get_value('aiowps_enable_login_lockdown')=='1') + { + if($login_attempts_permitted <= $this->get_login_fail_count() || $aio_wp_security->configs->get_value('aiowps_enable_invalid_username_lockdown')=='1') + { + $this->lock_the_user($username, 'login_fail'); + } + } + if($aio_wp_security->configs->get_value('aiowps_set_generic_login_msg')=='1') + { + //Return generic error message if configured + return new WP_Error('authentication_failed', __('ERROR: Invalid login credentials.', 'aiowpsecurity')); + } else + { + return new WP_Error('invalid_username', __('ERROR: Invalid username.', 'aiowpsecurity')); + } + } + + $userdata = apply_filters('wp_authenticate_user', $userdata, $password); //Existing WP core code + if ( is_wp_error($userdata) ) { //Existing WP core code + return $userdata; + } + + if ( !wp_check_password($password, $userdata->user_pass, $userdata->ID) ) + { + //This means wrong password was entered + $this->increment_failed_logins($username); + if($aio_wp_security->configs->get_value('aiowps_enable_login_lockdown')=='1') + { + if($login_attempts_permitted <= $this->get_login_fail_count()) + { + $this->lock_the_user($username, 'login_fail'); + } + } + if($aio_wp_security->configs->get_value('aiowps_set_generic_login_msg')=='1') + { + //Return generic error message if configured + return new WP_Error('authentication_failed', __('ERROR: Invalid login credentials.', 'aiowpsecurity')); + } else + { + return new WP_Error('incorrect_password', sprintf(__('ERROR: Incorrect password. Lost your password?', 'aiowpsecurity'), site_url('wp-login.php?action=lostpassword', 'login'))); + } + } + + //Check if auto pending new account status feature is enabled + if ($aio_wp_security->configs->get_value('aiowps_enable_manual_registration_approval') == '1') + { + $cap_key_name = $wpdb->prefix.'capabilities'; + $user_meta_info = get_user_meta($userdata->ID, 'aiowps_account_status', TRUE); + if ($user_meta_info == 'pending'){ + //Return generic error message if configured + return new WP_Error('authentication_failed', __('ACCOUNT PENDING: Your account is currently not active. An administrator needs to activate your account before you can login.', 'aiowpsecurity')); + } + } + $user = new WP_User($userdata->ID); + return $user; + } + + /* + * This function queries the aiowps_login_lockdown table. + * If the release_date has not expired AND the current visitor IP addr matches + * it will return a record + */ + function check_locked_user() + { + global $wpdb; + $login_lockdown_table = AIOWPSEC_TBL_LOGIN_LOCKDOWN; + $ip = AIOWPSecurity_Utility_IP::get_user_ip_address(); //Get the IP address of user + $ip_range = AIOWPSecurity_Utility_IP::get_sanitized_ip_range($ip); //Get the IP range of the current user + $locked_user = $wpdb->get_row("SELECT * FROM $login_lockdown_table " . + "WHERE release_date > now() AND " . + "failed_login_ip LIKE '" . esc_sql($ip_range) . "%'", ARRAY_A); + return $locked_user; + } + + /* + * This function queries the aiowps_failed_logins table and returns the number of failures for current IP range within allowed failure period + */ + function get_login_fail_count() + { + global $wpdb, $aio_wp_security; + $failed_logins_table = AIOWPSEC_TBL_FAILED_LOGINS; + $login_retry_interval = $aio_wp_security->configs->get_value('aiowps_retry_time_period'); + $ip = AIOWPSecurity_Utility_IP::get_user_ip_address(); //Get the IP address of user + $ip_range = AIOWPSecurity_Utility_IP::get_sanitized_ip_range($ip); //Get the IP range of the current user + $login_failures = $wpdb->get_var("SELECT COUNT(ID) FROM $failed_logins_table " . + "WHERE failed_login_date + INTERVAL " . + $login_retry_interval . " MINUTE > now() AND " . + "login_attempt_ip LIKE '" . esc_sql($ip_range) . "%'"); + return $login_failures; + } + + /* + * Adds an entry to the aiowps_lockdowns table + */ + function lock_the_user($username='', $lock_reason='login_fail') + { + global $wpdb, $aio_wp_security; + $login_lockdown_table = AIOWPSEC_TBL_LOGIN_LOCKDOWN; + $lockout_time_length = $aio_wp_security->configs->get_value('aiowps_lockout_time_length'); + $ip = AIOWPSecurity_Utility_IP::get_user_ip_address(); //Get the IP address of user + $ip_range = AIOWPSecurity_Utility_IP::get_sanitized_ip_range($ip); //Get the IP range of the current user + $username = sanitize_user($username); + $user = get_user_by('login',$username); //Returns WP_User object if exists + $ip_range = apply_filters('aiowps_before_lockdown', $ip_range); + if ($user) + { + //If the login attempt was made using a valid user set variables for DB storage later on + $user_id = $user->ID; + } else { + //If the login attempt was made using a non-existent user then let's set user_id to blank and record the attempted user login name for DB storage later on + $user_id = ''; + } + $ip_range_str = esc_sql($ip_range).'.*'; + $insert = "INSERT INTO " . $login_lockdown_table . " (user_id, user_login, lockdown_date, release_date, failed_login_IP, lock_reason) " . + "VALUES ('" . $user_id . "', '" . $username . "', now(), date_add(now(), INTERVAL " . + $lockout_time_length . " MINUTE), '" . $ip_range_str . "', '" . $lock_reason . "')"; + $result = $wpdb->query($insert); + if ($result > 0) + { + do_action('aiowps_lockdown_event', $ip_range, $username); + $this->send_ip_lock_notification_email($username, $ip_range, $ip); + $aio_wp_security->debug_logger->log_debug("The following IP address range has been locked out for exceeding the maximum login attempts: ".$ip_range,2);//Log the lockdown event + } + else if ($result == FALSE) + { + $aio_wp_security->debug_logger->log_debug("Error inserting record into ".$login_lockdown_table,4);//Log the highly unlikely event of DB error + } + } + + /* + * Adds an entry to the aiowps_failed_logins table + */ + function increment_failed_logins($username='') + { + global $wpdb, $aio_wp_security; + //$login_attempts_permitted = $aio_wp_security->configs->get_value('aiowps_max_login_attempts'); + //$lockout_time_length = $aio_wp_security->configs->get_value('aiowps_lockout_time_length'); + $login_fails_table = AIOWPSEC_TBL_FAILED_LOGINS; + $ip = AIOWPSecurity_Utility_IP::get_user_ip_address(); //Get the IP address of user + $ip_range = AIOWPSecurity_Utility_IP::get_sanitized_ip_range($ip); //Get the IP range of the current user + + $username = sanitize_user($username); + $user = get_user_by('login',$username); //Returns WP_User object if it exists + if ($user) + { + //If the login attempt was made using a valid user set variables for DB storage later on + $user_id = $user->ID; + } else { + //If the login attempt was made using a non-existent user then let's set user_id to blank and record the attempted user login name for DB storage later on + $user_id = 0; + } + $ip_range_str = esc_sql($ip_range).'.*'; + $insert = "INSERT INTO " . $login_fails_table . " (user_id, user_login, failed_login_date, login_attempt_ip) " . + "VALUES ('" . $user_id . "', '" . $username . "', now(), '" . $ip_range_str . "')"; + $result = $wpdb->query($insert); + if ($result == FALSE) + { + $aio_wp_security->debug_logger->log_debug("Error inserting record into ".$login_fails_table,4);//Log the highly unlikely event of DB error + } + + } + + /* + * This function queries the aiowps_failed_logins table and returns the number of failures for current IP range within allowed failure period + */ + function send_ip_lock_notification_email($username, $ip_range, $ip) + { + global $aio_wp_security; + $email_notification_enabled = $aio_wp_security->configs->get_value('aiowps_enable_email_notify'); + $to_email_address = $aio_wp_security->configs->get_value('aiowps_email_address'); + $email_msg = ''; + if ($email_notification_enabled == 1) + { + $subject = '['.get_option('siteurl').'] '. __('Site Lockout Notification','aiowpsecurity'); + $email_msg .= __('A lockdown event has occurred due to too many failed login attempts or invalid username:','aiowpsecurity')."\n"; + $email_msg .= __('Username: '.($username?$username:"Unknown"),'aiowpsecurity')."\n"; + $email_msg .= __('IP Address: '.$ip,'aiowpsecurity')."\n\n"; + $email_msg .= __('IP Range: '.$ip_range.'.*','aiowpsecurity')."\n\n"; + $email_msg .= __('Log into your site\'s WordPress administration panel to see the duration of the lockout or to unlock the user.','aiowpsecurity')."\n"; + $email_header = 'From: '.get_bloginfo( 'name' ).' <'.get_bloginfo('admin_email').'>' . "\r\n\\"; + $sendMail = wp_mail($to_email_address, $subject, $email_msg, $email_header); + } + } + + + /* + * This function generates a special random string and inserts into the lockdown table for the relevant user + * It then generates an unlock request link which will be used to send to the user + */ + static function generate_unlock_request_link($ip_range) + { + //Get the locked user row from lockdown table + global $wpdb, $aio_wp_security; + $unlock_link = ''; + $lockdown_table_name = AIOWPSEC_TBL_LOGIN_LOCKDOWN; + $secret_rand_key = (md5(uniqid(rand(), true))); + $sql = "UPDATE $lockdown_table_name SET unlock_key = '$secret_rand_key' WHERE release_date > now() AND failed_login_ip LIKE '%".esc_sql($ip_range)."%'"; + //$res = $wpdb->get_results("SELECT * FROM $lockdown_table_name WHERE release_date > now() AND user_login = '$username'", ARRAY_A); + $res = $wpdb->query($sql); + if($res == NULL){ + $aio_wp_security->debug_logger->log_debug("No locked user found with IP range ".$ip_range,4); + return false; + }else{ + $query_param = array('aiowps_auth_key'=>$secret_rand_key); + $wp_site_url = AIOWPSEC_WP_URL; + $unlock_link = add_query_arg($query_param, $wp_site_url); + } + return $unlock_link; + } + + /* + * This function will process an unlock request when someone clicks on the special URL + * It will check if the special random code matches that in lockdown table for the relevant user + * If so, it will unlock the user + */ + static function process_unlock_request($unlock_key) + { + global $wpdb, $aio_wp_security; + $lockdown_table_name = AIOWPSEC_TBL_LOGIN_LOCKDOWN; + + $unlock_command = "UPDATE ".$lockdown_table_name." SET release_date = now() WHERE unlock_key = '".$unlock_key."'"; + $result = $wpdb->query($unlock_command); + if($result === false) + { + $aio_wp_security->debug_logger->log_debug("Error unlocking user with unlock_key ".$unlock_key,4); + } + else + { + AIOWPSecurity_Utility::redirect_to_url(wp_login_url()); + } + } + + /* + * This function sends an unlock request email to a locked out user + */ + static function send_unlock_request_email($email, $unlock_link) + { + global $aio_wp_security; + $to_email_address = $email; + $email_msg = ''; + $subject = '['.get_option('siteurl').'] '. __('Unlock Request Notification','aiowpsecurity'); + $email_msg .= __('You have requested for the account with email address '.$email.' to be unlocked. Please click the link below to unlock your account:','aiowpsecurity')."\n"; + $email_msg .= __('Unlock link: '.$unlock_link,'aiowpsecurity')."\n\n"; + $email_msg .= __('After clicking the above link you will be able to login to the WordPress administration panel.','aiowpsecurity')."\n"; + $email_header = 'From: '.get_bloginfo( 'name' ).' <'.get_bloginfo('admin_email').'>' . "\r\n\\"; + $sendMail = wp_mail($to_email_address, $subject, $email_msg, $email_header); + } + + /* + * This function will check the settings and log the user after the configured time period + */ + function aiowps_force_logout_action_handler() + { + global $aio_wp_security; + //$aio_wp_security->debug_logger->log_debug("Force Logout - Checking if any user need to be logged out..."); + if($aio_wp_security->configs->get_value('aiowps_enable_forced_logout')=='1') //if this feature is enabled then do something + { + if(is_user_logged_in()) + { + $current_user = wp_get_current_user(); + $user_id = $current_user->ID; + $current_time = current_time('mysql'); + $login_time = $this->get_wp_user_last_login_time($user_id); + $diff = strtotime($current_time) - strtotime($login_time); + $logout_time_interval_value = $aio_wp_security->configs->get_value('aiowps_logout_time_period'); + $logout_time_interval_val_seconds = $logout_time_interval_value * 60; + if($diff > $logout_time_interval_val_seconds) + { + $aio_wp_security->debug_logger->log_debug("Force Logout - This user logged in more than (".$logout_time_interval_value.") minutes ago. Doing a force log out for the user with username: ".$current_user->user_login); + $this->wp_logout_action_handler(); //this will register the logout time/date in the logout_date column + + $curr_page_url = AIOWPSecurity_Utility::get_current_page_url(); + $after_logout_payload = 'redirect_to='.$curr_page_url.'&msg='.$this->key_login_msg.'=session_expired'; + $encrypted_payload = base64_encode($after_logout_payload); + $logout_url = AIOWPSEC_WP_URL.'?aiowpsec_do_log_out=1'; + $logout_url = AIOWPSecurity_Utility::add_query_data_to_url($logout_url, 'al_additional_data', $encrypted_payload); + AIOWPSecurity_Utility::redirect_to_url($logout_url); + } + } + } + } + + function get_wp_user_last_login_time($user_id) + { + $last_login = get_user_meta($user_id, 'last_login_time', true); + return $last_login; + } + + function wp_login_action_handler($user_login, $user='') + { + global $wpdb, $aio_wp_security; + $login_activity_table = AIOWPSEC_TBL_USER_LOGIN_ACTIVITY; + + if ($user == ''){ + //Try and get user object + $user = get_user_by('login', $user_login); //This should return WP_User obj + if (!$user){ + $aio_wp_security->debug_logger->log_debug("AIOWPSecurity_User_Login::wp_login_action_handler: Unable to get WP_User object for login ".$user_login,4); + return; + } + } + $login_date_time = current_time('mysql'); + update_user_meta($user->ID, 'last_login_time', $login_date_time); //store last login time in meta table + $curr_ip_address = AIOWPSecurity_Utility_IP::get_user_ip_address(); + $insert = "INSERT INTO " . $login_activity_table . " (user_id, user_login, login_date, login_ip) " . + "VALUES ('" . $user->ID . "', '" . $user_login . "', '" . $login_date_time . "', '" . $curr_ip_address . "')"; + $result = $wpdb->query($insert); + if ($result == FALSE) + { + $aio_wp_security->debug_logger->log_debug("Error inserting record into ".$login_activity_table,4);//Log the highly unlikely event of DB error + } + + } + + function check_user_logged_in($user_login) + { + // get the online users list + $logged_in_users = get_transient('users_online'); + + //If user is in the transient list and last activity was less than 15 minutes ago they are classed as being online + return isset($logged_in_users[$user_id]) && ($logged_in_users[$user_id]['last_activity'] > (current_time('timestamp') - (15 * 60))); + + } + + /** + * The handler for logout events, ie, uses the WP "clear_auth_cookies" action. + + * Modifies the login activity record for the current user by registering the logout time/date in the logout_date column. + * (NOTE: Because of the way we are doing a force logout, the "clear_auth_cookies" hook does not fire. + * upon auto logout. The current workaround is to call this function directly from the aiowps_force_logout_action_handler() when + * an auto logout occurs due to the "force logout" feature). + * + */ + function wp_logout_action_handler() + { + global $wpdb, $aio_wp_security; + $current_user = wp_get_current_user(); + $ip_addr = AIOWPSecurity_Utility_IP::get_user_ip_address(); + $user_id = $current_user->ID; + //Clean up transients table + $this->update_user_online_transient($user_id, $ip_addr); + + $login_activity_table = AIOWPSEC_TBL_USER_LOGIN_ACTIVITY; + $logout_date_time = current_time('mysql'); + $data = array('logout_date' => $logout_date_time); + $where = array('user_id' => $user_id, + 'login_ip' => $ip_addr, + 'logout_date' => '0000-00-00 00:00:00'); + $result = $wpdb->update($login_activity_table, $data, $where); + if ($result == FALSE) + { + $aio_wp_security->debug_logger->log_debug("Error inserting record into ".$login_activity_table,4);//Log the highly unlikely event of DB error + } + } + + /** + * This will clean up the "users_online" transient entry for the current user. + * + */ + function update_user_online_transient($user_id, $ip_addr) + { + global $aio_wp_security; + $logged_in_users = (AIOWPSecurity_Utility::is_multisite_install() ? get_site_transient('users_online') : get_transient('users_online')); + //$logged_in_users = get_transient('users_online'); + if ($logged_in_users === false || $logged_in_users == NULL) + { + return; + } + $j = 0; + foreach ($logged_in_users as $value) + { + if ($value['user_id'] == $user_id && strcmp($value['ip_address'], $ip_addr) == 0) + { + unset($logged_in_users[$j]); + break; + } + $j++; + } + //Save the transient + AIOWPSecurity_Utility::is_multisite_install() ? set_site_transient('users_online', $logged_in_users, 30 * 60) : set_transient('users_online', $logged_in_users, 30 * 60); + //set_transient('users_online', $logged_in_users, 30 * 60); //Set transient with the data obtained above and also set the expiry to 30min + return; + } + + /** + * The handler for the WP "login_message" filter + * Adds custom messages to the other messages that appear above the login form. + * + * NOTE: This method is automatically called by WordPress for displaying + * text above the login form. + * + * @param string $message the output from earlier login_message filters + * @return string + * + */ + function aiowps_login_message($message = '') + { + global $aio_wp_security; + $msg = ''; + if(isset($_GET[$this->key_login_msg]) && !empty($_GET[$this->key_login_msg])) + { + $logout_msg = strip_tags($_GET[$this->key_login_msg]); + } + if (!empty($logout_msg)) + { + switch ($logout_msg) { + case 'session_expired': + $msg = sprintf(__('Your session has expired because it has been over %d minutes since your last login.', 'aiowpsecurity'), $aio_wp_security->configs->get_value('aiowps_logout_time_period')); + $msg .= ' ' . __('Please log back in to continue.', 'aiowpsecurity'); + break; + case 'admin_user_changed': + $msg = __('You were logged out because you just changed the "admin" username.', 'aiowpsecurity'); + $msg .= ' ' . __('Please log back in to continue.', 'aiowpsecurity'); + break; + default: + } + } + if (!empty($msg)) + { + $msg = htmlspecialchars($msg, ENT_QUOTES, 'UTF-8'); + $message .= ''; + } + return $message; + } + + //This function will generate an unlock request button which to be inserted inside the wp-login form when user gets locked out + function insert_unlock_request_form() + { + global $aio_wp_security; + $unlock_request_form = ''; + //Let's encode some hidden data and make a form + $unlock_secret_string = $aio_wp_security->configs->get_value('aiowps_unlock_request_secret_key'); + $current_time = time(); + $enc_result = base64_encode($current_time.$unlock_secret_string); + + $unlock_request_form .= '
'; + $unlock_request_form .= ''; + $unlock_request_form .= '
'; + echo $unlock_request_form; + } + +} \ No newline at end of file diff --git a/all-in-one-wp-security/classes/wp-security-user-registration.php b/all-in-one-wp-security/classes/wp-security-user-registration.php new file mode 100644 index 0000000..fcde2b7 --- /dev/null +++ b/all-in-one-wp-security/classes/wp-security-user-registration.php @@ -0,0 +1,68 @@ +configs->get_value('aiowps_enable_registration_page_captcha') == '1') + { + add_filter('registration_errors', array(&$this, 'aiowps_validate_registration_with_captcha'), 10, 3); + } + } + + + /* + * This function will add a special meta string in the users table + * Meta field name: 'aiowps_account_status' + * Meta field value: 'pending' + */ + function aiowps_user_registration_action_handler($user_id) + { + global $wpdb, $aio_wp_security; + //Check if auto pending new account status feature is enabled + if ($aio_wp_security->configs->get_value('aiowps_enable_manual_registration_approval') == '1') + { + $res = add_user_meta($user_id, 'aiowps_account_status', 'pending'); + if (!$res){ + $aio_wp_security->debug_logger->log_debug("aiowps_user_registration_action_handler: Error adding user meta data: aiowps_account_status",4); + } + } + } + + /* + * This function will set the special meta string in the usermeta table so that the account becomes active + * Meta field name: 'aiowps_account_status' + * Meta field values: 'active', 'pending', etc + */ + function aiowps_set_user_account_status($user_id, $status) + { + global $wpdb, $aio_wp_security; + $res = update_user_meta($user_id, 'aiowps_account_status', $status); + if (!$res){ + $aio_wp_security->debug_logger->log_debug("aiowps_set_user_account_status: Error updating user meta data: aiowps_account_status",4); + } + } + + function aiowps_validate_registration_with_captcha($errors, $sanitized_user_login, $user_email) + { + global $aio_wp_security; + if (array_key_exists('aiowps-captcha-answer', $_POST)) //If the register form with captcha was submitted then do some processing + { + isset($_POST['aiowps-captcha-answer'])?$captcha_answer = strip_tags(trim($_POST['aiowps-captcha-answer'])): $captcha_answer = ''; + $captcha_secret_string = $aio_wp_security->configs->get_value('aiowps_captcha_secret_key'); + $submitted_encoded_string = base64_encode($_POST['aiowps-captcha-temp-string'].$captcha_secret_string.$captcha_answer); + if($submitted_encoded_string !== $_POST['aiowps-captcha-string-info']) + { + //This means a wrong answer was entered + //return new WP_Error('authentication_failed', __('ERROR: Your answer was incorrect - please try again.', 'aiowpsecurity')); + $errors->add('authentication_failed', __('ERROR: Your answer was incorrect - please try again.', 'aiowpsecurity')); + return $errors; + } + } + return $errors; + } + +} \ No newline at end of file diff --git a/all-in-one-wp-security/classes/wp-security-utility-file.php b/all-in-one-wp-security/classes/wp-security-utility-file.php new file mode 100644 index 0000000..25a254e --- /dev/null +++ b/all-in-one-wp-security/classes/wp-security-utility-file.php @@ -0,0 +1,401 @@ +files_and_dirs_to_check = array( + array('name'=>'root directory','path'=>ABSPATH,'permissions'=>'0755'), + array('name'=>'wp-includes/','path'=>ABSPATH."wp-includes",'permissions'=>'0755'), + array('name'=>'.htaccess','path'=>ABSPATH.".htaccess",'permissions'=>'0644'), + array('name'=>'wp-admin/index.php','path'=>ABSPATH."wp-admin/index.php",'permissions'=>'0644'), + array('name'=>'wp-admin/js/','path'=>ABSPATH."wp-admin/js/",'permissions'=>'0755'), + array('name'=>'wp-content/themes/','path'=>ABSPATH."wp-content/themes",'permissions'=>'0755'), + array('name'=>'wp-content/plugins/','path'=>ABSPATH."wp-content/plugins",'permissions'=>'0755'), + array('name'=>'wp-admin/','path'=>ABSPATH."wp-admin",'permissions'=>'0755'), + array('name'=>'wp-content/','path'=>ABSPATH."wp-content",'permissions'=>'0755'), + array('name'=>'wp-config.php','path'=>ABSPATH."wp-config.php",'permissions'=>'0644') + //Add as many files or dirs as needed by following the convention above + ); + + } + + static function write_content_to_file($file_path, $new_contents) + { + @chmod($file_path, 0777); + if (is_writeable($file_path)) + { + $handle = fopen($file_path, 'w'); + foreach( $new_contents as $line ) { + fwrite($handle, $line); + } + fclose($handle); + @chmod($file_path, 0644); //Let's change the file back to a secure permission setting + return true; + } else { + return false; + } + } + + static function backup_a_file($src_file_path, $suffix = 'backup') + { + $backup_file_path = $src_file_path . '.' . $suffix; + if (!copy($src_file_path, $backup_file_path)) { + //Failed to make a backup copy + return false; + } + return true; + } + + static function backup_and_rename_wp_config($src_file_path, $prefix = 'backup') + { + global $aio_wp_security; + + //Check to see if the main "backups" directory exists - create it otherwise + $aiowps_backup_dir = WP_CONTENT_DIR.'/'.AIO_WP_SECURITY_BACKUPS_DIR_NAME; + if (!AIOWPSecurity_Utility_File::create_dir($aiowps_backup_dir)) + { + $aio_wp_security->debug_logger->log_debug("backup_and_rename_wp_config - Creation of backup directory failed!",4); + return false; + } + + $src_parts = pathinfo($src_file_path); + $backup_file_name = $prefix . '.' . $src_parts['basename']; + + $backup_file_path = $aiowps_backup_dir . '/' . $backup_file_name; + if (!copy($src_file_path, $backup_file_path)) { + //Failed to make a backup copy + return false; + } + return true; + } + + static function backup_and_rename_htaccess($src_file_path, $suffix = 'backup') + { + global $aio_wp_security; + + //Check to see if the main "backups" directory exists - create it otherwise + $aiowps_backup_dir = WP_CONTENT_DIR.'/'.AIO_WP_SECURITY_BACKUPS_DIR_NAME; + if (!AIOWPSecurity_Utility_File::create_dir($aiowps_backup_dir)) + { + $aio_wp_security->debug_logger->log_debug("backup_and_rename_htaccess - Creation of backup directory failed!",4); + return false; + } + + $src_parts = pathinfo($src_file_path); + $backup_file_name = $src_parts['basename'] . '.' . $suffix; + + $backup_file_path = $aiowps_backup_dir . '/' . $backup_file_name; + if (!copy($src_file_path, $backup_file_path)) { + //Failed to make a backup copy + return false; + } + return true; + } + + //Function which reads entire contents of a file and stores serialized contents into our global_meta table + static function backup_file_contents_to_db($src_file_path, $key_description) + { + global $wpdb, $aio_wp_security; + $file_contents = AIOWPSecurity_Utility_File::get_file_contents($src_file_path); + + $payload = serialize($file_contents); + $date_time = current_time('mysql'); + $data = array('date_time' => $date_time, 'meta_key1' => $key_description, 'meta_value2' => $payload); + + //First check if a backup entry already exists in the global_meta table + $aiowps_global_meta_tbl_name = AIOWPSEC_TBL_GLOBAL_META_DATA; + $resultset = $wpdb->get_row("SELECT * FROM $aiowps_global_meta_tbl_name WHERE meta_key1 = '$key_description'", OBJECT); + if($resultset){ + $where = array('meta_key1' => $key_description); + $res = $wpdb->update($aiowps_global_meta_tbl_name, $data, $where); + }else{ + $res = $wpdb->insert($aiowps_global_meta_tbl_name, $data); + } + + if($res === false) + { + $aio_wp_security->debug_logger->log_debug("AIOWPSecurity_Utility_File::backup_file_contents_to_db() - Unable to write entry to DB",4); + } + return; + } + + + static function recursive_file_search($pattern='*', $flags = 0, $path='') + { + $paths=glob($path.'*', GLOB_MARK|GLOB_ONLYDIR|GLOB_NOSORT); + if ($paths === FALSE){ + return FALSE; + } + $files=glob($path.$pattern, $flags); + if ($files === FALSE){ + return FALSE; + } + foreach ($paths as $path) { $files=array_merge($files,AIOWPSecurity_Utility_File::recursive_file_search($pattern, $flags, $path)); } + return $files; + } + + /* + * Useful when wanting to echo file contents to screen with
tags + */ + static function get_file_contents_with_br($src_file) + { + $file_contents = file_get_contents($src_file); + return nl2br($file_contents); + } + + /* + * Useful when wanting to echo file contents inside textarea + */ + static function get_file_contents($src_file) + { + $file_contents = file_get_contents($src_file); + return $file_contents; + } + + /* + * Returns the file's permission value eg, "0755" + */ + static function get_file_permission($filepath) + { + if (!function_exists('fileperms')) + { + $perms = '-1'; + } + else + { + clearstatcache(); + $perms = substr(sprintf("%o", @fileperms($filepath)), -4); + } + return $perms; + } + + /* + * Checks if a write operation is possible for the file in question + */ + static function is_file_writable($filepath) + { + $test_string = ""; //We will attempt to append an empty string at the end of the file for the test + $write_result = @file_put_contents($filepath, $test_string, FILE_APPEND | LOCK_EX); + if ($write_result === false) + { + return false; + } + else + { + return true; + } + } + + static function download_a_file_option1($file_path, $file_name = '') + { + $file = $file_path;//Full ABS path to the file + if(empty($file_name)){$file_name = basename($file);} + + header('Content-Description: File Transfer'); + header('Content-Type: application/octet-stream'); + header('Content-Disposition: attachment; filename='.$file_name); + header('Content-Transfer-Encoding: binary'); + header('Expires: 0'); + header('Cache-Control: must-revalidate'); + header('Pragma: public'); + header('Content-Length: ' . filesize($file)); + //ob_clean(); + //flush(); + readfile($file); + exit; + } + + static function download_content_to_a_file($output, $file_name = '') + { + if(empty($file_name)){$file_name = "aiowps_" . date("Y-m-d_H-i", time()).".txt";} + + header("Content-Encoding: UTF-8"); + header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); + header("Content-Description: File Transfer"); + header("Content-type: application/octet-stream"); + header("Content-disposition: attachment; filename=" . $file_name); + header("Content-Transfer-Encoding: binary"); + header("Content-Length: " . strlen($output)); + echo $output; + exit; + } + + /* + * This function will compare the current permission value for a file or dir with the recommended value. + * It will compare the individual "execute", "write" and "read" bits for the "public", "group" and "owner" permissions. + * If the permissions for an actual bit value are greater than the recommended value it returns '0' (=less secure) + * Otherwise it returns '1' which means it is secure + * Accepts permission value parameters in octal, ie, "0777" or "777" + */ + static function is_file_permission_secure($recommended, $actual) + { + $result = 1; //initialize return result + + //Check "public" permissions + $public_value_actual = substr($actual,-1,1); //get dec value for actual public permission + $public_value_rec = substr($recommended,-1,1); //get dec value for recommended public permission + + $pva_bin = decbin($public_value_actual); //Convert value to binary + $pvr_bin = decbin($public_value_rec); //Convert value to binary + //Compare the "executable" bit values for the public actual versus the recommended + if (substr($pva_bin,-1,1)<=substr($pvr_bin,-1,1)) + { + //The "execute" bit is the same or less as the recommended value + $result = 1*$result; + }else + { + //The "execute" bit is switched on for the actual value - meaning it is less secure + $result = 0*$result; + } + + //Compare the "write" bit values for the public actual versus the recommended + if (substr($pva_bin,-2,1)<=substr($pvr_bin,-2,1)) + { + //The "write" bit is the same or less as the recommended value + $result = 1*$result; + }else + { + //The "write" bit is switched on for the actual value - meaning it is less secure + $result = 0*$result; + } + + //Compare the "read" bit values for the public actual versus the recommended + if (substr($pva_bin,-3,1)<=substr($pvr_bin,-3,1)) + { + //The "read" bit is the same or less as the recommended value + $result = 1*$result; + }else + { + //The "read" bit is switched on for the actual value - meaning it is less secure + $result = 0*$result; + } + + //Check "group" permissions + $group_value_actual = substr($actual,-2,1); + $group_value_rec = substr($recommended,-2,1); + $gva_bin = decbin($group_value_actual); //Convert value to binary + $gvr_bin = decbin($group_value_rec); //Convert value to binary + + //Compare the "executable" bit values for the group actual versus the recommended + if (substr($gva_bin,-1,1)<=substr($gvr_bin,-1,1)) + { + //The "execute" bit is the same or less as the recommended value + $result = 1*$result; + }else + { + //The "execute" bit is switched on for the actual value - meaning it is less secure + $result = 0*$result; + } + + //Compare the "write" bit values for the public actual versus the recommended + if (substr($gva_bin,-2,1)<=substr($gvr_bin,-2,1)) + { + //The "write" bit is the same or less as the recommended value + $result = 1*$result; + }else + { + //The "write" bit is switched on for the actual value - meaning it is less secure + $result = 0*$result; + } + + //Compare the "read" bit values for the public actual versus the recommended + if (substr($gva_bin,-3,1)<=substr($gvr_bin,-3,1)) + { + //The "read" bit is the same or less as the recommended value + $result = 1*$result; + }else + { + //The "read" bit is switched on for the actual value - meaning it is less secure + $result = 0*$result; + } + + //Check "owner" permissions + $owner_value_actual = substr($actual,-3,1); + $owner_value_rec = substr($recommended,-3,1); + $ova_bin = decbin($owner_value_actual); //Convert value to binary + $ovr_bin = decbin($owner_value_rec); //Convert value to binary + + //Compare the "executable" bit values for the group actual versus the recommended + if (substr($ova_bin,-1,1)<=substr($ovr_bin,-1,1)) + { + //The "execute" bit is the same or less as the recommended value + $result = 1*$result; + }else + { + //The "execute" bit is switched on for the actual value - meaning it is less secure + $result = 0*$result; + } + + //Compare the "write" bit values for the public actual versus the recommended + if (substr($ova_bin,-2,1)<=substr($ovr_bin,-2,1)) + { + //The "write" bit is the same or less as the recommended value + $result = 1*$result; + }else + { + //The "write" bit is switched on for the actual value - meaning it is less secure + $result = 0*$result; + } + + //Compare the "read" bit values for the public actual versus the recommended + if (substr($ova_bin,-3,1)<=substr($ovr_bin,-3,1)) + { + //The "read" bit is the same or less as the recommended value + $result = 1*$result; + }else + { + //The "read" bit is switched on for the actual value - meaning it is less secure + $result = 0*$result; + } + + return $result; + } + + /* + * Checks if a directory exists and creates one if it does not + */ + static function create_dir($dirpath='') + { + $res = true; + if ($dirpath != '') + { + //TODO - maybe add some checks to make sure someone is not passing a path with a filename, ie, something which has "." at the end + //$path_parts = pathinfo($dirpath); + //$dirpath = $path_parts['dirname'] . '/' . $path_parts['basename']; + if (!file_exists($dirpath)) + { + $res = mkdir($dirpath, 0755); + } + } + return $res; + } + + static function get_attachment_id_from_url($attachment_url = '') + { + global $wpdb; + $attachment_id = false; + + // If there is no url, return. + if ('' == $attachment_url)return; + + // Get the upload directory paths + $upload_dir_paths = wp_upload_dir(); + + // Make sure the upload path base directory exists in the attachment URL, to verify that we're working with a media library image + if (false !== strpos($attachment_url, $upload_dir_paths['baseurl'])) { + // Remove the upload path base directory from the attachment URL + $attachment_url = str_replace( $upload_dir_paths['baseurl'] . '/', '', $attachment_url ); + // Now run custom database query to get attachment ID from attachment URL + $attachment_id = $wpdb->get_var( $wpdb->prepare( "SELECT wposts.ID FROM $wpdb->posts wposts, $wpdb->postmeta wpostmeta WHERE wposts.ID = wpostmeta.post_id AND wpostmeta.meta_key = '_wp_attached_file' AND wpostmeta.meta_value = '%s' AND wposts.post_type = 'attachment'", $attachment_url ) ); + } + return $attachment_id; + } + +} diff --git a/all-in-one-wp-security/classes/wp-security-utility-htaccess.php b/all-in-one-wp-security/classes/wp-security-utility-htaccess.php new file mode 100644 index 0000000..389ee23 --- /dev/null +++ b/all-in-one-wp-security/classes/wp-security-utility-htaccess.php @@ -0,0 +1,982 @@ +debug_logger->log_debug("Unable to write to .htaccess - server type not supported!",4); + return -1; //unable to write to the file + } + + //clean up old rules first + if (AIOWPSecurity_Utility_Htaccess::delete_from_htaccess() == -1) + { + $aio_wp_security->debug_logger->log_debug("Delete operation of .htaccess file failed!",4); + return -1; //unable to write to the file + } + + $htaccess = ABSPATH . '.htaccess'; + //get the subdirectory if it is installed in one + $siteurl = explode( '/', get_option( 'siteurl' ) ); + if (isset($siteurl[3])) + { + $dir = '/' . $siteurl[3] . '/'; + } + else + { + $dir = '/'; + } + + if (!$f = @fopen($htaccess, 'a+')) + { + @chmod( $htaccess, 0644 ); + if (!$f = @fopen( $htaccess, 'a+')) + { + $aio_wp_security->debug_logger->log_debug("chmod operation on .htaccess failed!",4); + return -1; + } + } + AIOWPSecurity_Utility_File::backup_and_rename_htaccess($htaccess); //TODO - we dont want to continually be backing up the htaccess file + @ini_set( 'auto_detect_line_endings', true ); + $ht = explode( PHP_EOL, implode( '', file( $htaccess ) ) ); //parse each line of file into array + + $rules = AIOWPSecurity_Utility_Htaccess::getrules(); + if ($rules == -1) + { + $aio_wp_security->debug_logger->log_debug("Unable to retrieve rules in .htaccess file!",4); + return -1; + } + + $rulesarray = explode( PHP_EOL, $rules ); + $rulesarray = apply_filters('aiowps_htaccess_rules_before_writing', $rulesarray); + $contents = array_merge( $rulesarray, $ht ); + + if (!$f = @fopen($htaccess, 'w+')) + { + $aio_wp_security->debug_logger->log_debug("Write operation on .htaccess failed!",4); + return -1; //we can't write to the file + } + + $blank = false; + + //write each line to file + foreach ( $contents as $insertline ) + { + if ( trim( $insertline ) == '' ) + { + if ( $blank == false ) + { + fwrite( $f, PHP_EOL . trim( $insertline ) ); + } + $blank = true; + } + else + { + $blank = false; + fwrite( $f, PHP_EOL . trim( $insertline ) ); + } + } + @fclose( $f ); + return 1; //success + } + + /* + * This function will delete the code which has been added to the .htaccess file by this plugin + * It will try to find the comment markers "# BEGIN All In One WP Security" and "# END All In One WP Security" and delete contents in between + */ + static function delete_from_htaccess($section = 'All In One WP Security') + { + //TODO + $htaccess = ABSPATH . '.htaccess'; + + @ini_set('auto_detect_line_endings', true); + if (!file_exists($htaccess)) + { + $ht = @fopen($htaccess, 'a+'); + @fclose($ht); + } + $ht_contents = explode(PHP_EOL, implode('', file($htaccess))); //parse each line of file into array + if ($ht_contents) + { //as long as there are lines in the file + $state = true; + if (!$f = @fopen($htaccess, 'w+')) + { + @chmod( $htaccess, 0644 ); + if (!$f = @fopen( $htaccess, 'w+')) + { + return -1; + } + } + + foreach ( $ht_contents as $n => $markerline ) + { //for each line in the file + if (strpos($markerline, '# BEGIN ' . $section) !== false) + { //if we're at the beginning of the section + $state = false; + } + if ($state == true) + { //as long as we're not in the section keep writing + fwrite($f, trim($markerline) . PHP_EOL); + } + if (strpos($markerline, '# END ' . $section) !== false) + { //see if we're at the end of the section + $state = true; + } + } + @fclose($f); + return 1; + } + return 1; + } + + static function getrules() + { + $rules = ""; + $rules .= AIOWPSecurity_Utility_Htaccess::getrules_block_wp_file_access(); + $rules .= AIOWPSecurity_Utility_Htaccess::getrules_basic_htaccess(); + $rules .= AIOWPSecurity_Utility_Htaccess::getrules_pingback_htaccess(); + $rules .= AIOWPSecurity_Utility_Htaccess::getrules_disable_index_views(); + $rules .= AIOWPSecurity_Utility_Htaccess::getrules_blacklist(); + $rules .= AIOWPSecurity_Utility_Htaccess::getrules_disable_trace_and_track(); + $rules .= AIOWPSecurity_Utility_Htaccess::getrules_forbid_proxy_comment_posting(); + $rules .= AIOWPSecurity_Utility_Htaccess::getrules_deny_bad_query_strings(); + $rules .= AIOWPSecurity_Utility_Htaccess::getrules_advanced_character_string_filter(); + $rules .= AIOWPSecurity_Utility_Htaccess::getrules_5g_blacklist(); + $rules .= AIOWPSecurity_Utility_Htaccess::getrules_enable_brute_force_prevention(); + $rules .= AIOWPSecurity_Utility_Htaccess::getrules_block_spambots(); + $rules .= AIOWPSecurity_Utility_Htaccess::getrules_enable_login_whitelist(); + $rules .= AIOWPSecurity_Utility_Htaccess::prevent_image_hotlinks(); + //TODO: The following utility functions are ready to use when we write the menu pages for these features + + //Add more functions for features as needed + //$rules .= AIOWPSecurity_Utility_Htaccess::getrules_somefeature(); + + //Add outer markers if we have rules + if ($rules != '') + { + $rules = "# BEGIN All In One WP Security" . PHP_EOL . $rules . "# END All In One WP Security" . PHP_EOL; + } + + return $rules; + } + + /* + * This function will write rules to prevent people from accessing the following files: + * readme.html, license.txt and wp-config-sample.php. + */ + static function getrules_block_wp_file_access() + { + global $aio_wp_security; + $rules = ''; + if($aio_wp_security->configs->get_value('aiowps_prevent_default_wp_file_access')=='1') + { + $rules .= AIOWPSecurity_Utility_Htaccess::$prevent_wp_file_access_marker_start . PHP_EOL; //Add feature marker start + $rules .= ' + order allow,deny + deny from all + + + order allow,deny + deny from all + + + order allow,deny + deny from all + ' . PHP_EOL; + $rules .= AIOWPSecurity_Utility_Htaccess::$prevent_wp_file_access_marker_end . PHP_EOL; //Add feature marker end + } + + return $rules; + } + + static function getrules_blacklist() + { + global $aio_wp_security; + $aiowps_server = AIOWPSecurity_Utility_Htaccess::get_server_type(); + $rules = ''; + if($aio_wp_security->configs->get_value('aiowps_enable_blacklisting')=='1') + { + //Let's do the list of blacklisted IPs first + $hosts = explode(PHP_EOL, $aio_wp_security->configs->get_value('aiowps_banned_ip_addresses')); + if (!empty($hosts) && !(sizeof($hosts) == 1 && trim($hosts[0]) == '')) + { + if ( $aiowps_server == 'apache' || $aiowps_server == 'litespeed' ) + { + $rules .= AIOWPSecurity_Utility_Htaccess::$ip_blacklist_marker_start . PHP_EOL; //Add feature marker start + $rules .= "Order allow,deny" . PHP_EOL . + "Allow from all" . PHP_EOL; + } + $phosts = array(); + foreach ($hosts as $host) + { + $host = trim($host); + if (!in_array($host, $phosts)) + { + if (strstr($host, '*')) + { + $parts = array_reverse (explode('.', $host)); + $netmask = 32; + foreach ($parts as $part) + { + if (strstr(trim($part), '*')) + { + $netmask = $netmask - 8; + + } + } + $dhost = trim( str_replace('*', '0', implode( '.', array_reverse( $parts ) ) ) . '/' . $netmask ); + if (strlen($dhost) > 4) + { + if ($aiowps_server == 'apache' || $aiowps_server == 'litespeed') + { + $trule = "Deny from " . $dhost . PHP_EOL; + if (trim($trule) != 'Deny From') + { + $rules .= $trule; + } + } + else + { + $rules .= "\tdeny " . $dhost . ';' . PHP_EOL; + } + } + } + else + { + $dhost = trim( $host ); + if (strlen($dhost) > 4) + { + if ($aiowps_server == 'apache' || $aiowps_server == 'litespeed' ) + { + $rules .= "Deny from " . $dhost . PHP_EOL; + } + else + { + $rules .= "\tdeny " . $dhost. ";" . PHP_EOL; + } + } + } + } + $phosts[] = $host; + } + $rules .= AIOWPSecurity_Utility_Htaccess::$ip_blacklist_marker_end . PHP_EOL; //Add feature marker end + } + //Now let's do the user agent list + $user_agents = explode(PHP_EOL, $aio_wp_security->configs->get_value('aiowps_banned_user_agents')); + if (!empty($user_agents) && !(sizeof($user_agents) == 1 && trim($user_agents[0]) == '')) + { + if ($aiowps_server == 'apache' || $aiowps_server == 'litespeed') + { + $rules .= AIOWPSecurity_Utility_Htaccess::$user_agent_blacklist_marker_start . PHP_EOL; //Add feature marker start + //Start mod_rewrite rules + $rules .= "" . PHP_EOL . "RewriteEngine On" . PHP_EOL . PHP_EOL; + $count = 1; + foreach ( $user_agents as $agent ) + { + $agent_escaped = quotemeta($agent); + $pattern = '/\s/'; //Find spaces in the string + $replacement = '\s'; //Replace spaces with \s so apache can understand + $agent_sanitized = preg_replace($pattern, $replacement, $agent_escaped); + + $rules .= "RewriteCond %{HTTP_USER_AGENT} ^" . trim( $agent_sanitized ); + if ( $count < sizeof( $user_agents ) ) + { + $rules .= " [NC,OR]" . PHP_EOL; + $count++; + } + else + { + $rules .= " [NC]" . PHP_EOL; + } + + } + $rules .= "RewriteRule ^(.*)$ - [F,L]" . PHP_EOL . PHP_EOL; + } + else + { + $count = 1; + $alist = ''; + foreach ( $user_agents as $agent ) + { + $alist .= trim( $agent ); + if ( $count < sizeof( $user_agents ) ) + { + $alist .= '|'; + $count++; + } + } + $rules .= "\tif (\$http_user_agent ~* " . $alist . ") { return 403; }" . PHP_EOL; + } + } + + //close mod_rewrite + if (strlen($aio_wp_security->configs->get_value('aiowps_banned_user_agents')) > 0) + { + if (($aiowps_server == 'apache' || $aiowps_server == 'litespeed')) + { + $rules .= "" . PHP_EOL; + $rules .= AIOWPSecurity_Utility_Htaccess::$user_agent_blacklist_marker_end . PHP_EOL; //Add feature marker end + } + } + } + + return implode( PHP_EOL, array_diff( explode( PHP_EOL, $rules ), array( 'Deny from ', 'Deny from' ) ) ); + } + + /* + * TODO - info + */ + static function getrules_basic_htaccess() + { + global $aio_wp_security; + + $rules = ''; + if($aio_wp_security->configs->get_value('aiowps_enable_basic_firewall')=='1') + { + $rules .= AIOWPSecurity_Utility_Htaccess::$basic_htaccess_rules_marker_start . PHP_EOL; //Add feature marker start + //protect the htaccess file - this is done by default with apache config file but we are including it here for good measure + $rules .= '' . PHP_EOL; + $rules .= 'order allow,deny' . PHP_EOL; + $rules .= 'deny from all' . PHP_EOL; + $rules .= '' . PHP_EOL; + + //disable the server signature + $rules .= 'ServerSignature Off' . PHP_EOL; + + //limit file uploads to 10mb + $rules .= 'LimitRequestBody 10240000' . PHP_EOL; + + // protect wpconfig.php. + $rules .= '' . PHP_EOL; + $rules .= 'order allow,deny' . PHP_EOL; + $rules .= 'deny from all' . PHP_EOL; + $rules .= '' . PHP_EOL; + + $rules .= AIOWPSecurity_Utility_Htaccess::$basic_htaccess_rules_marker_end . PHP_EOL; //Add feature marker end + } + return $rules; + } + + static function getrules_pingback_htaccess() + { + global $aio_wp_security; + + $rules = ''; + if($aio_wp_security->configs->get_value('aiowps_enable_pingback_firewall')=='1') + { + $rules .= AIOWPSecurity_Utility_Htaccess::$pingback_htaccess_rules_marker_start . PHP_EOL; //Add feature marker start + //protect the htaccess file - this is done by default with apache config file but we are including it here for good measure + $rules .= '' . PHP_EOL; + $rules .= 'RedirectMatch 403 /(.*)/xmlrpc\.php$' . PHP_EOL; + $rules .= '' . PHP_EOL; + + $rules .= AIOWPSecurity_Utility_Htaccess::$pingback_htaccess_rules_marker_end . PHP_EOL; //Add feature marker end + } + return $rules; + } + + /* + * This function will write some drectives to block all people who do not have a cookie + * when trying to access the WP login page + */ + static function getrules_enable_brute_force_prevention() + { + global $aio_wp_security; + $rules = ''; + if($aio_wp_security->configs->get_value('aiowps_enable_brute_force_attack_prevention')=='1') + { + $cookie_name = $aio_wp_security->configs->get_value('aiowps_brute_force_secret_word'); + $test_cookie_name = $aio_wp_security->configs->get_value('aiowps_cookie_brute_test'); + $redirect_url = $aio_wp_security->configs->get_value('aiowps_cookie_based_brute_force_redirect_url'); + $rules .= AIOWPSecurity_Utility_Htaccess::$enable_brute_force_attack_prevention_marker_start . PHP_EOL; //Add feature marker start + $rules .= 'RewriteEngine On' . PHP_EOL; + $rules .= 'RewriteCond %{REQUEST_URI} (wp-admin|wp-login)'. PHP_EOL;// If URI contains wp-admin or wp-login + if($aio_wp_security->configs->get_value('aiowps_brute_force_attack_prevention_ajax_exception')=='1') + { + $rules .= 'RewriteCond %{REQUEST_URI} !(wp-admin/admin-ajax.php)' . PHP_EOL; // To allow ajax requests through + } + if($aio_wp_security->configs->get_value('aiowps_brute_force_attack_prevention_pw_protected_exception')=='1') + { + $rules .= 'RewriteCond %{QUERY_STRING} !(action\=postpass)' . PHP_EOL; // Possible workaround for people usign the password protected page/post feature + } + $rules .= 'RewriteCond %{HTTP_COOKIE} !'.$cookie_name.'= [NC]' . PHP_EOL; + $rules .= 'RewriteCond %{HTTP_COOKIE} !'.$test_cookie_name.'= [NC]' . PHP_EOL; + $rules .= 'RewriteRule .* '.$redirect_url.' [L]' . PHP_EOL; + $rules .= AIOWPSecurity_Utility_Htaccess::$enable_brute_force_attack_prevention_marker_end . PHP_EOL; //Add feature marker end + } + + return $rules; + } + + + /* + * This function will write some directives to allow IPs in the whitelist to access login.php + */ + static function getrules_enable_login_whitelist() + { + global $aio_wp_security; + $rules = ''; + + if($aio_wp_security->configs->get_value('aiowps_enable_whitelisting')=='1') + { + $site_url = AIOWPSEC_WP_URL; + $parse_url = parse_url($site_url); + $hostname = $parse_url['host']; + $host_ip = gethostbyname($hostname); + $rules .= AIOWPSecurity_Utility_Htaccess::$enable_login_whitelist_marker_start . PHP_EOL; //Add feature marker start + $rules .= '' . PHP_EOL; + $rules .= 'Order Allow,Deny'. PHP_EOL; + $rules .= 'Allow from '.$hostname.PHP_EOL; + $rules .= 'Allow from '.$host_ip. PHP_EOL; + + //Let's get list of whitelisted IPs + $hosts = explode(PHP_EOL, $aio_wp_security->configs->get_value('aiowps_allowed_ip_addresses')); + if (!empty($hosts) && !(sizeof($hosts) == 1 && trim($hosts[0]) == '')) + { + $phosts = array(); + foreach ($hosts as $host) + { + $host = trim($host); + if (!in_array($host, $phosts)) + { + if (strstr($host, '*')) + { + $parts = array_reverse (explode('.', $host)); + $netmask = 32; + foreach ($parts as $part) + { + if (strstr(trim($part), '*')) + { + $netmask = $netmask - 8; + + } + } + $dhost = trim( str_replace('*', '0', implode( '.', array_reverse( $parts ) ) ) . '/' . $netmask ); + if (strlen($dhost) > 4) + { + $trule = "Allow from " . $dhost . PHP_EOL; + if (trim($trule) != 'Allow from') + { + $rules .= $trule; + } + } + } + else + { + $dhost = trim( $host ); + if (strlen($dhost) > 4) + { + $rules .= "Allow from " . $dhost . PHP_EOL; + } + } + } + $phosts[] = $host; + } + } + +// $rules .= 'Allow from '.$white_ip. PHP_EOL; + $rules .= '' . PHP_EOL; + $rules .= AIOWPSecurity_Utility_Htaccess::$enable_login_whitelist_marker_end . PHP_EOL; //Add feature marker end + } + + return $rules; + } + + /* + * This function will disable directory listings for all directories, add this line to the + * site’s root .htaccess file. + * NOTE: AllowOverride must be enabled in the httpd.conf file for this to work! + */ + static function getrules_disable_index_views() + { + global $aio_wp_security; + $rules = ''; + if($aio_wp_security->configs->get_value('aiowps_disable_index_views')=='1') + { + $rules .= AIOWPSecurity_Utility_Htaccess::$disable_index_views_marker_start . PHP_EOL; //Add feature marker start + $rules .= 'Options -Indexes' . PHP_EOL; + $rules .= AIOWPSecurity_Utility_Htaccess::$disable_index_views_marker_end . PHP_EOL; //Add feature marker end + } + + return $rules; + } + + /* + * This function will write rules to disable trace and track. + * HTTP Trace attack (XST) can be used to return header requests + * and grab cookies and other information and is used along with + * a cross site scripting attacks (XSS) + */ + static function getrules_disable_trace_and_track() + { + global $aio_wp_security; + $rules = ''; + if($aio_wp_security->configs->get_value('aiowps_disable_trace_and_track')=='1') + { + $rules .= AIOWPSecurity_Utility_Htaccess::$disable_trace_track_marker_start . PHP_EOL; //Add feature marker start + $rules .= 'RewriteEngine On' . PHP_EOL; + $rules .= 'RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK)' . PHP_EOL; + $rules .= 'RewriteRule .* - [F]' . PHP_EOL; + $rules .= AIOWPSecurity_Utility_Htaccess::$disable_trace_track_marker_end . PHP_EOL; //Add feature marker end + } + + return $rules; + } + + /* + * This function will write rules to prevent proxy comment posting. + * This will deny any requests that use a proxy server when posting + * to comments eliminating some spam and proxy requests, script + * courtesy of perishablepress.com + */ + static function getrules_forbid_proxy_comment_posting() + { + global $aio_wp_security; + $rules = ''; + if($aio_wp_security->configs->get_value('aiowps_forbid_proxy_comments')=='1') + { + $rules .= AIOWPSecurity_Utility_Htaccess::$forbid_proxy_comments_marker_start . PHP_EOL; //Add feature marker start + $rules .= 'RewriteCond %{REQUEST_METHOD} =POST' . PHP_EOL; + $rules .= 'RewriteCond %{HTTP:VIA}%{HTTP:FORWARDED}%{HTTP:USERAGENT_VIA}%{HTTP:X_FORWARDED_FOR}%{HTTP:PROXY_CONNECTION} !^$ [OR]' . PHP_EOL; + $rules .= 'RewriteCond %{HTTP:XPROXY_CONNECTION}%{HTTP:HTTP_PC_REMOTE_ADDR}%{HTTP:HTTP_CLIENT_IP} !^$' . PHP_EOL; + $rules .= 'RewriteCond %{REQUEST_URI} !^/(wp-login.php|wp-admin/|wp-content/plugins/|wp-includes/).* [NC]' . PHP_EOL; + $rules .= 'RewriteRule .* - [F,NS,L]' . PHP_EOL; + $rules .= AIOWPSecurity_Utility_Htaccess::$forbid_proxy_comments_marker_end . PHP_EOL; //Add feature marker end + } + + return $rules; + } + + /* + * This function will write rules to prevent malicious string attacks on your site using XSS. + * NOTE: Some of these strings might be used for plugins or themes and doing so will disable the functionality. + * This script is from perishablepress and is fairly safe to use and should not break anything important + */ + //TODO - the currently commented out rules (see function below) break the site - need to investigate why or if we can tweak the rules a bit + static function getrules_deny_bad_query_strings() + { + global $aio_wp_security; + $rules = ''; + if($aio_wp_security->configs->get_value('aiowps_deny_bad_query_strings')=='1') + { + $rules .= AIOWPSecurity_Utility_Htaccess::$deny_bad_query_strings_marker_start . PHP_EOL; //Add feature marker start + //$rules .= 'RewriteCond %{QUERY_STRING} ../ [NC,OR]' . PHP_EOL; + //$rules .= 'RewriteCond %{QUERY_STRING} boot.ini [NC,OR]' . PHP_EOL; + $rules .= 'RewriteCond %{QUERY_STRING} tag= [NC,OR]' . PHP_EOL; + $rules .= 'RewriteCond %{QUERY_STRING} ftp: [NC,OR]' . PHP_EOL; + $rules .= 'RewriteCond %{QUERY_STRING} http: [NC,OR]' . PHP_EOL; + $rules .= 'RewriteCond %{QUERY_STRING} https: [NC,OR]' . PHP_EOL; + $rules .= 'RewriteCond %{QUERY_STRING} mosConfig [NC,OR]' . PHP_EOL; + //$rules .= 'RewriteCond %{QUERY_STRING} ^.*([|]|(|)||\'|"|;|?|*).* [NC,OR]' . PHP_EOL; + //$rules .= 'RewriteCond %{QUERY_STRING} ^.*(%22|%27|%3C|%3E|%5C|%7B|%7C).* [NC,OR]' . PHP_EOL; + //$rules .= 'RewriteCond %{QUERY_STRING} ^.*(%0|%A|%B|%C|%D|%E|%F|127.0).* [NC,OR]' . PHP_EOL; + $rules .= 'RewriteCond %{QUERY_STRING} ^.*(globals|encode|localhost|loopback).* [NC,OR]' . PHP_EOL; + $rules .= 'RewriteCond %{QUERY_STRING} (\;|\'|\"|%22).*(request|insert|union|declare|drop) [NC]' . PHP_EOL; + $rules .= 'RewriteRule ^(.*)$ - [F,L]' . PHP_EOL; + $rules .= AIOWPSecurity_Utility_Htaccess::$deny_bad_query_strings_marker_end . PHP_EOL; //Add feature marker end + } + + return $rules; + } + + /* + * This function will write rules to produce an advanced character string filter to prevent malicious string attacks from Cross Site Scripting (XSS) + * NOTE: Some of these strings might be used for plugins or themes and doing so will disable the functionality. + * This script is from perishablepress and is fairly safe to use and should not break anything important + */ + //TODO - the rules below break the site - need to investigate why or if we can tweak the rules a bit + //RedirectMatch 403 ^ + //RedirectMatch 403 $ + //RedirectMatch 403 | + //RedirectMatch 403 .. + //Redirectmatch 403 select( + //Redirectmatch 403 convert( + //RedirectMatch 403 .inc + //RedirectMatch 403 include. + + + + + static function getrules_advanced_character_string_filter() + { + global $aio_wp_security; + $rules = ''; + if($aio_wp_security->configs->get_value('aiowps_advanced_char_string_filter')=='1') + { + $rules .= AIOWPSecurity_Utility_Htaccess::$advanced_char_string_filter_marker_start . PHP_EOL; //Add feature marker start + + $rules .= ' + RedirectMatch 403 \, + RedirectMatch 403 \: + RedirectMatch 403 \; + RedirectMatch 403 \= + RedirectMatch 403 \@ + RedirectMatch 403 \[ + RedirectMatch 403 \] + RedirectMatch 403 \^ + RedirectMatch 403 \` + RedirectMatch 403 \{ + RedirectMatch 403 \} + RedirectMatch 403 \~ + RedirectMatch 403 \" + RedirectMatch 403 \$ + RedirectMatch 403 \< + RedirectMatch 403 \> + RedirectMatch 403 \| + RedirectMatch 403 \.\. + RedirectMatch 403 \%0 + RedirectMatch 403 \%A + RedirectMatch 403 \%B + RedirectMatch 403 \%C + RedirectMatch 403 \%D + RedirectMatch 403 \%E + RedirectMatch 403 \%F + RedirectMatch 403 \%22 + RedirectMatch 403 \%27 + RedirectMatch 403 \%28 + RedirectMatch 403 \%29 + RedirectMatch 403 \%3C + RedirectMatch 403 \%3E + RedirectMatch 403 \%3F + RedirectMatch 403 \%5B + RedirectMatch 403 \%5C + RedirectMatch 403 \%5D + RedirectMatch 403 \%7B + RedirectMatch 403 \%7C + RedirectMatch 403 \%7D + # COMMON PATTERNS + Redirectmatch 403 \_vpi + RedirectMatch 403 \.inc + Redirectmatch 403 xAou6 + Redirectmatch 403 db\_name + Redirectmatch 403 select\( + Redirectmatch 403 convert\( + Redirectmatch 403 \/query\/ + RedirectMatch 403 ImpEvData + Redirectmatch 403 \.XMLHTTP + Redirectmatch 403 proxydeny + RedirectMatch 403 function\. + Redirectmatch 403 remoteFile + Redirectmatch 403 servername + Redirectmatch 403 \&rptmode\= + Redirectmatch 403 sys\_cpanel + RedirectMatch 403 db\_connect + RedirectMatch 403 doeditconfig + RedirectMatch 403 check\_proxy + Redirectmatch 403 system\_user + Redirectmatch 403 \/\(null\)\/ + Redirectmatch 403 clientrequest + Redirectmatch 403 option\_value + RedirectMatch 403 ref\.outcontrol + # SPECIFIC EXPLOITS + RedirectMatch 403 errors\. + RedirectMatch 403 config\. + RedirectMatch 403 include\. + RedirectMatch 403 display\. + RedirectMatch 403 register\. + Redirectmatch 403 password\. + RedirectMatch 403 maincore\. + RedirectMatch 403 authorize\. + Redirectmatch 403 macromates\. + RedirectMatch 403 head\_auth\. + RedirectMatch 403 submit\_links\. + RedirectMatch 403 change\_action\. + Redirectmatch 403 com\_facileforms\/ + RedirectMatch 403 admin\_db\_utilities\. + RedirectMatch 403 admin\.webring\.docs\. + Redirectmatch 403 Table\/Latest\/index\. + ' . PHP_EOL; + $rules .= AIOWPSecurity_Utility_Htaccess::$advanced_char_string_filter_marker_end . PHP_EOL; //Add feature marker end + } + + return $rules; + } + + /* + * This function contains the rules for the 5G blacklist produced by Jeff Starr from perishablepress.com + * NOTE: Since Jeff regularly updates and evolves his blacklist rules, ie, 5G->6G->7G.... we will update this function to reflect the latest blacklist release + */ + + + static function getrules_5g_blacklist() + { + global $aio_wp_security; + $rules = ''; + if($aio_wp_security->configs->get_value('aiowps_enable_5g_firewall')=='1') + { + $rules .= AIOWPSecurity_Utility_Htaccess::$five_g_blacklist_marker_start . PHP_EOL; //Add feature marker start + + $rules .= '# 5G BLACKLIST/FIREWALL (2013) + # @ http://perishablepress.com/5g-blacklist-2013/ + + # 5G:[QUERY STRINGS] + + RewriteEngine On + RewriteBase / + RewriteCond %{QUERY_STRING} (\"|%22).*(<|>|%3) [NC,OR] + RewriteCond %{QUERY_STRING} (javascript:).*(\;) [NC,OR] + RewriteCond %{QUERY_STRING} (<|%3C).*script.*(>|%3) [NC,OR] + RewriteCond %{QUERY_STRING} (\\\|\.\./|`|=\'$|=%27$) [NC,OR] + RewriteCond %{QUERY_STRING} (\;|\'|\"|%22).*(union|select|insert|drop|update|md5|benchmark|or|and|if) [NC,OR] + RewriteCond %{QUERY_STRING} (base64_encode|localhost|mosconfig) [NC,OR] + RewriteCond %{QUERY_STRING} (boot\.ini|echo.*kae|etc/passwd) [NC,OR] + RewriteCond %{QUERY_STRING} (GLOBALS|REQUEST)(=|\[|%) [NC] + RewriteRule .* - [F] + + + # 5G:[USER AGENTS] + + # SetEnvIfNoCase User-Agent ^$ keep_out + SetEnvIfNoCase User-Agent (binlar|casper|cmsworldmap|comodo|diavol|dotbot|feedfinder|flicky|ia_archiver|jakarta|kmccrew|nutch|planetwork|purebot|pycurl|skygrid|sucker|turnit|vikspider|zmeu) keep_out + + Order Allow,Deny + Allow from all + Deny from env=keep_out + + + + # 5G:[REQUEST STRINGS] + + RedirectMatch 403 (https?|ftp|php)\:// + RedirectMatch 403 /(https?|ima|ucp)/ + RedirectMatch 403 /(Permanent|Better)$ + RedirectMatch 403 (\=\\\\\\\'|\=\\\%27|/\\\\\\\'/?|\)\.css\()$ + RedirectMatch 403 (\,|\)\+|/\,/|\{0\}|\(/\(|\.\.\.|\+\+\+|\||\\\\\"\\\\\") + RedirectMatch 403 \.(cgi|asp|aspx|cfg|dll|exe|jsp|mdb|sql|ini|rar)$ + RedirectMatch 403 /(contac|fpw|install|pingserver|register)\.php$ + RedirectMatch 403 (base64|crossdomain|localhost|wwwroot|e107\_) + RedirectMatch 403 (eval\(|\_vti\_|\(null\)|echo.*kae|config\.xml) + RedirectMatch 403 \.well\-known/host\-meta + RedirectMatch 403 /function\.array\-rand + RedirectMatch 403 \)\;\$\(this\)\.html\( + RedirectMatch 403 proc/self/environ + RedirectMatch 403 msnbot\.htm\)\.\_ + RedirectMatch 403 /ref\.outcontrol + RedirectMatch 403 com\_cropimage + RedirectMatch 403 indonesia\.htm + RedirectMatch 403 \{\$itemURL\} + RedirectMatch 403 function\(\) + RedirectMatch 403 labels\.rdf + RedirectMatch 403 /playing.php + RedirectMatch 403 muieblackcat + + + # 5G:[REQUEST METHOD] + + RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK) + RewriteRule .* - [F] + ' . PHP_EOL; + $rules .= AIOWPSecurity_Utility_Htaccess::$five_g_blacklist_marker_end . PHP_EOL; //Add feature marker end + } + + return $rules; + } + + /* + * This function will write some directives to block all comments which do not originate from the blog's domain + * OR if the user agent is empty. All blocked requests will be redirected to 127.0.0.1 + */ + static function getrules_block_spambots() + { + global $aio_wp_security; + $rules = ''; + if($aio_wp_security->configs->get_value('aiowps_enable_spambot_blocking')=='1') + { + $url_string = AIOWPSecurity_Utility_Htaccess::return_regularized_url(AIOWPSEC_WP_URL); + if ($url_string == FALSE){ + $url_string = AIOWPSEC_WP_URL; + } + $rules .= AIOWPSecurity_Utility_Htaccess::$block_spambots_marker_start . PHP_EOL; //Add feature marker start + $rules .= ' + RewriteCond %{REQUEST_METHOD} POST + RewriteCond %{REQUEST_URI} ^(.*)?wp-comments-post\.php(.*)$' . PHP_EOL; + $rules .= ' RewriteCond %{HTTP_REFERER} !^'.$url_string.' [NC,OR]' . PHP_EOL; + $rules .= ' RewriteCond %{HTTP_USER_AGENT} ^$ + RewriteRule .* http://127.0.0.1 [L] + ' . PHP_EOL; + $rules .= AIOWPSecurity_Utility_Htaccess::$block_spambots_marker_end . PHP_EOL; //Add feature marker end + } + + return $rules; + } + + /* + * This function will write some directives to prevent image hotlinking + */ + static function prevent_image_hotlinks() + { + global $aio_wp_security; + $rules = ''; + if($aio_wp_security->configs->get_value('aiowps_prevent_hotlinking')=='1') + { + $url_string = AIOWPSecurity_Utility_Htaccess::return_regularized_url(AIOWPSEC_WP_URL); + if ($url_string == FALSE){ + $url_string = AIOWPSEC_WP_URL; + } + $rules .= AIOWPSecurity_Utility_Htaccess::$prevent_image_hotlinks_marker_start . PHP_EOL; //Add feature marker start + $rules .= ' + RewriteEngine on + RewriteCond %{HTTP_REFERER} !^$' . PHP_EOL; + $rules .= ' RewriteCond %{REQUEST_FILENAME} -f' . PHP_EOL; + $rules .= ' RewriteCond %{REQUEST_FILENAME} \.(gif|jpe?g?|png)$ [NC]' . PHP_EOL; + $rules .= ' RewriteCond %{HTTP_REFERER} !^'.$url_string.' [NC]' . PHP_EOL; + $rules .= ' RewriteRule \.(gif|jpe?g?|png)$ - [F,NC,L] + ' . PHP_EOL; + $rules .= AIOWPSecurity_Utility_Htaccess::$prevent_image_hotlinks_marker_end . PHP_EOL; //Add feature marker end + } + + return $rules; + } + + /* + * This function will do a quick check to see if a file's contents are actually .htaccess specific. + * At the moment it will look for the following tag somewhere in the file - "# BEGIN WordPress" + * If it finds the tag it will deem the file as being .htaccess specific. + * This was written to supplement the .htaccess restore functionality + */ + + static function check_if_htaccess_contents($file) + { + $is_htaccess = false; + $file_contents = file_get_contents($file); + if ($file_contents === FALSE || strlen($file_contents) == 0) + { + return -1; + } + + if ((strpos($file_contents, '# BEGIN WordPress') !== false) || (strpos($file_contents, '# BEGIN') !== false)) + { + $is_htaccess = true; //It appears that we have some sort of .htacces file + } + else + { + //see if we're at the end of the section + $is_htaccess = false; + } + + if ($is_htaccess) + { + return 1; + } + else + { + return -1; + } + } + + /* + * This function will take a URL string and convert it to a form useful for using in htaccess rules. + * Example: If URL passed to function = "http://www.mysite.com" + * Result = "http(s)?://(.*)?mysite\.com" + */ + + static function return_regularized_url($url) + { + if(filter_var($url, FILTER_VALIDATE_URL)){ + $xyz = explode('.', $url); + $y = ''; + if (count($xyz) > 1){ + $j = 1; + foreach ($xyz as $x){ + if (strpos($x,'www') !== false) { + $y .= str_replace('www', '(.*)?', $x); + } else if($j==1){ + $y .= $x; + } else if($j>1){ + $y .= '\.'.$x; + } + $j++; + } + //Now replace the "http" with "http(s)?" to cover both secure and non-secure + if(strpos($y,'http') !== false) { + $y = str_replace('http', 'http(s)?', $y); + } + return $y; + }else { + return $url; + } + } else{ + return FALSE; + } + } +} \ No newline at end of file diff --git a/all-in-one-wp-security/classes/wp-security-utility-ip-address.php b/all-in-one-wp-security/classes/wp-security-utility-ip-address.php new file mode 100644 index 0000000..9bd14ae --- /dev/null +++ b/all-in-one-wp-security/classes/wp-security-utility-ip-address.php @@ -0,0 +1,164 @@ +debug_logger->log_debug("AIOWPSecurity_Utility_IP - Invalid IP received ".$ip,4); + } + return $ip_range; + } + + + static function create_ip_list_array_from_string_with_newline($ip_addresses) + { + $ip_list_array = explode(PHP_EOL, $ip_addresses); + return $ip_list_array; + } + + static function validate_ip_list($ip_list_array, $list='blacklist') + { + @ini_set('auto_detect_line_endings', true); + $errors = ''; + + //validate list + $submitted_ips = $ip_list_array; + $list = array(); + + if(!empty($submitted_ips)) + { + foreach($submitted_ips as $item) + { + $item = filter_var($item, FILTER_SANITIZE_STRING); + if (strlen( $item ) > 0) + { + $ipParts = explode('.', $item); + $isIP = 0; + $partcount = 1; + $goodip = true; + $foundwild = false; + + if (count($ipParts) < 2) + { + $errors .= '

'.$item.__(' is not a valid ip address format.', 'aiowpsecurity').'

'; + continue; + } + + foreach ($ipParts as $part) + { + if ($goodip == true) + { + if ((is_numeric(trim($part)) && trim($part) <= 255 && trim($part) >= 0) || trim($part) == '*') + { + $isIP++; + } + + switch ($partcount) + { + case 1: + if (trim($part) == '*') + { + $goodip = false; + $errors .= '

'.$item.__(' is not a valid ip address format.', 'aiowpsecurity').'

'; + } + break; + case 2: + if (trim($part) == '*') + { + $foundwild = true; + } + break; + default: + if (trim($part) != '*') + { + if ($foundwild == true) + { + $goodip = false; + $errors .= '

'.$item.__(' is not a valid ip address format.', 'aiowpsecurity').'

'; + } + } + else + { + $foundwild = true; + } + break; + } + + $partcount++; + } + } + if (ip2long(trim(str_replace('*', '0', $item))) == false) + { //invalid ip + $errors .= '

'.$item.__(' is not a valid ip address format.', 'aiowpsecurity').'

'; + } + elseif (strlen($item > 4 && !in_array($item, $list))) + { + $current_user_ip = AIOWPSecurity_Utility_IP::get_user_ip_address(); + if ($current_user_ip == $item && $list == 'blacklist') + { + //You can't ban your own IP + $errors .= '

'.__('You cannot ban your own IP address: ', 'aiowpsecurity').$item.'

'; + } + else + { + $list[] = trim($item); + } + } + } + } + } + else{ + //This function was called with an empty IP address array list + } + + if (strlen($errors)> 0) + { + $return_payload = array(-1, array($errors)); + return $return_payload; + } + + if (sizeof($list) >= 1) + { + sort($list); + $list = array_unique($list, SORT_STRING); + + $return_payload = array(1, $list); + return $return_payload; + } + + $return_payload = array(1, array()); + return $return_payload; + } +} \ No newline at end of file diff --git a/all-in-one-wp-security/classes/wp-security-utility.php b/all-in-one-wp-security/classes/wp-security-utility.php new file mode 100644 index 0000000..1b400b3 --- /dev/null +++ b/all-in-one-wp-security/classes/wp-security-utility.php @@ -0,0 +1,414 @@ +Error! The URL value is empty. Please specify a correct URL value to redirect to!"; + exit; + } + if (!headers_sent()){ + header('Location: ' . $url); + } + else{ + echo ''; + } + if($exit == '1'){ + exit; + } + } + + static function get_logout_url_with_after_logout_url_value($after_logout_url) + { + return AIOWPSEC_WP_URL.'?aiowpsec_do_log_out=1&after_logout='.$after_logout_url; + } + + /* + * Checks if a particular username exists in the WP Users table + */ + static function check_user_exists($username) + { + global $wpdb; + + //if username is empty just return false + if ( $username == '' ) { + return false; + } + + //If multisite + if (AIOWPSecurity_Utility::is_multisite_install()){ + $blog_id = get_current_blog_id(); + $admin_users = get_users('blog_id='.$blog_id.'orderby=login&role=administrator'); + $acct_name_exists = false; + foreach ($admin_users as $user) + { + if ($user->user_login == $username){ + $acct_name_exists = true; + break; + } + } + return $acct_name_exists; + } + + //check users table + $user = $wpdb->get_var( "SELECT user_login FROM `" . $wpdb->users . "` WHERE user_login='" . sanitize_text_field( $username ) . "';" ); + $userid = $wpdb->get_var( "SELECT ID FROM `" . $wpdb->users . "` WHERE ID='" . sanitize_text_field( $username ) . "';" ); + + if ( $user == $username || $userid == $username ) { + return true; + } else { + return false; + } + } + + /* + * This function will return a list of user accounts which have login and nick names which are identical + */ + static function check_identical_login_and_nick_names() { + global $wpdb; + $accounts_found = $wpdb->get_results( "SELECT ID,user_login FROM `" . $wpdb->users . "` WHERE user_login<=>display_name;", ARRAY_A); + return $accounts_found; + } + + + static function add_query_data_to_url($url, $name, $value) + { + if (strpos($url, '?') === false) { + $url .= '?'; + } else { + $url .= '&'; + } + $url .= $name . '='. $value; + return $url; + } + + + /* + * Generates a random alpha-numeric number + */ + static function generate_alpha_numeric_random_string($string_length) + { + //Charecters present in table prefix + $allowed_chars = 'abcdefghijklmnopqrstuvwxyz0123456789'; + $string = ''; + //Generate random string + for ($i = 0; $i < $string_length; $i++) { + $string .= $allowed_chars[rand(0, strlen($allowed_chars) - 1)]; + } + return $string; + } + + static function set_cookie_value($cookie_name, $cookie_value, $expiry_seconds = 86400, $path = '/', $cookie_domain = '') + { + $expiry_time = time() + intval($expiry_seconds); + if(empty($cookie_domain)){ + $cookie_domain = COOKIE_DOMAIN; + } + setcookie($cookie_name, $cookie_value, $expiry_time, $path, $cookie_domain); + } + + static function get_cookie_value($cookie_name) + { + if(isset($_COOKIE[$cookie_name])){ + return $_COOKIE[$cookie_name]; + } + return ""; + } + + static function is_multisite_install() + { + if (function_exists('is_multisite') && is_multisite()){ + return true; + }else{ + return false; + } + } + + //This is a general yellow box message for when we want to suppress a feature's config items because site is subsite of multi-site + static function display_multisite_message() + { + echo '
'; + echo '

'.__('The plugin has detected that you are using a Multi-Site WordPress installation.', 'aiowpsecurity').'

+

'.__('This feature can only be configured by the "superadmin" on the main site.', 'aiowpsecurity').'

'; + echo '
'; + } + + /* + * Modifies the wp-config.php file to disable PHP file editing from the admin panel + * This func will add the following code: + * define('DISALLOW_FILE_EDIT', false); + * + * NOTE: This function will firstly check if the above code already exists and it will modify the bool value, otherwise it will insert the code mentioned above + */ + static function disable_file_edits() + { + global $aio_wp_security; + $edit_file_config_entry_exists = false; + + //Config file path + $config_file = ABSPATH.'wp-config.php'; + + //Get wp-config.php file contents so we can check if the "DISALLOW_FILE_EDIT" variable already exists + $config_contents = file($config_file); + + foreach ($config_contents as $line_num => $line) + { + if (strpos($line, "'DISALLOW_FILE_EDIT', false")) + { + $config_contents[$line_num] = str_replace('false', 'true', $line); + $edit_file_config_entry_exists = true; + //$this->show_msg_updated(__('Settings Saved - The ability to edit PHP files via the admin the panel has been DISABLED.', 'aiowpsecurity')); + } else if(strpos($line, "'DISALLOW_FILE_EDIT', true")) + { + $edit_file_config_entry_exists = true; + //$this->show_msg_updated(__('Your system config file is already configured to disallow PHP file editing.', 'aiowpsecurity')); + return true; + + } + + //For wp-config.php files originating from early WP versions we will remove the closing php tag + if (strpos($line, "?>") !== false) + { + $config_contents[$line_num] = str_replace("?>", "", $line); + } + } + + if (!$edit_file_config_entry_exists) + { + //Construct the config code which we will insert into wp-config.php + $new_snippet = '//Disable File Edits' . PHP_EOL; + $new_snippet .= 'define(\'DISALLOW_FILE_EDIT\', true);'; + $config_contents[] = $new_snippet; //Append the new snippet to the end of the array + } + + //Make a backup of the config file + if(!AIOWPSecurity_Utility_File::backup_and_rename_wp_config($config_file)) + { + $this->show_msg_error(__('Failed to make a backup of the wp-config.php file. This operation will not go ahead.', 'aiowpsecurity')); + //$aio_wp_security->debug_logger->log_debug("Disable PHP File Edit - Failed to make a backup of the wp-config.php file.",4); + return false; + } + else{ + //$this->show_msg_updated(__('A backup copy of your wp-config.php file was created successfully....', 'aiowpsecurity')); + } + + //Now let's modify the wp-config.php file + if (AIOWPSecurity_Utility_File::write_content_to_file($config_file, $config_contents)) + { + //$this->show_msg_updated(__('Settings Saved - Your system is now configured to not allow PHP file editing.', 'aiowpsecurity')); + return true; + }else + { + //$this->show_msg_error(__('Operation failed! Unable to modify wp-config.php file!', 'aiowpsecurity')); + $aio_wp_security->debug_logger->log_debug("Disable PHP File Edit - Unable to modify wp-config.php",4); + return false; + } + } + + /* + * Modifies the wp-config.php file to allow PHP file editing from the admin panel + * This func will modify the following code by replacing "true" with "false": + * define('DISALLOW_FILE_EDIT', true); + */ + + static function enable_file_edits() + { + global $aio_wp_security; + $edit_file_config_entry_exists = false; + + //Config file path + $config_file = ABSPATH.'wp-config.php'; + + //Get wp-config.php file contents + $config_contents = file($config_file); + foreach ($config_contents as $line_num => $line) + { + if (strpos($line, "'DISALLOW_FILE_EDIT', true")) + { + $config_contents[$line_num] = str_replace('true', 'false', $line); + $edit_file_config_entry_exists = true; + } else if(strpos($line, "'DISALLOW_FILE_EDIT', false")) + { + $edit_file_config_entry_exists = true; + //$this->show_msg_updated(__('Your system config file is already configured to allow PHP file editing.', 'aiowpsecurity')); + return true; + } + } + + if (!$edit_file_config_entry_exists) + { + //if the DISALLOW_FILE_EDIT settings don't exist in wp-config.php then we don't need to do anything + //$this->show_msg_updated(__('Your system config file is already configured to allow PHP file editing.', 'aiowpsecurity')); + return true; + } else + { + //Now let's modify the wp-config.php file + if (AIOWPSecurity_Utility_File::write_content_to_file($config_file, $config_contents)) + { + //$this->show_msg_updated(__('Settings Saved - Your system is now configured to allow PHP file editing.', 'aiowpsecurity')); + return true; + }else + { + //$this->show_msg_error(__('Operation failed! Unable to modify wp-config.php file!', 'aiowpsecurity')); + //$aio_wp_security->debug_logger->log_debug("Disable PHP File Edit - Unable to modify wp-config.php",4); + return false; + } + } + } + + + /** + * Inserts event logs to the database + * For now we are using for 404 events but in future will expand for other events + * + * @param string $event_type: Event type, eg, 404 (see below for list of event types) + * @param string $username (optional): username + * + * Event types: 404 (...add more as we expand this) + * + **/ + static function event_logger($event_type, $username='' ) + { + global $wpdb, $aio_wp_security; + + //Some initialising + $url = ''; + $ip_or_host = ''; + $referer_info = ''; + $event_data = ''; + + $events_table_name = AIOWPSEC_TBL_EVENTS; + + $ip_or_host = AIOWPSecurity_Utility_IP::get_user_ip_address(); //Get the IP address of user + $username = sanitize_user($username); + $user = get_user_by('login',$username); //Returns WP_User object if exists + if($user) + { + //If valid user set variables for DB storage later on + $user_id = (absint($user->ID) > 0) ? $user->ID : 0; + }else{ + //If the login attempt was made using a non-existent user then let's set user_id to blank and record the attempted user login name for DB storage later on + $user_id = 0; + } + + if ($event_type == '404'){ + //if 404 event get some relevant data + $url = isset($_SERVER['REQUEST_URI'])?esc_attr($_SERVER['REQUEST_URI']):''; + $referer_info = isset($_SERVER['HTTP_REFERER'])?esc_attr($_SERVER['HTTP_REFERER']):''; + } + + $data = array( + 'event_type' => $event_type, + 'username' => $username, + 'user_id' => $user_id, + 'event_date' => current_time('mysql'), + 'ip_or_host' => $ip_or_host, + 'referer_info' => $referer_info, + 'url' => $url, + 'event_data' => '', + ); + + //log to database + $result = $wpdb->insert($events_table_name, $data); + if ($result == FALSE) + { + $aio_wp_security->debug_logger->log_debug("event_logger: Error inserting record into ".$events_table_name,4);//Log the highly unlikely event of DB error + } + } + + /** + * Checks if IP address is locked + * + * @param string $ip: ip address + * @returns TRUE if locked, FALSE otherwise + * + **/ + static function check_locked_ip($ip) + { + global $wpdb; + $login_lockdown_table = AIOWPSEC_TBL_LOGIN_LOCKDOWN; + $locked_ip = $wpdb->get_row("SELECT * FROM $login_lockdown_table " . + "WHERE release_date > now() AND " . + "failed_login_ip = '" . esc_sql($ip) . "'", ARRAY_A); + if($locked_ip != NULL){ + return TRUE; + }else{ + return FALSE; + } + } + + /** + * Returns list of IP addresses locked out + * + * * @returns array of addresses or FALSE otherwise + * + **/ + static function get_locked_ips() + { + global $wpdb; + $login_lockdown_table = AIOWPSEC_TBL_LOGIN_LOCKDOWN; + $locked_ips = $wpdb->get_results("SELECT * FROM $login_lockdown_table " . + "WHERE release_date > now()", ARRAY_A); + if($locked_ips != NULL){ + return $locked_ips; + }else{ + return FALSE; + } + } + + + /* + * Locks an IP address - Adds an entry to the aiowps_lockdowns table + */ + static function lock_IP($ip, $lock_reason='', $username='') + { + global $wpdb, $aio_wp_security; + $login_lockdown_table = AIOWPSEC_TBL_LOGIN_LOCKDOWN; + $lockout_time_length = $aio_wp_security->configs->get_value('aiowps_lockout_time_length'); //TODO add a setting for this feature + $username = sanitize_user($username); + $user = get_user_by('login',$username); //Returns WP_User object if exists + + if (FALSE == $user) { + // Not logged in. + $username = ''; + $user_id = 0; + } else { + // Logged in. + $username = sanitize_user($user->user_login); + $user_id = $user->ID; + } + + $ip_str = esc_sql($ip); + $insert = "INSERT INTO " . $login_lockdown_table . " (user_id, user_login, lockdown_date, release_date, failed_login_IP, lock_reason) " . + "VALUES ('" . $user_id . "', '" . $username . "', now(), date_add(now(), INTERVAL " . + $lockout_time_length . " MINUTE), '" . $ip_str . "', '" . $lock_reason . "')"; + $result = $wpdb->query($insert); + if ($result > 0) + { + } + else if ($result == FALSE) + { + $aio_wp_security->debug_logger->log_debug("lock_IP: Error inserting record into ".$login_lockdown_table,4);//Log the highly unlikely event of DB error + } + } + +} diff --git a/all-in-one-wp-security/classes/wp-security-wp-footer-content.php b/all-in-one-wp-security/classes/wp-security-wp-footer-content.php new file mode 100644 index 0000000..19ebab3 --- /dev/null +++ b/all-in-one-wp-security/classes/wp-security-wp-footer-content.php @@ -0,0 +1,68 @@ +configs->get_value('aiowps_copy_protection') == '1') { + $this->output_copy_protection_code(); + } + + //TODO - add other footer output content here + + } + + function output_copy_protection_code() + { +?> + + + + + +configs->get_value('aiowps_enable_rename_login_page') == '1') { + include_once(AIO_WP_SECURITY_PATH . '/classes/wp-security-process-renamed-login-page.php'); + $login_object = new AIOWPSecurity_Process_Renamed_Login_Page(); + AIOWPSecurity_Process_Renamed_Login_Page::renamed_login_init_tasks(); + } + + //For site lockout feature (ie, maintenance mode). It needs to be checked after the rename login page + if ($aio_wp_security->configs->get_value('aiowps_site_lockout') == '1') { + if (!is_user_logged_in() && !current_user_can('administrator') && !is_admin() && !in_array($GLOBALS['pagenow'], array('wp-login.php'))) { + self::site_lockout_tasks(); + } + } + } + + static function site_lockout_tasks() { + $lockout_output = apply_filters('aiowps_site_lockout_output', ''); + if (empty($lockout_output)) { + nocache_headers(); + header("HTTP/1.0 503 Service Unavailable"); + remove_action('wp_head', 'head_addons', 7); + $template = apply_filters('aiowps_site_lockout_template_include', AIO_WP_SECURITY_PATH . '/other-includes/wp-security-visitor-lockout-page.php'); + include_once($template); + } else { + echo $lockout_output; + } + + exit(); + } + +} \ No newline at end of file diff --git a/all-in-one-wp-security/css/index.html b/all-in-one-wp-security/css/index.html new file mode 100644 index 0000000..e69de29 diff --git a/all-in-one-wp-security/css/wp-aiowps.css b/all-in-one-wp-security/css/wp-aiowps.css new file mode 100644 index 0000000..0c04111 --- /dev/null +++ b/all-in-one-wp-security/css/wp-aiowps.css @@ -0,0 +1,3 @@ +.aio-special-field{ + display: none; +} \ No newline at end of file diff --git a/all-in-one-wp-security/css/wp-security-admin-styles.css b/all-in-one-wp-security/css/wp-security-admin-styles.css new file mode 100644 index 0000000..da59587 --- /dev/null +++ b/all-in-one-wp-security/css/wp-security-admin-styles.css @@ -0,0 +1,354 @@ +.aio_half_width{width: 50%;} +.aio_one_third_width{width: 33%;} +.aio_width_80{width: 80%;} +.aio_max_500{max-width: 500px;} +.aio_spacer_15{margin-top:15px;} +.aio_spacer_10_tb{margin:10px 0;} +.aio_spacer_10_tblr{margin:10px;} +.aio_clear_float{clear: both;} +.aio_float_left{float: left;} +.aio_padding_10{padding: 10px !important;} +.aio_section_separator_1{border-bottom: 1px solid #dedede; height: 10px;} + +.aiowps_admin_ul_grp1{ + list-style: circle; + padding: 0 0 0 30px; +} + +.aio_grey_box{ + margin: 10px 0 15px; + background-color: #ECECEC; + border: 1px solid #CFCFCF; + padding: 0 0 0 1em; +} + +.aio_yellow_box{ + margin: 10px 0 15px; + background-color: #FFFFE0; + border-color: #E6DB55; + border-radius: 3px 3px 3px 3px; + border-style: solid; + border-width: 1px; + padding: 0 0 0 1em; +} + +.aio_blue_box{ + margin: 10px 0 15px; + background-color: #F0F9FF; + border-color: #1166BB; + color: #1166BB; + border-radius: 3px 3px 3px 3px; + border-style: solid; + border-width: 1px; + padding: 0 0 0 1em; + line-height: 20px; +} + +.aio_green_box { + margin: 10px 0 15px; + background-color: #CCF4D6; + border-color: #059B53; + color: #043B14; + border-radius: 3px 3px 3px 3px; + border-style: solid; + border-width: 1px; + padding: 0 1em 0 1em; +} + +.aio_red_box { + margin: 10px 0 15px; + background-color: #FFEBE8; + border-color: #CC0000; + color: #333333; + border-radius: 3px 3px 3px 3px; + border-style: solid; + border-width: 1px; + padding: 0 1em 0 1em; +} + +.aio_success_with_icon { + background-image: url("../images/success.png"); + background-repeat: no-repeat; + color: #529901; + padding-left: 20px; + font-size: 14px; +} +.aio_error_with_icon { + color: #ff0000; + background-image: url("../images/error.png"); + background-repeat: no-repeat; + padding-left: 20px; + font-size: 14px; +} +.aio_info_with_icon { + background-image: url("../images/info-icon.png"); + background-repeat: no-repeat; + color: #1166BB; + padding-left: 20px; + font-size: 14px; +} + +.file_permission_table{ + margin: 20px 0; +} +.file_permission_table thead tr th{ + background:#CCCCCC; +} +.file_permission_table td{ + padding: 7px; + font-family: "Courier 10 Pitch",Courier,monospace; + color: #262626; + border-bottom: 1px solid #F2F2F2; + border-top:none; +} +.aio_table_row_red{ + background-color:#FD6D73; +} +.aio_table_row_yellow{ + background-color:#F5E679; +} +.aio_table_row_green{ + background-color:#C8F18B; +} + +.aiowps_loading_1{ + margin:0 5px; +} + +.aio_text_area_file_output{ + background: none repeat scroll 0 0 #F9F9F9; + font-family: Consolas,Monaco,monospace; + font-size: 12px; + outline: 0 none; +} + +.aiowps_more_info_anchor{ + display: inline-block; + background-color: #D9D9D9; + color: #21759B; + font: 0.9em/1.455em "Lucida Grande","Lucida Sans Unicode",Tahoma,Verdana,sans-serif; + text-decoration: none; + padding: 3px 5px; +} +.aiowps_more_info_anchor:hover { + color: #333333; + cursor: pointer; +} +.aiowps_more_info_toggle_char { + display: inline-block; + margin-right: 3px; + padding: 0 3px; + text-align: center; + background-color: #EDEDED; + width: 10px; +} +.aiowps_more_info_body{ + margin: 10px 0 15px; + background-color: #FFFFE0; + border-color: #E6DB55; + border-radius: 3px 3px 3px 3px; + border-style: solid; + border-width: 1px; + padding: 0 0 0 1em; +} + +.aiowps_spread_the_word_widget{ +} + +.aiowps_dashboard_box_small{ + float:left; + max-width:350px; + margin-right:15px; +} + +#security_strength_chart_div table{ + margin-right: auto !important; + margin-left:auto !important; +} +.aiowps_dashboard_widget_footer{ + background-color: #E6E6E6; + padding: 10px; +} + +.aiowps_feature_status_container{ + display:block; + margin: 10px 0; +} +.aiowps_feature_status_name{ + width:50%; + font-weight: bold; + float:left; + padding: 5px 10px 5px 0; +} +.aiowps_feature_status_bar{ + display:block; + float:left; + width: 120px; + height: 26px; + position: relative; + background: rgba(0, 0, 0, 0.25); + border-radius: 3px; + -webkit-box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.3), 0 1px rgba(255, 255, 255, 0.1); + box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.3), 0 1px rgba(255, 255, 255, 0.1); +} +.aiowps_feature_status_label{ + display: block; + float: left; + padding: 4px; + text-align: center; + width: 52px; + color:#F7F7F7; + font-weight:bold; + text-transform: uppercase; +} +.aiowps_feature_status_on{ + color: #043B14; + background: #65bd63; + border-radius: 3px; + background-image: -webkit-linear-gradient(top, #9dd993, #65bd63); + background-image: -moz-linear-gradient(top, #9dd993, #65bd63); + background-image: -o-linear-gradient(top, #9dd993, #65bd63); + background-image: linear-gradient(to bottom, #9dd993, #65bd63); + -webkit-box-shadow: inset 0 1px rgba(255, 255, 255, 0.5), 0 0 2px rgba(0, 0, 0, 0.2); + box-shadow: inset 0 1px rgba(255, 255, 255, 0.5), 0 0 2px rgba(0, 0, 0, 0.2); +} +.aiowps_feature_status_off{ + color: #4D0000; + background: #BD6363; + border-radius: 3px; + background-image: -webkit-linear-gradient(top, #D99393, #BD6363); + background-image: -moz-linear-gradient(top, #D99393, #BD6363); + background-image: -o-linear-gradient(top, #D99393, #BD6363); + background-image: linear-gradient(top bottom, #D99393, #BD6363); + -webkit-box-shadow: inset 0 1px rgba(255, 255, 255, 0.5), 0 0 2px rgba(0, 0, 0, 0.2); + box-shadow: inset 0 1px rgba(255, 255, 255, 0.5), 0 0 2px rgba(0, 0, 0, 0.2); +} + +.aiowps_feature_details_badge{ + +} +.aiowps_feature_details_badge_difficulty{ + display: inline-block; + background: url('../images/feature-difficulty-badge-bg.png') no-repeat; + width:150px; + height:65px; +} +.aiowps_feature_details_badge_difficulty_text{ + display: inline-block; + height:36px; + width: 105px; + margin: 8px 0 0 36px; + color: #595170; + font-size:14px; + font-family: helvetica; + font-weight: bold; + text-align: center; + padding-top:7px; +} +.aiowps_feature_details_badge_points{ + display: inline-block; + background: url('../images/feature-points-badge-bg.png') no-repeat; + width:150px; + height:65px; + margin-left: 10px; +} +.aiowps_feature_details_badge_points_text{ + display: inline-block; + height:36px; + width: 105px; + margin: 8px 0 0 36px; + color: #545B5C; + font-size:20px; + font-family: georgia; + font-weight: bold; + text-align: center; + padding-top:5px; +} + +#aiowps_pw_tool_main{ + width:440px; + margin:40px auto 120px; + position:relative; + text-align:center; + background: url("../images/form_bg.png") no-repeat scroll 0 0 transparent; + height: 450px; + padding-top: 50px; +} + +.aiowps_password_tool_field{ + text-align:center; + padding-top: 40px; +} + +#aiowps_pw_tool_main .meterText { + color: #575757; + font-size: 10px; + left: 189px; + line-height: 1.1; + position: absolute; + top: 485px; + width: 60px; +} + + +#aiowps_pw_tool_main .arrow{ + background: url("../images/arrow.png") no-repeat -10px 0; + height: 120px; + left: 249px; + position: absolute; + top: 301px; + width: 11px; + + /* Defining a smooth CSS3 animation for turning the arrow */ + + -moz-transition:0.3s; + -webkit-transition:0.3s; + -o-transition:0.3s; + -ms-transition:0.3s; + transition:0.3s; + + /* Putting the arrow in its initial position */ + + -moz-transform: rotate(-134deg); + -webkit-transform: rotate(-134deg); + -o-transform: rotate(-134deg); + -ms-transform: rotate(-134deg); + transform: rotate(-134deg); +} + +#aiowps_pw_tool_main .arrowCap{ + background: url("../images/arrow.png") no-repeat -43px 0; + height: 20px; + left: 208px; + position: absolute; + top: 351px; + width: 20px; + z-index: 10; +} + +#aiowps_pw_tool_main .meterText{ + color: #575757; + font-size: 10px; + left: 189px; + line-height: 1.1; + position: absolute; + top: 385px; + width: 60px; +} + +.aiowps_password_crack_info_text{ + font-size: 2.125em; + line-height: 1.16667em; + padding-left: 6.25%; + padding-right: 6.25%; + text-align: center; +} + +#aiowps_password_crack_time_calculation{ + font-size: 1.125em; + line-height: 1.16667em; + padding-left: 6.25%; + padding-right: 6.25%; + text-align: center; + color: darkorange; +} \ No newline at end of file diff --git a/all-in-one-wp-security/css/wp-security-site-lockout-page.css b/all-in-one-wp-security/css/wp-security-site-lockout-page.css new file mode 100644 index 0000000..4eec26a --- /dev/null +++ b/all-in-one-wp-security/css/wp-security-site-lockout-page.css @@ -0,0 +1,27 @@ +body{ + background-color: #404040 !important; +} +.aiowps-site-lockout-body{ + +} + +.aiowps-site-lockout-body-content{ + +} + +.aiowps-site-lockout-box{ + margin-right: auto; + margin-left: auto; + max-width: 800px; + margin-top: 100px; + padding: 30px; + border: 2px solid #FFE20A; +} + +.aiowps-site-lockout-msg{ + color: #FFE20A; + font-size: 48px; + font-weight: bold; + text-align: center; +} + diff --git a/all-in-one-wp-security/images/arrow.png b/all-in-one-wp-security/images/arrow.png new file mode 100644 index 0000000000000000000000000000000000000000..51535ef54922a9b273f7dd6e86772c8794bfb920 GIT binary patch literal 2512 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 Q6aWAK07*qoM6N<$f*#RYU;qFB literal 0 HcmV?d00001 diff --git a/all-in-one-wp-security/images/feature-difficulty-badge-bg.png b/all-in-one-wp-security/images/feature-difficulty-badge-bg.png new file mode 100644 index 0000000000000000000000000000000000000000..e70eda05de3a2a0030f991569cf9b996edd777c0 GIT binary patch literal 3916 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 HM~VM0oa3zN literal 0 HcmV?d00001 diff --git a/all-in-one-wp-security/images/feature-points-badge-bg.png b/all-in-one-wp-security/images/feature-points-badge-bg.png new file mode 100644 index 0000000000000000000000000000000000000000..8fdeddbd82f44786ae41e6df92754d322dec5296 GIT binary patch literal 4028 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 EAHN$8j{pDw literal 0 HcmV?d00001 diff --git a/all-in-one-wp-security/images/plugin-icon.png b/all-in-one-wp-security/images/plugin-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..932f12996bd40e0b7d3613222444f8ecefca9bf9 GIT binary patch literal 1704 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`k|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*9U+m=!WZB1$5BeXNr6bM+EIYV;~{3xK*A7;Nk-3KEmEQ%e+* zQqwc@Y?a>c-mj#PnPRIHZt82`Ti~3Uk?B!Ylp0*+7m{3+ootz+WN)WnQ(*-(AUCxn zQK2F?C$HG5!d3}vt`(3C64qBz04piUwpD^SD#ABF!8yMuRl!uxKsVXI%s|1+P|wiV z#N6CmN5ROz&_Lh7NZ-&%*U;R`*vQJjKmiJrfVLH-q*(>IxIyg#@@$ndN=gc>^!3Zj z%k|2Q_413-^$jg8EkR}&8R-I5=oVMzl_XZ^<`pZ$OmImpPAEg{v+u2}(t{7puX=A(aKG z`a!A1`K3k4z=%sz23b{L$o& z6x?nx!>Lyv=oo!av?4__ObD2EKuma|1#;lYJ~a=R){B6NT8M384KT0BdAc};RNShW zT1RKGhg!8pPl!w+>3JTcro*y3&%`L&B-U9zq2mbchu&Da2u!4w8tklyp=Y* zSNXwjef*Yx@eHPW1w>`{zqxXA_SK`-U6)x7HnM##UE_C;Z}MZipybUHRi1sykLTr! z$YC~n{Py(m7-9S0%NR=1u65bA&MtqW9kD&L(yy%TT25_m*lp7vhukK7+st$B#_@zu z`vqc;H=3kbhrR6Hkd=DxVE_B-o+8c(5j#@TI}a8p-8VkDVBK>zy9#N=%Nzkg6E|e6 zS~#ItAks2MPu_~@`-C+or~dh0=$Kbj=|zGKoCwG3P2bLL>O;e18VtDG7gN9<6NEIJ=kSzeMjx`MN1j<6YJ-xal!S;qTRb6 zuQf3jDr#8o{4Bk;R^H|AACV~WnXKKvdG~A)Zky%Yap}k*_hSpWv=+L^D7BQBn98l^ z+&lNaV$q!a%hxXbw)3b})0dyp3XcyjwK?>lU79aVfNRCW z6&D__s^_V9OzLkU3$xOm9`1{qSR-avahb21lUGn9ZI)!F8T!!Gx?KKce$6YD{@eDG zUT>YcWZ6xhZK6|WEqPtJxo%nJtl2BPZ|~o>AY-+jW^SB!aq8vY_olP0wEL$2U^)Xc Y!|RUH3?BY<;h?(1)78&qol`;+0Kw6b-~a#s literal 0 HcmV?d00001 diff --git a/all-in-one-wp-security/images/plugin-icon2.png b/all-in-one-wp-security/images/plugin-icon2.png new file mode 100644 index 0000000000000000000000000000000000000000..f3bec023297482bd0f47193d8b8f227eeda9968c GIT binary patch literal 1760 zcmaJ?do)ye93Lqrg-|M4U88n$cFfB#xf#!EP>si!%w$&?Gk2Jnxnt%s!}dU_LvfaE zTPBMowI#(m+hQv^QZ21ElA_eIwmefFMate0+CSF*&bjyZIG@kw`}lqCxv2qu-i8Ji z1~?qf(ANjzVDk#?gV)2}>qn*q*t8b);-f)`7*z=rFwR|sgu{TZR1g7kV1Xz;<~P_G zhtmZlTt3QYZwG~llqAq%NNTAZW8-knu4=hJ7zLw1I2<97F$phztswvs5tG1kU{ly~ zPdHNIlc0cu68yNrgeakth~Vl1IIBTSKnkM*KrM}yDM2-pFry1%YwadfVLK)v5=G@8nXFQ&NGf|0qKF_ ztmMYaVKN6+BC!e~c5z}GZ74bDselD2qTnJ(^jsGMA`ui(Mj~>+GspqpNn|2KrJO;t z*`TjXi3(&w*cW0FFg{5l5rHf^ncUMa@^LryTufhce$yT`rSBj#on)-Z9uEJq;Kx+W8nabi9$dObo4H*V=euC@ zyFMoE&DaP9TV9$M1$I|W3^nd;%uyN}a%efrEz~!lskJXW7a~XG+tSgMOVo zsNpBkU?gD8`5^!=&4>#g;q{_m=C0i#_gg#T_cy36#xtGg0GRbP6l+ zt8)4Sic6DKe~g?iZsj+g;@CFzk3)ko>tr=o4T&})hooe;sS5U4PFj0&2!GN}Jv?sx z+}A?s+~AY;EQm|XIaVDybmyUgDdR|4%7#?aq^zt+TelXv(X;i31Ci@LMR$>`J586I z)@`Y?J(12KHs0tAdGhdh_{KHVgMGPsMr8vjyUy!>drIyTgJ;LHBlov0uV^{8J^oYC zqO~j*Yk+vOJ{vt+Bz!W!Jw9F<8jv+MTCy~+On!x`^GXT!oCFb9S{zhmc_MfC2jV?DU+I6!)o{`WO;F8+HQN0ev3(x5&C zpRwd^;mhX%A=}Pe9JTDaTe-LKMzzL2RnTCfdYUir! zd1veUM>PA_or(f2UtJ{f%MnldpOxdNFx~8qIkBEU!+FSq+mp4nhYDt46qJcR}hQ?Wq`A_^_gO29+JNLfc z=L?yh+jnxj)V9f1uTgQU@pfJ3#;?lKa{GB;(?k7%(x(w`Cl6$*@_99}9la4uX1Vch zm*M-@7*mh8JTBK5Iz(*JslPnOuDt!wNj(~=lFX0K^Hv2lK%m>Rl4E; literal 0 HcmV?d00001 diff --git a/all-in-one-wp-security/images/shield-info-icon-36.png b/all-in-one-wp-security/images/shield-info-icon-36.png new file mode 100644 index 0000000000000000000000000000000000000000..cb2fc9a09288a875b1486353adb5d68250400d1d GIT binary patch literal 4873 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 literal 0 HcmV?d00001 diff --git a/all-in-one-wp-security/images/shield-security-icon-36.png b/all-in-one-wp-security/images/shield-security-icon-36.png new file mode 100644 index 0000000000000000000000000000000000000000..1b81dc21cd0be89468625fc110047f06c1a6982c GIT binary patch literal 5196 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 x7VFF1f;2UrnbA}_Lh;h++){var j=this[h],k=a.data(j,b);if(k)if(a.isFunction(k[e])&&"_"!==e.charAt(0)){var l=k[e].apply(k,g);if(void 0!==l)return l}else f("no such method '"+e+"' for "+b+" instance");else f("cannot call methods on "+b+" prior to initialization; attempted to call '"+e+"'")}return this}return this.each(function(){var d=a.data(this,b);d?(d.option(e),d._init()):(d=new c(this,e),a.data(this,b,d))})}}if(a){var f="undefined"==typeof console?b:function(a){console.error(a)};return a.bridget=function(a,b){c(b),e(a,b)},a.bridget}}var d=Array.prototype.slice;"function"==typeof define&&define.amd?define("jquery-bridget/jquery.bridget",["jquery"],c):c(a.jQuery)}(window),function(a){function b(b){var c=a.event;return c.target=c.target||c.srcElement||b,c}var c=document.documentElement,d=function(){};c.addEventListener?d=function(a,b,c){a.addEventListener(b,c,!1)}:c.attachEvent&&(d=function(a,c,d){a[c+d]=d.handleEvent?function(){var c=b(a);d.handleEvent.call(d,c)}:function(){var c=b(a);d.call(a,c)},a.attachEvent("on"+c,a[c+d])});var e=function(){};c.removeEventListener?e=function(a,b,c){a.removeEventListener(b,c,!1)}:c.detachEvent&&(e=function(a,b,c){a.detachEvent("on"+b,a[b+c]);try{delete a[b+c]}catch(d){a[b+c]=void 0}});var f={bind:d,unbind:e};"function"==typeof define&&define.amd?define("eventie/eventie",f):"object"==typeof exports?module.exports=f:a.eventie=f}(this),function(a){function b(a){"function"==typeof a&&(b.isReady?a():f.push(a))}function c(a){var c="readystatechange"===a.type&&"complete"!==e.readyState;if(!b.isReady&&!c){b.isReady=!0;for(var d=0,g=f.length;g>d;d++){var h=f[d];h()}}}function d(d){return d.bind(e,"DOMContentLoaded",c),d.bind(e,"readystatechange",c),d.bind(a,"load",c),b}var e=a.document,f=[];b.isReady=!1,"function"==typeof define&&define.amd?(b.isReady="function"==typeof requirejs,define("doc-ready/doc-ready",["eventie/eventie"],d)):a.docReady=d(a.eventie)}(this),function(){function a(){}function b(a,b){for(var c=a.length;c--;)if(a[c].listener===b)return c;return-1}function c(a){return function(){return this[a].apply(this,arguments)}}var d=a.prototype,e=this,f=e.EventEmitter;d.getListeners=function(a){var b,c,d=this._getEvents();if(a instanceof RegExp){b={};for(c in d)d.hasOwnProperty(c)&&a.test(c)&&(b[c]=d[c])}else b=d[a]||(d[a]=[]);return b},d.flattenListeners=function(a){var b,c=[];for(b=0;be;e++)if(b=c[e]+a,"string"==typeof d[b])return b}}var c="Webkit Moz ms Ms O".split(" "),d=document.documentElement.style;"function"==typeof define&&define.amd?define("get-style-property/get-style-property",[],function(){return b}):"object"==typeof exports?module.exports=b:a.getStyleProperty=b}(window),function(a){function b(a){var b=parseFloat(a),c=-1===a.indexOf("%")&&!isNaN(b);return c&&b}function c(){for(var a={width:0,height:0,innerWidth:0,innerHeight:0,outerWidth:0,outerHeight:0},b=0,c=g.length;c>b;b++){var d=g[b];a[d]=0}return a}function d(a){function d(a){if("string"==typeof a&&(a=document.querySelector(a)),a&&"object"==typeof a&&a.nodeType){var d=f(a);if("none"===d.display)return c();var e={};e.width=a.offsetWidth,e.height=a.offsetHeight;for(var k=e.isBorderBox=!(!j||!d[j]||"border-box"!==d[j]),l=0,m=g.length;m>l;l++){var n=g[l],o=d[n];o=h(a,o);var p=parseFloat(o);e[n]=isNaN(p)?0:p}var q=e.paddingLeft+e.paddingRight,r=e.paddingTop+e.paddingBottom,s=e.marginLeft+e.marginRight,t=e.marginTop+e.marginBottom,u=e.borderLeftWidth+e.borderRightWidth,v=e.borderTopWidth+e.borderBottomWidth,w=k&&i,x=b(d.width);x!==!1&&(e.width=x+(w?0:q+u));var y=b(d.height);return y!==!1&&(e.height=y+(w?0:r+v)),e.innerWidth=e.width-(q+u),e.innerHeight=e.height-(r+v),e.outerWidth=e.width+s,e.outerHeight=e.height+t,e}}function h(a,b){if(e||-1===b.indexOf("%"))return b;var c=a.style,d=c.left,f=a.runtimeStyle,g=f&&f.left;return g&&(f.left=a.currentStyle.left),c.left=b,b=c.pixelLeft,c.left=d,g&&(f.left=g),b}var i,j=a("boxSizing");return function(){if(j){var a=document.createElement("div");a.style.width="200px",a.style.padding="1px 2px 3px 4px",a.style.borderStyle="solid",a.style.borderWidth="1px 2px 3px 4px",a.style[j]="border-box";var c=document.body||document.documentElement;c.appendChild(a);var d=f(a);i=200===b(d.width),c.removeChild(a)}}(),d}var e=a.getComputedStyle,f=e?function(a){return e(a,null)}:function(a){return a.currentStyle},g=["paddingLeft","paddingRight","paddingTop","paddingBottom","marginLeft","marginRight","marginTop","marginBottom","borderLeftWidth","borderRightWidth","borderTopWidth","borderBottomWidth"];"function"==typeof define&&define.amd?define("get-size/get-size",["get-style-property/get-style-property"],d):"object"==typeof exports?module.exports=d(require("get-style-property")):a.getSize=d(a.getStyleProperty)}(window),function(a,b){function c(a,b){return a[h](b)}function d(a){if(!a.parentNode){var b=document.createDocumentFragment();b.appendChild(a)}}function e(a,b){d(a);for(var c=a.parentNode.querySelectorAll(b),e=0,f=c.length;f>e;e++)if(c[e]===a)return!0;return!1}function f(a,b){return d(a),c(a,b)}var g,h=function(){if(b.matchesSelector)return"matchesSelector";for(var a=["webkit","moz","ms","o"],c=0,d=a.length;d>c;c++){var e=a[c],f=e+"MatchesSelector";if(b[f])return f}}();if(h){var i=document.createElement("div"),j=c(i,"div");g=j?c:f}else g=e;"function"==typeof define&&define.amd?define("matches-selector/matches-selector",[],function(){return g}):window.matchesSelector=g}(this,Element.prototype),function(a){function b(a,b){for(var c in b)a[c]=b[c];return a}function c(a){for(var b in a)return!1;return b=null,!0}function d(a){return a.replace(/([A-Z])/g,function(a){return"-"+a.toLowerCase()})}function e(a,e,f){function h(a,b){a&&(this.element=a,this.layout=b,this.position={x:0,y:0},this._create())}var i=f("transition"),j=f("transform"),k=i&&j,l=!!f("perspective"),m={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"otransitionend",transition:"transitionend"}[i],n=["transform","transition","transitionDuration","transitionProperty"],o=function(){for(var a={},b=0,c=n.length;c>b;b++){var d=n[b],e=f(d);e&&e!==d&&(a[d]=e)}return a}();b(h.prototype,a.prototype),h.prototype._create=function(){this._transn={ingProperties:{},clean:{},onEnd:{}},this.css({position:"absolute"})},h.prototype.handleEvent=function(a){var b="on"+a.type;this[b]&&this[b](a)},h.prototype.getSize=function(){this.size=e(this.element)},h.prototype.css=function(a){var b=this.element.style;for(var c in a){var d=o[c]||c;b[d]=a[c]}},h.prototype.getPosition=function(){var a=g(this.element),b=this.layout.options,c=b.isOriginLeft,d=b.isOriginTop,e=parseInt(a[c?"left":"right"],10),f=parseInt(a[d?"top":"bottom"],10);e=isNaN(e)?0:e,f=isNaN(f)?0:f;var h=this.layout.size;e-=c?h.paddingLeft:h.paddingRight,f-=d?h.paddingTop:h.paddingBottom,this.position.x=e,this.position.y=f},h.prototype.layoutPosition=function(){var a=this.layout.size,b=this.layout.options,c={};b.isOriginLeft?(c.left=this.position.x+a.paddingLeft+"px",c.right=""):(c.right=this.position.x+a.paddingRight+"px",c.left=""),b.isOriginTop?(c.top=this.position.y+a.paddingTop+"px",c.bottom=""):(c.bottom=this.position.y+a.paddingBottom+"px",c.top=""),this.css(c),this.emitEvent("layout",[this])};var p=l?function(a,b){return"translate3d("+a+"px, "+b+"px, 0)"}:function(a,b){return"translate("+a+"px, "+b+"px)"};h.prototype._transitionTo=function(a,b){this.getPosition();var c=this.position.x,d=this.position.y,e=parseInt(a,10),f=parseInt(b,10),g=e===this.position.x&&f===this.position.y;if(this.setPosition(a,b),g&&!this.isTransitioning)return void this.layoutPosition();var h=a-c,i=b-d,j={},k=this.layout.options;h=k.isOriginLeft?h:-h,i=k.isOriginTop?i:-i,j.transform=p(h,i),this.transition({to:j,onTransitionEnd:{transform:this.layoutPosition},isCleaning:!0})},h.prototype.goTo=function(a,b){this.setPosition(a,b),this.layoutPosition()},h.prototype.moveTo=k?h.prototype._transitionTo:h.prototype.goTo,h.prototype.setPosition=function(a,b){this.position.x=parseInt(a,10),this.position.y=parseInt(b,10)},h.prototype._nonTransition=function(a){this.css(a.to),a.isCleaning&&this._removeStyles(a.to);for(var b in a.onTransitionEnd)a.onTransitionEnd[b].call(this)},h.prototype._transition=function(a){if(!parseFloat(this.layout.options.transitionDuration))return void this._nonTransition(a);var b=this._transn;for(var c in a.onTransitionEnd)b.onEnd[c]=a.onTransitionEnd[c];for(c in a.to)b.ingProperties[c]=!0,a.isCleaning&&(b.clean[c]=!0);if(a.from){this.css(a.from);var d=this.element.offsetHeight;d=null}this.enableTransition(a.to),this.css(a.to),this.isTransitioning=!0};var q=j&&d(j)+",opacity";h.prototype.enableTransition=function(){this.isTransitioning||(this.css({transitionProperty:q,transitionDuration:this.layout.options.transitionDuration}),this.element.addEventListener(m,this,!1))},h.prototype.transition=h.prototype[i?"_transition":"_nonTransition"],h.prototype.onwebkitTransitionEnd=function(a){this.ontransitionend(a)},h.prototype.onotransitionend=function(a){this.ontransitionend(a)};var r={"-webkit-transform":"transform","-moz-transform":"transform","-o-transform":"transform"};h.prototype.ontransitionend=function(a){if(a.target===this.element){var b=this._transn,d=r[a.propertyName]||a.propertyName;if(delete b.ingProperties[d],c(b.ingProperties)&&this.disableTransition(),d in b.clean&&(this.element.style[a.propertyName]="",delete b.clean[d]),d in b.onEnd){var e=b.onEnd[d];e.call(this),delete b.onEnd[d]}this.emitEvent("transitionEnd",[this])}},h.prototype.disableTransition=function(){this.removeTransitionStyles(),this.element.removeEventListener(m,this,!1),this.isTransitioning=!1},h.prototype._removeStyles=function(a){var b={};for(var c in a)b[c]="";this.css(b)};var s={transitionProperty:"",transitionDuration:""};return h.prototype.removeTransitionStyles=function(){this.css(s)},h.prototype.removeElem=function(){this.element.parentNode.removeChild(this.element),this.emitEvent("remove",[this])},h.prototype.remove=function(){if(!i||!parseFloat(this.layout.options.transitionDuration))return void this.removeElem();var a=this;this.on("transitionEnd",function(){return a.removeElem(),!0}),this.hide()},h.prototype.reveal=function(){delete this.isHidden,this.css({display:""});var a=this.layout.options;this.transition({from:a.hiddenStyle,to:a.visibleStyle,isCleaning:!0})},h.prototype.hide=function(){this.isHidden=!0,this.css({display:""});var a=this.layout.options;this.transition({from:a.visibleStyle,to:a.hiddenStyle,isCleaning:!0,onTransitionEnd:{opacity:function(){this.isHidden&&this.css({display:"none"})}}})},h.prototype.destroy=function(){this.css({position:"",left:"",right:"",top:"",bottom:"",transition:"",transform:""})},h}var f=a.getComputedStyle,g=f?function(a){return f(a,null)}:function(a){return a.currentStyle};"function"==typeof define&&define.amd?define("outlayer/item",["eventEmitter/EventEmitter","get-size/get-size","get-style-property/get-style-property"],e):(a.Outlayer={},a.Outlayer.Item=e(a.EventEmitter,a.getSize,a.getStyleProperty))}(window),function(a){function b(a,b){for(var c in b)a[c]=b[c];return a}function c(a){return"[object Array]"===l.call(a)}function d(a){var b=[];if(c(a))b=a;else if(a&&"number"==typeof a.length)for(var d=0,e=a.length;e>d;d++)b.push(a[d]);else b.push(a);return b}function e(a,b){var c=n(b,a);-1!==c&&b.splice(c,1)}function f(a){return a.replace(/(.)([A-Z])/g,function(a,b,c){return b+"-"+c}).toLowerCase()}function g(c,g,l,n,o,p){function q(a,c){if("string"==typeof a&&(a=h.querySelector(a)),!a||!m(a))return void(i&&i.error("Bad "+this.constructor.namespace+" element: "+a));this.element=a,this.options=b({},this.constructor.defaults),this.option(c);var d=++r;this.element.outlayerGUID=d,s[d]=this,this._create(),this.options.isInitLayout&&this.layout()}var r=0,s={};return q.namespace="outlayer",q.Item=p,q.defaults={containerStyle:{position:"relative"},isInitLayout:!0,isOriginLeft:!0,isOriginTop:!0,isResizeBound:!0,isResizingContainer:!0,transitionDuration:"0.4s",hiddenStyle:{opacity:0,transform:"scale(0.001)"},visibleStyle:{opacity:1,transform:"scale(1)"}},b(q.prototype,l.prototype),q.prototype.option=function(a){b(this.options,a)},q.prototype._create=function(){this.reloadItems(),this.stamps=[],this.stamp(this.options.stamp),b(this.element.style,this.options.containerStyle),this.options.isResizeBound&&this.bindResize()},q.prototype.reloadItems=function(){this.items=this._itemize(this.element.children)},q.prototype._itemize=function(a){for(var b=this._filterFindItemElements(a),c=this.constructor.Item,d=[],e=0,f=b.length;f>e;e++){var g=b[e],h=new c(g,this);d.push(h)}return d},q.prototype._filterFindItemElements=function(a){a=d(a);for(var b=this.options.itemSelector,c=[],e=0,f=a.length;f>e;e++){var g=a[e];if(m(g))if(b){o(g,b)&&c.push(g);for(var h=g.querySelectorAll(b),i=0,j=h.length;j>i;i++)c.push(h[i])}else c.push(g)}return c},q.prototype.getItemElements=function(){for(var a=[],b=0,c=this.items.length;c>b;b++)a.push(this.items[b].element);return a},q.prototype.layout=function(){this._resetLayout(),this._manageStamps();var a=void 0!==this.options.isLayoutInstant?this.options.isLayoutInstant:!this._isLayoutInited;this.layoutItems(this.items,a),this._isLayoutInited=!0},q.prototype._init=q.prototype.layout,q.prototype._resetLayout=function(){this.getSize()},q.prototype.getSize=function(){this.size=n(this.element)},q.prototype._getMeasurement=function(a,b){var c,d=this.options[a];d?("string"==typeof d?c=this.element.querySelector(d):m(d)&&(c=d),this[a]=c?n(c)[b]:d):this[a]=0},q.prototype.layoutItems=function(a,b){a=this._getItemsForLayout(a),this._layoutItems(a,b),this._postLayout()},q.prototype._getItemsForLayout=function(a){for(var b=[],c=0,d=a.length;d>c;c++){var e=a[c];e.isIgnored||b.push(e)}return b},q.prototype._layoutItems=function(a,b){function c(){d.emitEvent("layoutComplete",[d,a])}var d=this;if(!a||!a.length)return void c();this._itemsOn(a,"layout",c);for(var e=[],f=0,g=a.length;g>f;f++){var h=a[f],i=this._getItemLayoutPosition(h);i.item=h,i.isInstant=b||h.isLayoutInstant,e.push(i)}this._processLayoutQueue(e)},q.prototype._getItemLayoutPosition=function(){return{x:0,y:0}},q.prototype._processLayoutQueue=function(a){for(var b=0,c=a.length;c>b;b++){var d=a[b];this._positionItem(d.item,d.x,d.y,d.isInstant)}},q.prototype._positionItem=function(a,b,c,d){d?a.goTo(b,c):a.moveTo(b,c)},q.prototype._postLayout=function(){this.resizeContainer()},q.prototype.resizeContainer=function(){if(this.options.isResizingContainer){var a=this._getContainerSize();a&&(this._setContainerMeasure(a.width,!0),this._setContainerMeasure(a.height,!1))}},q.prototype._getContainerSize=k,q.prototype._setContainerMeasure=function(a,b){if(void 0!==a){var c=this.size;c.isBorderBox&&(a+=b?c.paddingLeft+c.paddingRight+c.borderLeftWidth+c.borderRightWidth:c.paddingBottom+c.paddingTop+c.borderTopWidth+c.borderBottomWidth),a=Math.max(a,0),this.element.style[b?"width":"height"]=a+"px"}},q.prototype._itemsOn=function(a,b,c){function d(){return e++,e===f&&c.call(g),!0}for(var e=0,f=a.length,g=this,h=0,i=a.length;i>h;h++){var j=a[h];j.on(b,d)}},q.prototype.ignore=function(a){var b=this.getItem(a);b&&(b.isIgnored=!0)},q.prototype.unignore=function(a){var b=this.getItem(a);b&&delete b.isIgnored},q.prototype.stamp=function(a){if(a=this._find(a)){this.stamps=this.stamps.concat(a);for(var b=0,c=a.length;c>b;b++){var d=a[b];this.ignore(d)}}},q.prototype.unstamp=function(a){if(a=this._find(a))for(var b=0,c=a.length;c>b;b++){var d=a[b];e(d,this.stamps),this.unignore(d)}},q.prototype._find=function(a){return a?("string"==typeof a&&(a=this.element.querySelectorAll(a)),a=d(a)):void 0},q.prototype._manageStamps=function(){if(this.stamps&&this.stamps.length){this._getBoundingRect();for(var a=0,b=this.stamps.length;b>a;a++){var c=this.stamps[a];this._manageStamp(c)}}},q.prototype._getBoundingRect=function(){var a=this.element.getBoundingClientRect(),b=this.size;this._boundingRect={left:a.left+b.paddingLeft+b.borderLeftWidth,top:a.top+b.paddingTop+b.borderTopWidth,right:a.right-(b.paddingRight+b.borderRightWidth),bottom:a.bottom-(b.paddingBottom+b.borderBottomWidth)}},q.prototype._manageStamp=k,q.prototype._getElementOffset=function(a){var b=a.getBoundingClientRect(),c=this._boundingRect,d=n(a),e={left:b.left-c.left-d.marginLeft,top:b.top-c.top-d.marginTop,right:c.right-b.right-d.marginRight,bottom:c.bottom-b.bottom-d.marginBottom};return e},q.prototype.handleEvent=function(a){var b="on"+a.type;this[b]&&this[b](a)},q.prototype.bindResize=function(){this.isResizeBound||(c.bind(a,"resize",this),this.isResizeBound=!0)},q.prototype.unbindResize=function(){this.isResizeBound&&c.unbind(a,"resize",this),this.isResizeBound=!1},q.prototype.onresize=function(){function a(){b.resize(),delete b.resizeTimeout}this.resizeTimeout&&clearTimeout(this.resizeTimeout);var b=this;this.resizeTimeout=setTimeout(a,100)},q.prototype.resize=function(){this.isResizeBound&&this.needsResizeLayout()&&this.layout()},q.prototype.needsResizeLayout=function(){var a=n(this.element),b=this.size&&a;return b&&a.innerWidth!==this.size.innerWidth},q.prototype.addItems=function(a){var b=this._itemize(a);return b.length&&(this.items=this.items.concat(b)),b},q.prototype.appended=function(a){var b=this.addItems(a);b.length&&(this.layoutItems(b,!0),this.reveal(b))},q.prototype.prepended=function(a){var b=this._itemize(a);if(b.length){var c=this.items.slice(0);this.items=b.concat(c),this._resetLayout(),this._manageStamps(),this.layoutItems(b,!0),this.reveal(b),this.layoutItems(c)}},q.prototype.reveal=function(a){var b=a&&a.length;if(b)for(var c=0;b>c;c++){var d=a[c];d.reveal()}},q.prototype.hide=function(a){var b=a&&a.length;if(b)for(var c=0;b>c;c++){var d=a[c];d.hide()}},q.prototype.getItem=function(a){for(var b=0,c=this.items.length;c>b;b++){var d=this.items[b];if(d.element===a)return d}},q.prototype.getItems=function(a){if(a&&a.length){for(var b=[],c=0,d=a.length;d>c;c++){var e=a[c],f=this.getItem(e);f&&b.push(f)}return b}},q.prototype.remove=function(a){a=d(a);var b=this.getItems(a);if(b&&b.length){this._itemsOn(b,"remove",function(){this.emitEvent("removeComplete",[this,b])});for(var c=0,f=b.length;f>c;c++){var g=b[c];g.remove(),e(g,this.items)}}},q.prototype.destroy=function(){var a=this.element.style;a.height="",a.position="",a.width="";for(var b=0,c=this.items.length;c>b;b++){var d=this.items[b];d.destroy()}this.unbindResize(),delete this.element.outlayerGUID,j&&j.removeData(this.element,this.constructor.namespace)},q.data=function(a){var b=a&&a.outlayerGUID;return b&&s[b]},q.create=function(a,c){function d(){q.apply(this,arguments)}return Object.create?d.prototype=Object.create(q.prototype):b(d.prototype,q.prototype),d.prototype.constructor=d,d.defaults=b({},q.defaults),b(d.defaults,c),d.prototype.settings={},d.namespace=a,d.data=q.data,d.Item=function(){p.apply(this,arguments)},d.Item.prototype=new p,g(function(){for(var b=f(a),c=h.querySelectorAll(".js-"+b),e="data-"+b+"-options",g=0,k=c.length;k>g;g++){var l,m=c[g],n=m.getAttribute(e);try{l=n&&JSON.parse(n)}catch(o){i&&i.error("Error parsing "+e+" on "+m.nodeName.toLowerCase()+(m.id?"#"+m.id:"")+": "+o);continue}var p=new d(m,l);j&&j.data(m,a,p)}}),j&&j.bridget&&j.bridget(a,d),d},q.Item=p,q}var h=a.document,i=a.console,j=a.jQuery,k=function(){},l=Object.prototype.toString,m="object"==typeof HTMLElement?function(a){return a instanceof HTMLElement}:function(a){return a&&"object"==typeof a&&1===a.nodeType&&"string"==typeof a.nodeName},n=Array.prototype.indexOf?function(a,b){return a.indexOf(b)}:function(a,b){for(var c=0,d=a.length;d>c;c++)if(a[c]===b)return c;return-1};"function"==typeof define&&define.amd?define("outlayer/outlayer",["eventie/eventie","doc-ready/doc-ready","eventEmitter/EventEmitter","get-size/get-size","matches-selector/matches-selector","./item"],g):a.Outlayer=g(a.eventie,a.docReady,a.EventEmitter,a.getSize,a.matchesSelector,a.Outlayer.Item)}(window),function(a){function b(a,b){var d=a.create("masonry");return d.prototype._resetLayout=function(){this.getSize(),this._getMeasurement("columnWidth","outerWidth"),this._getMeasurement("gutter","outerWidth"),this.measureColumns();var a=this.cols;for(this.colYs=[];a--;)this.colYs.push(0);this.maxY=0},d.prototype.measureColumns=function(){if(this.getContainerWidth(),!this.columnWidth){var a=this.items[0],c=a&&a.element;this.columnWidth=c&&b(c).outerWidth||this.containerWidth}this.columnWidth+=this.gutter,this.cols=Math.floor((this.containerWidth+this.gutter)/this.columnWidth),this.cols=Math.max(this.cols,1)},d.prototype.getContainerWidth=function(){var a=this.options.isFitWidth?this.element.parentNode:this.element,c=b(a);this.containerWidth=c&&c.innerWidth},d.prototype._getItemLayoutPosition=function(a){a.getSize();var b=a.size.outerWidth%this.columnWidth,d=b&&1>b?"round":"ceil",e=Math[d](a.size.outerWidth/this.columnWidth);e=Math.min(e,this.cols);for(var f=this._getColGroup(e),g=Math.min.apply(Math,f),h=c(f,g),i={x:this.columnWidth*h,y:g},j=g+a.size.outerHeight,k=this.cols+1-f.length,l=0;k>l;l++)this.colYs[h+l]=j;return i},d.prototype._getColGroup=function(a){if(2>a)return this.colYs;for(var b=[],c=this.cols+1-a,d=0;c>d;d++){var e=this.colYs.slice(d,d+a);b[d]=Math.max.apply(Math,e)}return b},d.prototype._manageStamp=function(a){var c=b(a),d=this._getElementOffset(a),e=this.options.isOriginLeft?d.left:d.right,f=e+c.outerWidth,g=Math.floor(e/this.columnWidth);g=Math.max(0,g);var h=Math.floor(f/this.columnWidth);h-=f%this.columnWidth?0:1,h=Math.min(this.cols-1,h);for(var i=(this.options.isOriginTop?d.top:d.bottom)+c.outerHeight,j=g;h>=j;j++)this.colYs[j]=Math.max(i,this.colYs[j])},d.prototype._getContainerSize=function(){this.maxY=Math.max.apply(Math,this.colYs);var a={height:this.maxY};return this.options.isFitWidth&&(a.width=this._getContainerFitWidth()),a},d.prototype._getContainerFitWidth=function(){for(var a=0,b=this.cols;--b&&0===this.colYs[b];)a++;return(this.cols-a)*this.columnWidth-this.gutter},d.prototype.needsResizeLayout=function(){var a=this.containerWidth;return this.getContainerWidth(),a!==this.containerWidth},d}var c=Array.prototype.indexOf?function(a,b){return a.indexOf(b)}:function(a,b){for(var c=0,d=a.length;d>c;c++){var e=a[c];if(e===b)return c}return-1};"function"==typeof define&&define.amd?define(["outlayer/outlayer","get-size/get-size"],b):a.Masonry=b(a.Outlayer,a.getSize)}(window); \ No newline at end of file diff --git a/all-in-one-wp-security/js/password-strength-tool.js b/all-in-one-wp-security/js/password-strength-tool.js new file mode 100644 index 0000000..9f003b6 --- /dev/null +++ b/all-in-one-wp-security/js/password-strength-tool.js @@ -0,0 +1,154 @@ +(function($){ + $.fn.extend({ + pwdstr: function(el) { + return this.each(function() { + $(this).keyup(function(){ + $(el).html(getTime($(this).val())); + }); + + function getTime(str){ + + var chars = 0; + var rate = 2800000000; + + if((/[a-z]/).test(str)) chars += 26; + if((/[A-Z]/).test(str)) chars += 26; + if((/[0-9]/).test(str)) chars += 10; + if((/[^a-zA-Z0-9]/).test(str)) chars += 32; + + var pos = Math.pow(chars,str.length); + var s = pos/rate; + var decimalYears = s/(3600*24*365); + var years = Math.floor(decimalYears); + + var decimalMonths =(decimalYears-years)*12; + var months = Math.floor(decimalMonths); + + var decimalDays = (decimalMonths-months)*30; + var days = Math.floor(decimalDays); + + var decimalHours = (decimalDays-days)*24; + var hours = Math.floor(decimalHours); + + var decimalMinutes = (decimalHours-hours)*60; + var minutes = Math.floor(decimalMinutes); + + var decimalSeconds = (decimalMinutes-minutes)*60; + var seconds = Math.floor(decimalSeconds); + + var time = []; + + if(years > 0){ + if(years == 1) + time.push("1 year, "); + else + time.push(years + " years, "); + } + if(months > 0){ + if(months == 1) + time.push("1 month, "); + else + time.push(months + " months, "); + } + if(days > 0){ + if(days == 1) + time.push("1 day, "); + else + time.push(days + " days, "); + } + if(hours > 0){ + if(hours == 1) + time.push("1 hour, "); + else + time.push(hours + " hours, "); + } + if(minutes > 0){ + if(minutes == 1) + time.push("1 minute, "); + else + time.push(minutes + " minutes, "); + } + if(seconds > 0){ + if(seconds == 1) + time.push("1 second, "); + else + time.push(seconds + " seconds, "); + } + + if(time.length <= 0) + time = "less than one second, "; + else if(time.length == 1) + time = time[0]; + else + time = time[0] + time[1]; + + + var field = $('#aiowps_password_test'); + if (s <= 1 || !field.val()) + { + //Time to crack < 1 sec + complexity = 0; + }else if (s > 1 && s <= 43200) + { + //1 sec < Time to crack < 12hrs + complexity = 1; + }else if (s > 43200 && s <= 86400) + { + //12 hrs < Time to crack < 1day + complexity = 2; + }else if (s > 86400 && s <= 604800) + { + //1 day < Time to crack < 1wk + complexity = 3; + }else if (s > 604800 && s <= 2678400) + { + //1wk < Time to crack < 1mth + complexity = 4; + }else if (s > 2678400 && s <= 15552000) + { + //1mth < Time to crack < 6mths + complexity = 5; + }else if (s > 31536000 && s <= 31536000) + { + //6mths < Time to crack < 1yrs + complexity = 6; + }else if (s > 31536000 && s <= 315360000) + { + //1yrs < Time to crack < 10yrs + complexity = 7; + }else if (s > 315360000 && s <= 3153600000) + { + //10yrs < Time to crack < 100yrs + complexity = 8; + }else if (s > 3153600000 && s <= 31536000000) + { + //100yrs < Time to crack < 1000yrs + complexity = 9; + }else if (s > 31536000000) + { + //1000yrs < Time to crack + complexity = 10; + } + calculated = (complexity/10)*268 - 134; + prop = 'rotate('+(calculated)+'deg)'; + // Rotate the arrow + $('.arrow').css({ + '-moz-transform':prop, + '-webkit-transform':prop, + '-o-transform':prop, + '-ms-transform':prop, + 'transform':prop + }); + + return time.substring(0,time.length-2); + } + + }); + } + + }); + $(document).ready(function(){ + $('#aiowps_password_test').pwdstr('#aiowps_password_crack_time_calculation'); + }); +})(jQuery); + diff --git a/all-in-one-wp-security/js/wp-security-admin-script.js b/all-in-one-wp-security/js/wp-security-admin-script.js new file mode 100644 index 0000000..237532d --- /dev/null +++ b/all-in-one-wp-security/js/wp-security-admin-script.js @@ -0,0 +1,40 @@ +jQuery(document).ready(function($){ + //Add Generic Admin Dashboard JS Code in this file + + //Media Uploader - start + function aiowps_attach_media_uploader(key) { + jQuery('#' + key + '_button').click(function() { + text_element = jQuery('#' + key).attr('name'); + button_element = jQuery('#' + key + '_button').attr('name'); + tb_show('All In One Security - Please Select a File', 'media-upload.php?referer=aiowpsec&TB_iframe=true&post_id=0width=640&height=485'); + return false; + }); + window.send_to_editor = function(html) { + var self_element = text_element; + fileurl = jQuery(html).attr('href'); + jQuery('#' + self_element).val(fileurl); + tb_remove(); + }; + } + aiowps_attach_media_uploader('aiowps_htaccess_file'); + aiowps_attach_media_uploader('aiowps_wp_config_file'); + aiowps_attach_media_uploader('aiowps_import_settings_file'); + aiowps_attach_media_uploader('aiowps_db_file'); //TODO - for future use when we implement DB restore + //End of Media Uploader + + //Triggers the more info toggle link + $(".aiowps_more_info_body").hide();//hide the more info on page load + $(".aiowps_more_info_anchor").click(function(){ + $(this).next(".aiowps_more_info_body").animate({ "height": "toggle"}); + var toogle_char_ref = $(this).find(".aiowps_more_info_toggle_char"); + var toggle_char_value = toogle_char_ref.text(); + if(toggle_char_value === "+"){ + toogle_char_ref.text("-"); + } + else{ + toogle_char_ref.text("+"); + } + }); + //End of more info toggle + +}); \ No newline at end of file diff --git a/all-in-one-wp-security/languages/aiowpsecurity-de_DE.mo b/all-in-one-wp-security/languages/aiowpsecurity-de_DE.mo new file mode 100644 index 0000000000000000000000000000000000000000..b46b0555d54ee6ae5450f47e0ea91aa2d9dbf711 GIT binary patch literal 995 zcmYL`J!lj`6vxLHzs^bv5fPkVqsX4Om!M(8AsQ127;+@>gETU^dwV;wnLTD__dbY) zt&NpnBQ{!UBc_UlrVvEXM#~gd))pzn|I7_$xOu<#fA>Ci_wAk>f5vc5;hx3)Y6Z^b zfqhQEeFS|7dp*T6Ff+UHpVZT$n#<|Qz8UJBazC1~?DL7Vs3 z>nC16_4+wz=f3dqSD>wb!Zh#Nw>b&bW}0ikLM{We~Y5an{9h*=M-UH)vuK zsYfEwM9lOkMOQ$X0g$n#&K^?B1PkrpF6mrmD&p7ElrJd0q=?^Z@)c?oTABeb%gO51 zYQ5523YMvqHaEB_3`M+N3#WqGR1jW)8`Z)ntY50(R2CN&=l1)C)mmjX!}m}oSRHgx zXsB;4cT*wN3~wbu=VTgpR_BB1{XC8D7LyLWjrXxPPa+{Z7wa;!yV~D3aTiDRB(0rvUHcHYPB-@4R zU_*pImZ_DH5=Gn*>%=c$b88|=NnMPXXkl~K3@Ndji&?z0tzxH~$4W`s85dJjC}zzl oU#c8yqIGP@!Uc0oLlo9YXWE+Ne}@fwJ6o7E>\n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: CSL v1.x\n" +"X-Poedit-Language: German\n" +"X-Poedit-Country: GERMANY\n" +"X-Poedit-SourceCharset: utf-8\n" +"X-Poedit-KeywordsList: __;_e;__ngettext:1,2;_n:1,2;__ngettext_noop:1,2;_n_noop:1,2;_c,_nc:4c,1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2;\n" +"X-Poedit-Basepath: ../\n" +"X-Poedit-Bookmarks: \n" +"X-Poedit-SearchPath-0: .\n" +"X-Textdomain-Support: yes" + +#: admin/general/wp-security-list-table.php:178 +#@ default +msgid "No items found." +msgstr "" + +#: admin/general/wp-security-list-table.php:281 +#@ default +msgid "Bulk Actions" +msgstr "" + +#: admin/general/wp-security-list-table.php:291 +#@ default +msgid "Apply" +msgstr "" + +#: admin/general/wp-security-list-table.php:365 +#@ default +msgid "Show all dates" +msgstr "" + +#. translators: 1: month name, 2: 4-digit year +#: admin/general/wp-security-list-table.php:378 +#, php-format +#@ default +msgid "%1$s %2$d" +msgstr "" + +#: admin/general/wp-security-list-table.php:394 +#@ default +msgid "List View" +msgstr "" + +#: admin/general/wp-security-list-table.php:395 +#@ default +msgid "Excerpt View" +msgstr "" + +#: admin/general/wp-security-list-table.php:421 +#, php-format +#@ default +msgid "%s pending" +msgstr "" + +#: admin/general/wp-security-list-table.php:477 +#: admin/general/wp-security-list-table.php:881 +#, php-format +#@ default +msgid "1 item" +msgid_plural "%s items" +msgstr[0] "" +msgstr[1] "" + +#: admin/general/wp-security-list-table.php:495 +#@ default +msgid "Go to the first page" +msgstr "" + +#: admin/general/wp-security-list-table.php:502 +#@ default +msgid "Go to the previous page" +msgstr "" + +#: admin/general/wp-security-list-table.php:511 +#@ default +msgid "Current page" +msgstr "" + +#: admin/general/wp-security-list-table.php:517 +#, php-format +#@ default +msgctxt "paging" +msgid "%1$s of %2$s" +msgstr "" + +#: admin/general/wp-security-list-table.php:521 +#@ default +msgid "Go to the next page" +msgstr "" + +#: admin/general/wp-security-list-table.php:528 +#@ default +msgid "Go to the last page" +msgstr "" + +#: admin/general/wp-security-list-table.php:653 +#@ default +msgid "Select All" +msgstr "" + +#: admin/wp-security-admin-init.php:157 +#@ aiowpsecurity +msgid "WP Security" +msgstr "" + +#: admin/wp-security-admin-init.php:158 +#: admin/wp-security-dashboard-menu.php:23 +#@ aiowpsecurity +msgid "Dashboard" +msgstr "" + +#: admin/wp-security-admin-init.php:159 +#@ aiowpsecurity +msgid "Settings" +msgstr "" + +#: admin/wp-security-admin-init.php:160 +#@ aiowpsecurity +msgid "User Accounts" +msgstr "" + +#: admin/wp-security-admin-init.php:161 +#@ aiowpsecurity +msgid "User Login" +msgstr "" + +#: admin/wp-security-admin-init.php:162 +#@ aiowpsecurity +msgid "User Registration" +msgstr "" + +#: admin/wp-security-admin-init.php:163 +#@ aiowpsecurity +msgid "Database Security" +msgstr "" + +#: admin/wp-security-admin-init.php:167 +#@ aiowpsecurity +msgid "Filesystem Security" +msgstr "" + +#: admin/wp-security-admin-init.php:169 +#@ aiowpsecurity +msgid "WHOIS Lookup" +msgstr "" + +#: admin/wp-security-admin-init.php:173 +#@ aiowpsecurity +msgid "Blacklist Manager" +msgstr "" + +#: admin/wp-security-admin-init.php:178 +#@ aiowpsecurity +msgid "Firewall" +msgstr "" + +#: admin/wp-security-admin-init.php:183 +#@ aiowpsecurity +msgid "Brute Force" +msgstr "" + +#: admin/wp-security-admin-init.php:185 +#@ aiowpsecurity +msgid "SPAM Prevention" +msgstr "" + +#: admin/wp-security-admin-init.php:189 +#@ aiowpsecurity +msgid "Scanner" +msgstr "" + +#: admin/wp-security-admin-init.php:191 +#@ aiowpsecurity +msgid "Maintenance" +msgstr "" + +#: admin/wp-security-admin-menu.php:43 +#@ aiowpsecurity +msgid "Settings successfully updated." +msgstr "" + +#: admin/wp-security-admin-menu.php:50 +#@ aiowpsecurity +msgid "The selected record(s) deleted successfully!" +msgstr "" + +#: admin/wp-security-blacklist-menu.php:22 +#@ aiowpsecurity +msgid "Ban Users" +msgstr "" + +#: admin/wp-security-blacklist-menu.php:80 +#@ aiowpsecurity +msgid "Nonce check failed for save blacklist settings!" +msgstr "" + +#: admin/wp-security-blacklist-menu.php:132 +#: admin/wp-security-brute-force-menu.php:608 +#: admin/wp-security-list-comment-spammer-ip.php:147 +#@ aiowpsecurity +msgid "The plugin was unable to write to the .htaccess file. Please edit file manually." +msgstr "" + +#: admin/wp-security-blacklist-menu.php:139 +#@ aiowpsecurity +msgid "Ban IPs or User Agents" +msgstr "" + +#: admin/wp-security-blacklist-menu.php:142 +#@ aiowpsecurity +msgid "The All In One WP Security Blacklist feature gives you the option of banning certain host IP addresses or ranges and also user agents." +msgstr "" + +#: admin/wp-security-blacklist-menu.php:143 +#@ aiowpsecurity +msgid "This feature will deny total site access for users which have IP addresses or user agents matching those which you have configured in the settings below." +msgstr "" + +#: admin/wp-security-blacklist-menu.php:144 +#@ aiowpsecurity +msgid "The plugin achieves this by making appropriate modifications to your .htaccess file." +msgstr "" + +#: admin/wp-security-blacklist-menu.php:145 +#@ aiowpsecurity +msgid "By blocking people via the .htaccess file your are using the most secure first line of defence which denies all access to blacklisted visitors as soon as they hit your hosting server." +msgstr "" + +#: admin/wp-security-blacklist-menu.php:151 +#@ aiowpsecurity +msgid "IP Hosts and User Agent Blacklist Settings" +msgstr "" + +#: admin/wp-security-blacklist-menu.php:162 +#@ aiowpsecurity +msgid "Enable IP or User Agent Blacklisting" +msgstr "" + +#: admin/wp-security-blacklist-menu.php:165 +#@ aiowpsecurity +msgid "Check this if you want to enable the banning (or blacklisting) of selected IP addresses and/or user agents specified in the settings below" +msgstr "" + +#: admin/wp-security-blacklist-menu.php:169 +#@ aiowpsecurity +msgid "Enter IP Addresses:" +msgstr "" + +#: admin/wp-security-blacklist-menu.php:173 +#@ aiowpsecurity +msgid "Enter one or more IP addresses or IP ranges." +msgstr "" + +#: admin/wp-security-blacklist-menu.php:174 +#: admin/wp-security-blacklist-menu.php:194 +#: admin/wp-security-brute-force-menu.php:343 +#: admin/wp-security-brute-force-menu.php:377 +#: admin/wp-security-brute-force-menu.php:400 +#: admin/wp-security-brute-force-menu.php:421 +#: admin/wp-security-brute-force-menu.php:664 +#: admin/wp-security-filescan-menu.php:291 +#: admin/wp-security-filescan-menu.php:308 +#: admin/wp-security-firewall-menu.php:165 +#: admin/wp-security-firewall-menu.php:195 +#: admin/wp-security-firewall-menu.php:326 +#: admin/wp-security-firewall-menu.php:356 +#: admin/wp-security-firewall-menu.php:387 +#: admin/wp-security-firewall-menu.php:415 +#: admin/wp-security-firewall-menu.php:444 +#: admin/wp-security-firewall-menu.php:532 +#: admin/wp-security-firewall-menu.php:622 +#: admin/wp-security-firewall-menu.php:824 +#: admin/wp-security-firewall-menu.php:847 +#: admin/wp-security-spam-menu.php:174 +#: admin/wp-security-spam-menu.php:259 +#@ aiowpsecurity +msgid "More Info" +msgstr "" + +#: admin/wp-security-blacklist-menu.php:177 +#: admin/wp-security-brute-force-menu.php:667 +#@ aiowpsecurity +msgid "Each IP address must be on a new line." +msgstr "" + +#: admin/wp-security-blacklist-menu.php:178 +#: admin/wp-security-brute-force-menu.php:668 +#@ aiowpsecurity +msgid "To specify an IP range use a wildcard \"*\" character. Acceptable ways to use wildcards is shown in the examples below:" +msgstr "" + +#: admin/wp-security-blacklist-menu.php:179 +#: admin/wp-security-brute-force-menu.php:669 +#@ aiowpsecurity +msgid "Example 1: 195.47.89.*" +msgstr "" + +#: admin/wp-security-blacklist-menu.php:180 +#: admin/wp-security-brute-force-menu.php:670 +#@ aiowpsecurity +msgid "Example 2: 195.47.*.*" +msgstr "" + +#: admin/wp-security-blacklist-menu.php:181 +#: admin/wp-security-brute-force-menu.php:671 +#@ aiowpsecurity +msgid "Example 3: 195.*.*.*" +msgstr "" + +#: admin/wp-security-blacklist-menu.php:188 +#@ aiowpsecurity +msgid "Enter User Agents:" +msgstr "" + +#: admin/wp-security-blacklist-menu.php:193 +#@ aiowpsecurity +msgid "Enter one or more user agent strings." +msgstr "" + +#: admin/wp-security-blacklist-menu.php:197 +#@ aiowpsecurity +msgid "Each user agent string must be on a new line." +msgstr "" + +#: admin/wp-security-blacklist-menu.php:198 +#@ aiowpsecurity +msgid "Example 1 - A single user agent string to block:" +msgstr "" + +#: admin/wp-security-blacklist-menu.php:200 +#@ aiowpsecurity +msgid "Example 2 - A list of more than 1 user agent strings to block" +msgstr "" + +#: admin/wp-security-blacklist-menu.php:208 +#: admin/wp-security-brute-force-menu.php:188 +#: admin/wp-security-brute-force-menu.php:544 +#: admin/wp-security-brute-force-menu.php:678 +#: admin/wp-security-database-menu.php:356 +#: admin/wp-security-filescan-menu.php:329 +#: admin/wp-security-filesystem-menu.php:231 +#: admin/wp-security-firewall-menu.php:700 +#: admin/wp-security-firewall-menu.php:866 +#: admin/wp-security-settings-menu.php:493 +#: admin/wp-security-spam-menu.php:189 +#: admin/wp-security-user-login-menu.php:239 +#: admin/wp-security-user-login-menu.php:407 +#: admin/wp-security-user-registration-menu.php:146 +#: admin/wp-security-user-registration-menu.php:221 +#@ aiowpsecurity +msgid "Save Settings" +msgstr "" + +#: admin/wp-security-brute-force-menu.php:25 +#: admin/wp-security-dashboard-menu.php:344 +#: admin/wp-security-dashboard-menu.php:353 +#@ aiowpsecurity +msgid "Rename Login Page" +msgstr "" + +#: admin/wp-security-brute-force-menu.php:26 +#@ aiowpsecurity +msgid "Cookie Based Brute Force Prevention" +msgstr "" + +#: admin/wp-security-brute-force-menu.php:27 +#: classes/grade-system/wp-security-feature-item-manager.php:44 +#@ aiowpsecurity +msgid "Login Captcha" +msgstr "" + +#: admin/wp-security-brute-force-menu.php:28 +#: admin/wp-security-brute-force-menu.php:615 +#@ aiowpsecurity +msgid "Login Whitelist" +msgstr "" + +#: admin/wp-security-brute-force-menu.php:99 +#@ aiowpsecurity +msgid "Please enter a value for your login page slug." +msgstr "" + +#: admin/wp-security-brute-force-menu.php:103 +#@ aiowpsecurity +msgid "You cannot use the value \"wp-admin\" for your login page slug." +msgstr "" + +#: admin/wp-security-brute-force-menu.php:108 +#: admin/wp-security-database-menu.php:271 +#: admin/wp-security-filescan-menu.php:169 +#: admin/wp-security-firewall-menu.php:769 +#: admin/wp-security-spam-menu.php:219 +#: admin/wp-security-user-login-menu.php:123 +#: admin/wp-security-user-login-menu.php:360 +#@ aiowpsecurity +msgid "Attention!" +msgstr "" + +#: admin/wp-security-brute-force-menu.php:127 +#@ aiowpsecurity +msgid "Could not delete the Cookie-based directives from the .htaccess file. Please check the file permissions." +msgstr "" + +#: admin/wp-security-brute-force-menu.php:137 +#@ aiowpsecurity +msgid "An effective Brute Force prevention technique is to change the default WordPress login page URL." +msgstr "" + +#: admin/wp-security-brute-force-menu.php:138 +#@ aiowpsecurity +msgid "Normally if you wanted to login to WordPress you would type your site's home URL followed by wp-login.php." +msgstr "" + +#: admin/wp-security-brute-force-menu.php:139 +#@ aiowpsecurity +msgid "This feature allows you to change the login URL by setting your own slug and renaming the last portion of the login URL which contains the wp-login.php to any string that you like." +msgstr "" + +#: admin/wp-security-brute-force-menu.php:140 +#@ aiowpsecurity +msgid "By doing this, malicious bots and hackers will not be able to access your login page because they will not know the correct login page URL." +msgstr "" + +#: admin/wp-security-brute-force-menu.php:142 +#@ aiowpsecurity +msgid "You may also be interested in the following alternative brute force prevention features:" +msgstr "" + +#: admin/wp-security-brute-force-menu.php:153 +#@ aiowpsecurity +msgid "Your WordPress login page URL has been renamed." +msgstr "" + +#: admin/wp-security-brute-force-menu.php:154 +#@ aiowpsecurity +msgid "Your current login URL is:" +msgstr "" + +#: admin/wp-security-brute-force-menu.php:156 +#@ aiowpsecurity +msgid "NOTE: If you already had the Cookie-Based Brute Force Prevention feature active, the plugin has automatically deactivated it because only one of these features can be active at any one time." +msgstr "" + +#: admin/wp-security-brute-force-menu.php:163 +#@ aiowpsecurity +msgid "Rename Login Page Settings" +msgstr "" + +#: admin/wp-security-brute-force-menu.php:175 +#@ aiowpsecurity +msgid "Enable Rename Login Page Feature" +msgstr "" + +#: admin/wp-security-brute-force-menu.php:178 +#@ aiowpsecurity +msgid "Check this if you want to enable the rename login page feature" +msgstr "" + +#: admin/wp-security-brute-force-menu.php:182 +#@ aiowpsecurity +msgid "Login Page URL" +msgstr "" + +#: admin/wp-security-brute-force-menu.php:184 +#@ aiowpsecurity +msgid "Enter a string which will represent your secure login page slug. You are enouraged to choose something which is hard to guess and only you will remember." +msgstr "" + +#: admin/wp-security-brute-force-menu.php:217 +#@ aiowpsecurity +msgid "Settings have not been saved - your secret word must consist only of alphanumeric characters, ie, letters and/or numbers only!" +msgstr "" + +#: admin/wp-security-brute-force-menu.php:236 +#@ aiowpsecurity +msgid "You have successfully enabled the cookie based brute force prevention feature" +msgstr "" + +#: admin/wp-security-brute-force-menu.php:237 +#@ aiowpsecurity +msgid "From now on you will need to log into your WP Admin using the following URL:" +msgstr "" + +#: admin/wp-security-brute-force-menu.php:239 +#@ aiowpsecurity +msgid "It is important that you save this URL value somewhere in case you forget it, OR," +msgstr "" + +#: admin/wp-security-brute-force-menu.php:240 +#, php-format +#@ aiowpsecurity +msgid "simply remember to add a \"?%s=1\" to your current site URL address." +msgstr "" + +#: admin/wp-security-brute-force-menu.php:246 +#@ aiowpsecurity +msgid "You have successfully saved cookie based brute force prevention feature settings." +msgstr "" + +#: admin/wp-security-brute-force-menu.php:281 +#: admin/wp-security-filesystem-menu.php:275 +#: admin/wp-security-firewall-menu.php:119 +#: admin/wp-security-firewall-menu.php:287 +#: admin/wp-security-firewall-menu.php:498 +#: admin/wp-security-firewall-menu.php:667 +#: admin/wp-security-spam-menu.php:106 +#@ aiowpsecurity +msgid "Could not write to the .htaccess file. Please check the file permissions." +msgstr "" + +#: admin/wp-security-brute-force-menu.php:291 +#@ aiowpsecurity +msgid "Brute Force Prevention Firewall Settings" +msgstr "" + +#: admin/wp-security-brute-force-menu.php:296 +#@ aiowpsecurity +msgid "A Brute Force Attack is when a hacker tries many combinations of usernames and passwords until they succeed in guessing the right combination." +msgstr "" + +#: admin/wp-security-brute-force-menu.php:297 +#@ aiowpsecurity +msgid "Due to the fact that at any one time there may be many concurrent login attempts occurring on your site via malicious automated robots, this also has a negative impact on your server's memory and performance." +msgstr "" + +#: admin/wp-security-brute-force-menu.php:298 +#@ aiowpsecurity +msgid "The features in this tab will stop the majority of Brute Force Login Attacks at the .htaccess level thus providing even better protection for your WP login page and also reducing the load on your server because the system does not have to run PHP code to process the login attempts." +msgstr "" + +#: admin/wp-security-brute-force-menu.php:305 +#, php-format +#@ aiowpsecurity +msgid "Even though this feature should not have any impact on your site's general functionality you are strongly encouraged to take a %s of your .htaccess file before proceeding." +msgstr "" + +#: admin/wp-security-brute-force-menu.php:306 +#@ aiowpsecurity +msgid "If this feature is not used correctly, you can get locked out of your site. A backed up .htaccess file will come in handy if that happens." +msgstr "" + +#: admin/wp-security-brute-force-menu.php:307 +#, php-format +#@ aiowpsecurity +msgid "To learn more about how to use this feature please watch the following %s." +msgstr "" + +#: admin/wp-security-brute-force-menu.php:320 +#@ aiowpsecurity +msgid "NOTE: If you already had the Rename Login Page feature active, the plugin has automatically deactivated it because only one of these features can be active at any one time." +msgstr "" + +#: admin/wp-security-brute-force-menu.php:328 +#@ aiowpsecurity +msgid "Cookie Based Brute Force Login Prevention" +msgstr "" + +#: admin/wp-security-brute-force-menu.php:339 +#: classes/grade-system/wp-security-feature-item-manager.php:87 +#@ aiowpsecurity +msgid "Enable Brute Force Attack Prevention" +msgstr "" + +#: admin/wp-security-brute-force-menu.php:342 +#@ aiowpsecurity +msgid "Check this if you want to protect your login page from Brute Force Attack." +msgstr "" + +#: admin/wp-security-brute-force-menu.php:347 +#@ aiowpsecurity +msgid "This feature will deny access to your WordPress login page for all people except those who have a special cookie in their browser." +msgstr "" + +#: admin/wp-security-brute-force-menu.php:349 +#@ aiowpsecurity +msgid "To use this feature do the following:" +msgstr "" + +#: admin/wp-security-brute-force-menu.php:351 +#@ aiowpsecurity +msgid "1) Enable the checkbox." +msgstr "" + +#: admin/wp-security-brute-force-menu.php:353 +#@ aiowpsecurity +msgid "2) Enter a secret word consisting of alphanumeric characters which will be difficult to guess. This secret word will be useful whenever you need to know the special URL which you will use to access the login page (see point below)." +msgstr "" + +#: admin/wp-security-brute-force-menu.php:355 +#@ aiowpsecurity +msgid "3) You will then be provided with a special login URL. You will need to use this URL to login to your WordPress site instead of the usual login URL. NOTE: The system will deposit a special cookie in your browser which will allow you access to the WordPress administration login page." +msgstr "" + +#: admin/wp-security-brute-force-menu.php:357 +#@ aiowpsecurity +msgid "Any person trying to access your login page who does not have the special cookie in their browser will be automatically blocked." +msgstr "" + +#: admin/wp-security-brute-force-menu.php:364 +#@ aiowpsecurity +msgid "Secret Word" +msgstr "" + +#: admin/wp-security-brute-force-menu.php:366 +#@ aiowpsecurity +msgid "Choose a secret word consisting of alphanumeric characters which you can use to access your special URL. Your are highly encouraged to choose a word which will be difficult to guess." +msgstr "" + +#: admin/wp-security-brute-force-menu.php:370 +#@ aiowpsecurity +msgid "Re-direct URL" +msgstr "" + +#: admin/wp-security-brute-force-menu.php:374 +#@ aiowpsecurity +msgid "Specify a URL to redirect a hacker to when they try to access your WordPress login page." +msgstr "" + +#: admin/wp-security-brute-force-menu.php:381 +#@ aiowpsecurity +msgid "The URL specified here can be any site's URL and does not have to be your own. For example you can be as creative as you like and send hackers to the CIA or NSA home page." +msgstr "" + +#: admin/wp-security-brute-force-menu.php:383 +#@ aiowpsecurity +msgid "This field will default to: http://127.0.0.1 if you do not enter a value." +msgstr "" + +#: admin/wp-security-brute-force-menu.php:385 +#@ aiowpsecurity +msgid "Useful Tip:" +msgstr "" + +#: admin/wp-security-brute-force-menu.php:387 +#@ aiowpsecurity +msgid "It's a good idea to not redirect attempted brute force login attempts to your site because it increases the load on your server." +msgstr "" + +#: admin/wp-security-brute-force-menu.php:389 +#@ aiowpsecurity +msgid "Redirecting a hacker or malicious bot back to \"http://127.0.0.1\" is ideal because it deflects them back to their own local host and puts the load on their server instead of yours." +msgstr "" + +#: admin/wp-security-brute-force-menu.php:396 +#@ aiowpsecurity +msgid "My Site Has Posts Or Pages Which Are Password Protected" +msgstr "" + +#: admin/wp-security-brute-force-menu.php:399 +#@ aiowpsecurity +msgid "Check this if you are using the native WordPress password protection feature for some or all of your blog posts or pages." +msgstr "" + +#: admin/wp-security-brute-force-menu.php:404 +#@ aiowpsecurity +msgid "In the cases where you are protecting some of your posts or pages using the in-built WordPress password protection feature, a few extra lines of directives and exceptions need to be added to your .htacces file so that people trying to access pages are not automatically blocked." +msgstr "" + +#: admin/wp-security-brute-force-menu.php:406 +#@ aiowpsecurity +msgid "By enabling this checkbox the plugin will add the necessary rules and exceptions to your .htacces file so that people trying to access these pages are not automatically blocked." +msgstr "" + +#: admin/wp-security-brute-force-menu.php:408 +#@ aiowpsecurity +msgid "Helpful Tip:" +msgstr "" + +#: admin/wp-security-brute-force-menu.php:410 +#@ aiowpsecurity +msgid "If you do not use the WordPress password protection feature for your posts or pages then it is highly recommended that you leave this checkbox disabled." +msgstr "" + +#: admin/wp-security-brute-force-menu.php:417 +#@ aiowpsecurity +msgid "My Site Has a Theme or Plugins Which Use AJAX" +msgstr "" + +#: admin/wp-security-brute-force-menu.php:420 +#@ aiowpsecurity +msgid "Check this if your site uses AJAX functionality." +msgstr "" + +#: admin/wp-security-brute-force-menu.php:425 +#@ aiowpsecurity +msgid "In the cases where your WordPress installation has a theme or plugins which use AJAX, a few extra lines of directives and exceptions need to be added to your .htacces file to prevent AJAX requests from being automatically blocked by the brute force prevention feature." +msgstr "" + +#: admin/wp-security-brute-force-menu.php:427 +#@ aiowpsecurity +msgid "By enabling this checkbox the plugin will add the necessary rules and exceptions to your .htacces file so that AJAX operations will work as expected." +msgstr "" + +#: admin/wp-security-brute-force-menu.php:442 +#@ aiowpsecurity +msgid "The cookie test was successful. You can now enable this feature." +msgstr "" + +#: admin/wp-security-brute-force-menu.php:445 +#@ aiowpsecurity +msgid "Save Feature Settings" +msgstr "" + +#: admin/wp-security-brute-force-menu.php:452 +#@ aiowpsecurity +msgid "The cookie test failed on this server. So this feature cannot be used on this site." +msgstr "" + +#: admin/wp-security-brute-force-menu.php:457 +#@ aiowpsecurity +msgid "Before using this feature you are required to perform a cookie test first. This is to make sure that your browser cookie is working correctly and that you won't lock yourself out." +msgstr "" + +#: admin/wp-security-brute-force-menu.php:459 +#@ aiowpsecurity +msgid "Perform Cookie Test" +msgstr "" + +#: admin/wp-security-brute-force-menu.php:498 +#@ aiowpsecurity +msgid "This feature allows you to add a captcha form on the WordPress login page." +msgstr "" + +#: admin/wp-security-brute-force-menu.php:499 +#@ aiowpsecurity +msgid "Users who attempt to login will also need to enter the answer to a simple mathematical question - if they enter the wrong answer, the plugin will not allow them login even if they entered the correct username and password." +msgstr "" + +#: admin/wp-security-brute-force-menu.php:500 +#@ aiowpsecurity +msgid "Therefore, adding a captcha form on the login page is another effective yet simple \"Brute Force\" prevention technique." +msgstr "" + +#: admin/wp-security-brute-force-menu.php:506 +#@ aiowpsecurity +msgid "Login Form Captcha Settings" +msgstr "" + +#: admin/wp-security-brute-force-menu.php:517 +#@ aiowpsecurity +msgid "Enable Captcha On Login Page" +msgstr "" + +#: admin/wp-security-brute-force-menu.php:520 +#@ aiowpsecurity +msgid "Check this if you want to insert a captcha form on the login page" +msgstr "" + +#: admin/wp-security-brute-force-menu.php:526 +#@ aiowpsecurity +msgid "Lost Password Form Captcha Settings" +msgstr "" + +#: admin/wp-security-brute-force-menu.php:536 +#@ aiowpsecurity +msgid "Enable Captcha On Lost Password Page" +msgstr "" + +#: admin/wp-security-brute-force-menu.php:539 +#@ aiowpsecurity +msgid "Check this if you want to insert a captcha form on the lost password page" +msgstr "" + +#: admin/wp-security-brute-force-menu.php:561 +#@ aiowpsecurity +msgid "Nonce check failed for save whitelist settings!" +msgstr "" + +#: admin/wp-security-brute-force-menu.php:618 +#@ aiowpsecurity +msgid "The All In One WP Security Whitelist feature gives you the option of only allowing certain IP addresses or ranges to have access to your WordPress login page." +msgstr "" + +#: admin/wp-security-brute-force-menu.php:619 +#@ aiowpsecurity +msgid "This feature will deny login access for all IP addresses which are not in your whitelist as configured in the settings below." +msgstr "" + +#: admin/wp-security-brute-force-menu.php:620 +#@ aiowpsecurity +msgid "The plugin achieves this by writing the appropriate directives to your .htaccess file." +msgstr "" + +#: admin/wp-security-brute-force-menu.php:621 +#@ aiowpsecurity +msgid "By allowing/blocking IP addresses via the .htaccess file your are using the most secure first line of defence because login access will only be granted to whitelisted IP addresses and other addresses will be blocked as soon as they try to access your login page." +msgstr "" + +#: admin/wp-security-brute-force-menu.php:628 +#, php-format +#@ aiowpsecurity +msgid "Attention: If in addition to enabling the white list feature, you also have the %s feature enabled, you will still need to use your secret word in the URL when trying to access your WordPress login page." +msgstr "" + +#: admin/wp-security-brute-force-menu.php:629 +#@ aiowpsecurity +msgid "These features are NOT functionally related. Having both of them enabled on your site means you are creating 2 layers of security." +msgstr "" + +#: admin/wp-security-brute-force-menu.php:634 +#@ aiowpsecurity +msgid "Login IP Whitelist Settings" +msgstr "" + +#: admin/wp-security-brute-force-menu.php:645 +#@ aiowpsecurity +msgid "Enable IP Whitelisting" +msgstr "" + +#: admin/wp-security-brute-force-menu.php:648 +#@ aiowpsecurity +msgid "Check this if you want to enable the whitelisting of selected IP addresses specified in the settings below" +msgstr "" + +#: admin/wp-security-brute-force-menu.php:652 +#@ aiowpsecurity +msgid "Your Current IP Address" +msgstr "" + +#: admin/wp-security-brute-force-menu.php:655 +#@ aiowpsecurity +msgid "You can copy and paste this address in the text box below if you want to include it in your login whitelist." +msgstr "" + +#: admin/wp-security-brute-force-menu.php:659 +#@ aiowpsecurity +msgid "Enter Whitelisted IP Addresses:" +msgstr "" + +#: admin/wp-security-brute-force-menu.php:663 +#@ aiowpsecurity +msgid "Enter one or more IP addresses or IP ranges you wish to include in your whitelist. Only the addresses specified here will have access to the WordPress login page." +msgstr "" + +#: admin/wp-security-dashboard-menu.php:24 +#@ aiowpsecurity +msgid "System Info" +msgstr "" + +#: admin/wp-security-dashboard-menu.php:25 +#: admin/wp-security-dashboard-menu.php:436 +#@ aiowpsecurity +msgid "Locked IP Addresses" +msgstr "" + +#: admin/wp-security-dashboard-menu.php:75 +#@ aiowpsecurity +msgid "For information, updates and documentation, please visit the" +msgstr "" + +#: admin/wp-security-dashboard-menu.php:75 +#@ aiowpsecurity +msgid "AIO WP Security & Firewall Plugin" +msgstr "" + +#: admin/wp-security-dashboard-menu.php:75 +#@ aiowpsecurity +msgid "Page" +msgstr "" + +#: admin/wp-security-dashboard-menu.php:76 +#@ aiowpsecurity +msgid "Follow us" +msgstr "" + +#: admin/wp-security-dashboard-menu.php:76 +#@ aiowpsecurity +msgid "Twitter, Google+ or via Email to stay up to date about the new security features of this plugin." +msgstr "" + +#: admin/wp-security-dashboard-menu.php:90 +#@ aiowpsecurity +msgid "Security Strength Meter" +msgstr "" + +#: admin/wp-security-dashboard-menu.php:119 +#@ aiowpsecurity +msgid "Total Achievable Points: " +msgstr "" + +#: admin/wp-security-dashboard-menu.php:121 +#@ aiowpsecurity +msgid "Current Score of Your Site: " +msgstr "" + +#: admin/wp-security-dashboard-menu.php:131 +#@ aiowpsecurity +msgid "Security Points Breakdown" +msgstr "" + +#: admin/wp-security-dashboard-menu.php:172 +#@ aiowpsecurity +msgid "Critical Feature Status" +msgstr "" + +#: admin/wp-security-dashboard-menu.php:176 +#@ aiowpsecurity +msgid "Below is the current status of the critical features that you should activate on your site to achieve a minimum level of recommended security" +msgstr "" + +#: admin/wp-security-dashboard-menu.php:180 +#@ aiowpsecurity +msgid "Admin Username" +msgstr "" + +#: admin/wp-security-dashboard-menu.php:195 +#: admin/wp-security-user-login-menu.php:25 +#: classes/grade-system/wp-security-feature-item-manager.php:42 +#@ aiowpsecurity +msgid "Login Lockdown" +msgstr "" + +#: admin/wp-security-dashboard-menu.php:210 +#@ aiowpsecurity +msgid "File Permission" +msgstr "" + +#: admin/wp-security-dashboard-menu.php:225 +#@ aiowpsecurity +msgid "Basic Firewall" +msgstr "" + +#: admin/wp-security-dashboard-menu.php:243 +#@ aiowpsecurity +msgid "Last 5 Logins" +msgstr "" + +#: admin/wp-security-dashboard-menu.php:257 +#@ aiowpsecurity +msgid "No data found!" +msgstr "" + +#: admin/wp-security-dashboard-menu.php:261 +#@ aiowpsecurity +msgid "Last 5 logins summary:" +msgstr "" + +#: admin/wp-security-dashboard-menu.php:265 +#@ aiowpsecurity +msgid "User" +msgstr "" + +#: admin/wp-security-dashboard-menu.php:266 +#@ aiowpsecurity +msgid "Date" +msgstr "" + +#: admin/wp-security-dashboard-menu.php:267 +#@ aiowpsecurity +msgid "IP" +msgstr "" + +#: admin/wp-security-dashboard-menu.php:288 +#@ aiowpsecurity +msgid "Maintenance Mode Status" +msgstr "" + +#: admin/wp-security-dashboard-menu.php:292 +#@ aiowpsecurity +msgid "Maintenance mode is currently enabled. Remember to turn it off when you are done" +msgstr "" + +#: admin/wp-security-dashboard-menu.php:295 +#@ aiowpsecurity +msgid "Maintenance mode is currently off." +msgstr "" + +#: admin/wp-security-dashboard-menu.php:299 +#@ aiowpsecurity +msgid "Maintenance Mode" +msgstr "" + +#: admin/wp-security-dashboard-menu.php:321 +#@ aiowpsecurity +msgid "Cookie Based Brute Prevention" +msgstr "" + +#: admin/wp-security-dashboard-menu.php:324 +#@ aiowpsecurity +msgid "Cookie-Based Brute Force" +msgstr "" + +#: admin/wp-security-dashboard-menu.php:328 +#: admin/wp-security-dashboard-menu.php:356 +#, php-format +#@ aiowpsecurity +msgid "The %s feature is currently active." +msgstr "" + +#: admin/wp-security-dashboard-menu.php:329 +#: admin/wp-security-dashboard-menu.php:357 +#@ aiowpsecurity +msgid "Your new WordPress login URL is now:" +msgstr "" + +#: admin/wp-security-dashboard-menu.php:389 +#: admin/wp-security-user-login-menu.php:29 +#@ aiowpsecurity +msgid "Logged In Users" +msgstr "" + +#: admin/wp-security-dashboard-menu.php:399 +#@ aiowpsecurity +msgid "Number of users currently logged in site-wide is:" +msgstr "" + +#: admin/wp-security-dashboard-menu.php:400 +#: admin/wp-security-dashboard-menu.php:422 +#: admin/wp-security-dashboard-menu.php:450 +#, php-format +#@ aiowpsecurity +msgid "Go to the %s menu to see more details" +msgstr "" + +#: admin/wp-security-dashboard-menu.php:405 +#@ aiowpsecurity +msgid "There are no other site-wide users currently logged in." +msgstr "" + +#: admin/wp-security-dashboard-menu.php:421 +#@ aiowpsecurity +msgid "Number of users currently logged into your site (including you) is:" +msgstr "" + +#: admin/wp-security-dashboard-menu.php:427 +#@ aiowpsecurity +msgid "There are no other users currently logged in." +msgstr "" + +#: admin/wp-security-dashboard-menu.php:444 +#@ aiowpsecurity +msgid "There are no IP addresses currently locked out." +msgstr "" + +#: admin/wp-security-dashboard-menu.php:449 +#@ aiowpsecurity +msgid "Number of temporarily locked out IP addresses: " +msgstr "" + +#: admin/wp-security-dashboard-menu.php:462 +#@ aiowpsecurity +msgid "Spread the Word" +msgstr "" + +#: admin/wp-security-dashboard-menu.php:465 +#@ aiowpsecurity +msgid "We are working hard to make your WordPress site more secure. Please support us, here is how:" +msgstr "" + +#: admin/wp-security-dashboard-menu.php:489 +#@ aiowpsecurity +msgid "Site Info" +msgstr "" + +#: admin/wp-security-dashboard-menu.php:491 +#@ aiowpsecurity +msgid "Plugin Version" +msgstr "" + +#: admin/wp-security-dashboard-menu.php:492 +#@ aiowpsecurity +msgid "WP Version" +msgstr "" + +#: admin/wp-security-dashboard-menu.php:494 +#: admin/wp-security-dashboard-menu.php:496 +#: admin/wp-security-dashboard-menu.php:592 +#@ aiowpsecurity +msgid "Version" +msgstr "" + +#: admin/wp-security-dashboard-menu.php:495 +#@ aiowpsecurity +msgid "Table Prefix" +msgstr "" + +#: admin/wp-security-dashboard-menu.php:497 +#@ aiowpsecurity +msgid "Session Save Path" +msgstr "" + +#: admin/wp-security-dashboard-menu.php:499 +#@ aiowpsecurity +msgid "Server Name" +msgstr "" + +#: admin/wp-security-dashboard-menu.php:500 +#@ aiowpsecurity +msgid "Cookie Domain" +msgstr "" + +#: admin/wp-security-dashboard-menu.php:501 +#@ aiowpsecurity +msgid "Library Present" +msgstr "" + +#: admin/wp-security-dashboard-menu.php:502 +#@ aiowpsecurity +msgid "Debug File Write Permissions" +msgstr "" + +#: admin/wp-security-dashboard-menu.php:506 +#@ aiowpsecurity +msgid "PHP Info" +msgstr "" + +#: admin/wp-security-dashboard-menu.php:508 +#@ aiowpsecurity +msgid "PHP Version" +msgstr "" + +#: admin/wp-security-dashboard-menu.php:509 +#@ aiowpsecurity +msgid "PHP Memory Usage" +msgstr "" + +#: admin/wp-security-dashboard-menu.php:510 +#@ aiowpsecurity +msgid " MB" +msgstr "" + +#: admin/wp-security-dashboard-menu.php:516 +#: admin/wp-security-dashboard-menu.php:524 +#: admin/wp-security-dashboard-menu.php:532 +#: admin/wp-security-dashboard-menu.php:574 +#@ aiowpsecurity +msgid "N/A" +msgstr "" + +#: admin/wp-security-dashboard-menu.php:519 +#@ aiowpsecurity +msgid "PHP Memory Limit" +msgstr "" + +#: admin/wp-security-dashboard-menu.php:527 +#@ aiowpsecurity +msgid "PHP Max Upload Size" +msgstr "" + +#: admin/wp-security-dashboard-menu.php:535 +#@ aiowpsecurity +msgid "PHP Max Post Size" +msgstr "" + +#: admin/wp-security-dashboard-menu.php:538 +#: admin/wp-security-dashboard-menu.php:546 +#: admin/wp-security-dashboard-menu.php:555 +#: admin/wp-security-dashboard-menu.php:563 +#@ aiowpsecurity +msgid "On" +msgstr "" + +#: admin/wp-security-dashboard-menu.php:540 +#: admin/wp-security-dashboard-menu.php:548 +#: admin/wp-security-dashboard-menu.php:557 +#: admin/wp-security-dashboard-menu.php:565 +#@ aiowpsecurity +msgid "Off" +msgstr "" + +#: admin/wp-security-dashboard-menu.php:543 +#@ aiowpsecurity +msgid "PHP Safe Mode" +msgstr "" + +#: admin/wp-security-dashboard-menu.php:551 +#@ aiowpsecurity +msgid "PHP Allow URL fopen" +msgstr "" + +#: admin/wp-security-dashboard-menu.php:560 +#@ default +msgid "PHP Allow URL Include" +msgstr "" + +#: admin/wp-security-dashboard-menu.php:568 +#@ aiowpsecurity +msgid "PHP Display Errors" +msgstr "" + +#: admin/wp-security-dashboard-menu.php:577 +#@ aiowpsecurity +msgid "PHP Max Script Execution Time" +msgstr "" + +#: admin/wp-security-dashboard-menu.php:577 +#@ default +msgid "Seconds" +msgstr "" + +#: admin/wp-security-dashboard-menu.php:581 +#@ aiowpsecurity +msgid "Active Plugins" +msgstr "" + +#: admin/wp-security-dashboard-menu.php:591 +#: admin/wp-security-filesystem-menu.php:130 +#: admin/wp-security-filesystem-menu.php:149 +#@ aiowpsecurity +msgid "Name" +msgstr "" + +#: admin/wp-security-dashboard-menu.php:593 +#@ aiowpsecurity +msgid "Plugin URL" +msgstr "" + +#: admin/wp-security-dashboard-menu.php:629 +#@ aiowpsecurity +msgid "Currently Locked Out IP Addresses and Ranges" +msgstr "" + +#: admin/wp-security-database-menu.php:26 +#: admin/wp-security-database-menu.php:31 +#: classes/grade-system/wp-security-feature-item-manager.php:62 +#@ aiowpsecurity +msgid "DB Backup" +msgstr "" + +#: admin/wp-security-database-menu.php:30 +#: classes/grade-system/wp-security-feature-item-manager.php:60 +#@ aiowpsecurity +msgid "DB Prefix" +msgstr "" + +#: admin/wp-security-database-menu.php:93 +#@ aiowpsecurity +msgid "Nonce check failed for DB prefix change operation!" +msgstr "" + +#: admin/wp-security-database-menu.php:101 +#@ aiowpsecurity +msgid "The plugin has detected that it cannot write to the wp-config.php file. This feature can only be used if the plugin can successfully write to the wp-config.php file." +msgstr "" + +#: admin/wp-security-database-menu.php:114 +#@ aiowpsecurity +msgid "Please enter a value for the DB prefix." +msgstr "" + +#: admin/wp-security-database-menu.php:123 +#@ aiowpsecurity +msgid "ERROR: The table prefix can only contain numbers, letters, and underscores." +msgstr "" + +#: admin/wp-security-database-menu.php:131 +#@ aiowpsecurity +msgid "Change Database Prefix" +msgstr "" + +#: admin/wp-security-database-menu.php:134 +#@ aiowpsecurity +msgid "Your WordPress DB is the most important asset of your website because it contains a lot of your site's precious information." +msgstr "" + +#: admin/wp-security-database-menu.php:135 +#@ aiowpsecurity +msgid "The DB is also a target for hackers via methods such as SQL injections and malicious and automated code which targets certain tables." +msgstr "" + +#: admin/wp-security-database-menu.php:136 +#@ aiowpsecurity +msgid "One way to add a layer of protection for your DB is to change the default WordPress table prefix from \"wp_\" to something else which will be difficult for hackers to guess." +msgstr "" + +#: admin/wp-security-database-menu.php:137 +#@ aiowpsecurity +msgid "This feature allows you to easily change the prefix to a value of your choice or to a random value set by this plugin." +msgstr "" + +#: admin/wp-security-database-menu.php:143 +#@ aiowpsecurity +msgid "DB Prefix Options" +msgstr "" + +#: admin/wp-security-database-menu.php:154 +#, php-format +#@ aiowpsecurity +msgid "It is recommended that you perform a %s before using this feature" +msgstr "" + +#: admin/wp-security-database-menu.php:163 +#@ aiowpsecurity +msgid "Current DB Table Prefix" +msgstr "" + +#: admin/wp-security-database-menu.php:169 +#@ aiowpsecurity +msgid "" +"Your site is currently using the default WordPress DB prefix value of \"wp_\". \n" +" To increase your site's security you should consider changing the DB prefix value to another value." +msgstr "" + +#: admin/wp-security-database-menu.php:176 +#@ aiowpsecurity +msgid "Generate New DB Table Prefix" +msgstr "" + +#: admin/wp-security-database-menu.php:179 +#@ aiowpsecurity +msgid "Check this if you want the plugin to generate a random 6 character string for the table prefix" +msgstr "" + +#: admin/wp-security-database-menu.php:180 +#@ aiowpsecurity +msgid "OR" +msgstr "" + +#: admin/wp-security-database-menu.php:182 +#@ aiowpsecurity +msgid "Choose your own DB prefix by specifying a string which contains letters and/or numbers and/or underscores. Example: xyz_" +msgstr "" + +#: admin/wp-security-database-menu.php:186 +#@ aiowpsecurity +msgid "Change DB Prefix" +msgstr "" + +#: admin/wp-security-database-menu.php:207 +#: admin/wp-security-filesystem-menu.php:86 +#@ aiowpsecurity +msgid "Nonce check failed for manual DB backup operation!" +msgstr "" + +#: admin/wp-security-database-menu.php:224 +#@ aiowpsecurity +msgid "DB Backup was successfully completed! You will receive the backup file via email if you have enabled \"Send Backup File Via Email\", otherwise you can retrieve it via FTP from the following directory:" +msgstr "" + +#: admin/wp-security-database-menu.php:226 +#@ default +msgid "Your DB Backup File location: " +msgstr "" + +#: admin/wp-security-database-menu.php:234 +#@ aiowpsecurity +msgid "DB Backup failed. Please check the permissions of the backup directory." +msgstr "" + +#: admin/wp-security-database-menu.php:251 +#: admin/wp-security-filescan-menu.php:133 +#@ aiowpsecurity +msgid "You entered a non numeric value for the \"backup time interval\" field. It has been set to the default value." +msgstr "" + +#: admin/wp-security-database-menu.php:258 +#@ aiowpsecurity +msgid "You entered a non numeric value for the \"number of backup files to keep\" field. It has been set to the default value." +msgstr "" + +#: admin/wp-security-database-menu.php:265 +#: admin/wp-security-filescan-menu.php:163 +#: admin/wp-security-user-login-menu.php:117 +#@ aiowpsecurity +msgid "You have entered an incorrect email address format. It has been set to your WordPress admin email as default." +msgstr "" + +#: admin/wp-security-database-menu.php:298 +#@ aiowpsecurity +msgid "Manual Backup" +msgstr "" + +#: admin/wp-security-database-menu.php:304 +#@ aiowpsecurity +msgid "To create a new DB backup just click on the button below." +msgstr "" + +#: admin/wp-security-database-menu.php:307 +#@ aiowpsecurity +msgid "Create DB Backup Now" +msgstr "" + +#: admin/wp-security-database-menu.php:311 +#@ aiowpsecurity +msgid "Automated Scheduled Backups" +msgstr "" + +#: admin/wp-security-database-menu.php:323 +#@ aiowpsecurity +msgid "Enable Automated Scheduled Backups" +msgstr "" + +#: admin/wp-security-database-menu.php:326 +#@ aiowpsecurity +msgid "Check this if you want the system to automatically generate backups periodically based on the settings below" +msgstr "" + +#: admin/wp-security-database-menu.php:330 +#@ aiowpsecurity +msgid "Backup Time Interval" +msgstr "" + +#: admin/wp-security-database-menu.php:333 +#: admin/wp-security-filescan-menu.php:279 +#@ aiowpsecurity +msgid "Hours" +msgstr "" + +#: admin/wp-security-database-menu.php:334 +#: admin/wp-security-filescan-menu.php:280 +#@ aiowpsecurity +msgid "Days" +msgstr "" + +#: admin/wp-security-database-menu.php:335 +#: admin/wp-security-filescan-menu.php:281 +#@ aiowpsecurity +msgid "Weeks" +msgstr "" + +#: admin/wp-security-database-menu.php:337 +#@ aiowpsecurity +msgid "Set the value for how often you would like an automated backup to occur" +msgstr "" + +#: admin/wp-security-database-menu.php:341 +#@ aiowpsecurity +msgid "Number of Backup Files To Keep" +msgstr "" + +#: admin/wp-security-database-menu.php:343 +#@ aiowpsecurity +msgid "Thie field allows you to choose the number of backup files you would like to keep in the backup directory" +msgstr "" + +#: admin/wp-security-database-menu.php:347 +#@ aiowpsecurity +msgid "Send Backup File Via Email" +msgstr "" + +#: admin/wp-security-database-menu.php:350 +#@ aiowpsecurity +msgid "Check this if you want the system to email you the backup file after a DB backup has been performed" +msgstr "" + +#: admin/wp-security-database-menu.php:352 +#: admin/wp-security-filescan-menu.php:325 +#: admin/wp-security-user-login-menu.php:235 +#@ aiowpsecurity +msgid "Enter an email address" +msgstr "" + +#: admin/wp-security-database-menu.php:383 +#@ aiowpsecurity +msgid "Error - Could not get tables or no tables found!" +msgstr "" + +#: admin/wp-security-database-menu.php:388 +#@ aiowpsecurity +msgid "Starting DB prefix change operations....." +msgstr "" + +#: admin/wp-security-database-menu.php:390 +#, php-format +#@ aiowpsecurity +msgid "Your WordPress system has a total of %s tables and your new DB prefix will be: %s" +msgstr "" + +#: admin/wp-security-database-menu.php:396 +#: classes/wp-security-utility.php:206 +#@ aiowpsecurity +msgid "Failed to make a backup of the wp-config.php file. This operation will not go ahead." +msgstr "" + +#: admin/wp-security-database-menu.php:400 +#@ aiowpsecurity +msgid "A backup copy of your wp-config.php file was created successfully!" +msgstr "" + +#: admin/wp-security-database-menu.php:422 +#, php-format +#@ aiowpsecurity +msgid "%s table name update failed" +msgstr "" + +#: admin/wp-security-database-menu.php:434 +#, php-format +#@ aiowpsecurity +msgid "Please change the prefix manually for the above tables to: %s" +msgstr "" + +#: admin/wp-security-database-menu.php:437 +#, php-format +#@ aiowpsecurity +msgid "%s tables had their prefix updated successfully!" +msgstr "" + +#: admin/wp-security-database-menu.php:452 +#@ aiowpsecurity +msgid "wp-config.php file was updated successfully!" +msgstr "" + +#: admin/wp-security-database-menu.php:455 +#, php-format +#@ aiowpsecurity +msgid "" +"The \"wp-config.php\" file was not able to be modified. Please modify this file manually using your favourite editor and search \n" +" for variable \"$table_prefix\" and assign the following value to that variable: %s" +msgstr "" + +#: admin/wp-security-database-menu.php:476 +#@ aiowpsecurity +msgid "There was an error when updating the options table." +msgstr "" + +#: admin/wp-security-database-menu.php:480 +#@ aiowpsecurity +msgid "The options table records which had references to the old DB prefix were updated successfully!" +msgstr "" + +#: admin/wp-security-database-menu.php:505 +#, php-format +#@ aiowpsecurity +msgid "Error updating user_meta table where new meta_key = %s, old meta_key = %s and user_id = %s." +msgstr "" + +#: admin/wp-security-database-menu.php:511 +#@ aiowpsecurity +msgid "The usermeta table records which had references to the old DB prefix were updated successfully!" +msgstr "" + +#: admin/wp-security-database-menu.php:513 +#@ aiowpsecurity +msgid "DB prefix change tasks have been completed." +msgstr "" + +#: admin/wp-security-filescan-menu.php:23 +#: classes/grade-system/wp-security-feature-item-manager.php:102 +#@ aiowpsecurity +msgid "File Change Detection" +msgstr "" + +#: admin/wp-security-filescan-menu.php:24 +#@ aiowpsecurity +msgid "Malware Scan" +msgstr "" + +#: admin/wp-security-filescan-menu.php:93 +#@ aiowpsecurity +msgid "There have been no file changes since the last scan." +msgstr "" + +#: admin/wp-security-filescan-menu.php:103 +#@ aiowpsecurity +msgid "Nonce check failed for manual file change detection scan operation!" +msgstr "" + +#: admin/wp-security-filescan-menu.php:110 +#@ aiowpsecurity +msgid "The plugin has detected that this is your first file change detection scan. The file details from this scan will be used to detect file changes for future scans!" +msgstr "" + +#: admin/wp-security-filescan-menu.php:112 +#@ aiowpsecurity +msgid "Scan Complete - There were no file changes detected!" +msgstr "" + +#: admin/wp-security-filescan-menu.php:201 +#@ aiowpsecurity +msgid "" +"NEW SCAN COMPLETED: The plugin has detected that you have made changes to the \"File Types To Ignore\" or \"Files To Ignore\" fields.\n" +" In order to ensure that future scan results are accurate, the old scan data has been refreshed." +msgstr "" + +#: admin/wp-security-filescan-menu.php:211 +#@ aiowpsecurity +msgid "All In One WP Security & Firewall has detected that there was a change in your host's files." +msgstr "" + +#: admin/wp-security-filescan-menu.php:213 +#@ aiowpsecurity +msgid "View Scan Details & Clear This Message" +msgstr "" + +#: admin/wp-security-filescan-menu.php:222 +#@ aiowpsecurity +msgid "If given an opportunity hackers can insert their code or files into your system which they can then use to carry out malicious acts on your site." +msgstr "" + +#: admin/wp-security-filescan-menu.php:223 +#@ aiowpsecurity +msgid "Being informed of any changes in your files can be a good way to quickly prevent a hacker from causing damage to your website." +msgstr "" + +#: admin/wp-security-filescan-menu.php:224 +#@ aiowpsecurity +msgid "In general, WordPress core and plugin files and file types such as \".php\" or \".js\" should not change often and when they do, it is important that you are made aware when a change occurs and which file was affected." +msgstr "" + +#: admin/wp-security-filescan-menu.php:225 +#@ aiowpsecurity +msgid "The \"File Change Detection Feature\" will notify you of any file change which occurs on your system, including the addition and deletion of files by performing a regular automated or manual scan of your system's files." +msgstr "" + +#: admin/wp-security-filescan-menu.php:226 +#@ aiowpsecurity +msgid "This feature also allows you to exclude certain files or folders from the scan in cases where you know that they change often as part of their normal operation. (For example log files and certain caching plugin files may change often and hence you may choose to exclude such files from the file change detection scan)" +msgstr "" + +#: admin/wp-security-filescan-menu.php:231 +#@ aiowpsecurity +msgid "Manual File Change Detection Scan" +msgstr "" + +#: admin/wp-security-filescan-menu.php:237 +#@ aiowpsecurity +msgid "To perform a manual file change detection scan click on the button below." +msgstr "" + +#: admin/wp-security-filescan-menu.php:240 +#@ aiowpsecurity +msgid "Perform Scan Now" +msgstr "" + +#: admin/wp-security-filescan-menu.php:244 +#@ aiowpsecurity +msgid "View Last Saved File Change Results" +msgstr "" + +#: admin/wp-security-filescan-menu.php:250 +#@ aiowpsecurity +msgid "Click the button below to view the saved file change results from the last scan." +msgstr "" + +#: admin/wp-security-filescan-menu.php:253 +#@ aiowpsecurity +msgid "View Last File Change" +msgstr "" + +#: admin/wp-security-filescan-menu.php:257 +#@ aiowpsecurity +msgid "File Change Detection Settings" +msgstr "" + +#: admin/wp-security-filescan-menu.php:269 +#@ aiowpsecurity +msgid "Enable Automated File Change Detection Scan" +msgstr "" + +#: admin/wp-security-filescan-menu.php:272 +#@ aiowpsecurity +msgid "Check this if you want the system to automatically/periodically scan your files to check for file changes based on the settings below" +msgstr "" + +#: admin/wp-security-filescan-menu.php:276 +#@ aiowpsecurity +msgid "Scan Time Interval" +msgstr "" + +#: admin/wp-security-filescan-menu.php:283 +#@ aiowpsecurity +msgid "Set the value for how often you would like a scan to occur" +msgstr "" + +#: admin/wp-security-filescan-menu.php:287 +#@ aiowpsecurity +msgid "File Types To Ignore" +msgstr "" + +#: admin/wp-security-filescan-menu.php:290 +#@ aiowpsecurity +msgid "Enter each file type or extension on a new line which you wish to exclude from the file change detection scan." +msgstr "" + +#: admin/wp-security-filescan-menu.php:294 +#@ aiowpsecurity +msgid "You can exclude file types from the scan which would not normally pose any security threat if they were changed. These can include things such as image files." +msgstr "" + +#: admin/wp-security-filescan-menu.php:295 +#@ aiowpsecurity +msgid "Example: If you want the scanner to ignore files of type jpg, png, and bmp, then you would enter the following:" +msgstr "" + +#: admin/wp-security-filescan-menu.php:296 +#@ aiowpsecurity +msgid "jpg" +msgstr "" + +#: admin/wp-security-filescan-menu.php:297 +#@ aiowpsecurity +msgid "png" +msgstr "" + +#: admin/wp-security-filescan-menu.php:298 +#@ aiowpsecurity +msgid "bmp" +msgstr "" + +#: admin/wp-security-filescan-menu.php:304 +#@ aiowpsecurity +msgid "Files/Directories To Ignore" +msgstr "" + +#: admin/wp-security-filescan-menu.php:307 +#@ aiowpsecurity +msgid "Enter each file or directory on a new line which you wish to exclude from the file change detection scan." +msgstr "" + +#: admin/wp-security-filescan-menu.php:311 +#@ aiowpsecurity +msgid "You can exclude specific files/directories from the scan which would not normally pose any security threat if they were changed. These can include things such as log files." +msgstr "" + +#: admin/wp-security-filescan-menu.php:312 +#@ aiowpsecurity +msgid "Example: If you want the scanner to ignore certain files in different directories or whole directories, then you would enter the following:" +msgstr "" + +#: admin/wp-security-filescan-menu.php:313 +#@ aiowpsecurity +msgid "cache/config/master.php" +msgstr "" + +#: admin/wp-security-filescan-menu.php:314 +#@ aiowpsecurity +msgid "somedirectory" +msgstr "" + +#: admin/wp-security-filescan-menu.php:320 +#@ aiowpsecurity +msgid "Send Email When Change Detected" +msgstr "" + +#: admin/wp-security-filescan-menu.php:323 +#@ aiowpsecurity +msgid "Check this if you want the system to email you if a file change was detected" +msgstr "" + +#: admin/wp-security-filescan-menu.php:341 +#@ aiowpsecurity +msgid "What is Malware?" +msgstr "" + +#: admin/wp-security-filescan-menu.php:342 +#@ aiowpsecurity +msgid "The word Malware stands for Malicious Software. It can consist of things like trojan horses, adware, worms, spyware and any other undesirable code which a hacker will try to inject into your website." +msgstr "" + +#: admin/wp-security-filescan-menu.php:343 +#@ aiowpsecurity +msgid "Often when malware code has been inserted into your site you will normally not notice anything out of the ordinary based on appearances, but it can have a dramatic effect on your site’s search ranking." +msgstr "" + +#: admin/wp-security-filescan-menu.php:344 +#@ aiowpsecurity +msgid "This is because the bots and spiders from search engines such as Google have the capability to detect malware when they are indexing the pages on your site, and consequently they can blacklist your website which will in turn affect your search rankings." +msgstr "" + +#: admin/wp-security-filescan-menu.php:348 +#@ aiowpsecurity +msgid "Scanning For Malware" +msgstr "" + +#: admin/wp-security-filescan-menu.php:349 +#@ aiowpsecurity +msgid "Due to the constantly changing and complex nature of Malware, scanning for such things using a standalone plugin will not work reliably. This is something best done via an external scan of your site regularly." +msgstr "" + +#: admin/wp-security-filescan-menu.php:350 +#@ aiowpsecurity +msgid "This is why we have created an easy-to-use scanning service which is hosted off our own server which will scan your site for malware once every day and notify you if it finds anything." +msgstr "" + +#: admin/wp-security-filescan-menu.php:351 +#@ aiowpsecurity +msgid "When you sign up for this service you will get the following:" +msgstr "" + +#: admin/wp-security-filescan-menu.php:353 +#@ aiowpsecurity +msgid "Automatic Daily Scan of 1 Website" +msgstr "" + +#: admin/wp-security-filescan-menu.php:354 +#@ aiowpsecurity +msgid "Automatic Malware & Blacklist Monitoring" +msgstr "" + +#: admin/wp-security-filescan-menu.php:355 +#@ aiowpsecurity +msgid "Automatic Email Alerting" +msgstr "" + +#: admin/wp-security-filescan-menu.php:356 +#@ aiowpsecurity +msgid "Site uptime monitoring" +msgstr "" + +#: admin/wp-security-filescan-menu.php:357 +#@ aiowpsecurity +msgid "Site response time monitoring" +msgstr "" + +#: admin/wp-security-filescan-menu.php:358 +#@ aiowpsecurity +msgid "Malware Cleanup" +msgstr "" + +#: admin/wp-security-filescan-menu.php:359 +#@ aiowpsecurity +msgid "Blacklist Removal" +msgstr "" + +#: admin/wp-security-filescan-menu.php:360 +#@ aiowpsecurity +msgid "No Contract (Cancel Anytime)" +msgstr "" + +#: admin/wp-security-filescan-menu.php:362 +#, php-format +#@ aiowpsecurity +msgid "To learn more please %s." +msgstr "" + +#: admin/wp-security-filescan-menu.php:391 +#@ aiowpsecurity +msgid "Latest File Change Scan Results" +msgstr "" + +#: admin/wp-security-filescan-menu.php:400 +#@ aiowpsecurity +msgid "The following files were added to your host." +msgstr "" + +#: admin/wp-security-filescan-menu.php:403 +#: admin/wp-security-filescan-menu.php:424 +#: admin/wp-security-filescan-menu.php:448 +#: admin/wp-security-settings-menu.php:26 +#: admin/wp-security-settings-menu.php:27 +#@ aiowpsecurity +msgid "File" +msgstr "" + +#: admin/wp-security-filescan-menu.php:404 +#: admin/wp-security-filescan-menu.php:425 +#: admin/wp-security-filescan-menu.php:449 +#@ aiowpsecurity +msgid "File Size" +msgstr "" + +#: admin/wp-security-filescan-menu.php:405 +#: admin/wp-security-filescan-menu.php:426 +#: admin/wp-security-filescan-menu.php:450 +#@ aiowpsecurity +msgid "File Modified" +msgstr "" + +#: admin/wp-security-filescan-menu.php:421 +#@ aiowpsecurity +msgid "The following files were removed from your host." +msgstr "" + +#: admin/wp-security-filescan-menu.php:445 +#@ aiowpsecurity +msgid "The following files were changed on your host." +msgstr "" + +#: admin/wp-security-filesystem-menu.php:26 +#: classes/grade-system/wp-security-feature-item-manager.php:66 +#@ aiowpsecurity +msgid "File Permissions" +msgstr "" + +#: admin/wp-security-filesystem-menu.php:27 +#@ aiowpsecurity +msgid "PHP File Editing" +msgstr "" + +#: admin/wp-security-filesystem-menu.php:28 +#@ aiowpsecurity +msgid "WP File Access" +msgstr "" + +#: admin/wp-security-filesystem-menu.php:29 +#@ aiowpsecurity +msgid "Host System Logs" +msgstr "" + +#: admin/wp-security-filesystem-menu.php:96 +#, php-format +#@ aiowpsecurity +msgid "The permissions for %s were succesfully changed to %s" +msgstr "" + +#: admin/wp-security-filesystem-menu.php:100 +#, php-format +#@ aiowpsecurity +msgid "Unable to change permissions for %s!" +msgstr "" + +#: admin/wp-security-filesystem-menu.php:106 +#@ aiowpsecurity +msgid "File Permissions Scan" +msgstr "" + +#: admin/wp-security-filesystem-menu.php:109 +#@ aiowpsecurity +msgid "Your WordPress file and folder permission settings govern the accessability and read/write privileges of the files and folders which make up your WP installation." +msgstr "" + +#: admin/wp-security-filesystem-menu.php:110 +#@ aiowpsecurity +msgid "Your WP installation already comes with reasonably secure file permission settings for the filesystem." +msgstr "" + +#: admin/wp-security-filesystem-menu.php:111 +#@ aiowpsecurity +msgid "However, sometimes people or other plugins modify the various permission settings of certain core WP folders or files such that they end up making their site less secure because they chose the wrong permission values." +msgstr "" + +#: admin/wp-security-filesystem-menu.php:112 +#@ aiowpsecurity +msgid "This feature will scan the critical WP core folders and files and will highlight any permission settings which are insecure." +msgstr "" + +#: admin/wp-security-filesystem-menu.php:118 +#@ aiowpsecurity +msgid "WP Directory and File Permissions Scan Results" +msgstr "" + +#: admin/wp-security-filesystem-menu.php:131 +#: admin/wp-security-filesystem-menu.php:150 +#@ aiowpsecurity +msgid "File/Folder" +msgstr "" + +#: admin/wp-security-filesystem-menu.php:132 +#: admin/wp-security-filesystem-menu.php:151 +#@ aiowpsecurity +msgid "Current Permissions" +msgstr "" + +#: admin/wp-security-filesystem-menu.php:133 +#: admin/wp-security-filesystem-menu.php:152 +#@ aiowpsecurity +msgid "Recommended Permissions" +msgstr "" + +#: admin/wp-security-filesystem-menu.php:134 +#: admin/wp-security-filesystem-menu.php:153 +#@ aiowpsecurity +msgid "Recommended Action" +msgstr "" + +#: admin/wp-security-filesystem-menu.php:191 +#@ aiowpsecurity +msgid "Your PHP file editing settings were saved successfully." +msgstr "" + +#: admin/wp-security-filesystem-menu.php:195 +#@ aiowpsecurity +msgid "Operation failed! Unable to modify or make a backup of wp-config.php file!" +msgstr "" + +#: admin/wp-security-filesystem-menu.php:201 +#: classes/grade-system/wp-security-feature-item-manager.php:68 +#@ aiowpsecurity +msgid "File Editing" +msgstr "" + +#: admin/wp-security-filesystem-menu.php:204 +#@ aiowpsecurity +msgid "The Wordpress Dashboard by default allows administrators to edit PHP files, such as plugin and theme files." +msgstr "" + +#: admin/wp-security-filesystem-menu.php:205 +#@ aiowpsecurity +msgid "This is often the first tool an attacker will use if able to login, since it allows code execution." +msgstr "" + +#: admin/wp-security-filesystem-menu.php:206 +#@ aiowpsecurity +msgid "This feature will disable the ability for people to edit PHP files via the dashboard." +msgstr "" + +#: admin/wp-security-filesystem-menu.php:212 +#@ aiowpsecurity +msgid "Disable PHP File Editing" +msgstr "" + +#: admin/wp-security-filesystem-menu.php:224 +#@ aiowpsecurity +msgid "Disable Ability To Edit PHP Files" +msgstr "" + +#: admin/wp-security-filesystem-menu.php:227 +#@ aiowpsecurity +msgid "Check this if you want to remove the ability for people to edit PHP files via the WP dashboard" +msgstr "" + +#: admin/wp-security-filesystem-menu.php:271 +#@ aiowpsecurity +msgid "You have successfully saved the Prevent Access to Default WP Files configuration." +msgstr "" + +#: admin/wp-security-filesystem-menu.php:280 +#@ aiowpsecurity +msgid "WordPress Files" +msgstr "" + +#: admin/wp-security-filesystem-menu.php:283 +#, php-format +#@ aiowpsecurity +msgid "This feature allows you to prevent access to files such as %s, %s and %s which are delivered with all WP installations." +msgstr "" + +#: admin/wp-security-filesystem-menu.php:284 +#@ aiowpsecurity +msgid "By preventing access to these files you are hiding some key pieces of information (such as WordPress version info) from potential hackers." +msgstr "" + +#: admin/wp-security-filesystem-menu.php:289 +#@ aiowpsecurity +msgid "Prevent Access to Default WP Files" +msgstr "" + +#: admin/wp-security-filesystem-menu.php:300 +#@ aiowpsecurity +msgid "Prevent Access to WP Default Install Files" +msgstr "" + +#: admin/wp-security-filesystem-menu.php:303 +#@ aiowpsecurity +msgid "Check this if you want to prevent access to readme.html, license.txt and wp-config-sample.php." +msgstr "" + +#: admin/wp-security-filesystem-menu.php:307 +#@ aiowpsecurity +msgid "Save Setting" +msgstr "" + +#: admin/wp-security-filesystem-menu.php:331 +#@ aiowpsecurity +msgid "System Logs" +msgstr "" + +#: admin/wp-security-filesystem-menu.php:334 +#@ aiowpsecurity +msgid "Sometimes your hosting platform will produce error or warning logs in a file called \"error_log\"." +msgstr "" + +#: admin/wp-security-filesystem-menu.php:335 +#@ aiowpsecurity +msgid "Depending on the nature and cause of the error or warning, your hosting server can create multiple instances of this file in numerous directory locations of your WordPress installation." +msgstr "" + +#: admin/wp-security-filesystem-menu.php:336 +#@ aiowpsecurity +msgid "By occassionally viewing the contents of these logs files you can keep informed of any underlying problems on your system which you might need to address." +msgstr "" + +#: admin/wp-security-filesystem-menu.php:342 +#@ aiowpsecurity +msgid "View System Logs" +msgstr "" + +#: admin/wp-security-filesystem-menu.php:347 +#@ aiowpsecurity +msgid "Enter System Log File Name" +msgstr "" + +#: admin/wp-security-filesystem-menu.php:349 +#@ aiowpsecurity +msgid "Enter your system log file name. (Defaults to error_log)" +msgstr "" + +#: admin/wp-security-filesystem-menu.php:352 +#@ aiowpsecurity +msgid "View Latest System Logs" +msgstr "" + +#: admin/wp-security-filesystem-menu.php:354 +#@ aiowpsecurity +msgid "Loading..." +msgstr "" + +#: admin/wp-security-filesystem-menu.php:371 +#@ aiowpsecurity +msgid "No system logs were found!" +msgstr "" + +#: admin/wp-security-filesystem-menu.php:424 +#@ aiowpsecurity +msgid "Set Recommended Permissions" +msgstr "" + +#: admin/wp-security-filesystem-menu.php:430 +#@ aiowpsecurity +msgid "No Action Required" +msgstr "" + +#: admin/wp-security-filesystem-menu.php:470 +#, php-format +#@ aiowpsecurity +msgid "Showing latest entries of error_log file: %s" +msgstr "" + +#: admin/wp-security-firewall-menu.php:27 +#@ aiowpsecurity +msgid "Basic Firewall Rules" +msgstr "" + +#: admin/wp-security-firewall-menu.php:28 +#@ aiowpsecurity +msgid "Additional Firewall Rules" +msgstr "" + +#: admin/wp-security-firewall-menu.php:29 +#@ aiowpsecurity +msgid "5G Blacklist Firewall Rules" +msgstr "" + +#: admin/wp-security-firewall-menu.php:30 +#@ aiowpsecurity +msgid "Internet Bots" +msgstr "" + +#: admin/wp-security-firewall-menu.php:31 +#@ aiowpsecurity +msgid "Prevent Hotlinks" +msgstr "" + +#: admin/wp-security-firewall-menu.php:32 +#@ aiowpsecurity +msgid "404 Detection" +msgstr "" + +#: admin/wp-security-firewall-menu.php:115 +#: admin/wp-security-firewall-menu.php:663 +#: admin/wp-security-spam-menu.php:102 +#: admin/wp-security-user-registration-menu.php:96 +#@ aiowpsecurity +msgid "Settings were successfully saved" +msgstr "" + +#: admin/wp-security-firewall-menu.php:124 +#: admin/wp-security-firewall-menu.php:503 +#@ aiowpsecurity +msgid "Firewall Settings" +msgstr "" + +#: admin/wp-security-firewall-menu.php:131 +#, php-format +#@ aiowpsecurity +msgid "This should not have any impact on your site's general functionality but if you wish you can take a %s of your .htaccess file before proceeding." +msgstr "" + +#: admin/wp-security-firewall-menu.php:132 +#@ aiowpsecurity +msgid "The features in this tab allow you to activate some basic firewall security protection rules for your site." +msgstr "" + +#: admin/wp-security-firewall-menu.php:133 +#@ aiowpsecurity +msgid "The firewall functionality is achieved via the insertion of special code into your currently active .htaccess file." +msgstr "" + +#: admin/wp-security-firewall-menu.php:143 +#@ aiowpsecurity +msgid "Attention:" +msgstr "" + +#: admin/wp-security-firewall-menu.php:144 +#@ aiowpsecurity +msgid "Currently the " +msgstr "" + +#: admin/wp-security-firewall-menu.php:144 +#: admin/wp-security-firewall-menu.php:191 +#@ aiowpsecurity +msgid "Enable Pingback Protection" +msgstr "" + +#: admin/wp-security-firewall-menu.php:144 +#@ aiowpsecurity +msgid " is active." +msgstr "" + +#: admin/wp-security-firewall-menu.php:145 +#@ aiowpsecurity +msgid "Please beware that if you are using the WordPress iOS App, then you will need to deactivate this feature in order for the app to work properly." +msgstr "" + +#: admin/wp-security-firewall-menu.php:153 +#@ aiowpsecurity +msgid "Basic Firewall Settings" +msgstr "" + +#: admin/wp-security-firewall-menu.php:161 +#@ aiowpsecurity +msgid "Enable Basic Firewall Protection" +msgstr "" + +#: admin/wp-security-firewall-menu.php:164 +#@ aiowpsecurity +msgid "Check this if you want to apply basic firewall protection to your site." +msgstr "" + +#: admin/wp-security-firewall-menu.php:168 +#@ aiowpsecurity +msgid "This setting will implement the following basic firewall protection mechanisms on your site:" +msgstr "" + +#: admin/wp-security-firewall-menu.php:169 +#@ aiowpsecurity +msgid "1) Protect your htaccess file by denying access to it." +msgstr "" + +#: admin/wp-security-firewall-menu.php:170 +#@ aiowpsecurity +msgid "2) Disable the server signature." +msgstr "" + +#: admin/wp-security-firewall-menu.php:171 +#@ aiowpsecurity +msgid "3) Limit file upload size (10MB)." +msgstr "" + +#: admin/wp-security-firewall-menu.php:172 +#@ aiowpsecurity +msgid "4) Protect your wp-config.php file by denying access to it." +msgstr "" + +#: admin/wp-security-firewall-menu.php:173 +#@ aiowpsecurity +msgid "The above firewall features will be applied via your .htaccess file and should not affect your site's overall functionality." +msgstr "" + +#: admin/wp-security-firewall-menu.php:174 +#@ aiowpsecurity +msgid "You are still advised to take a backup of your active .htaccess file just in case." +msgstr "" + +#: admin/wp-security-firewall-menu.php:183 +#@ aiowpsecurity +msgid "WordPress Pingback Vulnerability Protection" +msgstr "" + +#: admin/wp-security-firewall-menu.php:194 +#@ aiowpsecurity +msgid "Check this if you are not using the WP XML-RPC functionality and you want to enable protection against WordPress pingback vulnerabilities." +msgstr "" + +#: admin/wp-security-firewall-menu.php:198 +#@ aiowpsecurity +msgid "This setting will add a directive in your .htaccess to disable access to the WordPress xmlrpc.php file which is responsible for the XML-RPC functionality such as pingbacks in WordPress." +msgstr "" + +#: admin/wp-security-firewall-menu.php:199 +#@ aiowpsecurity +msgid "Hackers can exploit various pingback vulnerabilities in the WordPress XML-RPC API in a number of ways such as:" +msgstr "" + +#: admin/wp-security-firewall-menu.php:200 +#@ aiowpsecurity +msgid "1) Denial of Service (DoS) attacks" +msgstr "" + +#: admin/wp-security-firewall-menu.php:201 +#@ aiowpsecurity +msgid "2) Hacking internal routers." +msgstr "" + +#: admin/wp-security-firewall-menu.php:202 +#@ aiowpsecurity +msgid "3) Scanning ports in internal networks to get info from various hosts." +msgstr "" + +#: admin/wp-security-firewall-menu.php:203 +#@ aiowpsecurity +msgid "Apart from the security protection benefit, this feature may also help reduce load on your server, particularly if your site currently has a lot of unwanted traffic hitting the XML-RPC API on your installation." +msgstr "" + +#: admin/wp-security-firewall-menu.php:204 +#@ aiowpsecurity +msgid "NOTE: You should only enable this feature if you are not currently using the XML-RPC functionality on your WordPress installation." +msgstr "" + +#: admin/wp-security-firewall-menu.php:211 +#@ aiowpsecurity +msgid "Save Basic Firewall Settings" +msgstr "" + +#: admin/wp-security-firewall-menu.php:283 +#@ aiowpsecurity +msgid "You have successfully saved the Additional Firewall Protection configuration" +msgstr "" + +#: admin/wp-security-firewall-menu.php:297 +#@ aiowpsecurity +msgid "Additional Firewall Protection" +msgstr "" + +#: admin/wp-security-firewall-menu.php:301 +#, php-format +#@ aiowpsecurity +msgid "Due to the nature of the code being inserted to the .htaccess file, this feature may break some functionality for certain plugins and you are therefore advised to take a %s of .htaccess before applying this configuration." +msgstr "" + +#: admin/wp-security-firewall-menu.php:303 +#@ aiowpsecurity +msgid "This feature allows you to activate more advanced firewall settings to your site." +msgstr "" + +#: admin/wp-security-firewall-menu.php:304 +#@ aiowpsecurity +msgid "The advanced firewall rules are applied via the insertion of special code to your currently active .htaccess file." +msgstr "" + +#: admin/wp-security-firewall-menu.php:313 +#@ aiowpsecurity +msgid "Listing of Directory Contents" +msgstr "" + +#: admin/wp-security-firewall-menu.php:322 +#: classes/grade-system/wp-security-feature-item-manager.php:88 +#@ aiowpsecurity +msgid "Disable Index Views" +msgstr "" + +#: admin/wp-security-firewall-menu.php:325 +#@ aiowpsecurity +msgid "Check this if you want to disable directory and file listing." +msgstr "" + +#: admin/wp-security-firewall-menu.php:330 +#@ aiowpsecurity +msgid "By default, an Apache server will allow the listing of the contents of a directory if it doesn't contain an index.php file." +msgstr "" + +#: admin/wp-security-firewall-menu.php:332 +#@ aiowpsecurity +msgid "This feature will prevent the listing of contents for all directories." +msgstr "" + +#: admin/wp-security-firewall-menu.php:334 +#@ aiowpsecurity +msgid "NOTE: In order for this feature to work \"AllowOverride\" of the Indexes directive must be enabled in your httpd.conf file. Ask your hosting provider to check this if you don't have access to httpd.conf" +msgstr "" + +#: admin/wp-security-firewall-menu.php:343 +#@ aiowpsecurity +msgid "Trace and Track" +msgstr "" + +#: admin/wp-security-firewall-menu.php:352 +#: classes/grade-system/wp-security-feature-item-manager.php:89 +#@ aiowpsecurity +msgid "Disable Trace and Track" +msgstr "" + +#: admin/wp-security-firewall-menu.php:355 +#@ aiowpsecurity +msgid "Check this if you want to disable trace and track." +msgstr "" + +#: admin/wp-security-firewall-menu.php:360 +#@ aiowpsecurity +msgid "HTTP Trace attack (XST) can be used to return header requests and grab cookies and other information." +msgstr "" + +#: admin/wp-security-firewall-menu.php:362 +#@ aiowpsecurity +msgid "This hacking technique is usually used together with cross site scripting attacks (XSS)." +msgstr "" + +#: admin/wp-security-firewall-menu.php:364 +#@ aiowpsecurity +msgid "Disabling trace and track on your site will help prevent HTTP Trace attacks." +msgstr "" + +#: admin/wp-security-firewall-menu.php:373 +#@ aiowpsecurity +msgid "Proxy Comment Posting" +msgstr "" + +#: admin/wp-security-firewall-menu.php:383 +#@ aiowpsecurity +msgid "Forbid Proxy Comment Posting" +msgstr "" + +#: admin/wp-security-firewall-menu.php:386 +#@ aiowpsecurity +msgid "Check this if you want to forbid proxy comment posting." +msgstr "" + +#: admin/wp-security-firewall-menu.php:391 +#@ aiowpsecurity +msgid "This setting will deny any requests that use a proxy server when posting comments." +msgstr "" + +#: admin/wp-security-firewall-menu.php:392 +#@ aiowpsecurity +msgid "By forbidding proxy comments you are in effect eliminating some SPAM and other proxy requests." +msgstr "" + +#: admin/wp-security-firewall-menu.php:401 +#@ aiowpsecurity +msgid "Bad Query Strings" +msgstr "" + +#: admin/wp-security-firewall-menu.php:411 +#@ aiowpsecurity +msgid "Deny Bad Query Strings" +msgstr "" + +#: admin/wp-security-firewall-menu.php:414 +#@ aiowpsecurity +msgid "This will help protect you against malicious queries via XSS." +msgstr "" + +#: admin/wp-security-firewall-menu.php:419 +#@ aiowpsecurity +msgid "This feature will write rules in your .htaccess file to prevent malicious string attacks on your site using XSS." +msgstr "" + +#: admin/wp-security-firewall-menu.php:420 +#@ aiowpsecurity +msgid "NOTE: Some of these strings might be used for plugins or themes and hence this might break some functionality." +msgstr "" + +#: admin/wp-security-firewall-menu.php:421 +#: admin/wp-security-firewall-menu.php:451 +#@ aiowpsecurity +msgid "You are therefore strongly advised to take a backup of your active .htaccess file before applying this feature." +msgstr "" + +#: admin/wp-security-firewall-menu.php:430 +#: classes/grade-system/wp-security-feature-item-manager.php:92 +#@ aiowpsecurity +msgid "Advanced Character String Filter" +msgstr "" + +#: admin/wp-security-firewall-menu.php:440 +#@ aiowpsecurity +msgid "Enable Advanced Character String Filter" +msgstr "" + +#: admin/wp-security-firewall-menu.php:443 +#@ aiowpsecurity +msgid "This will block bad character matches from XSS." +msgstr "" + +#: admin/wp-security-firewall-menu.php:448 +#@ aiowpsecurity +msgid "This is an advanced character string filter to prevent malicious string attacks on your site coming from Cross Site Scripting (XSS)." +msgstr "" + +#: admin/wp-security-firewall-menu.php:449 +#@ aiowpsecurity +msgid "This setting matches for common malicious string patterns and exploits and will produce a 403 error for the hacker attempting the query." +msgstr "" + +#: admin/wp-security-firewall-menu.php:450 +#@ aiowpsecurity +msgid "NOTE: Some strings for this setting might break some functionality." +msgstr "" + +#: admin/wp-security-firewall-menu.php:459 +#@ aiowpsecurity +msgid "Save Additional Firewall Settings" +msgstr "" + +#: admin/wp-security-firewall-menu.php:494 +#@ aiowpsecurity +msgid "You have successfully saved the 5G Firewall Protection configuration" +msgstr "" + +#: admin/wp-security-firewall-menu.php:507 +#, php-format +#@ aiowpsecurity +msgid "This feature allows you to activate the 5G firewall security protection rules designed and produced by %s." +msgstr "" + +#: admin/wp-security-firewall-menu.php:508 +#@ aiowpsecurity +msgid "The 5G Blacklist is a simple, flexible blacklist that helps reduce the number of malicious URL requests that hit your website." +msgstr "" + +#: admin/wp-security-firewall-menu.php:509 +#@ aiowpsecurity +msgid "The added advantage of applying the 5G firewall to your site is that it has been tested and confirmed by the people at PerishablePress.com to be an optimal and least disruptive set of .htaccess security rules for general WP sites running on an Apache server or similar." +msgstr "" + +#: admin/wp-security-firewall-menu.php:510 +#, php-format +#@ aiowpsecurity +msgid "Therefore the 5G firewall rules should not have any impact on your site's general functionality but if you wish you can take a %s of your .htaccess file before proceeding." +msgstr "" + +#: admin/wp-security-firewall-menu.php:516 +#@ aiowpsecurity +msgid "5G Blacklist/Firewall Settings" +msgstr "" + +#: admin/wp-security-firewall-menu.php:528 +#@ aiowpsecurity +msgid "Enable 5G Firewall Protection" +msgstr "" + +#: admin/wp-security-firewall-menu.php:531 +#@ aiowpsecurity +msgid "Check this if you want to apply the 5G Blacklist firewall protection from perishablepress.com to your site." +msgstr "" + +#: admin/wp-security-firewall-menu.php:535 +#@ aiowpsecurity +msgid "This setting will implement the 5G security firewall protection mechanisms on your site which include the following things:" +msgstr "" + +#: admin/wp-security-firewall-menu.php:536 +#@ aiowpsecurity +msgid "1) Block forbidden characters commonly used in exploitative attacks." +msgstr "" + +#: admin/wp-security-firewall-menu.php:537 +#@ aiowpsecurity +msgid "2) Block malicious encoded URL characters such as the \".css(\" string." +msgstr "" + +#: admin/wp-security-firewall-menu.php:538 +#@ aiowpsecurity +msgid "3) Guard against the common patterns and specific exploits in the root portion of targeted URLs." +msgstr "" + +#: admin/wp-security-firewall-menu.php:539 +#@ aiowpsecurity +msgid "4) Stop attackers from manipulating query strings by disallowing illicit characters." +msgstr "" + +#: admin/wp-security-firewall-menu.php:540 +#@ aiowpsecurity +msgid "....and much more." +msgstr "" + +#: admin/wp-security-firewall-menu.php:546 +#@ aiowpsecurity +msgid "Save 5G Firewall Settings" +msgstr "" + +#: admin/wp-security-firewall-menu.php:577 +#@ aiowpsecurity +msgid "The Internet bot settings were successfully saved" +msgstr "" + +#: admin/wp-security-firewall-menu.php:581 +#@ aiowpsecurity +msgid "Internet Bot Settings" +msgstr "" + +#: admin/wp-security-firewall-menu.php:588 +#, php-format +#@ aiowpsecurity +msgid "%s?" +msgstr "" + +#: admin/wp-security-firewall-menu.php:590 +#@ aiowpsecurity +msgid "A bot is a piece of software which runs on the Internet and performs automatic tasks. For example when Google indexes your pages it uses automatic bots to achieve this task." +msgstr "" + +#: admin/wp-security-firewall-menu.php:591 +#@ aiowpsecurity +msgid "A lot of bots are legitimate and non-malicous but not all bots are good and often you will find some which try to impersonate legitimate bots such as \"Googlebot\" but in reality they have nohing to do with Google at all." +msgstr "" + +#: admin/wp-security-firewall-menu.php:592 +#@ aiowpsecurity +msgid "Although most of the bots out there are relatively harmless sometimes website owners want to have more control over which bots they allow into their site." +msgstr "" + +#: admin/wp-security-firewall-menu.php:593 +#@ aiowpsecurity +msgid "This feature allows you to block bots which are impersonating as a Googlebot but actually aren't. (In other words they are fake Google bots)" +msgstr "" + +#: admin/wp-security-firewall-menu.php:594 +#@ aiowpsecurity +msgid "Googlebots have a unique indentity which cannot easily be forged and this feature will indentify any fake Google bots and block them from reading your site's pages." +msgstr "" + +#: admin/wp-security-firewall-menu.php:600 +#@ aiowpsecurity +msgid "Attention: Sometimes non-malicious Internet organizations might have bots which impersonate as a \"Googlebot\"." +msgstr "" + +#: admin/wp-security-firewall-menu.php:601 +#@ aiowpsecurity +msgid "Just be aware that if you activate this feature the plugin will block all bots which use the \"Googlebot\" string in their User Agent information but are NOT officially from Google (irrespective whether they are malicious or not)." +msgstr "" + +#: admin/wp-security-firewall-menu.php:602 +#@ aiowpsecurity +msgid "All other bots from other organizations such as \"Yahoo\", \"Bing\" etc will not be affected by this feature." +msgstr "" + +#: admin/wp-security-firewall-menu.php:608 +#: admin/wp-security-firewall-menu.php:618 +#: classes/grade-system/wp-security-feature-item-manager.php:94 +#@ aiowpsecurity +msgid "Block Fake Googlebots" +msgstr "" + +#: admin/wp-security-firewall-menu.php:621 +#@ aiowpsecurity +msgid "Check this if you want to block all fake Googlebots." +msgstr "" + +#: admin/wp-security-firewall-menu.php:625 +#@ aiowpsecurity +msgid "This feature will check if the User Agent information of a bot contains the string \"Googlebot\"." +msgstr "" + +#: admin/wp-security-firewall-menu.php:626 +#@ aiowpsecurity +msgid "It will then perform a few tests to verify if the bot is legitimately from Google and if so it will allow the bot to proceed." +msgstr "" + +#: admin/wp-security-firewall-menu.php:627 +#@ aiowpsecurity +msgid "If the bot fails the checks then the plugin will mark it as being a fake Googlebot and it will block it" +msgstr "" + +#: admin/wp-security-firewall-menu.php:634 +#@ aiowpsecurity +msgid "Save Internet Bot Settings" +msgstr "" + +#: admin/wp-security-firewall-menu.php:671 +#: admin/wp-security-firewall-menu.php:693 +#: classes/grade-system/wp-security-feature-item-manager.php:32 +#@ aiowpsecurity +msgid "Prevent Image Hotlinking" +msgstr "" + +#: admin/wp-security-firewall-menu.php:674 +#@ aiowpsecurity +msgid "A Hotlink is where someone displays an image on their site which is actually located on your site by using a direct link to the source of the image on your server." +msgstr "" + +#: admin/wp-security-firewall-menu.php:675 +#@ aiowpsecurity +msgid "Due to the fact that the image being displayed on the other person's site is coming from your server, this can cause leaking of bandwidth and resources for you because your server has to present this image for the people viewing it on someone elses's site." +msgstr "" + +#: admin/wp-security-firewall-menu.php:676 +#@ aiowpsecurity +msgid "This feature will prevent people from directly hotlinking images from your site's pages by writing some directives in your .htaccess file." +msgstr "" + +#: admin/wp-security-firewall-menu.php:681 +#@ aiowpsecurity +msgid "Prevent Hotlinking" +msgstr "" + +#: admin/wp-security-firewall-menu.php:696 +#@ aiowpsecurity +msgid "Check this if you want to prevent hotlinking to images on your site." +msgstr "" + +#: admin/wp-security-firewall-menu.php:716 +#@ aiowpsecurity +msgid "Nonce check failed for delete all 404 event logs operation!" +msgstr "" + +#: admin/wp-security-firewall-menu.php:727 +#@ aiowpsecurity +msgid "404 Detection Feature - Delete all 404 event logs operation failed!" +msgstr "" + +#: admin/wp-security-firewall-menu.php:731 +#@ aiowpsecurity +msgid "All 404 event logs were deleted from the DB successfully!" +msgstr "" + +#: admin/wp-security-firewall-menu.php:757 +#: admin/wp-security-user-login-menu.php:110 +#@ aiowpsecurity +msgid "You entered a non numeric value for the lockout time length field. It has been set to the default value." +msgstr "" + +#: admin/wp-security-firewall-menu.php:763 +#@ aiowpsecurity +msgid "You entered an incorrect format for the \"Redirect URL\" field. It has been set to the default value." +msgstr "" + +#: admin/wp-security-firewall-menu.php:795 +#@ aiowpsecurity +msgid "404 Detection Configuration" +msgstr "" + +#: admin/wp-security-firewall-menu.php:798 +#@ aiowpsecurity +msgid "A 404 or Not Found error occurs when somebody tries to access a non-existent page on your website." +msgstr "" + +#: admin/wp-security-firewall-menu.php:799 +#@ aiowpsecurity +msgid "Typically, most 404 errors happen quite innocently when people have mis-typed a URL or used an old link to page which doesn't exist anymore." +msgstr "" + +#: admin/wp-security-firewall-menu.php:800 +#@ aiowpsecurity +msgid "However, in some cases you may find many repeated 404 errors which occur in a relatively short space of time and from the same IP address which are all attempting to access a variety of non-existent page URLs." +msgstr "" + +#: admin/wp-security-firewall-menu.php:801 +#@ aiowpsecurity +msgid "Such behaviour can mean that a hacker might be trying to find a particular page or URL for sinister reasons." +msgstr "" + +#: admin/wp-security-firewall-menu.php:802 +#@ aiowpsecurity +msgid "This feature allows you to monitor all 404 events which occur on your site, and it also gives you the option of blocking IP addresses for a configured length of time." +msgstr "" + +#: admin/wp-security-firewall-menu.php:803 +#@ aiowpsecurity +msgid "If you want to temporarily block an IP address, simply click the \"Temp Block\" link for the applicable IP entry in the \"404 Event Logs\" table below." +msgstr "" + +#: admin/wp-security-firewall-menu.php:808 +#@ aiowpsecurity +msgid "404 Detection Options" +msgstr "" + +#: admin/wp-security-firewall-menu.php:820 +#@ aiowpsecurity +msgid "Enable IP Lockout For 404 Events" +msgstr "" + +#: admin/wp-security-firewall-menu.php:823 +#@ aiowpsecurity +msgid "Check this if you want to enable the lockout of selected IP addresses." +msgstr "" + +#: admin/wp-security-firewall-menu.php:828 +#@ aiowpsecurity +msgid "When you enable this checkbox, all 404 events on your site will be logged in the table below. You can monitor these events and select some IP addresses to be blocked in the table. All IP addresses you select to be blocked from the \"404 Event Logs\" table section will be unable to access your site." +msgstr "" + +#: admin/wp-security-firewall-menu.php:836 +#@ aiowpsecurity +msgid "Enable 404 Event Logging" +msgstr "" + +#: admin/wp-security-firewall-menu.php:839 +#@ aiowpsecurity +msgid "Check this if you want to enable the logging of 404 events" +msgstr "" + +#: admin/wp-security-firewall-menu.php:844 +#@ aiowpsecurity +msgid "Time Length of 404 Lockout (min)" +msgstr "" + +#: admin/wp-security-firewall-menu.php:846 +#@ aiowpsecurity +msgid "Set the length of time for which a blocked IP address will be prevented from visiting your site" +msgstr "" + +#: admin/wp-security-firewall-menu.php:851 +#@ aiowpsecurity +msgid "You can lock any IP address which is recorded in the \"404 Event Logs\" table section below." +msgstr "" + +#: admin/wp-security-firewall-menu.php:853 +#@ aiowpsecurity +msgid "To temporarily lock an IP address, hover over the ID column and click the \"Temp Block\" link for the applicable IP entry." +msgstr "" + +#: admin/wp-security-firewall-menu.php:860 +#@ aiowpsecurity +msgid "404 Lockout Redirect URL" +msgstr "" + +#: admin/wp-security-firewall-menu.php:862 +#@ aiowpsecurity +msgid "A blocked visitor will be automatically redirected to this URL." +msgstr "" + +#: admin/wp-security-firewall-menu.php:871 +#@ aiowpsecurity +msgid "404 Event Logs" +msgstr "" + +#: admin/wp-security-firewall-menu.php:892 +#: admin/wp-security-firewall-menu.php:901 +#@ aiowpsecurity +msgid "Delete All 404 Event Logs" +msgstr "" + +#: admin/wp-security-firewall-menu.php:898 +#@ aiowpsecurity +msgid "Click this button if you wish to purge all 404 event logs from the DB." +msgstr "" + +#: admin/wp-security-list-404.php:108 +#: admin/wp-security-list-acct-activity.php:79 +#: admin/wp-security-list-comment-spammer-ip.php:86 +#: admin/wp-security-list-locked-ip.php:82 +#: admin/wp-security-list-locked-ip.php:93 +#: admin/wp-security-list-login-fails.php:78 +#: admin/wp-security-list-registered-users.php:82 +#: admin/wp-security-list-registered-users.php:93 +#@ aiowpsecurity +msgid "Please select some records using the checkboxes" +msgstr "" + +#: admin/wp-security-list-acct-activity.php:107 +#: admin/wp-security-list-login-fails.php:107 +#@ aiowpsecurity +msgid "The selected entries were deleted successfully!" +msgstr "" + +#: admin/wp-security-list-acct-activity.php:120 +#: admin/wp-security-list-login-fails.php:119 +#@ aiowpsecurity +msgid "The selected entry was deleted successfully!" +msgstr "" + +#: admin/wp-security-list-comment-spammer-ip.php:139 +#@ aiowpsecurity +msgid "The selected IP addresses were saved in the blacklist configuration settings." +msgstr "" + +#: admin/wp-security-list-comment-spammer-ip.php:153 +#@ aiowpsecurity +msgid "The .htaccess file was successfully modified to include the selected IP addresses." +msgstr "" + +#: admin/wp-security-list-comment-spammer-ip.php:159 +#@ aiowpsecurity +msgid "NOTE: The .htaccess file was not modified because you have disabled the \"Enable IP or User Agent Blacklisting\" check box." +msgstr "" + +#: admin/wp-security-list-comment-spammer-ip.php:160 +#, php-format +#@ aiowpsecurity +msgid "To block these IP addresses you will need to enable the above flag in the %s menu" +msgstr "" + +#: admin/wp-security-list-locked-ip.php:117 +#: admin/wp-security-user-login-menu.php:527 +#@ aiowpsecurity +msgid "The selected IP entries were unlocked successfully!" +msgstr "" + +#: admin/wp-security-list-locked-ip.php:126 +#: admin/wp-security-user-login-menu.php:536 +#@ aiowpsecurity +msgid "The selected IP entry was unlocked successfully!" +msgstr "" + +#: admin/wp-security-list-registered-users.php:127 +#: admin/wp-security-list-registered-users.php:151 +#@ aiowpsecurity +msgid "Your account is now active" +msgstr "" + +#: admin/wp-security-list-registered-users.php:128 +#@ aiowpsecurity +msgid "Your account with username:" +msgstr "" + +#: admin/wp-security-list-registered-users.php:135 +#@ aiowpsecurity +msgid "The selected accounts were approved successfully!" +msgstr "" + +#: admin/wp-security-list-registered-users.php:139 +#@ aiowpsecurity +msgid "The following accounts failed to update successfully: " +msgstr "" + +#: admin/wp-security-list-registered-users.php:147 +#@ aiowpsecurity +msgid "The selected account was approved successfully!" +msgstr "" + +#: admin/wp-security-list-registered-users.php:152 +#@ aiowpsecurity +msgid "Your account with username: " +msgstr "" + +#: admin/wp-security-list-registered-users.php:176 +#@ aiowpsecurity +msgid "The selected accounts were deleted successfully!" +msgstr "" + +#: admin/wp-security-list-registered-users.php:184 +#@ aiowpsecurity +msgid "The selected account was deleted successfully!" +msgstr "" + +#: admin/wp-security-maintenance-menu.php:22 +#@ aiowpsecurity +msgid "Visitor Lockout" +msgstr "" + +#: admin/wp-security-maintenance-menu.php:88 +#@ aiowpsecurity +msgid "Site lockout feature settings saved!" +msgstr "" + +#: admin/wp-security-maintenance-menu.php:93 +#@ aiowpsecurity +msgid "General Visitor Lockout" +msgstr "" + +#: admin/wp-security-maintenance-menu.php:99 +#@ aiowpsecurity +msgid "This feature allows you to put your site into \"maintenance mode\" by locking down the front-end to all visitors except logged in users with super admin privileges." +msgstr "" + +#: admin/wp-security-maintenance-menu.php:100 +#@ aiowpsecurity +msgid "Locking your site down to general visitors can be useful if you are investigating some issues on your site or perhaps you might be doing some maintenance and wish to keep out all traffic for security reasons." +msgstr "" + +#: admin/wp-security-maintenance-menu.php:105 +#@ aiowpsecurity +msgid "Enable Front-end Lockout" +msgstr "" + +#: admin/wp-security-maintenance-menu.php:108 +#@ aiowpsecurity +msgid "Check this if you want all visitors except those who are logged in as administrator to be locked out of the front-end of your site." +msgstr "" + +#: admin/wp-security-maintenance-menu.php:112 +#@ aiowpsecurity +msgid "Enter a Message:" +msgstr "" + +#: admin/wp-security-maintenance-menu.php:124 +#@ aiowpsecurity +msgid "Enter a message you wish to display to visitors when your site is in maintenance mode." +msgstr "" + +#: admin/wp-security-maintenance-menu.php:131 +#@ default +msgid "Save Site Lockout Settings" +msgstr "" + +#: admin/wp-security-settings-menu.php:25 +#@ aiowpsecurity +msgid "General Settings" +msgstr "" + +#: admin/wp-security-settings-menu.php:28 +#@ aiowpsecurity +msgid "WP Meta Info" +msgstr "" + +#: admin/wp-security-settings-menu.php:95 +#@ aiowpsecurity +msgid "All the security features have been disabled successfully!" +msgstr "" + +#: admin/wp-security-settings-menu.php:99 +#: admin/wp-security-settings-menu.php:126 +#@ aiowpsecurity +msgid "Could not write to the .htaccess file. Please restore your .htaccess file manually using the restore functionality in the \".htaccess File\"." +msgstr "" + +#: admin/wp-security-settings-menu.php:104 +#@ aiowpsecurity +msgid "Could not write to the wp-config.php. Please restore your wp-config.php file manually using the restore functionality in the \"wp-config.php File\"." +msgstr "" + +#: admin/wp-security-settings-menu.php:122 +#@ aiowpsecurity +msgid "All firewall rules have been disabled successfully!" +msgstr "" + +#: admin/wp-security-settings-menu.php:136 +#@ aiowpsecurity +msgid "WP Security Plugin" +msgstr "" + +#: admin/wp-security-settings-menu.php:138 +#@ aiowpsecurity +msgid "Thank you for using our WordPress security plugin. There are a lot of security features in this plugin." +msgstr "" + +#: admin/wp-security-settings-menu.php:139 +#@ aiowpsecurity +msgid "Go through each menu items and enable the security options to add more security to your site. Start by activating the basic features first." +msgstr "" + +#: admin/wp-security-settings-menu.php:140 +#@ aiowpsecurity +msgid "It is a good practice to take a backup of your .htaccess file, database and wp-config.php file before activating the security features. This plugin has options that you can use to backup those resources easily." +msgstr "" + +#: admin/wp-security-settings-menu.php:143 +#@ aiowpsecurity +msgid "Backup your database" +msgstr "" + +#: admin/wp-security-settings-menu.php:144 +#@ aiowpsecurity +msgid "Backup .htaccess file" +msgstr "" + +#: admin/wp-security-settings-menu.php:145 +#@ aiowpsecurity +msgid "Backup wp-config.php file" +msgstr "" + +#: admin/wp-security-settings-menu.php:151 +#@ aiowpsecurity +msgid "Disable Security Features" +msgstr "" + +#: admin/wp-security-settings-menu.php:157 +#@ aiowpsecurity +msgid "If you think that some plugin functionality on your site is broken due to a security feature you enabled in this plugin, then use the following option to turn off all the security features of this plugin." +msgstr "" + +#: admin/wp-security-settings-menu.php:161 +#@ default +msgid "Disable All Security Features" +msgstr "" + +#: admin/wp-security-settings-menu.php:167 +#: admin/wp-security-settings-menu.php:177 +#@ aiowpsecurity +#@ default +msgid "Disable All Firewall Rules" +msgstr "" + +#: admin/wp-security-settings-menu.php:173 +#@ aiowpsecurity +msgid "This feature will disable all firewall rules which are currently active in this plugin and it will also delete these rules from your .htacess file. Use it if you think one of the firewall rules is causing an issue on your site." +msgstr "" + +#: admin/wp-security-settings-menu.php:206 +#@ aiowpsecurity +msgid "Your .htaccess file was successfully backed up! Using an FTP program go to the \"/wp-content/aiowps_backups\" directory to save a copy of the file to your computer." +msgstr "" + +#: admin/wp-security-settings-menu.php:212 +#@ aiowpsecurity +msgid "htaccess file rename failed during backup. Please check your root directory for the backup file using FTP." +msgstr "" + +#: admin/wp-security-settings-menu.php:218 +#@ aiowpsecurity +msgid "htaccess backup failed." +msgstr "" + +#: admin/wp-security-settings-menu.php:233 +#@ aiowpsecurity +msgid "Please choose a .htaccess to restore from." +msgstr "" + +#: admin/wp-security-settings-menu.php:249 +#@ aiowpsecurity +msgid "htaccess file restore failed. Please attempt to restore the .htaccess manually using FTP." +msgstr "" + +#: admin/wp-security-settings-menu.php:253 +#@ aiowpsecurity +msgid "Your .htaccess file has successfully been restored!" +msgstr "" + +#: admin/wp-security-settings-menu.php:259 +#@ aiowpsecurity +msgid "htaccess Restore operation failed! Please check the contents of the file you are trying to restore from." +msgstr "" + +#: admin/wp-security-settings-menu.php:265 +#@ aiowpsecurity +msgid ".htaccess File Operations" +msgstr "" + +#: admin/wp-security-settings-menu.php:268 +#@ aiowpsecurity +msgid "Your \".htaccess\" file is a key component of your website's security and it can be modified to implement various levels of protection mechanisms." +msgstr "" + +#: admin/wp-security-settings-menu.php:269 +#@ aiowpsecurity +msgid "This feature allows you to backup and save your currently active .htaccess file should you need to re-use the the backed up file in the future." +msgstr "" + +#: admin/wp-security-settings-menu.php:270 +#@ aiowpsecurity +msgid "You can also restore your site's .htaccess settings using a backed up .htaccess file." +msgstr "" + +#: admin/wp-security-settings-menu.php:284 +#@ aiowpsecurity +msgid "Save the current .htaccess file" +msgstr "" + +#: admin/wp-security-settings-menu.php:288 +#@ aiowpsecurity +msgid "Click the button below to backup and save the currently active .htaccess file." +msgstr "" + +#: admin/wp-security-settings-menu.php:289 +#@ aiowpsecurity +msgid "Backup .htaccess File" +msgstr "" + +#: admin/wp-security-settings-menu.php:293 +#@ aiowpsecurity +msgid "Restore from a backed up .htaccess file" +msgstr "" + +#: admin/wp-security-settings-menu.php:299 +#@ aiowpsecurity +msgid ".htaccess file to restore from" +msgstr "" + +#: admin/wp-security-settings-menu.php:305 +#@ aiowpsecurity +msgid "After selecting your file, click the button below to restore your site using the backed up htaccess file (htaccess_backup.txt)." +msgstr "" + +#: admin/wp-security-settings-menu.php:311 +#@ aiowpsecurity +msgid "Restore .htaccess File" +msgstr "" + +#: admin/wp-security-settings-menu.php:315 +#@ aiowpsecurity +msgid "View Contents of the currently active .htaccess file" +msgstr "" + +#: admin/wp-security-settings-menu.php:344 +#@ aiowpsecurity +msgid "Please choose a wp-config.php file to restore from." +msgstr "" + +#: admin/wp-security-settings-menu.php:360 +#@ aiowpsecurity +msgid "wp-config.php file restore failed. Please attempt to restore this file manually using FTP." +msgstr "" + +#: admin/wp-security-settings-menu.php:364 +#@ aiowpsecurity +msgid "Your wp-config.php file has successfully been restored!" +msgstr "" + +#: admin/wp-security-settings-menu.php:370 +#@ aiowpsecurity +msgid "wp-config.php Restore operation failed! Please check the contents of the file you are trying to restore from." +msgstr "" + +#: admin/wp-security-settings-menu.php:376 +#@ aiowpsecurity +msgid "wp-config.php File Operations" +msgstr "" + +#: admin/wp-security-settings-menu.php:379 +#@ aiowpsecurity +msgid "Your \"wp-config.php\" file is one of the most important in your WordPress installation. It is a primary configuration file and contains crucial things such as details of your database and other critical components." +msgstr "" + +#: admin/wp-security-settings-menu.php:380 +#@ aiowpsecurity +msgid "This feature allows you to backup and save your currently active wp-config.php file should you need to re-use the the backed up file in the future." +msgstr "" + +#: admin/wp-security-settings-menu.php:381 +#@ aiowpsecurity +msgid "You can also restore your site's wp-config.php settings using a backed up wp-config.php file." +msgstr "" + +#: admin/wp-security-settings-menu.php:395 +#@ aiowpsecurity +msgid "Save the current wp-config.php file" +msgstr "" + +#: admin/wp-security-settings-menu.php:399 +#@ aiowpsecurity +msgid "Click the button below to backup and download the contents of the currently active wp-config.php file." +msgstr "" + +#: admin/wp-security-settings-menu.php:400 +#@ aiowpsecurity +msgid "Backup wp-config.php File" +msgstr "" + +#: admin/wp-security-settings-menu.php:405 +#@ aiowpsecurity +msgid "Restore from a backed up wp-config file" +msgstr "" + +#: admin/wp-security-settings-menu.php:411 +#@ aiowpsecurity +msgid "wp-config file to restore from" +msgstr "" + +#: admin/wp-security-settings-menu.php:417 +#@ aiowpsecurity +msgid "After selecting your file click the button below to restore your site using the backed up wp-config file (wp-config.php.backup.txt)." +msgstr "" + +#: admin/wp-security-settings-menu.php:423 +#@ aiowpsecurity +msgid "Restore wp-config File" +msgstr "" + +#: admin/wp-security-settings-menu.php:427 +#@ aiowpsecurity +msgid "View Contents of the currently active wp-config.php file" +msgstr "" + +#: admin/wp-security-settings-menu.php:462 +#@ aiowpsecurity +msgid "WP Generator Meta Tag" +msgstr "" + +#: admin/wp-security-settings-menu.php:465 +#@ aiowpsecurity +msgid "Wordpress generator automatically adds some meta information inside the \"head\" tags of every page on your site's front end. Below is an example of this:" +msgstr "" + +#: admin/wp-security-settings-menu.php:467 +#@ aiowpsecurity +msgid "The above meta information shows which version of WordPress your site is currently running and thus can help hackers or crawlers scan your site to see if you have an older version of WordPress or one with a known exploit." +msgstr "" + +#: admin/wp-security-settings-menu.php:468 +#@ aiowpsecurity +msgid "This feature will allow you to remove the WP generator meta info from your site's pages." +msgstr "" + +#: admin/wp-security-settings-menu.php:474 +#@ aiowpsecurity +msgid "WP Generator Meta Info" +msgstr "" + +#: admin/wp-security-settings-menu.php:486 +#@ aiowpsecurity +msgid "Remove WP Generator Meta Info" +msgstr "" + +#: admin/wp-security-settings-menu.php:489 +#@ aiowpsecurity +msgid "Check this if you want to remove the meta info produced by WP Generator from all pages" +msgstr "" + +#: admin/wp-security-spam-menu.php:23 +#@ aiowpsecurity +msgid "Comment SPAM" +msgstr "" + +#: admin/wp-security-spam-menu.php:24 +#@ aiowpsecurity +msgid "Comment SPAM IP Monitoring" +msgstr "" + +#: admin/wp-security-spam-menu.php:111 +#@ aiowpsecurity +msgid "Comment SPAM Settings" +msgstr "" + +#: admin/wp-security-spam-menu.php:116 +#@ aiowpsecurity +msgid "Add Captcha To Comments Form" +msgstr "" + +#: admin/wp-security-spam-menu.php:120 +#@ aiowpsecurity +msgid "This feature will add a simple math captcha field in the WordPress comments form." +msgstr "" + +#: admin/wp-security-spam-menu.php:121 +#@ aiowpsecurity +msgid "Adding a captcha field in the comment form is a simple way of greatly reducing SPAM comments from bots without using .htaccess rules." +msgstr "" + +#: admin/wp-security-spam-menu.php:137 +#@ aiowpsecurity +msgid "Enable Captcha On Comment Forms" +msgstr "" + +#: admin/wp-security-spam-menu.php:140 +#@ aiowpsecurity +msgid "Check this if you want to insert a captcha field on the comment forms" +msgstr "" + +#: admin/wp-security-spam-menu.php:148 +#@ aiowpsecurity +msgid "Block Spambot Comments" +msgstr "" + +#: admin/wp-security-spam-menu.php:152 +#@ aiowpsecurity +msgid "A large portion of WordPress blog comment SPAM is mainly produced by automated bots and not necessarily by humans. " +msgstr "" + +#: admin/wp-security-spam-menu.php:153 +#@ aiowpsecurity +msgid "This feature will greatly minimize the useless and unecessary traffic and load on your server resulting from SPAM comments by blocking all comment requests which do not originate from your domain." +msgstr "" + +#: admin/wp-security-spam-menu.php:154 +#@ aiowpsecurity +msgid "In other words, if the comment was not submitted by a human who physically submitted the comment on your site, the request will be blocked." +msgstr "" + +#: admin/wp-security-spam-menu.php:170 +#@ aiowpsecurity +msgid "Block Spambots From Posting Comments" +msgstr "" + +#: admin/wp-security-spam-menu.php:173 +#@ aiowpsecurity +msgid "Check this if you want to apply a firewall rule which will block comments originating from spambots." +msgstr "" + +#: admin/wp-security-spam-menu.php:177 +#@ aiowpsecurity +msgid "This feature will implement a firewall rule to block all comment attempts which do not originate from your domain." +msgstr "" + +#: admin/wp-security-spam-menu.php:178 +#@ aiowpsecurity +msgid "A legitimate comment is one which is submitted by a human who physically fills out the comment form and clicks the submit button. For such events, the HTTP_REFERRER is always set to your own domain." +msgstr "" + +#: admin/wp-security-spam-menu.php:179 +#@ aiowpsecurity +msgid "A comment submitted by a spambot is done by directly calling the comments.php file, which usually means that the HTTP_REFERRER value is not your domain and often times empty." +msgstr "" + +#: admin/wp-security-spam-menu.php:180 +#@ aiowpsecurity +msgid "This feature will check and block comment requests which are not referred by your domain thus greatly reducing your overall blog SPAM and PHP requests done by the server to process these comments." +msgstr "" + +#: admin/wp-security-spam-menu.php:207 +#@ aiowpsecurity +msgid "Nonce check failed for list SPAM comment IPs!" +msgstr "" + +#: admin/wp-security-spam-menu.php:213 +#@ aiowpsecurity +msgid "You entered a non numeric value for the minimum SPAM comments per IP field. It has been set to the default value." +msgstr "" + +#: admin/wp-security-spam-menu.php:225 +#, php-format +#@ aiowpsecurity +msgid "Displaying results for IP addresses which have posted a minimum of %s SPAM comments" +msgstr "" + +#: admin/wp-security-spam-menu.php:241 +#@ aiowpsecurity +msgid "This tab displays a list of the IP addresses of the people or bots who have left SPAM comments on your site." +msgstr "" + +#: admin/wp-security-spam-menu.php:242 +#@ aiowpsecurity +msgid "This information can be handy for identifying the most persistent IP addresses or ranges used by spammers." +msgstr "" + +#: admin/wp-security-spam-menu.php:243 +#@ aiowpsecurity +msgid "By inspecting the IP address data coming from spammers you will be in a better position to determine which addresses or address ranges you should block by adding them to your blacklist." +msgstr "" + +#: admin/wp-security-spam-menu.php:244 +#@ aiowpsecurity +msgid "" +"To add one or more of the IP addresses displayed in the table below to your blacklist, simply click the \"Block\" link for the individual row or select more than one address \n" +" using the checkboxes and then choose the \"block\" option from the Bulk Actions dropdown list and click the \"Apply\" button." +msgstr "" + +#: admin/wp-security-spam-menu.php:250 +#@ aiowpsecurity +msgid "List SPAMMER IP Addresses" +msgstr "" + +#: admin/wp-security-spam-menu.php:256 +#@ aiowpsecurity +msgid "Minimum number of SPAM comments per IP" +msgstr "" + +#: admin/wp-security-spam-menu.php:258 +#@ aiowpsecurity +msgid "This field allows you to list only those IP addresses which have been used to post X or more SPAM comments." +msgstr "" + +#: admin/wp-security-spam-menu.php:262 +#@ aiowpsecurity +msgid "Example 1: Setting this value to \"0\" or \"1\" will list ALL IP addresses which were used to submit SPAM comments." +msgstr "" + +#: admin/wp-security-spam-menu.php:263 +#@ aiowpsecurity +msgid "Example 2: Setting this value to \"5\" will list only those IP addresses which were used to submit 5 SPAM comments or more on your site." +msgstr "" + +#: admin/wp-security-spam-menu.php:270 +#@ aiowpsecurity +msgid "Find IP Addresses" +msgstr "" + +#: admin/wp-security-spam-menu.php:274 +#@ aiowpsecurity +msgid "SPAMMER IP Address Results" +msgstr "" + +#: admin/wp-security-spam-menu.php:280 +#: classes/wp-security-utility.php:150 +#@ aiowpsecurity +msgid "The plugin has detected that you are using a Multi-Site WordPress installation." +msgstr "" + +#: admin/wp-security-spam-menu.php:281 +#@ aiowpsecurity +msgid "Only the \"superadmin\" can block IP addresses from the main site." +msgstr "" + +#: admin/wp-security-spam-menu.php:282 +#@ aiowpsecurity +msgid "Take note of the IP addresses you want blocked and ask the superadmin to add these to the blacklist using the \"Blacklist Manager\" on the main site." +msgstr "" + +#: admin/wp-security-user-accounts-menu.php:29 +#@ aiowpsecurity +msgid "WP Username" +msgstr "" + +#: admin/wp-security-user-accounts-menu.php:30 +#@ aiowpsecurity +msgid "Display Name" +msgstr "" + +#: admin/wp-security-user-accounts-menu.php:31 +#: other-includes/wp-security-rename-login-feature.php:845 +#@ aiowpsecurity +#@ default +msgid "Password" +msgstr "" + +#: admin/wp-security-user-accounts-menu.php:85 +#@ aiowpsecurity +msgid "Admin User Security" +msgstr "" + +#: admin/wp-security-user-accounts-menu.php:88 +#@ aiowpsecurity +msgid "By default, WordPress sets the administrator username to \"admin\" at installation time." +msgstr "" + +#: admin/wp-security-user-accounts-menu.php:89 +#@ aiowpsecurity +msgid "A lot of hackers try to take advantage of this information by attempting \"Brute Force Login Attacks\" where they repeatedly try to guess the password by using \"admin\" for username." +msgstr "" + +#: admin/wp-security-user-accounts-menu.php:90 +#@ aiowpsecurity +msgid "From a security perspective, changing the default \"admin\" user name is one of the first and smartest things you should do on your site." +msgstr "" + +#: admin/wp-security-user-accounts-menu.php:91 +#@ aiowpsecurity +msgid "This feature will allow you to change your default \"admin\" user name to a more secure name of your choosing." +msgstr "" + +#: admin/wp-security-user-accounts-menu.php:98 +#@ aiowpsecurity +msgid "List of Administrator Accounts" +msgstr "" + +#: admin/wp-security-user-accounts-menu.php:107 +#: classes/grade-system/wp-security-feature-item-manager.php:36 +#@ aiowpsecurity +msgid "Change Admin Username" +msgstr "" + +#: admin/wp-security-user-accounts-menu.php:115 +#@ aiowpsecurity +msgid "" +"Your site currently has an account which uses the default \"admin\" username. \n" +" It is highly recommended that you change this name to something else. \n" +" Use the following field to change the admin username." +msgstr "" + +#: admin/wp-security-user-accounts-menu.php:123 +#@ aiowpsecurity +msgid "New Admin Username" +msgstr "" + +#: admin/wp-security-user-accounts-menu.php:125 +#@ aiowpsecurity +msgid "Choose a new username for admin." +msgstr "" + +#: admin/wp-security-user-accounts-menu.php:129 +#@ aiowpsecurity +msgid "Change Username" +msgstr "" + +#: admin/wp-security-user-accounts-menu.php:131 +#@ aiowpsecurity +msgid "NOTE: If you are currently logged in as \"admin\" you will be automatically logged out after changing your username and will be required to log back in." +msgstr "" + +#: admin/wp-security-user-accounts-menu.php:138 +#@ aiowpsecurity +msgid "No action required! " +msgstr "" + +#: admin/wp-security-user-accounts-menu.php:140 +#@ aiowpsecurity +msgid "Your site does not have any account which uses the default \"admin\" username. " +msgstr "" + +#: admin/wp-security-user-accounts-menu.php:141 +#@ aiowpsecurity +msgid "This is good security practice." +msgstr "" + +#: admin/wp-security-user-accounts-menu.php:153 +#@ aiowpsecurity +msgid "Display Name Security" +msgstr "" + +#: admin/wp-security-user-accounts-menu.php:156 +#@ aiowpsecurity +msgid "When you submit a post or answer a comment, WordPress will usually display your \"nickname\"." +msgstr "" + +#: admin/wp-security-user-accounts-menu.php:157 +#@ aiowpsecurity +msgid "By default the nickname is set to the login (or user) name of your account." +msgstr "" + +#: admin/wp-security-user-accounts-menu.php:158 +#@ aiowpsecurity +msgid "From a security perspective, leaving your nickname the same as your user name is bad practice because it gives a hacker at least half of your account's login credentials." +msgstr "" + +#: admin/wp-security-user-accounts-menu.php:159 +#@ aiowpsecurity +msgid "Therefore to further tighten your site's security you are advised to change your nickname and Display name to be different from your Username." +msgstr "" + +#: admin/wp-security-user-accounts-menu.php:165 +#@ aiowpsecurity +msgid "Modify Accounts With Identical Login Name & Display Name" +msgstr "" + +#: admin/wp-security-user-accounts-menu.php:174 +#@ aiowpsecurity +msgid "Your site currently has the following accounts which have an identical login name and display name." +msgstr "" + +#: admin/wp-security-user-accounts-menu.php:175 +#@ aiowpsecurity +msgid "Click on the link to edit the settings of that particular user account" +msgstr "" + +#: admin/wp-security-user-accounts-menu.php:190 +#@ aiowpsecurity +msgid "No action required." +msgstr "" + +#: admin/wp-security-user-accounts-menu.php:191 +#@ aiowpsecurity +msgid "Your site does not have a user account where the display name is identical to the username." +msgstr "" + +#: admin/wp-security-user-accounts-menu.php:202 +#@ aiowpsecurity +msgid "Password Tool" +msgstr "" + +#: admin/wp-security-user-accounts-menu.php:205 +#@ aiowpsecurity +msgid "Poor password selection is one of the most common weak points of many sites and is usually the first thing a hacker will try to exploit when attempting to break into your site." +msgstr "" + +#: admin/wp-security-user-accounts-menu.php:206 +#@ aiowpsecurity +msgid "Many people fall into the trap of using a simple word or series of numbers as their password. Such a predictable and simple password would take a competent hacker merely minutes to guess your password by using a simple script which cycles through the easy and most common combinations." +msgstr "" + +#: admin/wp-security-user-accounts-menu.php:207 +#@ aiowpsecurity +msgid "The longer and more complex your password is the harder it is for hackers to \"crack\" because more complex passwords require much greater computing power and time." +msgstr "" + +#: admin/wp-security-user-accounts-menu.php:208 +#@ aiowpsecurity +msgid "This section contains a useful password strength tool which you can use to check whether your password is sufficiently strong enough." +msgstr "" + +#: admin/wp-security-user-accounts-menu.php:213 +#@ aiowpsecurity +msgid "Password Strength Tool" +msgstr "" + +#: admin/wp-security-user-accounts-menu.php:218 +#@ aiowpsecurity +msgid "Start typing a password." +msgstr "" + +#: admin/wp-security-user-accounts-menu.php:221 +#@ aiowpsecurity +msgid "It would take a desktop PC approximately" +msgstr "" + +#: admin/wp-security-user-accounts-menu.php:222 +#@ aiowpsecurity +msgid "1 sec" +msgstr "" + +#: admin/wp-security-user-accounts-menu.php:222 +#@ aiowpsecurity +msgid "to crack your password!" +msgstr "" + +#: admin/wp-security-user-accounts-menu.php:227 +#@ aiowpsecurity +msgid "Password Strength" +msgstr "" + +#: admin/wp-security-user-accounts-menu.php:243 +#@ aiowpsecurity +msgid "Nonce check failed on admin username change operation!" +msgstr "" + +#: admin/wp-security-user-accounts-menu.php:250 +#@ aiowpsecurity +msgid "Username " +msgstr "" + +#: admin/wp-security-user-accounts-menu.php:250 +#@ aiowpsecurity +msgid " already exists. Please enter another value. " +msgstr "" + +#: admin/wp-security-user-accounts-menu.php:266 +#@ aiowpsecurity +msgid "The database update operation of the user account failed!" +msgstr "" + +#: admin/wp-security-user-accounts-menu.php:293 +#@ aiowpsecurity +msgid "You entered an invalid username. Please enter another value. " +msgstr "" + +#: admin/wp-security-user-accounts-menu.php:297 +#@ aiowpsecurity +msgid "Please enter a value for your username. " +msgstr "" + +#: admin/wp-security-user-accounts-menu.php:304 +#@ aiowpsecurity +msgid "Username Successfully Changed!" +msgstr "" + +#: admin/wp-security-user-accounts-menu.php:324 +#@ aiowpsecurity +msgid "Account Login Name" +msgstr "" + +#: admin/wp-security-user-login-menu.php:26 +#: admin/wp-security-user-login-menu.php:298 +#@ aiowpsecurity +msgid "Failed Login Records" +msgstr "" + +#: admin/wp-security-user-login-menu.php:27 +#: classes/grade-system/wp-security-feature-item-manager.php:50 +#@ aiowpsecurity +msgid "Force Logout" +msgstr "" + +#: admin/wp-security-user-login-menu.php:28 +#: admin/wp-security-user-login-menu.php:432 +#@ aiowpsecurity +msgid "Account Activity Logs" +msgstr "" + +#: admin/wp-security-user-login-menu.php:96 +#@ aiowpsecurity +msgid "You entered a non numeric value for the max login attempts field. It has been set to the default value." +msgstr "" + +#: admin/wp-security-user-login-menu.php:103 +#@ aiowpsecurity +msgid "You entered a non numeric value for the login retry time period field. It has been set to the default value." +msgstr "" + +#: admin/wp-security-user-login-menu.php:159 +#@ aiowpsecurity +msgid "Login Lockdown Configuration" +msgstr "" + +#: admin/wp-security-user-login-menu.php:163 +#@ aiowpsecurity +msgid "One of the ways hackers try to compromise sites is via a " +msgstr "" + +#: admin/wp-security-user-login-menu.php:163 +#@ aiowpsecurity +msgid "Brute Force Login Attack" +msgstr "" + +#: admin/wp-security-user-login-menu.php:164 +#@ aiowpsecurity +msgid "This is where attackers use repeated login attempts until they guess the password." +msgstr "" + +#: admin/wp-security-user-login-menu.php:165 +#@ aiowpsecurity +msgid "Apart from choosing strong passwords, monitoring and blocking IP addresses which are involved in repeated login failures in a short period of time is a very effective way to stop these types of attacks." +msgstr "" + +#: admin/wp-security-user-login-menu.php:166 +#, php-format +#@ aiowpsecurity +msgid "You may also want to checkout our %s feature for another secure way to protect against these types of attacks." +msgstr "" + +#: admin/wp-security-user-login-menu.php:171 +#@ aiowpsecurity +msgid "Login Lockdown Options" +msgstr "" + +#: admin/wp-security-user-login-menu.php:183 +#@ aiowpsecurity +msgid "Enable Login Lockdown Feature" +msgstr "" + +#: admin/wp-security-user-login-menu.php:186 +#@ aiowpsecurity +msgid "Check this if you want to enable the login lockdown feature and apply the settings below" +msgstr "" + +#: admin/wp-security-user-login-menu.php:190 +#@ aiowpsecurity +msgid "Allow Unlock Requests" +msgstr "" + +#: admin/wp-security-user-login-menu.php:193 +#@ aiowpsecurity +msgid "Check this if you want to allow users to generate an automated unlock request link which will unlock their account" +msgstr "" + +#: admin/wp-security-user-login-menu.php:197 +#@ aiowpsecurity +msgid "Max Login Attempts" +msgstr "" + +#: admin/wp-security-user-login-menu.php:199 +#@ aiowpsecurity +msgid "Set the value for the maximum login retries before IP address is locked out" +msgstr "" + +#: admin/wp-security-user-login-menu.php:203 +#@ aiowpsecurity +msgid "Login Retry Time Period (min)" +msgstr "" + +#: admin/wp-security-user-login-menu.php:205 +#@ aiowpsecurity +msgid "If the maximum number of failed login attempts for a particular IP address occur within this time period the plugin will lock out that address" +msgstr "" + +#: admin/wp-security-user-login-menu.php:209 +#@ aiowpsecurity +msgid "Time Length of Lockout (min)" +msgstr "" + +#: admin/wp-security-user-login-menu.php:211 +#@ aiowpsecurity +msgid "Set the length of time for which a particular IP address will be prevented from logging in" +msgstr "" + +#: admin/wp-security-user-login-menu.php:215 +#@ aiowpsecurity +msgid "Display Generic Error Message" +msgstr "" + +#: admin/wp-security-user-login-menu.php:218 +#@ aiowpsecurity +msgid "Check this if you want to show a generic error message when a login attempt fails" +msgstr "" + +#: admin/wp-security-user-login-menu.php:222 +#@ aiowpsecurity +msgid "Instantly Lockout Invalid Usernames" +msgstr "" + +#: admin/wp-security-user-login-menu.php:225 +#@ aiowpsecurity +msgid "Check this if you want to instantly lockout login attempts with usernames which do not exist on your system" +msgstr "" + +#: admin/wp-security-user-login-menu.php:230 +#@ aiowpsecurity +msgid "Notify By Email" +msgstr "" + +#: admin/wp-security-user-login-menu.php:233 +#@ aiowpsecurity +msgid "Check this if you want to receive an email when someone has been locked out due to maximum failed login attempts" +msgstr "" + +#: admin/wp-security-user-login-menu.php:243 +#@ aiowpsecurity +msgid "Currently Locked Out IP Address Ranges" +msgstr "" + +#: admin/wp-security-user-login-menu.php:248 +#, php-format +#@ aiowpsecurity +msgid "To see a list of all locked IP addresses and ranges go to the %s tab in the dashboard menu." +msgstr "" + +#: admin/wp-security-user-login-menu.php:264 +#@ aiowpsecurity +msgid "Nonce check failed for delete all failed login records operation!" +msgstr "" + +#: admin/wp-security-user-login-menu.php:273 +#@ aiowpsecurity +msgid "User Login Feature - Delete all failed login records operation failed!" +msgstr "" + +#: admin/wp-security-user-login-menu.php:277 +#@ aiowpsecurity +msgid "All records from the Failed Logins table were deleted successfully!" +msgstr "" + +#: admin/wp-security-user-login-menu.php:292 +#@ aiowpsecurity +msgid "This tab displays the failed login attempts for your site." +msgstr "" + +#: admin/wp-security-user-login-menu.php:293 +#@ aiowpsecurity +msgid "The information below can be handy if you need to do security investigations because it will show you the IP range, username and ID (if applicable) and the time/date of the failed login attempt." +msgstr "" + +#: admin/wp-security-user-login-menu.php:314 +#: admin/wp-security-user-login-menu.php:323 +#@ aiowpsecurity +msgid "Delete All Failed Login Records" +msgstr "" + +#: admin/wp-security-user-login-menu.php:320 +#@ aiowpsecurity +msgid "Click this button if you wish to delete all failed login records in one go." +msgstr "" + +#: admin/wp-security-user-login-menu.php:348 +#@ aiowpsecurity +msgid "You entered a non numeric value for the logout time period field. It has been set to the default value." +msgstr "" + +#: admin/wp-security-user-login-menu.php:376 +#@ aiowpsecurity +msgid "Setting an expiry period for your WP administration session is a simple way to protect against unauthorized access to your site from your computer." +msgstr "" + +#: admin/wp-security-user-login-menu.php:377 +#@ aiowpsecurity +msgid "This feature allows you to specify a time period in minutes after which the admin session will expire and the user will be forced to log back in." +msgstr "" + +#: admin/wp-security-user-login-menu.php:382 +#@ aiowpsecurity +msgid "Force User Logout Options" +msgstr "" + +#: admin/wp-security-user-login-menu.php:394 +#@ aiowpsecurity +msgid "Enable Force WP User Logout" +msgstr "" + +#: admin/wp-security-user-login-menu.php:397 +#@ aiowpsecurity +msgid "Check this if you want to force a wp user to be logged out after a configured amount of time" +msgstr "" + +#: admin/wp-security-user-login-menu.php:401 +#@ aiowpsecurity +msgid "Logout the WP User After XX Minutes" +msgstr "" + +#: admin/wp-security-user-login-menu.php:403 +#@ aiowpsecurity +msgid "(Minutes) The user will be forced to log back in after this time period has elapased." +msgstr "" + +#: admin/wp-security-user-login-menu.php:426 +#@ aiowpsecurity +msgid "This tab displays the login activity for WordPress admin accounts registered with your site." +msgstr "" + +#: admin/wp-security-user-login-menu.php:427 +#@ aiowpsecurity +msgid "The information below can be handy if you need to do security investigations because it will show you the last 50 recent login events by username, IP address and time/date." +msgstr "" + +#: admin/wp-security-user-login-menu.php:464 +#@ aiowpsecurity +msgid "Nonce check failed for users logged in list!" +msgstr "" + +#: admin/wp-security-user-login-menu.php:477 +#@ aiowpsecurity +msgid "Refresh Logged In User Data" +msgstr "" + +#: admin/wp-security-user-login-menu.php:481 +#@ aiowpsecurity +msgid "Refresh Data" +msgstr "" + +#: admin/wp-security-user-login-menu.php:487 +#@ aiowpsecurity +msgid "This tab displays all users who are currently logged into your site." +msgstr "" + +#: admin/wp-security-user-login-menu.php:488 +#@ aiowpsecurity +msgid "If you suspect there is a user or users who are logged in which should not be, you can block them by inspecting the IP addresses from the data below and adding them to your blacklist." +msgstr "" + +#: admin/wp-security-user-login-menu.php:493 +#@ aiowpsecurity +msgid "Currently Logged In Users" +msgstr "" + +#: admin/wp-security-user-login-menu.php:558 +#@ aiowpsecurity +msgid "The selected records were deleted successfully!" +msgstr "" + +#: admin/wp-security-user-login-menu.php:567 +#@ aiowpsecurity +msgid "The selected record was deleted successfully!" +msgstr "" + +#: admin/wp-security-user-registration-menu.php:23 +#@ aiowpsecurity +msgid "Manual Approval" +msgstr "" + +#: admin/wp-security-user-registration-menu.php:24 +#: classes/grade-system/wp-security-feature-item-manager.php:56 +#@ aiowpsecurity +msgid "Registration Captcha" +msgstr "" + +#: admin/wp-security-user-registration-menu.php:112 +#@ aiowpsecurity +msgid "User Registration Settings" +msgstr "" + +#: admin/wp-security-user-registration-menu.php:116 +#@ aiowpsecurity +msgid "Manually Approve New Registrations" +msgstr "" + +#: admin/wp-security-user-registration-menu.php:120 +#@ aiowpsecurity +msgid "If your site allows people to create their own accounts via the WordPress registration form, then you can minimize SPAM or bogus registrations by manually approving each registration." +msgstr "" + +#: admin/wp-security-user-registration-menu.php:121 +#@ aiowpsecurity +msgid "This feature will automatically set a newly registered account to \"pending\" until the administrator activates it. Therefore undesirable registrants will be unable to log in without your express approval." +msgstr "" + +#: admin/wp-security-user-registration-menu.php:122 +#@ aiowpsecurity +msgid "You can view all accounts which have been newly registered via the handy table below and you can also perform bulk activation/deactivation/deletion tasks on each account." +msgstr "" + +#: admin/wp-security-user-registration-menu.php:138 +#@ aiowpsecurity +msgid "Enable manual approval of new registrations" +msgstr "" + +#: admin/wp-security-user-registration-menu.php:141 +#@ aiowpsecurity +msgid "Check this if you want to automatically disable all newly registered accounts so that you can approve them manually." +msgstr "" + +#: admin/wp-security-user-registration-menu.php:150 +#@ aiowpsecurity +msgid "Approve Registered Users" +msgstr "" + +#: admin/wp-security-user-registration-menu.php:195 +#@ aiowpsecurity +msgid "This feature allows you to add a captcha form on the WordPress registration page." +msgstr "" + +#: admin/wp-security-user-registration-menu.php:196 +#@ aiowpsecurity +msgid "Users who attempt to register will also need to enter the answer to a simple mathematical question - if they enter the wrong answer, the plugin will not allow them to register." +msgstr "" + +#: admin/wp-security-user-registration-menu.php:197 +#@ aiowpsecurity +msgid "Therefore, adding a captcha form on the registration page is another effective yet simple SPAM registration prevention technique." +msgstr "" + +#: admin/wp-security-user-registration-menu.php:202 +#@ aiowpsecurity +msgid "Registration Page Captcha Settings" +msgstr "" + +#: admin/wp-security-user-registration-menu.php:214 +#@ aiowpsecurity +msgid "Enable Captcha On Registration Page" +msgstr "" + +#: admin/wp-security-user-registration-menu.php:217 +#@ aiowpsecurity +msgid "Check this if you want to insert a captcha form on the WordPress user registration page (if you allow user registration)." +msgstr "" + +#: admin/wp-security-whois-menu.php:22 +#@ aiowpsecurity +msgid "WhoIS Lookup" +msgstr "" + +#: admin/wp-security-whois-menu.php:74 +#@ aiowpsecurity +msgid "WHOIS Lookup Information" +msgstr "" + +#: admin/wp-security-whois-menu.php:77 +#@ aiowpsecurity +msgid "This feature allows you to look up more detailed information about an IP address or domain name by querying the WHOIS API." +msgstr "" + +#: admin/wp-security-whois-menu.php:83 +#@ aiowpsecurity +msgid "Perform a WHOIS Lookup for an IP or Domain Name" +msgstr "" + +#: admin/wp-security-whois-menu.php:89 +#@ aiowpsecurity +msgid "Enter IP Address or Domain Name" +msgstr "" + +#: admin/wp-security-whois-menu.php:91 +#@ aiowpsecurity +msgid "Enter an IP address or domain name. Example: 111.11.12.13 OR some-domain-name.com" +msgstr "" + +#: admin/wp-security-whois-menu.php:95 +#@ aiowpsecurity +msgid "Perform IP or Domain Lookup" +msgstr "" + +#: admin/wp-security-whois-menu.php:115 +#@ aiowpsecurity +msgid "WHOIS lookup successfully completed. Please see the results below:" +msgstr "" + +#: admin/wp-security-whois-menu.php:127 +#@ aiowpsecurity +msgid "You have entered an incorrectly formatted IP address or domain name. Please try again." +msgstr "" + +#: classes/grade-system/wp-security-feature-item-manager.php:29 +#@ aiowpsecurity +msgid "Remove WP Generatore Meta Tag" +msgstr "" + +#: classes/grade-system/wp-security-feature-item-manager.php:38 +#@ aiowpsecurity +msgid "Change Display Name" +msgstr "" + +#: classes/grade-system/wp-security-feature-item-manager.php:46 +#@ aiowpsecurity +msgid "Lost Password Captcha" +msgstr "" + +#: classes/grade-system/wp-security-feature-item-manager.php:48 +#@ aiowpsecurity +msgid "Login IP Whitelisting" +msgstr "" + +#: classes/grade-system/wp-security-feature-item-manager.php:54 +#@ aiowpsecurity +msgid "Registration Approval" +msgstr "" + +#: classes/grade-system/wp-security-feature-item-manager.php:70 +#@ aiowpsecurity +msgid "WordPress Files Access" +msgstr "" + +#: classes/grade-system/wp-security-feature-item-manager.php:74 +#@ aiowpsecurity +msgid "IP and User Agent Blacklisting" +msgstr "" + +#: classes/grade-system/wp-security-feature-item-manager.php:78 +#@ aiowpsecurity +msgid "Enable Basic Firewall" +msgstr "" + +#: classes/grade-system/wp-security-feature-item-manager.php:79 +#@ aiowpsecurity +msgid "Enable Pingback Vulnerability Protection" +msgstr "" + +#: classes/grade-system/wp-security-feature-item-manager.php:80 +#@ aiowpsecurity +msgid "Enable IP blocking for 404 detection" +msgstr "" + +#: classes/grade-system/wp-security-feature-item-manager.php:84 +#@ aiowpsecurity +msgid "Enable Rename Login Page" +msgstr "" + +#: classes/grade-system/wp-security-feature-item-manager.php:90 +#@ aiowpsecurity +msgid "Forbid Proxy Comments" +msgstr "" + +#: classes/grade-system/wp-security-feature-item-manager.php:91 +#@ aiowpsecurity +msgid "Deny Bad Queries" +msgstr "" + +#: classes/grade-system/wp-security-feature-item-manager.php:93 +#@ aiowpsecurity +msgid "5G Blacklist" +msgstr "" + +#: classes/grade-system/wp-security-feature-item-manager.php:96 +#@ aiowpsecurity +msgid "Block Spambots" +msgstr "" + +#: classes/grade-system/wp-security-feature-item-manager.php:98 +#@ aiowpsecurity +msgid "Comment Captcha" +msgstr "" + +#: classes/grade-system/wp-security-feature-item.php:28 +#@ aiowpsecurity +msgid "Basic" +msgstr "" + +#: classes/grade-system/wp-security-feature-item.php:31 +#@ aiowpsecurity +msgid "Intermediate" +msgstr "" + +#: classes/grade-system/wp-security-feature-item.php:34 +#@ aiowpsecurity +msgid "Advanced" +msgstr "" + +#: classes/wp-security-backup.php:177 +#@ aiowpsecurity +msgid "All In One WP Security - Site Database Backup" +msgstr "" + +#: classes/wp-security-backup.php:179 +#@ aiowpsecurity +msgid "Attached is your latest DB backup file for site URL" +msgstr "" + +#: classes/wp-security-backup.php:179 +#@ aiowpsecurity +msgid " generated on" +msgstr "" + +#: classes/wp-security-captcha.php:12 +#@ aiowpsecurity +msgid "Please enter an answer in digits:" +msgstr "Bitte löse zur Spamvermeidung diese Rechenaufgabe (in Zahlen):" + +#: classes/wp-security-captcha.php:91 +#@ aiowpsecurity +msgid "one" +msgstr "eins" + +#: classes/wp-security-captcha.php:92 +#@ aiowpsecurity +msgid "two" +msgstr "zwei" + +#: classes/wp-security-captcha.php:93 +#@ aiowpsecurity +msgid "three" +msgstr "drei" + +#: classes/wp-security-captcha.php:94 +#@ aiowpsecurity +msgid "four" +msgstr "vier" + +#: classes/wp-security-captcha.php:95 +#@ aiowpsecurity +msgid "five" +msgstr "fünf" + +#: classes/wp-security-captcha.php:96 +#@ aiowpsecurity +msgid "six" +msgstr "sechs" + +#: classes/wp-security-captcha.php:97 +#@ aiowpsecurity +msgid "seven" +msgstr "sieben" + +#: classes/wp-security-captcha.php:98 +#@ aiowpsecurity +msgid "eight" +msgstr "acht" + +#: classes/wp-security-captcha.php:99 +#@ aiowpsecurity +msgid "nine" +msgstr "neun" + +#: classes/wp-security-captcha.php:100 +#@ aiowpsecurity +msgid "ten" +msgstr "zehn" + +#: classes/wp-security-captcha.php:101 +#@ aiowpsecurity +msgid "eleven" +msgstr "elf" + +#: classes/wp-security-captcha.php:102 +#@ aiowpsecurity +msgid "twelve" +msgstr "zwölf" + +#: classes/wp-security-captcha.php:103 +#@ aiowpsecurity +msgid "thirteen" +msgstr "dreizehn" + +#: classes/wp-security-captcha.php:104 +#@ aiowpsecurity +msgid "fourteen" +msgstr "vierzehn" + +#: classes/wp-security-captcha.php:105 +#@ aiowpsecurity +msgid "fifteen" +msgstr "fünfzehn" + +#: classes/wp-security-captcha.php:106 +#@ aiowpsecurity +msgid "sixteen" +msgstr "sechzehn" + +#: classes/wp-security-captcha.php:107 +#@ aiowpsecurity +msgid "seventeen" +msgstr "siebzehn" + +#: classes/wp-security-captcha.php:108 +#@ aiowpsecurity +msgid "eighteen" +msgstr "achtzehn" + +#: classes/wp-security-captcha.php:109 +#@ aiowpsecurity +msgid "nineteen" +msgstr "neunzehn" + +#: classes/wp-security-captcha.php:110 +#@ aiowpsecurity +msgid "twenty" +msgstr "zwanzig" + +#: classes/wp-security-file-scan.php:62 +#@ aiowpsecurity +msgid "All In One WP Security - File change detected!" +msgstr "" + +#: classes/wp-security-file-scan.php:64 +#@ aiowpsecurity +msgid "A file change was detected on your system for site URL" +msgstr "" + +#: classes/wp-security-file-scan.php:64 +#@ aiowpsecurity +msgid ". Scan was generated on" +msgstr "" + +#: classes/wp-security-file-scan.php:65 +#@ aiowpsecurity +msgid "Login to your site to view the scan details." +msgstr "" + +#: classes/wp-security-general-init-tasks.php:214 +#@ aiowpsecurity +msgid "Please enter an answer in the CAPTCHA field." +msgstr "" + +#: classes/wp-security-general-init-tasks.php:224 +#@ aiowpsecurity +msgid "Error: You entered an incorrect CAPTCHA answer. Please go back and try again." +msgstr "" + +#: classes/wp-security-general-init-tasks.php:252 +#: classes/wp-security-user-login.php:70 +#: classes/wp-security-user-login.php:73 +#: classes/wp-security-user-registration.php:59 +#@ aiowpsecurity +msgid "ERROR: Your answer was incorrect - please try again." +msgstr "" + +#: classes/wp-security-process-renamed-login-page.php:68 +#@ aiowpsecurity +msgid "Please log in to access the WordPress admin area." +msgstr "" + +#: classes/wp-security-user-login.php:43 +#@ aiowpsecurity +msgid "" +"ERROR: Login failed because your IP address has been blocked.\n" +" Please contact the administrator." +msgstr "" + +#: classes/wp-security-user-login.php:83 +#@ aiowpsecurity +msgid "ERROR: The username field is empty." +msgstr "" + +#: classes/wp-security-user-login.php:87 +#@ aiowpsecurity +msgid "ERROR: The password field is empty." +msgstr "" + +#: classes/wp-security-user-login.php:107 +#: classes/wp-security-user-login.php:133 +#@ aiowpsecurity +msgid "ERROR: Invalid login credentials." +msgstr "" + +#: classes/wp-security-user-login.php:110 +#@ aiowpsecurity +msgid "ERROR: Invalid username." +msgstr "" + +#: classes/wp-security-user-login.php:136 +#, php-format +#@ aiowpsecurity +msgid "ERROR: Incorrect password. Lost your password?" +msgstr "" + +#: classes/wp-security-user-login.php:147 +#@ aiowpsecurity +msgid "ACCOUNT PENDING: Your account is currently not active. An administrator needs to activate your account before you can login." +msgstr "" + +#: classes/wp-security-user-login.php:270 +#@ aiowpsecurity +msgid "Site Lockout Notification" +msgstr "" + +#: classes/wp-security-user-login.php:271 +#@ aiowpsecurity +msgid "A lockdown event has occurred due to too many failed login attempts or invalid username:" +msgstr "" + +#: classes/wp-security-user-login.php:272 +#@ aiowpsecurity +msgid "Username: Unknown" +msgstr "" + +#: classes/wp-security-user-login.php:273 +#@ aiowpsecurity +msgid "IP Address: " +msgstr "" + +#: classes/wp-security-user-login.php:274 +#@ aiowpsecurity +msgid "IP Range: .*" +msgstr "" + +#: classes/wp-security-user-login.php:275 +#@ aiowpsecurity +msgid "Log into your site's WordPress administration panel to see the duration of the lockout or to unlock the user." +msgstr "" + +#: classes/wp-security-user-login.php:337 +#@ aiowpsecurity +msgid "Unlock Request Notification" +msgstr "" + +#: classes/wp-security-user-login.php:338 +#@ aiowpsecurity +msgid "You have requested for the account with email address to be unlocked. Please click the link below to unlock your account:" +msgstr "" + +#: classes/wp-security-user-login.php:339 +#@ aiowpsecurity +msgid "Unlock link: " +msgstr "" + +#: classes/wp-security-user-login.php:340 +#@ aiowpsecurity +msgid "After clicking the above link you will be able to login to the WordPress administration panel." +msgstr "" + +#: classes/wp-security-user-login.php:504 +#, php-format +#@ aiowpsecurity +msgid "Your session has expired because it has been over %d minutes since your last login." +msgstr "" + +#: classes/wp-security-user-login.php:505 +#: classes/wp-security-user-login.php:509 +#@ aiowpsecurity +msgid "Please log back in to continue." +msgstr "" + +#: classes/wp-security-user-login.php:508 +#@ aiowpsecurity +msgid "You were logged out because you just changed the \"admin\" username." +msgstr "" + +#: classes/wp-security-user-login.php:534 +#@ aiowpsecurity +msgid "Request Unlock" +msgstr "" + +#: classes/wp-security-utility-ip-address.php:82 +#: classes/wp-security-utility-ip-address.php:101 +#: classes/wp-security-utility-ip-address.php:116 +#: classes/wp-security-utility-ip-address.php:131 +#@ aiowpsecurity +msgid " is not a valid ip address format." +msgstr "" + +#: classes/wp-security-utility-ip-address.php:139 +#@ aiowpsecurity +msgid "You cannot ban your own IP address: " +msgstr "" + +#: classes/wp-security-utility.php:151 +#@ aiowpsecurity +msgid "This feature can only be configured by the \"superadmin\" on the main site." +msgstr "" + +#: other-includes/wp-security-rename-login-feature.php:98 +#: other-includes/wp-security-unlock-request.php:13 +#@ default +msgid "http://wordpress.org/" +msgstr "" + +#: other-includes/wp-security-rename-login-feature.php:99 +#: other-includes/wp-security-unlock-request.php:14 +#@ default +msgid "Powered by WordPress" +msgstr "" + +#: other-includes/wp-security-rename-login-feature.php:215 +#@ default +msgid "Are you lost?" +msgstr "" + +#: other-includes/wp-security-rename-login-feature.php:215 +#, php-format +#@ default +msgid "← Back to %s" +msgstr "" + +#: other-includes/wp-security-rename-login-feature.php:273 +#@ default +msgid "ERROR: Enter a username or e-mail address." +msgstr "" + +#: other-includes/wp-security-rename-login-feature.php:277 +#@ default +msgid "ERROR: There is no user registered with that email address." +msgstr "" + +#: other-includes/wp-security-rename-login-feature.php:294 +#@ default +msgid "ERROR: Invalid username or e-mail." +msgstr "" + +#: other-includes/wp-security-rename-login-feature.php:331 +#@ default +msgid "Password reset is not allowed for this user" +msgstr "" + +#: other-includes/wp-security-rename-login-feature.php:356 +#@ default +msgid "Someone requested that the password be reset for the following account:" +msgstr "" + +#: other-includes/wp-security-rename-login-feature.php:358 +#, php-format +#@ default +msgid "Username: %s" +msgstr "" + +#: other-includes/wp-security-rename-login-feature.php:359 +#@ default +msgid "If this was a mistake, just ignore this email and nothing will happen." +msgstr "" + +#: other-includes/wp-security-rename-login-feature.php:360 +#@ default +msgid "To reset your password, visit the following address:" +msgstr "" + +#: other-includes/wp-security-rename-login-feature.php:370 +#, php-format +#@ default +msgid "[%s] Password Reset" +msgstr "" + +#: other-includes/wp-security-rename-login-feature.php:391 +#@ default +msgid "The e-mail could not be sent." +msgstr "" + +#: other-includes/wp-security-rename-login-feature.php:391 +#@ default +msgid "Possible reason: your host may have disabled the mail() function." +msgstr "" + +#: other-includes/wp-security-rename-login-feature.php:496 +#@ default +msgid "Sorry, that key does not appear to be valid." +msgstr "" + +#: other-includes/wp-security-rename-login-feature.php:498 +#@ default +msgid "Sorry, that key has expired. Please try again." +msgstr "" + +#: other-includes/wp-security-rename-login-feature.php:518 +#@ default +msgid "Lost Password" +msgstr "" + +#: other-includes/wp-security-rename-login-feature.php:518 +#@ default +msgid "Please enter your username or email address. You will receive a link to create a new password via email." +msgstr "" + +#: other-includes/wp-security-rename-login-feature.php:526 +#@ default +msgid "Username or E-mail:" +msgstr "" + +#: other-includes/wp-security-rename-login-feature.php:537 +#@ default +msgid "Get New Password" +msgstr "" + +#: other-includes/wp-security-rename-login-feature.php:541 +#: other-includes/wp-security-rename-login-feature.php:590 +#: other-includes/wp-security-rename-login-feature.php:621 +#: other-includes/wp-security-rename-login-feature.php:703 +#@ default +msgid "Log in" +msgstr "" + +#: other-includes/wp-security-rename-login-feature.php:544 +#: other-includes/wp-security-rename-login-feature.php:624 +#: other-includes/wp-security-rename-login-feature.php:699 +#: other-includes/wp-security-rename-login-feature.php:875 +#@ default +msgid "Register" +msgstr "" + +#: other-includes/wp-security-rename-login-feature.php:576 +#@ default +msgid "The passwords do not match." +msgstr "" + +#: other-includes/wp-security-rename-login-feature.php:590 +#@ default +msgid "Password Reset" +msgstr "" + +#: other-includes/wp-security-rename-login-feature.php:590 +#@ default +msgid "Your password has been reset." +msgstr "" + +#: other-includes/wp-security-rename-login-feature.php:598 +#: other-includes/wp-security-rename-login-feature.php:617 +#@ default +msgid "Reset Password" +msgstr "" + +#: other-includes/wp-security-rename-login-feature.php:598 +#@ default +msgid "Enter your new password below." +msgstr "" + +#: other-includes/wp-security-rename-login-feature.php:605 +#@ default +msgid "New password" +msgstr "" + +#: other-includes/wp-security-rename-login-feature.php:609 +#@ default +msgid "Confirm new password" +msgstr "" + +#: other-includes/wp-security-rename-login-feature.php:613 +#@ default +msgid "Strength indicator" +msgstr "" + +#: other-includes/wp-security-rename-login-feature.php:614 +#@ default +msgid "Hint: The password should be at least seven characters long. To make it stronger, use upper and lower case letters, numbers and symbols like ! \" ? $ % ^ & )." +msgstr "" + +#: other-includes/wp-security-rename-login-feature.php:676 +#@ default +msgid "Registration Form" +msgstr "" + +#: other-includes/wp-security-rename-login-feature.php:676 +#@ default +msgid "Register For This Site" +msgstr "" + +#: other-includes/wp-security-rename-login-feature.php:681 +#: other-includes/wp-security-rename-login-feature.php:841 +#@ default +msgid "Username" +msgstr "" + +#: other-includes/wp-security-rename-login-feature.php:685 +#@ default +msgid "E-mail" +msgstr "" + +#: other-includes/wp-security-rename-login-feature.php:696 +#@ default +msgid "A password will be e-mailed to you." +msgstr "" + +#: other-includes/wp-security-rename-login-feature.php:704 +#: other-includes/wp-security-rename-login-feature.php:880 +#@ default +msgid "Password Lost and Found" +msgstr "" + +#: other-includes/wp-security-rename-login-feature.php:704 +#: other-includes/wp-security-rename-login-feature.php:880 +#@ default +msgid "Lost your password?" +msgstr "" + +#: other-includes/wp-security-rename-login-feature.php:748 +#@ default +msgid "ERROR: Cookies are blocked or not supported by your browser. You must enable cookies to use WordPress." +msgstr "" + +#: other-includes/wp-security-rename-login-feature.php:766 +#@ default +msgid "You have logged in successfully." +msgstr "" + +#: other-includes/wp-security-rename-login-feature.php:800 +#@ default +msgid "Session expired. Please log in again. You will not move away from this page." +msgstr "" + +#: other-includes/wp-security-rename-login-feature.php:804 +#@ default +msgid "You are now logged out." +msgstr "" + +#: other-includes/wp-security-rename-login-feature.php:806 +#@ default +msgid "User registration is currently not allowed." +msgstr "" + +#: other-includes/wp-security-rename-login-feature.php:808 +#@ default +msgid "Check your e-mail for the confirmation link." +msgstr "" + +#: other-includes/wp-security-rename-login-feature.php:810 +#@ default +msgid "Check your e-mail for your new password." +msgstr "" + +#: other-includes/wp-security-rename-login-feature.php:812 +#@ default +msgid "Registration complete. Please check your e-mail." +msgstr "" + +#: other-includes/wp-security-rename-login-feature.php:814 +#@ default +msgid "You have successfully updated WordPress! Please log back in to experience the awesomeness." +msgstr "" + +#: other-includes/wp-security-rename-login-feature.php:831 +#: other-includes/wp-security-rename-login-feature.php:858 +#@ default +msgid "Log In" +msgstr "" + +#: other-includes/wp-security-rename-login-feature.php:856 +#@ default +msgid "Remember Me" +msgstr "" + +#: other-includes/wp-security-unlock-request.php:48 +#@ aiowpsecurity +msgid "Please enter a valid email address" +msgstr "" + +#: other-includes/wp-security-unlock-request.php:59 +#@ aiowpsecurity +msgid "User account not found!" +msgstr "" + +#: other-includes/wp-security-unlock-request.php:70 +#@ aiowpsecurity +msgid "Error: No locked entry was found in the DB with your IP address range!" +msgstr "" + +#: other-includes/wp-security-unlock-request.php:98 +#@ aiowpsecurity +msgid "Email Address" +msgstr "" + diff --git a/all-in-one-wp-security/languages/aiowpsecurity-es_ES.mo b/all-in-one-wp-security/languages/aiowpsecurity-es_ES.mo new file mode 100644 index 0000000000000000000000000000000000000000..93f2ce192ee1e4e73a231e83b61e303538082da3 GIT binary patch literal 84002 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\n" +"Language-Team: \n" +"Language: es_ES\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 1.5.4\n" +"X-Poedit-KeywordsList: __;_e\n" +"X-Poedit-Basepath: .\n" +"X-Poedit-SearchPath-0: .\n" + +#: all-in-one-wp-security/admin/wp-security-admin-init.php:156 +msgid "WP Security" +msgstr "Seguridad Wordpress" + +#: all-in-one-wp-security/admin/wp-security-admin-init.php:157 +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:22 +msgid "Dashboard" +msgstr "Escritorio" + +#: all-in-one-wp-security/admin/wp-security-admin-init.php:158 +msgid "Settings" +msgstr "Opciones" + +#: all-in-one-wp-security/admin/wp-security-admin-init.php:159 +msgid "User Accounts" +msgstr "Cuentas de usuario" + +#: all-in-one-wp-security/admin/wp-security-admin-init.php:160 +msgid "User Login" +msgstr "Ingreso de usuarios" + +#: all-in-one-wp-security/admin/wp-security-admin-init.php:161 +msgid "User Registration" +msgstr "Registro de Usuarios" + +#: all-in-one-wp-security/admin/wp-security-admin-init.php:162 +msgid "Database Security" +msgstr "Seguridad base datos" + +#: all-in-one-wp-security/admin/wp-security-admin-init.php:166 +msgid "Filesystem Security" +msgstr "Seguridad de archivos" + +#: all-in-one-wp-security/admin/wp-security-admin-init.php:168 +msgid "WHOIS Lookup" +msgstr "Búsqueda WHOIS" + +#: all-in-one-wp-security/admin/wp-security-admin-init.php:172 +msgid "Blacklist Manager" +msgstr "Administrados listas negras" + +#: all-in-one-wp-security/admin/wp-security-admin-init.php:177 +msgid "Firewall" +msgstr "Firewall" + +#: all-in-one-wp-security/admin/wp-security-admin-init.php:179 +msgid "SPAM Prevention" +msgstr "Prevencion de SPAM" + +#: all-in-one-wp-security/admin/wp-security-admin-init.php:183 +msgid "Scanner" +msgstr "Escáner" + +#: all-in-one-wp-security/admin/wp-security-admin-init.php:185 +msgid "Maintenance" +msgstr "Mantenimiento" + +#: all-in-one-wp-security/admin/wp-security-admin-menu.php:43 +msgid "Settings successfully updated." +msgstr "Ajustes actualizado correctamente." + +#: all-in-one-wp-security/admin/wp-security-admin-menu.php:50 +msgid "The selected record(s) deleted successfully!" +msgstr "El registro(s) seleccionado eliminado correctamente!" + +#: all-in-one-wp-security/admin/wp-security-blacklist-menu.php:22 +msgid "Ban Users" +msgstr "Ban Users" + +#: all-in-one-wp-security/admin/wp-security-blacklist-menu.php:80 +msgid "Nonce check failed for save blacklist settings!" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-blacklist-menu.php:132 +#: all-in-one-wp-security/admin/wp-security-list-comment-spammer-ip.php:147 +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:400 +msgid "" +"The plugin was unable to write to the .htaccess file. Please edit file " +"manually." +msgstr "" +"El plug-in no pudo escribir en el fichero htaccess.. Por favor, editar el " +"archivo manualmente." + +#: all-in-one-wp-security/admin/wp-security-blacklist-menu.php:139 +msgid "Ban IPs or User Agents" +msgstr "Prohibir IPs o agentes de usuario" + +#: all-in-one-wp-security/admin/wp-security-blacklist-menu.php:142 +msgid "" +"The All In One WP Security Blacklist feature gives you the option of banning " +"certain host IP addresses or ranges and also user agents." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-blacklist-menu.php:143 +msgid "" +"This feature will deny total site access for users which have IP addresses " +"or user agents matching those which you have configured in the settings " +"below." +msgstr "" +"Esta característica va a negar el acceso total de la instalación para los " +"usuarios que tienen direcciones IP o los agentes de usuario que coincidan " +"con los que se haya configurado en la configuración de abajo." + +#: all-in-one-wp-security/admin/wp-security-blacklist-menu.php:144 +msgid "" +"The plugin achieves this by making appropriate modifications to your ." +"htaccess file." +msgstr "" +"El plugin logra esto haciendo las modificaciones pertinentes en su archivo " +"htaccess.." + +#: all-in-one-wp-security/admin/wp-security-blacklist-menu.php:145 +msgid "" +"By blocking people via the .htaccess file your are using the most secure " +"first line of defence which denies all access to blacklisted visitors as " +"soon as they hit your hosting server." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-blacklist-menu.php:151 +msgid "IP Hosts and User Agent Blacklist Settings" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-blacklist-menu.php:162 +msgid "Enable IP or User Agent Blacklisting" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-blacklist-menu.php:165 +msgid "" +"Check this if you want to enable the banning (or blacklisting) of selected " +"IP addresses and/or user agents specified in the settings below" +msgstr "" +"Seleccione esta opción si desea habilitar la prohibición (o una lista negra) " +"de direcciones IP seleccionadas y / o agentes de usuario especificados en la " +"siguiente configuración" + +#: all-in-one-wp-security/admin/wp-security-blacklist-menu.php:169 +msgid "Enter IP Addresses:" +msgstr "Introduzca las direcciones IP:" + +#: all-in-one-wp-security/admin/wp-security-blacklist-menu.php:173 +msgid "Enter one or more IP addresses or IP ranges." +msgstr "Introduzca una o más direcciones IP o rangos de IP." + +#: all-in-one-wp-security/admin/wp-security-blacklist-menu.php:174 +#: all-in-one-wp-security/admin/wp-security-blacklist-menu.php:194 +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:271 +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:288 +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:147 +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:177 +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:308 +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:338 +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:369 +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:397 +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:426 +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:514 +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:669 +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:703 +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:726 +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:747 +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:174 +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:259 +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:456 +msgid "More Info" +msgstr "Mas info" + +#: all-in-one-wp-security/admin/wp-security-blacklist-menu.php:177 +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:459 +msgid "Each IP address must be on a new line." +msgstr "Cada dirección IP debe estar en una línea nueva." + +#: all-in-one-wp-security/admin/wp-security-blacklist-menu.php:178 +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:460 +msgid "" +"To specify an IP range use a wildcard \"*\" character. Acceptable ways to " +"use wildcards is shown in the examples below:" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-blacklist-menu.php:179 +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:461 +msgid "Example 1: 195.47.89.*" +msgstr "Ejemplo 1: 195.47.89.*" + +#: all-in-one-wp-security/admin/wp-security-blacklist-menu.php:180 +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:462 +msgid "Example 2: 195.47.*.*" +msgstr "Ejemplo 2: 195.47.*.*" + +#: all-in-one-wp-security/admin/wp-security-blacklist-menu.php:181 +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:463 +msgid "Example 3: 195.*.*.*" +msgstr "Ejemplo 3: 195.*.*.*" + +#: all-in-one-wp-security/admin/wp-security-blacklist-menu.php:188 +msgid "Enter User Agents:" +msgstr "Introduzca el Agente de Usuario:" + +#: all-in-one-wp-security/admin/wp-security-blacklist-menu.php:193 +msgid "Enter one or more user agent strings." +msgstr "Introduce una o más cadenas de agente de usuario." + +#: all-in-one-wp-security/admin/wp-security-blacklist-menu.php:197 +msgid "Each user agent string must be on a new line." +msgstr "Cada cadena de agente de usuario debe estar en una línea nueva." + +#: all-in-one-wp-security/admin/wp-security-blacklist-menu.php:198 +msgid "Example 1 - A single user agent string to block:" +msgstr "Ejemplo 1 - Una cadena única de agente de usuario para bloquear:" + +#: all-in-one-wp-security/admin/wp-security-blacklist-menu.php:200 +msgid "Example 2 - A list of more than 1 user agent strings to block" +msgstr "" +"Ejemplo 2 - Una lista de más de 1 cadenas de agente de usuario para bloquear" + +#: all-in-one-wp-security/admin/wp-security-blacklist-menu.php:208 +#: all-in-one-wp-security/admin/wp-security-database-menu.php:347 +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:309 +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:231 +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:497 +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:189 +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:232 +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:336 +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:470 +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:628 +#: all-in-one-wp-security/admin/wp-security-user-registration-menu.php:146 +#: all-in-one-wp-security/admin/wp-security-user-registration-menu.php:221 +msgid "Save Settings" +msgstr "Guardar opciones" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:23 +msgid "System Info" +msgstr "Informacion de sistema" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:73 +msgid "For information, updates and documentation, please visit the" +msgstr "" +"Para obtener información, actualizaciones y documentación, por favor visite " +"el " + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:73 +msgid "AIO WP Security & Firewall Plugin" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:73 +msgid "Page" +msgstr "Pagina" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:74 +msgid "Follow us" +msgstr "Síguenos" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:74 +msgid "" +"Twitter, Google+ or via Email to stay upto date about the new security " +"features of this plugin." +msgstr "" +"Twitter, Google+ o vía correo electrónico para mantenerse al día sobre las " +"nuevas características de seguridad de este plugin." + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:88 +msgid "Security Strength Meter" +msgstr "Medidor de Seguridad" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:117 +msgid "Total Achievable Points: " +msgstr "Total de puntos alcanzables: " + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:119 +msgid "Current Score of Your Site: " +msgstr "Puntuación actual de su sitio: " + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:129 +msgid "Security Points Breakdown" +msgstr "Analisis Puntos de Seguridad" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:170 +msgid "Critical Feature Status" +msgstr "Estado caracteriticas de seguridad" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:174 +msgid "" +"Below is the current status of the critical features that you should " +"activate on your site to achieve a minimum level of recommended security" +msgstr "" +"A continuación se muestra el estado actual de las características esenciales " +"que debe activar en su sitio para alcanzar un nivel mínimo de seguridad " +"recomendada" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:178 +msgid "Admin Username" +msgstr "Nombre de usuario Admin" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:193 +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:27 +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:39 +msgid "Login Lockdown" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:208 +msgid "File Permission" +msgstr "permiso del archivo" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:223 +msgid "Basic Firewall" +msgstr "Firewall Basico" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:241 +msgid "Maintenance Mode Status" +msgstr "Estado modo mantenimiento" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:245 +msgid "" +"Maintenance mode is currently enabled. Remember to turn it off when you are " +"done" +msgstr "" +"El modo de mantenimiento está habilitada actualmente. Recuerde que apagarlo " +"cuando haya terminado" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:248 +msgid "Maintenance mode is currently off." +msgstr "El modo de mantenimiento actualmente apagado." + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:252 +msgid "Maintenance Mode" +msgstr "Modo Mantenimiento" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:291 +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:33 +msgid "Logged In Users" +msgstr "Usuarios conectados" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:301 +msgid "Number of users currently logged in site-wide is:" +msgstr "Número de usuarios conectados actualmente en todo el sitio web es:" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:302 +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:324 +#, php-format +msgid "Go to the %s menu to see more details" +msgstr "Ir al menú de %s para ver más detalles" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:307 +msgid "There are no other site-wide users currently logged in." +msgstr "" +"No hay otros usuarios de todo el sitio Actualmente se ha iniciado sesión" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:323 +msgid "Number of users currently logged into your site is:" +msgstr "Número de usuarios conectados actualmente en su sitio es:" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:329 +msgid "There are no other users currently logged in." +msgstr "Actualmente no hay usuarios conectados" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:340 +msgid "Spread the Word" +msgstr "Corre la Voz" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:343 +msgid "" +"We are working to make your WordPress site more secure. Please support us, " +"here is how:" +msgstr "" +"Estamos trabajando para hacer de su sitio de WordPress más seguro. Por favor " +"que nos apoyen, aquí es cómo:" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:367 +msgid "Site Info" +msgstr "Informacion del sitio" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:369 +msgid "Plugin Version" +msgstr "Plugin Version" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:370 +msgid "WP Version" +msgstr "Version Wordpress" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:372 +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:374 +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:395 +msgid "Version" +msgstr "Version" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:373 +msgid "Table Prefix" +msgstr "Prefijo de tablas" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:375 +msgid "Session Save Path" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:377 +msgid "Server Name" +msgstr "Nombre servidor" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:378 +msgid "Cookie Domain" +msgstr "Dominio de Cookie" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:379 +msgid "Library Present" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:380 +msgid "Debug File Write Permissions" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:384 +msgid "Active Plugins" +msgstr "Plugins activos" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:394 +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:130 +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:149 +msgid "Name" +msgstr "Nombre" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:396 +msgid "Plugin URL" +msgstr "URL Plugin" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:23 +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:57 +msgid "DB Prefix" +msgstr "Prefijo DB" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:24 +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:59 +msgid "DB Backup" +msgstr "Respaldo DB" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:84 +msgid "Nonce check failed for DB prefix change operation!" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:92 +msgid "" +"The plugin has detected that it cannot write to the wp-config.php file. This " +"feature can only be used if the plugin can successfully write to the wp-" +"config.php file." +msgstr "" +"El plug-in ha detectado que no se puede escribir en el archivo wp-config." +"php. Esta función sólo se puede utilizar si el plugin se puede escribir " +"correctamente en el archivo wp-config.php." + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:105 +msgid "Please enter a value for the DB prefix." +msgstr "Por favor, introduzca un valor para el prefijo DB." + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:114 +msgid "" +"ERROR: The table prefix can only contain numbers, letters, " +"and underscores." +msgstr "" +"ERROR: El prefijo de tabla sólo puede contener números, " +"letras y guiones bajos." + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:122 +msgid "Change Database Prefix" +msgstr "Cambiar prefijo Base datos" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:125 +msgid "" +"Your WordPress DB is the most important asset of your website because it " +"contains a lot of your site's precious information." +msgstr "" +"Su base de datos de WordPress es el activo más importante de su sitio web, " +"ya que contiene una gran cantidad de valiosa información de su sitio." + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:126 +msgid "" +"The DB is also a target for hackers via methods such as SQL injections and " +"malicious and automated code which targets certain tables." +msgstr "" +"La DB es también un objetivo para los hackers a través de métodos tales como " +"las inyecciones de SQL y los códigos maliciosos y automatizada que apunta " +"ciertas tablas." + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:127 +msgid "" +"One way to add a layer of protection for your DB is to change the default " +"WordPress table prefix from \"wp_\" to something else which will be " +"difficult for hackers to guess." +msgstr "" +"Una forma de añadir una capa de protección a su base de datos es cambiar el " +"prefijo de las tablas de WordPress por defecto de \"wp_ \" a otra cosa que " +"será difícil para los hackers de adivinar." + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:128 +msgid "" +"This feature allows you to easily change the prefix to a value of your " +"choice or to a random value set by this plugin." +msgstr "" +"Esta característica le permite cambiar fácilmente el prefijo a un valor de " +"su elección o en un valor aleatorio establecido por este plugin." + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:134 +msgid "DB Prefix Options" +msgstr "Opciones prefijo Db" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:145 +#, php-format +msgid "It is recommended that you perform a %s before using this feature" +msgstr "Se recomienda que realice una %s antes de utilizar esta función" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:154 +msgid "Current DB Table Prefix" +msgstr "Actual prefijo de tablas en DB" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:160 +msgid "" +"Your site is currently using the default WordPress DB prefix value of \"wp_" +"\". \n" +" To increase your site's security you should " +"consider changing the DB prefix value to another value." +msgstr "" +"Su sitio está utilizando actualmente el valor de prefijo por defecto de " +"WordPress DB \"wp_\". \n" +" Para aumentar la seguridad de su sitio debe " +"tener en cuenta el cambio del valor de prefijo DB a otro valor." + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:167 +msgid "Generate New DB Table Prefix" +msgstr "Generar nuevo Prefijo de tabla" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:170 +msgid "" +"Check this if you want the plugin to generate a random 6 character string " +"for the table prefix" +msgstr "" +"Seleccione esta opción si desea que el plugin para seleccione seis " +"caracteres aleatorios para el prefijo de la tabla" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:171 +msgid "OR" +msgstr "O" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:173 +msgid "" +"Choose your own DB prefix by specifying a string which contains letters and/" +"or numbers and/or underscores. Example: xyz_" +msgstr "" +"Elija su propio prefijo DB especificando una cadena que contiene letras y / " +"o números y / o guiones bajos. Ejemplo: xyz_" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:177 +msgid "Change DB Prefix" +msgstr "Cambiar prefijo DB" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:198 +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:86 +msgid "Nonce check failed for manual DB backup operation!" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:215 +msgid "" +"DB Backup was successfully completed! You will receive the backup file via " +"email if you have enabled \"Send Backup File Via Email\", otherwise you can " +"retrieve it via FTP from the following directory:" +msgstr "" +"Copia de seguridad de base de datos se completó con éxito! Usted recibirá el " +"archivo de copia de seguridad por correo electrónico si ha habilitado " +"\"Enviar archivo de copia de seguridad por correo electrónico \", de lo " +"contrario se puede recuperar a través de FTP desde el siguiente directorio:" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:217 +msgid "Your DB Backup File location: " +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:225 +msgid "DB Backup failed. Please check the permissions of the backup directory." +msgstr "" +"copia de seguridad ha fallado. Por favor, compruebe los permisos del " +"directorio de copia de seguridad." + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:242 +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:126 +msgid "" +"You entered a non numeric value for the \"backup time interval\" field. It " +"has been set to the default value." +msgstr "" +"Ha introducido un valor no numérico para el \"intervalo de tiempo de copia " +"de seguridad \" de campo. Se ha establecido en el valor predeterminado." + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:249 +msgid "" +"You entered a non numeric value for the \"number of backup files to keep\" " +"field. It has been set to the default value." +msgstr "" +"Ha introducido un valor no numérico para el campo \"número de archivos de " +"copia de seguridad para mantener \". Se ha establecido en el valor " +"predeterminado." + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:256 +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:156 +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:121 +msgid "" +"You have entered an incorrect email address format. It has been set to your " +"WordPress admin email as default." +msgstr "" +"Ha introducido un formato de dirección de correo electrónico incorrecta. Se " +"ha establecido en su correo electrónico de administración de WordPress por " +"defecto." + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:262 +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:162 +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:219 +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:127 +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:581 +msgid "Attention!" +msgstr "Atencion!" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:289 +msgid "Manual Backup" +msgstr "Respaldo Manual" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:295 +msgid "To create a new DB backup just click on the button below." +msgstr "" +"Para crear una nueva copia de seguridad DB simplemente haga clic en el botón " +"de abajo." + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:298 +msgid "Create DB Backup Now" +msgstr "Respaldar base datos" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:302 +msgid "Automated Scheduled Backups" +msgstr "Respaldos programados automáticos" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:314 +msgid "Enable Automated Scheduled Backups" +msgstr "Habilitar copias de seguridad programadas" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:317 +msgid "" +"Check this if you want the system to automatically generate backups " +"periodically based on the settings below" +msgstr "" +"Seleccione esta opción si desea que el sistema genere automáticamente copias " +"de seguridad periódicamente en base a la siguiente configuración" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:321 +msgid "Backup Time Interval" +msgstr "Tiempo entre respaldos" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:324 +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:259 +msgid "Hours" +msgstr "Horas" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:325 +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:260 +msgid "Days" +msgstr "Dias" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:326 +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:261 +msgid "Weeks" +msgstr "Semanas" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:328 +msgid "Set the value for how often you would like an automated backup to occur" +msgstr "" +"Establezca la frecuencia con que desea realizar una copia de seguridad " +"automática" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:332 +msgid "Number of Backup Files To Keep" +msgstr "Número de archivos de copia de seguridad para mantener" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:334 +msgid "" +"Thie field allows you to choose the number of backup files you would like to " +"keep in the backup directory" +msgstr "" +"El campo le permite elegir el número de archivos de copia de seguridad que " +"le gustaría tener en el directorio de copia de seguridad" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:338 +msgid "Send Backup File Via Email" +msgstr "Enviar archivo respaldo via Email" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:341 +msgid "" +"Check this if you want the system to email you the backup file after a DB " +"backup has been performed" +msgstr "" +"Seleccione esta opción si desea que el sistema le envía por correo " +"electrónico el archivo de copia de seguridad después de que se ha realizado " +"una copia de seguridad de base de datos" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:343 +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:305 +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:228 +msgid "Enter an email address" +msgstr "Ingrese una direccion de email" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:373 +msgid "Starting DB prefix change operations....." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:375 +#, php-format +msgid "" +"Your WordPress system has a total of %s tables and your new DB prefix will " +"be: %s" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:381 +#: all-in-one-wp-security/classes/wp-security-utility.php:206 +msgid "" +"Failed to make a backup of the wp-config.php file. This operation will not " +"go ahead." +msgstr "" +"No se pudo hacer una copia de seguridad del archivo wp-config.php. Esta " +"operación no seguirá adelante." + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:385 +msgid "A backup copy of your wp-config.php file was created successfully!" +msgstr "" +"Una copia de seguridad del archivo wp-config.php sido creado con éxito!" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:408 +#, php-format +msgid "%s table name update failed" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:420 +#, php-format +msgid "Please change the prefix manually for the above tables to: %s" +msgstr "Por favor cambio el prefijo manualmente para las siguientes tablas: %s" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:423 +#, php-format +msgid "%s tables had their prefix updated successfully!" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:438 +msgid "wp-config.php file was updated successfully!" +msgstr "El archivo wp-config.php se ha actulizado satisfactoriamente!" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:441 +#, php-format +msgid "" +"The \"wp-config.php\" file was not able to be modified. Please modify this " +"file manually using your favourite editor and search \n" +" for variable \"$table_prefix\" and assign the following " +"value to that variable: %s" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:462 +msgid "There was an error when updating the options table." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:466 +msgid "" +"The options table records which had references to the old DB prefix were " +"updated successfully!" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:491 +#, php-format +msgid "" +"Error updating user_meta table where new meta_key = %s, old meta_key = %s " +"and user_id = %s." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:497 +msgid "" +"The usermeta table records which had references to the old DB prefix were " +"updated successfully!" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:499 +msgid "DB prefix change tasks have been completed." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:22 +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:94 +msgid "File Change Detection" +msgstr "Detección de cambio de archivos" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:93 +msgid "Nonce check failed for manual file change detection scan operation!" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:100 +msgid "" +"The plugin has detected that this is your first file change detection scan. " +"The file details from this scan will be used to detect file changes for " +"future scans!" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:194 +msgid "" +"NEW SCAN COMPLETED: The plugin has detected that you have made changes to " +"the \"File Types To Ignore\" or \"Files To Ignore\" fields.\n" +" In order to ensure that future scan results are " +"accurate, the old scan data has been refreshed." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:204 +msgid "" +"All In One WP Security & Firewall has detected that there was a change in " +"your host's files." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:206 +msgid "View Scan Details & Clear This Message" +msgstr "Ver los detalles de escaneo y eliminar este mensaje" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:215 +msgid "" +"If given an opportunity hackers can insert their code or files into your " +"system which they can then use to carry out malicious acts on your site." +msgstr "" +"Si se les da una oportunidad a los piratas informáticos pueden insertar su " +"código o archivos en su sistema, que luego puede utilizar para llevar a cabo " +"los actos malintencionados en su sitio." + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:216 +msgid "" +"Being informed of any changes in your files can be a good way to quickly " +"prevent a hacker from causing damage to your website." +msgstr "" +"Estar informado de cualquier cambio en sus archivos puede ser una buena " +"manera de prevenir rápidamente un hacker de causar daños en el sitio web." + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:217 +msgid "" +"In general, WordPress core and plugin files and file types such as \".php\" " +"or \".js\" should not change often and when they do, it is important that " +"you are made aware when a change occurs and which file was affected." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:218 +msgid "" +"The \"File Change Detection Feature\" will notify you of any file change " +"which occurs on your system, including the addition and deletion of files by " +"performing a regular automated or manual scan of your system's files." +msgstr "" +"La \"característica de detección de cambio de archivo \" le notificará de " +"cualquier cambio de archivo que se produce en su sistema, incluyendo la " +"adición y eliminación de archivos mediante la realización de una búsqueda de " +"virus automatizado o manual de los archivos de tu sistema." + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:219 +msgid "" +"This feature also allows you to exclude certain files or folders from the " +"scan in cases where you know that they change often as part of their normal " +"operation. (For example log files and certain caching plugin files may " +"change often and hence you may choose to exclude such files from the file " +"change detection scan)" +msgstr "" +"Esta característica también le permite excluir ciertos archivos o carpetas " +"de la exploración en los casos donde se sabe que a menudo cambian como parte " +"de su funcionamiento normal. (Por ejemplo los archivos de registro y ciertos " +"archivos de plugin de caché pueden cambiar a menudo y por lo tanto usted " +"puede optar por excluir este tipo de archivos del análisis de detección de " +"cambio de archivo)" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:224 +msgid "Manual File Change Detection Scan" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:230 +msgid "" +"To perform a manual file change detection scan click on the button below." +msgstr "" +"Para realizar un escaneo manual de detección de cambio de archivo , haga " +"clic en el botón de abajo." + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:233 +msgid "Perform Scan Now" +msgstr "Realizar un scaneos" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:237 +msgid "File Change Detection Settings" +msgstr "Configuración de detección de modificación del archivo" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:249 +msgid "Enable Automated File Change Detection Scan" +msgstr "Activar escaneo automatizado de detección de cambio de archivo" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:252 +msgid "" +"Check this if you want the system to automatically/periodically scan your " +"files to check for file changes based on the settings below" +msgstr "" +"Seleccione esta opción si desea que el sistema escanee periódicamente sus " +"archivos para verificar si hay cambios en los archivos en función de los " +"ajustes siguientes" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:256 +msgid "Scan Time Interval" +msgstr "Intervalo entre escaneos" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:263 +msgid "Set the value for how often you would like a scan to occur" +msgstr "" +"Establezca el valor de la frecuencia con la que le gustaría que se realice " +"un escaneo" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:267 +msgid "File Types To Ignore" +msgstr "Tipos de archivo a ignorar" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:270 +msgid "" +"Enter each file type or extension on a new line which you wish to exclude " +"from the file change detection scan." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:274 +msgid "" +"You can exclude file types from the scan which would not normally pose any " +"security threat if they were changed. These can include things such as image " +"files." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:275 +msgid "" +"Example: If you want the scanner to ignore files of type jpg, png, and bmp, " +"then you would enter the following:" +msgstr "" +"Ejemplo: Si desea que el escáner ignorare los archivos de tipo jpg, png, y " +"bmp, a continuación, se escribiría lo siguiente:" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:276 +msgid "jpg" +msgstr "jpg" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:277 +msgid "png" +msgstr "png" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:278 +msgid "bmp" +msgstr "bmp" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:284 +msgid "Files/Directories To Ignore" +msgstr "Archivos/Direcctorios a ignorar" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:287 +msgid "" +"Enter each file or directory on a new line which you wish to exclude from " +"the file change detection scan." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:291 +msgid "" +"You can exclude specific files/directories from the scan which would not " +"normally pose any security threat if they were changed. These can include " +"things such as log files." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:292 +msgid "" +"Example: If you want the scanner to ignore certain files in different " +"directories or whole directories, then you would enter the following:" +msgstr "" +"Ejemplo: Si desea que el scanner ignore ciertos archivos en diferentes " +"directorios o directorios completos, a continuación, debe escribir lo " +"siguiente:" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:293 +msgid "cache/config/master.php" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:294 +msgid "somedirectory" +msgstr "algundirectorio" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:300 +msgid "Send Email When Change Detected" +msgstr "Enviar un correo cuando detecte un cambio" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:303 +msgid "" +"Check this if you want the system to email you if a file change was detected" +msgstr "" +"Seleccione esta opción si desea que el sistema le envía por correo " +"electrónico si se detecta un cambio en un archivo" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:335 +msgid "Latest File Change Scan Results" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:344 +msgid "The following files were added to your host." +msgstr "Los siguientes archivos se han añadido a su host." + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:347 +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:368 +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:392 +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:26 +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:27 +msgid "File" +msgstr "Archivo" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:348 +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:369 +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:393 +msgid "File Size" +msgstr "Tamanño de archivo" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:349 +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:370 +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:394 +msgid "File Modified" +msgstr "Archivo modificado" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:365 +msgid "The following files were removed from your host." +msgstr "Los siguientes archivos fueron retirados de su host." + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:389 +msgid "The following files were changed on your host." +msgstr "Los siguientes archivos se han cambiado en el host." + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:26 +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:63 +msgid "File Permissions" +msgstr "Permisos de archivo" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:27 +msgid "PHP File Editing" +msgstr "Edicion archivo PHP" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:28 +msgid "WP File Access" +msgstr "WP acceso archivo" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:29 +msgid "Host System Logs" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:96 +#, php-format +msgid "The permissions for %s were succesfully changed to %s" +msgstr "Los permisos para %s se cambiaron exitosamente a %s" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:100 +#, php-format +msgid "Unable to change permissions for %s!" +msgstr "No se puede cambiar los permisos de %s!" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:106 +msgid "File Permissions Scan" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:109 +msgid "" +"Your WordPress file and folder permission settings govern the accessability " +"and read/write privileges of the files and folders which make up your WP " +"installation." +msgstr "" +"La configuración de permisos de archivos y carpetas WordPress rigen la " +"accesibilidad y de lectura / escritura de los privilegios de los archivos y " +"carpetas que componen la instalación de WP." + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:110 +msgid "" +"Your WP installation already comes with reasonably secure file permission " +"settings for the filesystem." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:111 +msgid "" +"However, sometimes people or other plugins modify the various permission " +"settings of certain core WP folders or files such that they end up making " +"their site less secure because they chose the wrong permission values." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:112 +msgid "" +"This feature will scan the critical WP core folders and files and will " +"highlight any permission settings which are insecure." +msgstr "" +"Esta característica va a escanear las carpetas críticos fundamentales WP y " +"archivos y resaltará cualquier configuración de permisos que son inseguros." + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:118 +msgid "WP Directory and File Permissions Scan Results" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:131 +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:150 +msgid "File/Folder" +msgstr "Archivo/Carpeta" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:132 +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:151 +msgid "Current Permissions" +msgstr "Permisos actuales" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:133 +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:152 +msgid "Recommended Permissions" +msgstr "Permisos recomendados" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:134 +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:153 +msgid "Recommended Action" +msgstr "Acciones recomendadas" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:191 +msgid "Your PHP file editing settings were saved successfully." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:195 +msgid "" +"Operation failed! Unable to modify or make a backup of wp-config.php file!" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:201 +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:65 +msgid "File Editing" +msgstr "Edicion de archivo" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:204 +msgid "" +"The Wordpress Dashboard by default allows administrators to edit PHP files, " +"such as plugin and theme files." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:205 +msgid "" +"This is often the first tool an attacker will use if able to login, since it " +"allows code execution." +msgstr "" +"Esto es a menudo la primera herramienta que un atacante usará si es capaz de " +"iniciar sesión, ya que permite la ejecución de código" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:206 +msgid "" +"This feature will disable the ability for people to edit PHP files via the " +"dashboard." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:212 +msgid "Disable PHP File Editing" +msgstr "Desactivar Edición de archivo PHP" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:224 +msgid "Disable Ability To Edit PHP Files" +msgstr "Desactivar posibilidad de editar archivos PHP" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:227 +msgid "" +"Check this if you want to remove the ability for people to edit PHP files " +"via the WP dashboard" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:271 +msgid "" +"You have successfully saved the Prevent Access to Default WP Files " +"configuration." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:275 +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:115 +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:269 +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:480 +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:619 +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:106 +msgid "" +"Could not write to the .htaccess file. Please check the file permissions." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:280 +msgid "WordPress Files" +msgstr "Archivos WordPress" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:283 +#, php-format +msgid "" +"This feature allows you to prevent access to files such as %s, %s and %s " +"which are delivered with all WP installations." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:284 +msgid "" +"By preventing access to these files you are hiding some key pieces of " +"information (such as WordPress version info) from potential hackers." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:289 +msgid "Prevent Access to Default WP Files" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:300 +msgid "Prevent Access to WP Default Install Files" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:303 +msgid "" +"Check this if you want to prevent access to readme.html, license.txt and wp-" +"config-sample.php." +msgstr "" +"Seleccione esta opción si desea impedir el acceso a readme.html, license.txt " +"y wp-config-sample.php." + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:307 +msgid "Save Setting" +msgstr "guardar ajuste" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:331 +msgid "System Logs" +msgstr "Logs de sistema" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:334 +msgid "" +"Sometimes your hosting platform will produce error or warning logs in a file " +"called \"error_log\"." +msgstr "" +"A veces, su plataforma de alojamiento producirá error o registros de avisos " +"en un archivo llamado \"error_log \"." + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:335 +msgid "" +"Depending on the nature and cause of the error or warning, your hosting " +"server can create multiple instances of this file in numerous directory " +"locations of your WordPress installation." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:336 +msgid "" +"By occassionally viewing the contents of these logs files you can keep " +"informed of any underlying problems on your system which you might need to " +"address." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:342 +msgid "View System Logs" +msgstr "Ver log de sistema" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:347 +msgid "Enter System Log File Name" +msgstr "Introdusca el nombre para el archivo de registro" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:349 +msgid "Enter your system log file name. (Defaults to error_log)" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:352 +msgid "View Latest System Logs" +msgstr "Vea Los Últimos Registros del sistema" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:354 +msgid "Loading..." +msgstr "Cargando..." + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:371 +msgid "No system logs were found!" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:424 +msgid "Set Recommended Permissions" +msgstr "Establecer permisos recomendados" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:430 +msgid "No Action Required" +msgstr "No se requiere acción" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:470 +#, php-format +msgid "Showing latest entries of error_log file: %s" +msgstr "Mostrando las entradas más recientes de archivo error_log: %s" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:25 +msgid "Basic Firewall Rules" +msgstr "Reglas basicas de Firewall" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:26 +msgid "Additional Firewall Rules" +msgstr "Reglas adicionales de Firewall" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:27 +msgid "5G Blacklist Firewall Rules" +msgstr "Las reglas de 5G firewall de lista negra" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:28 +msgid "Brute Force Prevention" +msgstr "Prevencion Fuerza Bruta" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:111 +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:102 +#: all-in-one-wp-security/admin/wp-security-user-registration-menu.php:96 +msgid "Settings were successfully saved" +msgstr "Ajustes se guardaron correctamente" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:120 +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:485 +msgid "Firewall Settings" +msgstr "Opciones de Firewall" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:127 +#, php-format +msgid "" +"This should not have any impact on your site's general functionality but if " +"you wish you can take a %s of your .htaccess file before proceeding." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:128 +msgid "" +"The features in this tab allow you to activate some basic firewall security " +"protection rules for your site." +msgstr "" +"Las funciones de esta ficha permiten activar algunas reglas básicas de " +"protección de la seguridad de firewall para su sitio." + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:129 +msgid "" +"The firewall functionality is achieved via the insertion of special code " +"into your currently active .htaccess file." +msgstr "" +"La funcionalidad de servidor de seguridad se logra a través de la inserción " +"de un código especial en su archivo. Htaccess actualmente activo." + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:135 +msgid "Basic Firewall Settings" +msgstr "Opciones basicas de Firewall" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:143 +msgid "Enable Basic Firewall Protection" +msgstr "Habilitar proteccion basica de Firewall" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:146 +msgid "Check this if you want to apply basic firewall protection to your site." +msgstr "" +"Seleccione esta opción si desea aplicar la protección básica de cortafuegos " +"a su sitio." + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:150 +msgid "" +"This setting will implement the following basic firewall protection " +"mechanisms on your site:" +msgstr "" +"Este ajuste implementará los siguientes mecanismos básicos de protección de " +"firewall en su sitio:" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:151 +msgid "1) Protect your htaccess file by denying access to it." +msgstr "1) Proteger su archivo htaccess al negar el acceso a la misma." + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:152 +msgid "2) Disable the server signature." +msgstr "2) Desactivar la firma del servidor." + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:153 +msgid "3) Limit file upload size (10MB)." +msgstr "3) el tamaño de carga de archivos Límite (10MB)." + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:154 +msgid "4) Protect your wp-config.php file by denying access to it." +msgstr "4) Proteger su archivo wp-config.php al negar el acceso a la misma." + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:155 +msgid "" +"The above firewall features will be applied via your .htaccess file and " +"should not affect your site's overall functionality." +msgstr "" +"Las características de firewall anteriores se aplicarán a través de su " +"archivo .htaccess y no deberían afectar a la funcionalidad general de su " +"sitio." + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:156 +msgid "" +"You are still advised to take a backup of your active .htaccess file just in " +"case." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:165 +msgid "WordPress Pingback Vulnerability Protection" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:173 +msgid "Enable Pingback Protection" +msgstr "Activar protección Pingback" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:176 +msgid "" +"Check this if you are not using the WP XML-RPC functionality and you want to " +"enable protection against WordPress pingback vulnerabilities." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:180 +msgid "" +"This setting will add a directive in your .htaccess to disable access to the " +"WordPress xmlrpc.php file which is responsible for the XML-RPC functionality " +"such as pingbacks in WordPress." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:181 +msgid "" +"Hackers can exploit various pingback vulnerabilities in the WordPress XML-" +"RPC API in a number of ways such as:" +msgstr "" +"Los hackers pueden explotar varias vulnerabilidades pingback en el WordPress " +"XML-RPC API de varias maneras, tales como:" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:182 +msgid "1) Denial of Service (DoS) attacks" +msgstr "1) la denegación de servicio (DoS)" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:183 +msgid "2) Hacking internal routers." +msgstr "2) Hackear routers internos." + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:184 +msgid "3) Scanning ports in internal networks to get info from various hosts." +msgstr "" +"3) análisis de puertos en las redes internas para obtener información de " +"varios hosts." + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:185 +msgid "" +"Apart from the security protection benefit, this feature may also help " +"reduce load on your server, particularly if your site currently has a lot of " +"unwanted traffic hitting the XML-RPC API on your installation." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:186 +msgid "" +"NOTE: You should only enable this feature if you are not currently using the " +"XML-RPC functionality on your WordPress installation." +msgstr "" +"NOTA: Sólo se debe activar esta función si no está utilizando la " +"funcionalidad de XML-RPC en su instalación de WordPress." + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:193 +msgid "Save Basic Firewall Settings" +msgstr "Guardar la configuracion basica de Firewall" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:265 +msgid "" +"You have successfully saved the Additional Firewall Protection configuration" +msgstr "" +"Ha guardado correctamente la configuración adicional de protección del " +"cortafuegos" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:279 +msgid "Additional Firewall Protection" +msgstr "Proteccion adicional de Firewall" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:283 +#, php-format +msgid "" +"Due to the nature of the code being inserted to the .htaccess file, this " +"feature may break some functionality for certain plugins and you are " +"therefore advised to take a %s of .htaccess before applying this " +"configuration." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:285 +msgid "" +"This feature allows you to activate more advanced firewall settings to your " +"site." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:286 +msgid "" +"The advanced firewall rules are applied via the insertion of special code to " +"your currently active .htaccess file." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:295 +msgid "Listing of Directory Contents" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:304 +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:80 +msgid "Disable Index Views" +msgstr "Desactivar Ãndice Vistas" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:307 +msgid "Check this if you want to disable directory and file listing." +msgstr "" +"Seleccione esta opción si desea desactivar el listado de archivos y " +"directorios." + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:312 +msgid "" +"By default, an Apache server will allow the listing of the contents of a " +"directory if it doesn't contain an index.php file." +msgstr "" +"De manera predeterminada, un servidor Apache permitirá el listado de los " +"contenidos de un directorio si no contiene un archivo index.php." + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:314 +msgid "This feature will prevent the listing of contents for all directories." +msgstr "" +"Esta característica evita el listado de contenidos de todos los directorios." + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:316 +msgid "" +"NOTE: In order for this feature to work \"AllowOverride\" must be enabled in " +"your httpd.conf file. Ask your hosting provider to check this if you don't " +"have access to httpd.conf" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:325 +msgid "Trace and Track" +msgstr "Rastreo y Seguimiento" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:334 +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:81 +msgid "Disable Trace and Track" +msgstr "Desactivar Rastreo y Seguimiento" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:337 +msgid "Check this if you want to disable trace and track." +msgstr "Seleccione esta opción si desea desactivar rastreo y seguimiento." + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:342 +msgid "" +"HTTP Trace attack (XST) can be used to return header requests and grab " +"cookies and other information." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:344 +msgid "" +"This hacking technique is usually used together with cross site scripting " +"attacks (XSS)." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:346 +msgid "" +"Disabling trace and track on your site will help prevent HTTP Trace attacks." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:355 +msgid "Proxy Comment Posting" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:365 +msgid "Forbid Proxy Comment Posting" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:368 +msgid "Check this if you want to forbid proxy comment posting." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:373 +msgid "" +"This setting will deny any requests that use a proxy server when posting " +"comments." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:374 +msgid "" +"By forbidding proxy comments you are in effect eliminating some SPAM and " +"other proxy requests." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:383 +msgid "Bad Query Strings" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:393 +msgid "Deny Bad Query Strings" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:396 +msgid "This will help protect you against malicious queries via XSS." +msgstr "" +"Esto le ayudará a protegerse contra las consultas maliciosos a través de XSS." + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:401 +msgid "" +"This feature will write rules in your .htaccess file to prevent malicious " +"string attacks on your site using XSS." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:402 +msgid "" +"NOTE: Some of these strings might be used for plugins or themes and hence " +"this might break some functionality." +msgstr "" +"NOTA: Algunas de estas cadenas podrían utilizarse para plugins o temas y por " +"lo tanto esto podría romper alguna funcionalidad." + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:403 +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:433 +msgid "" +"You are therefore strongly advised to take a backup of your active .htaccess " +"file before applying this feature." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:412 +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:84 +msgid "Advanced Character String Filter" +msgstr "Filtro de cadena de caracteres Avanzado" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:422 +msgid "Enable Advanced Character String Filter" +msgstr "Habilitar filtro avanzado cadena de caracteres" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:425 +msgid "This will block bad character matches from XSS." +msgstr "Esto bloqueará coincidencias malas de caracteres XSS." + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:430 +msgid "" +"This is an advanced character string filter to prevent malicious string " +"attacks on your site coming from Cross Site Scripting (XSS)." +msgstr "" +"Se trata de un filtro de cadena de caracteres avanzados para prevenir " +"ataques maliciosos de cadenas en su sitio procedentes de Cross Site " +"Scripting (XSS)." + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:431 +msgid "" +"This setting matches for common malicious string patterns and exploits and " +"will produce a 403 error for the hacker attempting the query." +msgstr "" +"Este valor coincide con los patrones de cadenas maliciosas comunes y hazañas " +"y producirá un error 403 para el hacker intenta la consulta." + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:432 +msgid "NOTE: Some strings for this setting might break some functionality." +msgstr "" +"NOTA: Algunas cadenas de este ajuste podría romper alguna funcionalidad." + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:441 +msgid "Save Additional Firewall Settings" +msgstr "Guardar la configuracion adicionales de Firewall" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:476 +msgid "You have successfully saved the 5G Firewall Protection configuration" +msgstr "Ha guardado correctamente la configuración de protección 5G Firewall" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:489 +#, php-format +msgid "" +"This feature allows you to activate the 5G firewall security protection " +"rules designed and produced by %s." +msgstr "" +"Esta función le permite activar las reglas de protección de la seguridad de " +"cortafuegos 5G diseñados y producidos por %s." + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:490 +msgid "" +"The 5G Blacklist is a simple, flexible blacklist that helps reduce the " +"number of malicious URL requests that hit your website." +msgstr "" +"El 5G Blacklist es una lista negra simple, flexible, que ayuda a reducir el " +"número de peticiones de URL maliciosas que afecte su sitio web." + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:491 +msgid "" +"The added advantage of applying the 5G firewall to your site is that it has " +"been tested and confirmed by the people at PerishablePress.com to be an " +"optimal and least disruptive set of .htaccess security rules for general WP " +"sites running on an Apache server or similar." +msgstr "" +"La ventaja de aplicar el firewall 5G a su sitio, es que ha sido probado y " +"confirmado por el pueblo en PerishablePress.com ser un conjunto óptimo y " +"menos perjudicial de las normas de seguridad htaccess para sitios WP " +"generales que se ejecutan en un servidor Apache o similar." + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:492 +#, php-format +msgid "" +"Therefore the 5G firewall rules should not have any impact on your site's " +"general functionality but if you wish you can take a %s of your .htaccess " +"file before proceeding." +msgstr "" +"Por lo tanto, las reglas del firewall 5G no deberían tener ningún impacto en " +"la funcionalidad general de su sitio, pero si lo desea, puede tomar un %s de " +"su archivo .htaccess. antes de proceder." + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:498 +msgid "5G Blacklist/Firewall Settings" +msgstr "5G opciones Lista negra/Firewall" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:510 +msgid "Enable 5G Firewall Protection" +msgstr "Habilitar Protección 5G de Firewall" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:513 +msgid "" +"Check this if you want to apply the 5G Blacklist firewall protection from " +"perishablepress.com to your site." +msgstr "" +"Seleccione esta opción si desea aplicar la lista negra de la protección " +"firewall 5G de perishablepress.com a su sitio." + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:517 +msgid "" +"This setting will implement the 5G security firewall protection mechanisms " +"on your site which include the following things:" +msgstr "" +"Este ajuste implementa los mecanismos de protección de firewall de seguridad " +"5G en su sitio, que incluyen lo siguiente:" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:518 +msgid "1) Block forbidden characters commonly used in exploitative attacks." +msgstr "" +"1) Bloquear caracteres prohibidos de uso común en los ataques de explotación." + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:519 +msgid "2) Block malicious encoded URL characters such as the \".css(\" string." +msgstr "" +"2) Bloquear caracteres maliciosos URL codificadas como el \".css(\" string." + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:520 +msgid "" +"3) Guard against the common patterns and specific exploits in the root " +"portion of targeted URLs." +msgstr "" +"3) protegerse contra los patrones comunes y exploits específicos en la parte " +"de la raíz de las URL específicas." + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:521 +msgid "" +"4) Stop attackers from manipulating query strings by disallowing illicit " +"characters." +msgstr "" +"4) Detener que los atacantes manipulen cadenas de consulta al no permitir " +"caracteres ilegales." + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:522 +msgid "....and much more." +msgstr ".... y mucho más." + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:528 +msgid "Save 5G Firewall Settings" +msgstr "Guardar opciones 5G Firewall" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:556 +msgid "" +"Settings have not been saved - your secret word must consist only of " +"alphanumeric characters, ie, letters and/or numbers only!" +msgstr "" +"Los ajustes no se han salvado - tu palabra secreta debe consistir en " +"caracteres alfanuméricos, es decir, letras y números!" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:574 +msgid "" +"You have successfully enabled the cookie based brute force prevention feature" +msgstr "" +"Usted ha habilitado correctamente la función de prevención de la fuerza " +"bruta basan en cookies" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:575 +msgid "" +"From now on you will need to log into your WP Admin using the following URL:" +msgstr "" +"A partir de ahora usted tendrá que acceder a su administración WP usando la " +"siguiente URL:" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:577 +msgid "" +"It is important that you save this URL value somewhere in case you forget " +"it, OR," +msgstr "" +"Es importante que guarde este valor URL en alguna parte en caso de que la " +"olvide, O, " + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:578 +#, php-format +msgid "simply remember to add a \"?%s=1\" to your current site URL address." +msgstr "" +"simplemente recuerde agregar un \"?%s=1\" a su dirección URL del sitio " +"actual." + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:584 +msgid "" +"You have successfully saved cookie based brute force prevention feature " +"settings." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:629 +msgid "Brute Force Prevention Firewall Settings" +msgstr "Configuración de Firewall de Prevención de fuerza bruta" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:634 +msgid "" +"A Brute Force Attack is when a hacker tries many combinations of usernames " +"and passwords until they succeed in guessing the right combination." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:635 +msgid "" +"Due to the fact that at any one time there may be many concurrent login " +"attempts occurring on your site via malicious automated robots, this also " +"has a negative impact on your server's memory and performance." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:636 +msgid "" +"The features in this tab will stop the majority of Brute Force Login Attacks " +"at the .htaccess level thus providing even better protection for your WP " +"login page and also reducing the load on your server because the system does " +"not have to run PHP code to process the login attempts." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:643 +#, php-format +msgid "" +"Even though this feature should not have any impact on your site's general " +"functionality you are strongly encouraged to take a %s of your ." +"htaccess file before proceeding." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:644 +msgid "" +"If this feature is not used correctly, you can get locked out of your site. " +"A backup file will come in handy if that happens." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:645 +#, php-format +msgid "" +"To learn more about how to use this feature please watch the following %s." +msgstr "" +"Para obtener más información sobre cómo utilizar esta función por favor ver " +"el siguiente %s." + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:654 +msgid "Cookie Based Brute Force Login Prevention" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:665 +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:79 +msgid "Enable Brute Force Attack Prevention" +msgstr "Habilitar la prevención de ataques de fuerza bruta" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:668 +msgid "" +"Check this if you want to protect your login page from Brute Force Attack." +msgstr "" +"Marque esta si quieres proteger tu página de inicio de sesión de ataque de " +"fuerza bruta." + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:673 +msgid "" +"This feature will deny access to your WordPress login page for all people " +"except those who have a special cookie in their browser." +msgstr "" +"Esta característica va a negar el acceso a su página de inicio de sesión de " +"WordPress para todas las personas, excepto los que tengan una cookie " +"especial en su navegador." + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:675 +msgid "To use this feature do the following:" +msgstr "Para utilizar esta función, haga lo siguiente:" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:677 +msgid "1) Enable the checkbox." +msgstr "1) Active la casilla de verificación." + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:679 +msgid "" +"2) Enter a secret word consisting of alphanumeric characters which will be " +"difficult to guess. This secret word will be useful whenever you need to " +"know the special URL which you will use to access the login page (see point " +"below)." +msgstr "" +"2) Introduzca una palabra secreta que consiste en caracteres alfanuméricos " +"que serán difíciles de adivinar. Esta palabra secreta será útil cuando lo " +"que necesita saber la URL especial que va a utilizar para acceder a la " +"página de inicio de sesión (véase el punto siguiente)." + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:681 +msgid "" +"3) You will then be provided with a special login URL. You will need to use " +"this URL to login to your WordPress site instead of the usual login URL. " +"NOTE: The system will deposit a special cookie in your browser which will " +"allow you access to the WordPress administration login page." +msgstr "" +"3) A continuación, se le proporcionará una URL especial de inicio de sesión. " +"Usted tendrá que utilizar esta URL para acceder a su sitio de WordPress en " +"lugar de la URL de acceso habitual. NOTA: El sistema depositará una cookie " +"especial en su navegador que le permitirá acceder a la página de inicio de " +"sesión de administración de WordPress." + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:683 +msgid "" +"Any person trying to access your login page who does not have the special " +"cookie in their browser will be automatically blocked." +msgstr "" +"Cualquier persona que intenta acceder a la página de inicio de sesión que no " +"tiene la cookie especial en su navegador se bloqueará automáticamente." + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:690 +msgid "Secret Word" +msgstr "Palabra Secreta" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:692 +msgid "" +"Choose a secret word consisting of alphanumeric characters which you can use " +"to access your special URL. Your are highly encouraged to choose a word " +"which will be difficult to guess." +msgstr "" +"Elija una palabra secreta que consiste en caracteres alfanuméricos que se " +"pueden utilizar para acceder a su URL especial. se les anima a elegir una " +"palabra que será difícil de adivinar." + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:696 +msgid "Re-direct URL" +msgstr "URL redirigir" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:700 +msgid "" +"Specify a URL to redirect a hacker to when they try to access your WordPress " +"login page." +msgstr "" +"Especificar una dirección URL para redirigir un hacker cuando tratan de " +"acceder a la página de inicio de sesión de WordPress." + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:707 +msgid "" +"The URL specified here can be any site's URL and does not have to be your " +"own. For example you can be as creative as you like and send hackers to the " +"CIA or NSA home page." +msgstr "" +"La dirección URL especificada aquí puede ser la dirección URL de cualquier " +"sitio y no tiene que ser la suya. Por ejemplo, usted puede ser tan creativo " +"como quieras y enviar los hackers a la página principal de la CIA o la NSA." + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:709 +msgid "" +"This field will default to: http://127.0.0.1 if you do not enter a value." +msgstr "" +"Este campo será por defecto: http://127.0.0.1 si no se introduce un valor." + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:711 +msgid "Useful Tip:" +msgstr "Consejo útil:" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:713 +msgid "" +"It's a good idea to not redirect attempted brute force login attempts to " +"your site because it increases the load on your server." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:715 +msgid "" +"Redirecting a hacker or malicious bot back to \"http://127.0.0.1\" is ideal " +"because it deflects them back to their own local host and puts the load on " +"their server instead of yours." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:722 +msgid "My Site Has Posts Or Pages Which Are Password Protected" +msgstr "Mi sitio tiene mensajes o páginas que están protegidos por contraseña" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:725 +msgid "" +"Check this if you are using the native WordPress password protection feature " +"for some or all of your blog posts or pages." +msgstr "" +"Seleccione esta opción si está utilizando la función de protección con " +"contraseña nativa de WordPress para algunas o todas las entradas de su blog " +"o páginas." + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:730 +msgid "" +"In the cases where you are protecting some of your posts or pages using the " +"in-built WordPress password protection feature, a few extra lines of " +"directives and exceptions need to be added to your .htacces file so that " +"people trying to access pages are not automatically blocked." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:732 +msgid "" +"By enabling this checkbox the plugin will add the necessary rules and " +"exceptions to your .htacces file so that people trying to access these pages " +"are not automatically blocked." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:734 +msgid "Helpful Tip:" +msgstr "Consejo útil:" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:736 +msgid "" +"If you do not use the WordPress password protection feature for your posts " +"or pages then it is highly recommended that you leave this checkbox disabled." +msgstr "" +"Si no utiliza la función de protección de contraseña de WordPress para sus " +"posts o páginas entonces es altamente recomendable que deje esta opción sin " +"marcar." + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:743 +msgid "My Site Has a Theme or Plugins Which Use AJAX" +msgstr "Mi sitio tiene un tema o plugins que utilizan AJAX" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:746 +msgid "Check this if your site uses AJAX functionality." +msgstr "marque esto si su sitio utiliza la funcionalidad de AJAX." + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:751 +msgid "" +"In the cases where your WordPress installation has a theme or plugins which " +"use AJAX, a few extra lines of directives and exceptions need to be added to " +"your .htacces file to prevent AJAX requests from being automatically blocked " +"by the brute force prevention feature." +msgstr "" +"En los casos en que la instalación de WordPress tiene un tema o plugins que " +"utilizan AJAX, algunas líneas adicionales de las directivas y las " +"excepciones se deben agregar a su archivo  .htacces para evitar que las " +"peticiones AJAX se bloqueen automáticamente por la función de prevención de " +"la fuerza bruta." + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:753 +msgid "" +"By enabling this checkbox the plugin will add the necessary rules and " +"exceptions to your .htacces file so that AJAX operations will work as " +"expected." +msgstr "" +"Al activar esta casilla el plugin añadirá las reglas y excepciones " +"necesarias para su archivo .htacces para que las operaciones de AJAX " +"funcionen como se esperaba." + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:768 +msgid "The cookie test was successful. You can now enable this feature." +msgstr "La prueba de cookies fue un éxito. Ahora puede activar esta función." + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:771 +msgid "Save Feature Settings" +msgstr "Guardar configuración de característica" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:778 +msgid "" +"The cookie test failed on this server. So this feature cannot be used on " +"this site." +msgstr "" +"La prueba de cokkie ha fallado en este servidor. Así que esta función no se " +"puede utilizar en este sitio." + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:784 +msgid "" +"Before using this feature you are required to perform a cookie test first. " +"This is to make sure that your browser cookie is working correctly and that " +"you won't lock yourself out." +msgstr "" +"Antes de utilizar esta función es necesario que realice una prueba de la " +"galleta en primer lugar. Esto es para asegurarse de que su cookie del " +"navegador está funcionando correctamente y que no se bloquee usted mismo." + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:786 +msgid "Perform Cookie Test" +msgstr "Realice la prueba de Cookie" + +#: all-in-one-wp-security/admin/wp-security-list-acct-activity.php:79 +#: all-in-one-wp-security/admin/wp-security-list-comment-spammer-ip.php:86 +#: all-in-one-wp-security/admin/wp-security-list-locked-ip.php:80 +#: all-in-one-wp-security/admin/wp-security-list-locked-ip.php:91 +#: all-in-one-wp-security/admin/wp-security-list-login-fails.php:78 +#: all-in-one-wp-security/admin/wp-security-list-registered-users.php:82 +#: all-in-one-wp-security/admin/wp-security-list-registered-users.php:93 +msgid "Please select some records using the checkboxes" +msgstr "" +"Por favor seleccione algunos registros utilizando las casillas de " +"verificación" + +#: all-in-one-wp-security/admin/wp-security-list-acct-activity.php:107 +#: all-in-one-wp-security/admin/wp-security-list-login-fails.php:107 +msgid "The selected entries were deleted successfully!" +msgstr "Las entradas seleccionadas se eliminaron con éxito!" + +#: all-in-one-wp-security/admin/wp-security-list-acct-activity.php:120 +#: all-in-one-wp-security/admin/wp-security-list-login-fails.php:119 +msgid "The selected entry was deleted successfully!" +msgstr "La entrada seleccionada se ha eliminado correctamente!" + +#: all-in-one-wp-security/admin/wp-security-list-comment-spammer-ip.php:139 +msgid "" +"The selected IP addresses were saved in the blacklist configuration settings." +msgstr "" +"Las direcciones IP seleccionadas se guardarán en los ajustes de " +"configuración de lista negra." + +#: all-in-one-wp-security/admin/wp-security-list-comment-spammer-ip.php:153 +msgid "" +"The .htaccess file was successfully modified to include the selected IP " +"addresses." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-list-comment-spammer-ip.php:159 +msgid "" +"NOTE: The .htaccess file was not modified because you have disabled the " +"\"Enable IP or User Agent Blacklisting\" check box." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-list-comment-spammer-ip.php:160 +#, php-format +msgid "" +"To block these IP addresses you will need to enable the above flag in the %s " +"menu" +msgstr "" +"Para bloquear estas direcciones IP que tendrá que habilitar el indicador de " +"arriba en el menú de la %s" + +#: all-in-one-wp-security/admin/wp-security-list-locked-ip.php:115 +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:748 +msgid "The selected IP ranges were unlocked successfully!" +msgstr "Los rangos de IP seleccionados fueron desbloqueados con éxito!" + +#: all-in-one-wp-security/admin/wp-security-list-locked-ip.php:124 +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:757 +msgid "The selected IP range was unlocked successfully!" +msgstr "El rango de IP seleccionada fue desbloqueado correctamente!" + +#: all-in-one-wp-security/admin/wp-security-list-registered-users.php:118 +msgid "The selected accounts were approved successfully!" +msgstr "Las cuentas seleccionadas se aprobaron con éxito!" + +#: all-in-one-wp-security/admin/wp-security-list-registered-users.php:125 +msgid "The selected account was approved successfully!" +msgstr "La cuenta seleccionada fue aprobado con éxito!" + +#: all-in-one-wp-security/admin/wp-security-list-registered-users.php:146 +msgid "The selected accounts were deleted successfully!" +msgstr "Las cuentas seleccionadas se eliminaron con éxito!" + +#: all-in-one-wp-security/admin/wp-security-list-registered-users.php:154 +msgid "The selected account was deleted successfully!" +msgstr "La cuenta seleccionada se ha eliminado correctamente!" + +#: all-in-one-wp-security/admin/wp-security-maintenance-menu.php:22 +msgid "Visitor Lockout" +msgstr "Bloqueo de visitante" + +#: all-in-one-wp-security/admin/wp-security-maintenance-menu.php:88 +msgid "Site lockout feature settings saved!" +msgstr "Configuración de la función de bloqueo del sitio guardados!" + +#: all-in-one-wp-security/admin/wp-security-maintenance-menu.php:93 +msgid "General Visitor Lockout" +msgstr "Bloqueo general de visita" + +#: all-in-one-wp-security/admin/wp-security-maintenance-menu.php:99 +msgid "" +"This feature allows you to put your site into \"maintenance mode\" by " +"locking down the front-end to all visitors except logged in users with super " +"admin privileges." +msgstr "" +"Esta característica le permite poner su sitio en \"modo de mantenimiento \" " +"al bloquear el front-end para todos los visitantes, excepto los usuarios " +"registrados con privilegios de administrador." + +#: all-in-one-wp-security/admin/wp-security-maintenance-menu.php:100 +msgid "" +"Locking your site down to general visitors can be useful if you are " +"investigating some issues on your site or perhaps you might be doing some " +"maintenance and wish to keep out all traffic for security reasons." +msgstr "" +"Bloqueo de su sitio a los visitantes en general puede ser útil si usted está " +"investigando algunos problemas en su sitio o tal vez usted podría estar " +"haciendo algo de mantenimiento y desea mantener fuera todo el tráfico por " +"motivos de seguridad." + +#: all-in-one-wp-security/admin/wp-security-maintenance-menu.php:105 +msgid "Enable Front-end Lockout" +msgstr "Activar Bloqueo Front-end" + +#: all-in-one-wp-security/admin/wp-security-maintenance-menu.php:108 +msgid "" +"Check this if you want all visitors except those who are logged in as " +"administrator to be locked out of the front-end of your site." +msgstr "" +"Seleccione esta opción si desea que todos los visitantes, excepto los que se " +"ha iniciado sesión como administrador para bloquear fuera del front-end de " +"su sitio." + +#: all-in-one-wp-security/admin/wp-security-maintenance-menu.php:112 +msgid "Enter a Message:" +msgstr "Escriba un mensaje:" + +#: all-in-one-wp-security/admin/wp-security-maintenance-menu.php:124 +msgid "" +"Enter a message you wish to display to visitors when your site is in " +"maintenance mode." +msgstr "" +"Escriba un mensaje que desea mostrar a los visitantes cuando su sitio está " +"en modo de mantenimiento." + +#: all-in-one-wp-security/admin/wp-security-maintenance-menu.php:131 +msgid "Save Site Lockout Settings" +msgstr "Guardar la configuración de bloqueo de sitio" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:25 +msgid "General Settings" +msgstr "Configuración general" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:28 +msgid "WP Meta Info" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:95 +msgid "All the security features have been disabled successfully!" +msgstr "Todos los elementos de seguridad han desactivado con éxito!" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:99 +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:126 +msgid "" +"Could not write to the .htaccess file. Please restore your .htaccess file " +"manually using the restore functionality in the \".htaccess File\"." +msgstr "" +"No se pudo escribir en el archivo .htaccess.. Por favor, restaure el " +"archivo .htaccess manualmente utilizando la funcionalidad de restauración en " +"\".htaccess archivo \"." + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:104 +msgid "" +"Could not write to the wp-config.php. Please restore your wp-config.php file " +"manually using the restore functionality in the \"wp-config.php File\"." +msgstr "" +"No se pudo escribir en el wp-config.php. Por favor, restaurar el archivo wp-" +"config.php manualmente utilizando la funcionalidad de restauración en \"wp-" +"config.php \"." + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:122 +msgid "All firewall rules have been disabled successfully!" +msgstr "Todas las reglas del firewall se han desactivado con éxito!" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:136 +msgid "WP Security Plugin" +msgstr "WP Plugin de seguridad" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:138 +msgid "" +"Thank you for using our WordPress security plugin. There are a lot of " +"security features in this plugin." +msgstr "" +"Gracias por utilizar nuestro plugin de seguridad de WordPress. Hay una gran " +"cantidad de características de seguridad en este plugin." + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:139 +msgid "" +"Go through each menu items and enable the security options to add more " +"security to your site. Start by activating the basic features first." +msgstr "" +"Ir a través de cada uno de los elementos del menú y habilite las opciones de " +"seguridad para añadir más seguridad a su sitio. Comience por la activación " +"de las funciones básicas primero." + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:140 +msgid "" +"It is a good practice to take a backup of your .htaccess file, database and " +"wp-config.php file before activating the security features. This plugin has " +"options that you can use to backup those resources easily." +msgstr "" +"Es una buena práctica tener una copia de seguridad de su archivo. htaccess, " +"base de datos y el archivo wp-config.php antes de activar los dispositivos " +"de seguridad. Este plugin tiene opciones que puede utilizar para copia de " +"seguridad de esos recursos con facilidad." + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:143 +msgid "Backup your database" +msgstr "Respaldar base de datos" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:144 +msgid "Backup .htaccess file" +msgstr "Respaldar archivo .htaccess" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:145 +msgid "Backup wp-config.php file" +msgstr "Respaldar archivo wp-config.php" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:151 +msgid "Disable Security Features" +msgstr "Desactivar las características de seguridad" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:157 +msgid "" +"If you think that some plugin functionality on your site is broken due to a " +"security feature you enabled in this plugin, then use the following option " +"to turn off all the security features of this plugin." +msgstr "" +"Si usted piensa que algunas funciones en su sitio se rompieron debido a una " +"característica de seguridad que se ha activado con este plugin, a " +"continuación, utilice la siguiente opción para desactivar todas las " +"funciones de seguridad de este plugin." + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:161 +msgid "Disable All Security Features" +msgstr "Desactivar todas las características de seguridad" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:167 +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:177 +msgid "Disable All Firewall Rules" +msgstr "Deshabilitar todas las reglas del cortafuegos" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:173 +msgid "" +"This feature will disable all firewall rules which are currently active in " +"this plugin and it will also delete these rules from your .htacess file. Use " +"it if you think one of the firewall rules is causing an issue on your site." +msgstr "" +"Esta función deshabilita todas las reglas del cortafuegos que se encuentran " +"activas en este plugin y también eliminar estas reglas de su archivo " +"htacess. Úselo si usted piensa una de las reglas de firewall está causando " +"un problema en su sitio." + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:206 +msgid "" +"Your .htaccess file was successfully backed up! Using an FTP program go to " +"the \"backups\" directory of this plugin to save a copy of the file to your " +"computer." +msgstr "" +"Su .htaccess fue respaldado con éxito! Usando un programa de FTP vaya a las " +"\"copias de seguridad \" de este plugin para guardar una copia del archivo " +"en su equipo." + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:216 +msgid "" +"htaccess file rename failed during backup. Please check your root directory " +"for the backup file using FTP." +msgstr "" +"El renombrado de su archivo .htaccess falló durante la copia de seguridad. " +"Por favor, consulte el directorio raíz para el archivo de copia de seguridad " +"mediante FTP." + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:222 +msgid "htaccess backup failed." +msgstr "htaccess fallo respaldo." + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:237 +msgid "Please choose a .htaccess to restore from." +msgstr "Por favor, elija un htaccess a restaurar." + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:253 +msgid "" +"htaccess file restore failed. Please attempt to restore the .htaccess " +"manually using FTP." +msgstr "" +"htaccess restauración fracasó. Por favor, intente restaurar el archivo. " +"Htaccess manualmente mediante FTP." + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:257 +msgid "Your .htaccess file has successfully been restored!" +msgstr "Su archivo .htaccess ha sido restaurado completamente!" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:263 +msgid "" +"htaccess Restore operation failed! Please check the contents of the file you " +"are trying to restore from." +msgstr "" +"htaccess operación Restaurar falló! Por favor, compruebe el contenido del " +"archivo que está intentando restaurar." + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:269 +msgid ".htaccess File Operations" +msgstr ".htaccess operaciones de archivo" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:272 +msgid "" +"Your \".htaccess\" file is a key component of your website's security and it " +"can be modified to implement various levels of protection mechanisms." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:273 +msgid "" +"This feature allows you to backup and save your currently active .htaccess " +"file should you need to re-use the the backed up file in the future." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:274 +msgid "" +"You can also restore your site's .htaccess settings using a backed up ." +"htaccess file." +msgstr "" +"También puede restaurar la configuración htaccess de su sitio utilizando una " +"copia de seguridad del archivo htaccess." + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:288 +msgid "Save the current .htaccess file" +msgstr "Guarde el archivo actual. htaccess" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:292 +msgid "" +"Click the button below to backup and save the currently active .htaccess " +"file." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:293 +msgid "Backup .htaccess File" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:297 +msgid "Restore from a backed up .htaccess file" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:303 +msgid ".htaccess file to restore from" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:309 +msgid "" +"After selecting your file, click the button below to restore your site using " +"the backed up htaccess file (htaccess_backup.txt)." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:315 +msgid "Restore .htaccess File" +msgstr "Restaurar archivo .htaccess " + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:319 +msgid "View Contents of the currently active .htaccess file" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:348 +msgid "Please choose a wp-config.php file to restore from." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:364 +msgid "" +"wp-config.php file restore failed. Please attempt to restore this file " +"manually using FTP." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:368 +msgid "Your wp-config.php file has successfully been restored!" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:374 +msgid "" +"wp-config.php Restore operation failed! Please check the contents of the " +"file you are trying to restore from." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:380 +msgid "wp-config.php File Operations" +msgstr "Operaciones archivo wp-config.php" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:383 +msgid "" +"Your \"wp-config.php\" file is one of the most important in your WordPress " +"installation. It is a primary configuration file and contains crucial things " +"such as details of your database and other critical components." +msgstr "" +"Su archivo \"wp-config.php \" es uno de los más importantes de tu " +"instalación de WordPress. Se trata de un archivo de configuración principal " +"y contiene cosas cruciales como los detalles de su base de datos y otros " +"componentes críticos." + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:384 +msgid "" +"This feature allows you to backup and save your currently active wp-config." +"php file should you need to re-use the the backed up file in the future." +msgstr "" +"Esta característica le permite realizar copias de seguridad y guardar el " +"archivo wp-config.php actualmente activo en caso de que tenga que volver a " +"utilizar el archivo de copia de seguridad en el futuro." + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:385 +msgid "" +"You can also restore your site's wp-config.php settings using a backed up wp-" +"config.php file." +msgstr "" +"También puede restaurar la configuración wp-config.php de tu sitio con su " +"copia de seguridad del archivo wp-config.php ." + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:399 +msgid "Save the current wp-config.php file" +msgstr "Guarde el archivo actual wp-config.php" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:403 +msgid "" +"Click the button below to backup and download the contents of the currently " +"active wp-config.php file." +msgstr "" +"Haga clic en el botón de abajo para hacer una copia de seguridad y descargar " +"el archivo wp-config.php actualmente activo." + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:404 +msgid "Backup wp-config.php File" +msgstr "Respaldar archivo wp-config.php" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:409 +msgid "Restore from a backed up wp-config file" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:415 +msgid "wp-config file to restore from" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:421 +msgid "" +"After selecting your file click the button below to restore your site using " +"the backed up wp-config file (wp-config.php.backup.txt)." +msgstr "" +"Después de seleccionar el archivo, haga clic en el botón de abajo para " +"restaurar su sitio utilizando el archivo wp-config respaldado (wp-config.php." +"backup.txt)." + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:427 +msgid "Restore wp-config File" +msgstr "Restaurar Archivo wp-config" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:431 +msgid "View Contents of the currently active wp-config.php file" +msgstr "Ver contenido actual del archivo wp-config.php" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:466 +msgid "WP Generator Meta Tag" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:469 +msgid "" +"Wordpress generator automatically adds some meta information inside the " +"\"head\" tags of every page on your site's front end. Below is an example of " +"this:" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:471 +msgid "" +"The above meta information shows which version of WordPress your site is " +"currently running and thus can help hackers or crawlers scan your site to " +"see if you have an older version of WordPress or one with a known exploit." +msgstr "" +"La información META de arriba muestra la versión de WordPress que su sitio " +"está actualmente en ejecución y por lo tanto puede ayudar a los piratas " +"informáticos o rastreadores escanean su sitio para ver si tiene una versión " +"anterior de WordPress o uno con una debilidad conocida." + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:472 +msgid "" +"This feature will allow you to remove the WP generator meta info from your " +"site's pages." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:478 +msgid "WP Generator Meta Info" +msgstr "Generador WP Meta info" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:490 +msgid "Remove WP Generator Meta Info" +msgstr "Eliminar generador WP Meta Info" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:493 +msgid "" +"Check this if you want to remove the meta info produced by WP Generator from " +"all pages" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:23 +msgid "Comment SPAM" +msgstr "Comentario SPAM" + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:24 +msgid "Comment SPAM IP Monitoring" +msgstr "Monitoreo IP comentario SPAM" + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:111 +msgid "Comment SPAM Settings" +msgstr "Ajustes comentario SPAM" + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:116 +msgid "Add Captcha To Comments Form" +msgstr "Añadir Captcha al formulario de Comentarios." + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:120 +msgid "" +"This feature will add a simple math captcha field in the WordPress comments " +"form." +msgstr "" +"Esta característica añadirá un campo Captcha matemática simple en el " +"formulario de comentarios." + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:137 +msgid "Enable Captcha On Comment Forms" +msgstr "Habilitar Captcha en formulario de comentario" + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:140 +msgid "Check this if you want to insert a captcha field on the comment forms" +msgstr "" +"Seleccione esta opción si desea insertar un campo CAPTCHA en los formularios " +"de comentarios" + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:148 +msgid "Block Spambot Comments" +msgstr "Bloquear Comentarios de SpamBot" + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:152 +msgid "" +"A large portion of WordPress blog comment SPAM is mainly produced by " +"automated bots and not necessarily by humans. " +msgstr "" +"Una gran parte de los comentarios no deseados en WordPress se produce " +"principalmente por los robots automatizados y no necesariamente por los " +"seres humanos." + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:153 +msgid "" +"This feature will greatly minimize the useless and unecessary traffic and " +"load on your server resulting from SPAM comments by blocking all comment " +"requests which do not originate from your domain." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:170 +msgid "Block Spambots From Posting Comments" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:173 +msgid "" +"Check this if you want to apply a firewall rule which will block comments " +"originating from spambots." +msgstr "" +"Seleccione esta opción si desea aplicar una regla de firewall que bloquea " +"los comentarios procedentes de spam." + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:177 +msgid "" +"This feature will implement a firewall rule to block all comment attempts " +"which do not originate from your domain." +msgstr "" +"Esta característica implementa una regla de firewall para bloquear todo " +"intento de comentario que no sean originarios de su dominio." + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:178 +msgid "" +"A legitimate comment is one which is submitted by a human who physically " +"fills out the comment form and clicks the submit button. For such events, " +"the HTTP_REFERRER is always set to your own domain." +msgstr "" +"Un comentario legítimo es aquel que se presenta por un ser humano que llena " +"físicamente el formulario de comentarios y pulsa el botón enviar. Para este " +"tipo de eventos, el HTTP_REFERRER siempre se establece en su propio dominio." + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:179 +msgid "" +"A comment submitted by a spambot is done by directly calling the comments." +"php file, which usually means that the HTTP_REFERRER value is not your " +"domain and often times empty." +msgstr "" +"Un comentario enviado por un robot de spam se hace llamando directamente el " +"archivo comments.php, que por lo general significa que el valor " +"HTTP_REFERRER no es su dominio y muchas veces es vacía." + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:180 +msgid "" +"This feature will check and block comment requests which are not referred by " +"your domain thus greatly reducing your overall blog SPAM and PHP requests " +"done by the server to process these comments." +msgstr "" +"Esta función comprobará y peticiones de bloques de comentario que no son " +"referidos por su dominio, lo que reduce considerablemente sus peticiones de " +"spam en su blog y PHP realizadas por el servidor para procesar estos " +"comentarios." + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:207 +msgid "Nonce check failed for list SPAM comment IPs!" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:213 +msgid "" +"You entered a non numeric value for the minimum SPAM comments per IP field. " +"It has been set to the default value." +msgstr "" +"Ha introducido un valor no numérico para las observaciones mínimas de SPAM " +"por campo de la propiedad intelectual. Se ha establecido en el valor " +"predeterminado." + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:225 +#, php-format +msgid "" +"Displaying results for IP addresses which have posted a minimum of %s SPAM " +"comments" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:241 +msgid "" +"This tab displays a list of the IP addresses of the people or bots who have " +"left SPAM comments on your site." +msgstr "" +"Esta ficha muestra una lista de las direcciones IP de las personas o los " +"robots que han dejado comentarios SPAM en su sitio." + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:242 +msgid "" +"This information can be handy for identifying the most persistent IP " +"addresses or ranges used by spammers." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:243 +msgid "" +"By inspecting the IP address data coming from spammers you will be in a " +"better position to determine which addresses or address ranges you should " +"block by adding them to your blacklist." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:244 +msgid "" +"To add one or more of the IP addresses displayed in the table below to your " +"blacklist, simply click the \"Block\" link for the individual row or select " +"more than one address \n" +" using the checkboxes and then choose the \"block" +"\" option from the Bulk Actions dropdown list and click the \"Apply\" button." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:250 +msgid "List SPAMMER IP Addresses" +msgstr "Lista direcciones IP de Spammer" + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:256 +msgid "Minimum number of SPAM comments per IP" +msgstr "Número mínimo de comentarios SPAM por IP" + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:258 +msgid "" +"This field allows you to list only those IP addresses which have been used " +"to post X or more SPAM comments." +msgstr "" +"Este campo le permite listar sólo las direcciones IP que se han utilizado " +"para publicar X o más comentarios SPAM." + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:262 +msgid "" +"Example 1: Setting this value to \"0\" or \"1\" will list ALL IP addresses " +"which were used to submit SPAM comments." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:263 +msgid "" +"Example 2: Setting this value to \"5\" will list only those IP addresses " +"which were used to submit 5 SPAM comments or more on your site." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:270 +msgid "Find IP Addresses" +msgstr "Buscar direcciones IP" + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:274 +msgid "SPAMMER IP Address Results" +msgstr "Resultados de direcciones IP SPAMMER" + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:280 +#: all-in-one-wp-security/classes/wp-security-utility.php:150 +msgid "" +"The plugin has detected that you are using a Multi-Site WordPress " +"installation." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:281 +msgid "Only the \"superadmin\" can block IP addresses from the main site." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:282 +msgid "" +"Take note of the IP addresses you want blocked and ask the superadmin to add " +"these to the blacklist using the \"Blacklist Manager\" on the main site." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:29 +msgid "WP Username" +msgstr "WP Nombre de usuario" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:30 +msgid "Display Name" +msgstr "Mostrar nombre" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:31 +msgid "Password" +msgstr "Contraseña" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:85 +msgid "Admin User Security" +msgstr "Seguridad del usuario administrador" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:88 +msgid "" +"By default, WordPress sets the administrator username to \"admin\" at " +"installation time." +msgstr "" +"Por defecto, WordPress establece el nombre de usuario administrador de " +"\"admin \" durante la instalación." + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:89 +msgid "" +"A lot of hackers try to take advantage of this information by attempting " +"\"Brute Force Login Attacks\" where they repeatedly try to guess the " +"password by using \"admin\" for username." +msgstr "" +"Una gran cantidad de piratas informáticos tratan de tomar ventaja de esta " +"información por intentar \"Ataques de fuerza bruta\", donde en varias " +"ocasiones tratan de adivinar la contraseña con el usuario \"admin \"." + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:90 +msgid "" +"From a security perspective, changing the default \"admin\" user name is one " +"of the first and smartest things you should do on your site." +msgstr "" +"Desde una perspectiva de seguridad, cambiar el nombre de usuario \"admin \" " +"por defecto es una de las primeras y más inteligentes cosas que debe hacer " +"en su sitio." + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:91 +msgid "" +"This feature will allow you to change your default \"admin\" user name to a " +"more secure name of your choosing." +msgstr "" +"Esta función le permitirá cambiar su nombre de usuario por defecto \"admin " +"\" por un nombre más seguro de su elección." + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:98 +msgid "List of Administrator Accounts" +msgstr "Lista de cuentas de administrador" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:107 +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:33 +msgid "Change Admin Username" +msgstr "Cambiar Nombre de usuario Admin" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:115 +msgid "" +"Your site currently has an account which uses the default \"admin\" " +"username. \n" +" It is highly recommended that you change this name to " +"something else. \n" +" Use the following field to change the admin username." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:123 +msgid "New Admin Username" +msgstr "Nuevo nombre de usuario" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:125 +msgid "Choose a new username for admin." +msgstr "Elija un nuevo nombre de usuario de administrador." + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:129 +msgid "Change Username" +msgstr "Cambiar nombre usuario" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:131 +msgid "" +"NOTE: If you are currently logged in as \"admin\" you will be automatically " +"logged out after changing your username and will be required to log back in." +msgstr "" +"NOTA: Si está conectado como \"admin \" se cerrará la sesión automáticamente " +"después de cambiar su nombre de usuario y tendrá que volver a iniciar sesión" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:138 +msgid "No action required! " +msgstr "Ninguna acción requerida!" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:140 +msgid "" +"Your site does not have any account which uses the default \"admin\" " +"username. " +msgstr "" +"Su sitio no tiene ninguna cuenta que utiliza el valor por defecto \"admin \" " +"nombre de usuario." + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:141 +msgid "This is good security practice." +msgstr "Esta es una buena práctica de seguridad." + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:153 +msgid "Display Name Security" +msgstr "Nombre a visualizar de Seguridad" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:156 +msgid "" +"When you submit a post or answer a comment, WordPress will usually display " +"your \"nickname\"." +msgstr "" +"Cuando usted envía un mensaje o responder a un comentario, WordPress se le " +"mostrará su \"nickname\"." + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:157 +msgid "" +"By default the nickname is set to the login (or user) name of your account." +msgstr "" +"Por defecto, el apodo se establece en el inicio de sesión (o usuario) nombre " +"de su cuenta." + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:158 +msgid "" +"From a security perspective, leaving your nickname the same as your user " +"name is bad practice because it gives a hacker at least half of your " +"account's login credentials." +msgstr "" +"Desde una perspectiva de seguridad, dejando a su apodo el mismo que el " +"nombre de usuario es una mala práctica, ya que da a un hacker por lo menos " +"la mitad de las credenciales de acceso de su cuenta." + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:159 +msgid "" +"Therefore to further tighten your site's security you are advised to change " +"your nickname and Display name to be " +"different from your Username." +msgstr "" +"Por lo tanto para apretar aún más la seguridad de su sitio se le recomienda " +"cambiar su apodo y su nombre visible " +"para ser diferente de su usuario" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:165 +msgid "Modify Accounts With Identical Login Name & Display Name" +msgstr "Modificar cuentas con nombre de usuario y nombre visible" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:174 +msgid "" +"Your site currently has the following accounts which have an identical login " +"name and display name." +msgstr "" +"Su sitio tiene actualmente las siguientes cuentas que tienen un nombre de " +"usuario idénticos y nombre para mostrar." + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:175 +msgid "Click on the link to edit the settings of that particular user account" +msgstr "" +"Haga clic en el enlace para editar la configuración de la cuenta de usuario " +"en particular" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:190 +msgid "No action required." +msgstr "No se requiere ninguna acción." + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:191 +msgid "" +"Your site does not have a user account where the display name is identical " +"to the username." +msgstr "" +"Su sitio no tiene una cuenta de usuario en el que el nombre para mostrar es " +"idéntico al nombre de usuario." + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:202 +msgid "Password Tool" +msgstr "Herramienta de contraseñas" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:205 +msgid "" +"Poor password selection is one of the most common weak points of many sites " +"and is usually the first thing a hacker will try to exploit when attempting " +"to break into your site." +msgstr "" +"Mala selección contraseña es uno de los puntos débiles más comunes de muchos " +"sitios y suele ser la primera cosa que un hacker intentará explotar al " +"intentar entrar en su sitio." + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:206 +msgid "" +"Many people fall into the trap of using a simple word or series of numbers " +"as their password. Such a predictable and simple password would take a " +"competent hacker merely minutes to guess your password by using a simple " +"script which cycles through the easy and most common combinations." +msgstr "" +"Muchas personas caen en la trampa de utilizar una simple palabra o serie de " +"números como su contraseña. Esta contraseña predecible y simple tomaría un " +"hacker competente a escasos minutos de adivinar la contraseña utilizando un " +"simple script que ciclos a través de las combinaciones fáciles y más comunes." + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:207 +msgid "" +"The longer and more complex your password is the harder it is for hackers to " +"\"crack\" because more complex passwords require much greater computing " +"power and time." +msgstr "" +"Cuanto más larga y más compleja es su contraseña, más difícil es para los " +"hacker \"crakearlas\" ya que las contraseñas más complejas requieren mucha " +"más potencia y tiempo de cálculo." + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:208 +msgid "" +"This section contains a useful password strength tool which you can use to " +"check whether your password is sufficiently strong enough." +msgstr "" +"Esta sección contiene una herramienta de seguridad para contraseña que se " +"puede utilizar para comprobar si la contraseña es lo suficientemente fuerte." + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:213 +msgid "Password Strength Tool" +msgstr "Herramienta de Seguridad de contraseña" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:218 +msgid "Start typing a password." +msgstr "Comience a escribir una contraseña." + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:221 +msgid "It would take a desktop PC approximately" +msgstr "Haría falta una PC de escritorio, aproximadamente" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:222 +msgid "1 sec" +msgstr "1 seg" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:222 +msgid "to crack your password!" +msgstr "para descifrar la contraseña!" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:227 +msgid "Password Strength" +msgstr "Fuerza dela contraseña" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:243 +msgid "Nonce check failed on admin username change operation!" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:250 +msgid "Username " +msgstr "nombre usuario" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:250 +msgid " already exists. Please enter another value. " +msgstr " ya existe. Por favor, introduzca otro valor." + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:266 +msgid "The database update operation of the user account failed!" +msgstr "" +"La operación de actualización de base de datos de la cuenta de usuario ha " +"fallado!" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:293 +msgid "You entered an invalid username. Please enter another value. " +msgstr "" +"Ha introducido un nombre de usuario inválido. Por favor, introduzca otro " +"valor." + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:297 +msgid "Please enter a value for your username. " +msgstr "Por favor, introduzca un valor para el nombre de usuario." + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:304 +msgid "Username Successfully Changed!" +msgstr "Nombre de usuario cambió con éxito!" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:324 +msgid "Account Login Name" +msgstr "Nombre de cuenta de usuario " + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:28 +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:41 +msgid "Login Captcha" +msgstr "Login Captcha" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:29 +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:407 +msgid "Login Whitelist" +msgstr "Lista blanca de ingreso" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:30 +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:519 +msgid "Failed Login Records" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:31 +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:47 +msgid "Force Logout" +msgstr "Forzar salir" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:32 +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:653 +msgid "Account Activity Logs" +msgstr "Registros de Actividad de la cuenta" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:100 +msgid "" +"You entered a non numeric value for the max login attempts field. It has " +"been set to the default value." +msgstr "" +"Ha introducido un valor no numérico para el campo de intentos de conexión " +"máx. Se ha establecido en el valor predeterminado." + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:107 +msgid "" +"You entered a non numeric value for the login retry time period field. It " +"has been set to the default value." +msgstr "" +"Ha introducido un valor no numérico para el inicio de sesión de reintento " +"campo período de tiempo. Se ha establecido en el valor predeterminado." + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:114 +msgid "" +"You entered a non numeric value for the lockout time length field. It has " +"been set to the default value." +msgstr "" +"Ha introducido un valor no numérico para el campo de longitud de tiempo de " +"bloqueo. Se ha establecido en el valor predeterminado." + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:159 +msgid "Login Lockdown Configuration" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:163 +msgid "One of the ways hackers try to compromise sites is via a " +msgstr "" +"Una de las maneras que los piratas informáticos intentan comprometer sitios " +"es a través de un" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:163 +msgid "Brute Force Login Attack" +msgstr "Ataque de ingreso por fuerza bruta" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:164 +msgid "" +"This is where attackers use repeated login attempts until they guess the " +"password." +msgstr "" +"Aquí es donde los atacantes utilizan intentos de acceso repetidos hasta que " +"adivinen la contraseña." + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:165 +msgid "" +"Apart from choosing strong passwords, monitoring and blocking IP addresses " +"which are involved in repeated login failures in a short period of time is a " +"very effective way to stop these types of attacks." +msgstr "" +"Aparte de elegir contraseñas seguras, seguimiento y bloqueo de direcciones " +"IP que están involucrados en errores de entrada repetidas en un período " +"corto de tiempo es una forma muy efectiva para detener este tipo de ataques." + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:166 +#, php-format +msgid "" +"You may also want to checkout our %s feature for another secure way to " +"protect against these types of attacks." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:171 +msgid "Login Lockdown Options" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:183 +msgid "Enable Login Lockdown Feature" +msgstr "Activar característica de bloqueo de inicio de sesión" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:186 +msgid "" +"Check this if you want to enable the login lockdown feature and apply the " +"settings below" +msgstr "" +"Seleccione esta opción si desea activar la función de bloqueo de inicio de " +"sesión y aplicar los siguientes ajustes" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:190 +msgid "Max Login Attempts" +msgstr "Intentos maximos de ingreso" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:192 +msgid "" +"Set the value for the maximum login retries before IP address is locked out" +msgstr "" +"Defina el valor para los reintentos máximos de inicio de sesión antes de que " +"la dirección IP se bloquee" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:196 +msgid "Login Retry Time Period (min)" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:198 +msgid "" +"If the maximum number of failed login attempts for a particular IP address " +"occur within this time period the plugin will lock out that address" +msgstr "" +"Si el número máximo de intentos de conexión fallidos para una determinada " +"dirección IP se producen dentro de este período de tiempo el plugin se " +"bloqueará esa dirección" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:202 +msgid "Time Length of Lockout (min)" +msgstr "Duración del tiempo de bloqueo (min)" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:204 +msgid "" +"Set the length of time for which a particular IP address will be prevented " +"from logging in" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:208 +msgid "Display Generic Error Message" +msgstr "Mostrar mensaje de error genérico" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:211 +msgid "" +"Check this if you want to show a generic error message when a login attempt " +"fails" +msgstr "" +"Seleccione esta opción si desea mostrar un mensaje de error genérico cuando " +"falla un intento de inicio de sesión" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:215 +msgid "Instantly Lockout Invalid Usernames" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:218 +msgid "" +"Check this if you want to instantly lockout login attempts with usernames " +"which do not exist on your system" +msgstr "" +"Seleccione esta opción si desea bloquear de inmediato los intentos de " +"conexión con los nombres de usuario que no existen en su sistema" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:223 +msgid "Notify By Email" +msgstr "Notificar por correo" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:226 +msgid "" +"Check this if you want to receive an email when someone has been locked out " +"due to maximum failed login attempts" +msgstr "" +"Seleccione esta opción si desea recibir un correo electrónico cuando alguien " +"ha sido bloqueada debido a un máximo de intentos de conexión fallidos" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:236 +msgid "Currently Locked Out IP Address Ranges" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:290 +msgid "" +"This feature allows you to add a captcha form on the WordPress login page." +msgstr "" +"Esta característica le permite añadir un formulario Captcha en la página de " +"inicio de sesión de WordPress." + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:291 +msgid "" +"Users who attempt to login will also need to enter the answer to a simple " +"mathematical question - if they enter the wrong answer, the plugin will not " +"allow them login even if they entered the correct username and password." +msgstr "" +"Los usuarios que intenten iniciar sesión también tendrán que entrar en la " +"respuesta a una pregunta matemática simple - si entran en la respuesta " +"incorrecta, el plugin no permitirá que ingresa, incluso si entraron en el " +"nombre de usuario y contraseña correctos." + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:292 +msgid "" +"Therefore, adding a captcha form on the login page is another effective yet " +"simple \"Brute Force\" prevention technique." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:298 +msgid "Login Form Captcha Settings" +msgstr "Opciones de Capcha del formulario de ingreso" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:309 +msgid "Enable Captcha On Login Page" +msgstr "Habilitar capcha en pagina de ingreso" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:312 +msgid "Check this if you want to insert a captcha form on the login page" +msgstr "" +"Seleccione esta opción si desea insertar un formulario Captcha en la página " +"de inicio de sesión" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:318 +msgid "Lost Password Form Captcha Settings" +msgstr "Opciones de Capcha para recuperar contraseña" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:328 +msgid "Enable Captcha On Lost Password Page" +msgstr "Habilitar Captcha en Página de recuperar contraseña" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:331 +msgid "" +"Check this if you want to insert a captcha form on the lost password page" +msgstr "" +"Seleccione esta opción si desea insertar un formulario Captcha en la página " +"para recuperar contraseña" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:353 +msgid "Nonce check failed for save whitelist settings!" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:410 +msgid "" +"The All In One WP Security Whitelist feature gives you the option of only " +"allowing certain IP addresses or ranges to have access to your WordPress " +"login page." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:411 +msgid "" +"This feature will deny login access for all IP addresses which are not in " +"your whitelist as configured in the settings below." +msgstr "" +"Esta característica va a negar el acceso de inicio de sesión para todas las " +"direcciones IP que no están en su lista blanca como se ha configurado en los " +"ajustes de abajo." + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:412 +msgid "" +"The plugin achieves this by writing the appropriate directives to your ." +"htaccess file." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:413 +msgid "" +"By allowing/blocking IP addresses via the .htaccess file your are using the " +"most secure first line of defence because login access will only be granted " +"to whitelisted IP addresses and other addresses will be blocked as soon as " +"they try to access your login page." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:420 +#, php-format +msgid "" +"Attention: If in addition to enabling the white list feature, you also have " +"the %s feature enabled, you will still need to use your secret word " +"in the URL when trying to access your WordPress login page." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:421 +msgid "" +"These features are NOT functionally related. Having both of them enabled on " +"your site means you are creating 2 layers of security." +msgstr "" +"Estas funciones no están relacionadas funcionalmente. Tener ambos habilitado " +"en su sitio significa que va a crear 2 capas de seguridad." + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:426 +msgid "Login IP Whitelist Settings" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:437 +msgid "Enable IP Whitelisting" +msgstr "Habilitar lista blaca IP" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:440 +msgid "" +"Check this if you want to enable the whitelisting of selected IP addresses " +"specified in the settings below" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:444 +msgid "Your Current IP Address" +msgstr "Tu IP actual" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:447 +msgid "" +"You can copy and paste this address in the text box below if you want to " +"include it in your login whitelist." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:451 +msgid "Enter Whitelisted IP Addresses:" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:455 +msgid "" +"Enter one or more IP addresses or IP ranges you wish to include in your " +"whitelist. Only the addresses specified here will have access to the " +"WordPress login page." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:485 +msgid "Nonce check failed for delete all failed login records operation!" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:494 +msgid "User Login Feature - Delete all failed login records operation failed!" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:498 +msgid "All records from the Failed Logins table were deleted successfully!" +msgstr "" +"Todos los registros de la tabla logins fallidos se han suprimido con éxito!" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:513 +msgid "This tab displays the failed login attempts for your site." +msgstr "Esta ficha muestra los intentos fallidos de conexión para su sitio." + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:514 +msgid "" +"The information below can be handy if you need to do security investigations " +"because it will show you the IP range, username and ID (if applicable) and " +"the time/date of the failed login attempt." +msgstr "" +"La siguiente información puede ser útil si usted tiene que hacer las " +"investigaciones de seguridad, ya que le mostrará el rango de IP, nombre de " +"usuario y el ID (si procede) y la hora / fecha del intento fallido de login." + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:535 +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:544 +msgid "Delete All Failed Login Records" +msgstr "Eliminar todos los registros de ingresos fallidos" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:541 +msgid "" +"Click this button if you wish to delete all failed login records in one go." +msgstr "" +"Haga clic en este botón si desea borrar todos los registros de conexión " +"fallidos de una sola vez." + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:569 +msgid "" +"You entered a non numeric value for the logout time period field. It has " +"been set to the default value." +msgstr "" +"Ha introducido un valor no numérico para el campo Período de tiempo de " +"salida. Se ha establecido en el valor predeterminado." + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:597 +msgid "" +"Setting an expiry period for your WP administration session is a simple way " +"to protect against unauthorized access to your site from your computer." +msgstr "" +"Establecer un período de caducidad para su sesión de administración WP es " +"una forma sencilla de proteger contra el acceso no autorizado a su sitio web " +"desde su ordenador." + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:598 +msgid "" +"This feature allows you to specify a time period in minutes after which the " +"admin session will expire and the user will be forced to log back in." +msgstr "" +"Esta característica le permite especificar un período de tiempo en cuestión " +"de minutos después de lo cual la sesión de administrador expirará y el " +"usuario se verá obligado a volver a iniciar sesión." + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:603 +msgid "Force User Logout Options" +msgstr "Opciones de forzar salida de usuarios" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:615 +msgid "Enable Force WP User Logout" +msgstr "Habilitar salida forzada de usuarios" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:618 +msgid "" +"Check this if you want to force a wp user to be logged out after a " +"configured amount of time" +msgstr "" +"Seleccione esta opción si desea forzar a salir un usuario de WP, pasada una " +"cantidad de tiempo configurada." + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:622 +msgid "Logout the WP User After XX Minutes" +msgstr "Desconectar el Usuario WP después de XX minutos" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:624 +msgid "" +"(Minutes) The user will be forced to log back in after this time period has " +"elapased." +msgstr "" +"(Minutos) El usuario se verá obligado a entrar de nuevo una vez transcurrido " +"este período de tiempo." + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:647 +msgid "" +"This tab displays the login activity for WordPress admin accounts registered " +"with your site." +msgstr "" +"Esta pestaña muestra la actividad de inicio de sesión para las cuentas de " +"administración de WordPress registrados en su sitio." + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:648 +msgid "" +"The information below can be handy if you need to do security investigations " +"because it will show you the last 50 recent login events by username, IP " +"address and time/date." +msgstr "" +"La siguiente información puede ser útil si usted tiene que hacer las " +"investigaciones de seguridad, ya que le mostrará los últimos 50 eventos de " +"inicio de sesión recientes por nombre de usuario, la dirección IP y la " +"hora / fecha." + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:685 +msgid "Nonce check failed for users logged in list!" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:698 +msgid "Refresh Logged In User Data" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:702 +msgid "Refresh Data" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:708 +msgid "This tab displays all users who are currently logged into your site." +msgstr "" +"Esta pestaña muestra todos los usuarios que han iniciado sesión en su sitio." + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:709 +msgid "" +"If you suspect there is a user or users who are logged in which should not " +"be, you can block them by inspecting the IP addresses from the data below " +"and adding them to your blacklist." +msgstr "" +"Si usted sospecha que hay un usuario o usuarios que han iniciado sesión en " +"la que no debe ser, puede bloquearlas mediante la inspección de las " +"direcciones IP de los datos a continuación y añadirlos a su lista negra." + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:714 +msgid "Currently Logged In Users" +msgstr "Usuarios conectados Actualmente" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:779 +msgid "The selected records were deleted successfully!" +msgstr "Los registros seleccionados se han eliminado con éxito!" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:788 +msgid "The selected record was deleted successfully!" +msgstr "El registro seleccionado se ha eliminado correctamente!" + +#: all-in-one-wp-security/admin/wp-security-user-registration-menu.php:23 +msgid "Manual Approval" +msgstr "Aprovacion Manual" + +#: all-in-one-wp-security/admin/wp-security-user-registration-menu.php:24 +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:53 +msgid "Registration Captcha" +msgstr "Captcha registro" + +#: all-in-one-wp-security/admin/wp-security-user-registration-menu.php:112 +msgid "User Registration Settings" +msgstr "Configuración de registro de usuario" + +#: all-in-one-wp-security/admin/wp-security-user-registration-menu.php:116 +msgid "Manually Approve New Registrations" +msgstr "Aprobar manualmente los Nuevos Registros" + +#: all-in-one-wp-security/admin/wp-security-user-registration-menu.php:120 +msgid "" +"If your site allows people to create their own accounts via the WordPress " +"registration form, then you can minimize SPAM or bogus registrations by " +"manually approving each registration." +msgstr "" +"Si el sitio permite a las personas crear sus propias cuentas a través del " +"formulario de registro de WordPress, entonces usted puede minimizar el Spam " +"o registros falsos al aprobar manualmente cada registro." + +#: all-in-one-wp-security/admin/wp-security-user-registration-menu.php:121 +msgid "" +"This feature will automatically set a newly registered account to \"pending" +"\" until the administrator activates it. Therefore undesirable registrants " +"will be unable to log in without your express approval." +msgstr "" +"Esta característica se establecerá automáticamente una nueva cuenta " +"registrada a \" pendiente\" hasta que el administrador lo activa. Por lo " +"tanto, los solicitantes de registro no deseados no podrán iniciar la sesión " +"sin su aprobación expresa." + +#: all-in-one-wp-security/admin/wp-security-user-registration-menu.php:122 +msgid "" +"You can view all accounts which have been newly registered via the handy " +"table below and you can also perform bulk activation/deactivation/deletion " +"tasks on each account." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-registration-menu.php:138 +msgid "Enable manual approval of new registrations" +msgstr "Habilitar aprobación manual de nuevos registros" + +#: all-in-one-wp-security/admin/wp-security-user-registration-menu.php:141 +msgid "" +"Check this if you want to automatically disable all newly registered " +"accounts so that you can approve them manually." +msgstr "" +"Seleccione esta opción si desea desactivar automáticamente todas las cuentas " +"recién registrados para que pueda aprobar manualmente." + +#: all-in-one-wp-security/admin/wp-security-user-registration-menu.php:150 +msgid "Approve Registered Users" +msgstr "Aprobar Usuarios Registrados" + +#: all-in-one-wp-security/admin/wp-security-user-registration-menu.php:195 +msgid "" +"This feature allows you to add a captcha form on the WordPress registration " +"page." +msgstr "" +"Esta característica le permite añadir un formulario CAPTCHA en la página de " +"registro de WordPress." + +#: all-in-one-wp-security/admin/wp-security-user-registration-menu.php:196 +msgid "" +"Users who attempt to register will also need to enter the answer to a simple " +"mathematical question - if they enter the wrong answer, the plugin will not " +"allow them to register." +msgstr "" +"Los usuarios que intenten registrarse también tendrán que entrar en la " +"respuesta a una pregunta matemática simple - si entran en la respuesta " +"incorrecta, el plugin no permitirá que se registren." + +#: all-in-one-wp-security/admin/wp-security-user-registration-menu.php:197 +msgid "" +"Therefore, adding a captcha form on the registration page is another " +"effective yet simple SPAM registration prevention technique." +msgstr "" +"Por lo tanto, la adición de un formulario CAPTCHA en la página de registro " +"es otra técnica de prevención de inscripción SPAM y simple eficaz." + +#: all-in-one-wp-security/admin/wp-security-user-registration-menu.php:202 +msgid "Registration Page Captcha Settings" +msgstr "Configuración de página de registro Captcha" + +#: all-in-one-wp-security/admin/wp-security-user-registration-menu.php:214 +msgid "Enable Captcha On Registration Page" +msgstr "Habilitar Captcha en página de registro" + +#: all-in-one-wp-security/admin/wp-security-user-registration-menu.php:217 +msgid "" +"Check this if you want to insert a captcha form on the WordPress user " +"registration page (if you allow user registration)." +msgstr "" +"Seleccione esta opción si desea insertar un formulario CAPTCHA en la página " +"de registro de usuario de WordPress (si se permite el registro de usuarios)." + +#: all-in-one-wp-security/admin/wp-security-whois-menu.php:22 +msgid "WhoIS Lookup" +msgstr "búsqueda WhoIS" + +#: all-in-one-wp-security/admin/wp-security-whois-menu.php:74 +msgid "WHOIS Lookup Information" +msgstr "Información de búsqueda WHOIS" + +#: all-in-one-wp-security/admin/wp-security-whois-menu.php:77 +msgid "" +"This feature allows you to look up more detailed information about an IP " +"address or domain name by querying the WHOIS API." +msgstr "" +"Esta función le permite buscar información más detallada acerca de una " +"dirección IP o nombre de dominio mediante la consulta de la API de base de " +"datos WHOIS." + +#: all-in-one-wp-security/admin/wp-security-whois-menu.php:83 +msgid "Perform a WHOIS Lookup for an IP or Domain Name" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-whois-menu.php:89 +msgid "Enter IP Address or Domain Name" +msgstr "Introduzca la dirección IP o nombre de dominio" + +#: all-in-one-wp-security/admin/wp-security-whois-menu.php:91 +msgid "" +"Enter an IP address or domain name. Example: 111.11.12.13 OR some-domain-" +"name.com" +msgstr "" +"Introduzca una dirección IP o nombre de dominio. Ejemplo: 111.11.12.13 O " +"algun-domain-name.com" + +#: all-in-one-wp-security/admin/wp-security-whois-menu.php:95 +msgid "Perform IP or Domain Lookup" +msgstr "Realice una búsqueda IP o de dominio " + +#: all-in-one-wp-security/admin/wp-security-whois-menu.php:115 +msgid "WHOIS lookup successfully completed. Please see the results below:" +msgstr "" +"Búsqueda WHOIS ha completado correctamente. Por favor, vea los resultados a " +"continuación:" + +#: all-in-one-wp-security/admin/wp-security-whois-menu.php:127 +msgid "" +"You have entered an incorrectly formatted IP address or domain name. Please " +"try again." +msgstr "" +"Ha introducido una dirección IP con formato incorrecto o nombre de dominio. " +"Por favor, inténtelo de nuevo." + +#: all-in-one-wp-security/admin/general/wp-security-list-table.php:178 +msgid "No items found." +msgstr "No se han encontrado artículos." + +#: all-in-one-wp-security/admin/general/wp-security-list-table.php:281 +msgid "Bulk Actions" +msgstr "Acciones en lote" + +#: all-in-one-wp-security/admin/general/wp-security-list-table.php:291 +msgid "Apply" +msgstr "Aplicar" + +#: all-in-one-wp-security/admin/general/wp-security-list-table.php:365 +msgid "Show all dates" +msgstr "Mostrar todas las fechas" + +#: all-in-one-wp-security/admin/general/wp-security-list-table.php:378 +#, php-format +msgid "%1$s %2$d" +msgstr "" + +#: all-in-one-wp-security/admin/general/wp-security-list-table.php:394 +msgid "List View" +msgstr "" + +#: all-in-one-wp-security/admin/general/wp-security-list-table.php:395 +msgid "Excerpt View" +msgstr "" + +#: all-in-one-wp-security/admin/general/wp-security-list-table.php:421 +#, php-format +msgid "%s pending" +msgstr "%s pendiente" + +#: all-in-one-wp-security/admin/general/wp-security-list-table.php:653 +msgid "Select All" +msgstr "Seleccionar todo" + +#: all-in-one-wp-security/classes/wp-security-backup.php:177 +msgid "All In One WP Security - Site Database Backup" +msgstr "All In One WP Security - Respaldo base datos del sitio" + +#: all-in-one-wp-security/classes/wp-security-backup.php:179 +msgid "Attached is your latest DB backup file for site URL" +msgstr "" + +#: all-in-one-wp-security/classes/wp-security-backup.php:179 +msgid " generated on" +msgstr "generada en" + +#: all-in-one-wp-security/classes/wp-security-captcha.php:12 +msgid "Please enter an answer in digits:" +msgstr "Por favor, introduzca una respuesta en digitos:" + +#: all-in-one-wp-security/classes/wp-security-captcha.php:91 +msgid "one" +msgstr "uno" + +#: all-in-one-wp-security/classes/wp-security-captcha.php:92 +msgid "two" +msgstr "dos" + +#: all-in-one-wp-security/classes/wp-security-captcha.php:93 +msgid "three" +msgstr "tres" + +#: all-in-one-wp-security/classes/wp-security-captcha.php:94 +msgid "four" +msgstr "cuatro" + +#: all-in-one-wp-security/classes/wp-security-captcha.php:95 +msgid "five" +msgstr "cinco" + +#: all-in-one-wp-security/classes/wp-security-captcha.php:96 +msgid "six" +msgstr "seis" + +#: all-in-one-wp-security/classes/wp-security-captcha.php:97 +msgid "seven" +msgstr "siete" + +#: all-in-one-wp-security/classes/wp-security-captcha.php:98 +msgid "eight" +msgstr "Ocho" + +#: all-in-one-wp-security/classes/wp-security-captcha.php:99 +msgid "nine" +msgstr "Nueve" + +#: all-in-one-wp-security/classes/wp-security-captcha.php:100 +msgid "ten" +msgstr "Diez" + +#: all-in-one-wp-security/classes/wp-security-captcha.php:101 +msgid "eleven" +msgstr "Once" + +#: all-in-one-wp-security/classes/wp-security-captcha.php:102 +msgid "twelve" +msgstr "Doce" + +#: all-in-one-wp-security/classes/wp-security-captcha.php:103 +msgid "thirteen" +msgstr "Trece" + +#: all-in-one-wp-security/classes/wp-security-captcha.php:104 +msgid "fourteen" +msgstr "catorce" + +#: all-in-one-wp-security/classes/wp-security-captcha.php:105 +msgid "fifteen" +msgstr "quince" + +#: all-in-one-wp-security/classes/wp-security-captcha.php:106 +msgid "sixteen" +msgstr "dieciseis" + +#: all-in-one-wp-security/classes/wp-security-captcha.php:107 +msgid "seventeen" +msgstr "diecisiete" + +#: all-in-one-wp-security/classes/wp-security-captcha.php:108 +msgid "eighteen" +msgstr "dieciocho" + +#: all-in-one-wp-security/classes/wp-security-captcha.php:109 +msgid "nineteen" +msgstr "diecinueve" + +#: all-in-one-wp-security/classes/wp-security-captcha.php:110 +msgid "twenty" +msgstr "veinte" + +#: all-in-one-wp-security/classes/wp-security-file-scan.php:58 +msgid "All In One WP Security - File change detected!" +msgstr "All In One WP Security - Cambio de archivo detectado!" + +#: all-in-one-wp-security/classes/wp-security-file-scan.php:60 +msgid "A file change was detected on your system for site URL" +msgstr "" +"Se ha detectado un cambio en un archivo en el sistema de dirección URL del " +"sitio" + +#: all-in-one-wp-security/classes/wp-security-file-scan.php:60 +msgid ". Scan was generated on" +msgstr "" + +#: all-in-one-wp-security/classes/wp-security-file-scan.php:61 +msgid "Login to your site to view the scan details." +msgstr "Ingrese a su sitio para ver los detalles del análisis." + +#: all-in-one-wp-security/classes/wp-security-general-init-tasks.php:158 +msgid "Please enter an answer in the CAPTCHA field." +msgstr "Por favor, introduzca una respuesta en el campo de CAPTCHA" + +#: all-in-one-wp-security/classes/wp-security-general-init-tasks.php:168 +msgid "" +"Error: You entered an incorrect CAPTCHA answer. Please go back and try again." +msgstr "" +"Error: Introdujo un CAPTCHA de respuesta incorrecta. Por favor, regrese y " +"vuelva a intentarlo." + +#: all-in-one-wp-security/classes/wp-security-general-init-tasks.php:196 +#: all-in-one-wp-security/classes/wp-security-user-login.php:63 +#: all-in-one-wp-security/classes/wp-security-user-login.php:66 +#: all-in-one-wp-security/classes/wp-security-user-registration.php:59 +msgid "ERROR: Your answer was incorrect - please try again." +msgstr "" +" ERROR : Su respuesta fue incorrecta - por favor intente " +"de nuevo." + +#: all-in-one-wp-security/classes/wp-security-user-login.php:39 +msgid "" +"ERROR: Login failed because your IP address has been " +"blocked.\n" +" Please contact the administrator." +msgstr "" +"ERROR: La conexión falló porque su dirección IP ha sido " +"bloqueada \n" +". Por favor, póngase en contacto con el " +"administrador." + +#: all-in-one-wp-security/classes/wp-security-user-login.php:76 +msgid "ERROR: The username field is empty." +msgstr "ERROR: El nombre de usuario está vacío." + +#: all-in-one-wp-security/classes/wp-security-user-login.php:80 +msgid "ERROR: The password field is empty." +msgstr "ERROR: El campo de la contraseña está vacía." + +#: all-in-one-wp-security/classes/wp-security-user-login.php:100 +#: all-in-one-wp-security/classes/wp-security-user-login.php:126 +msgid "ERROR: Invalid login credentials." +msgstr "ERROR: Credenciales de inicio de sesión no válidos." + +#: all-in-one-wp-security/classes/wp-security-user-login.php:103 +msgid "ERROR: Invalid username." +msgstr "ERROR: Nombre de usuario inválido." + +#: all-in-one-wp-security/classes/wp-security-user-login.php:129 +#, php-format +msgid "" +"ERROR: Incorrect password. Lost your password?" +msgstr "" +"ERROR: contraseña incorrecta. Olvidó su contraseña?" + +#: all-in-one-wp-security/classes/wp-security-user-login.php:140 +msgid "" +"ACCOUNT PENDING: Your account is currently not active. An " +"administrator needs to activate your account before you can login." +msgstr "" +"CUENTA PENDIENTE: Su cuenta no está activa. Un " +"administrador debe activar su cuenta antes de poder iniciar la sesión." + +#: all-in-one-wp-security/classes/wp-security-user-login.php:263 +msgid "Site Lockout Notification" +msgstr "Notificación de bloqueo del sitio" + +#: all-in-one-wp-security/classes/wp-security-user-login.php:264 +msgid "" +"A lockdown event has occurred due to too many failed login attempts or " +"invalid username:" +msgstr "" +"Un evento de bloqueo se ha producido debido a demasiados intentos fallidos " +"de acceso o nombre de usuario no válido:" + +#: all-in-one-wp-security/classes/wp-security-user-login.php:265 +msgid "Username: " +msgstr "Nombre de usuario:" + +#: all-in-one-wp-security/classes/wp-security-user-login.php:266 +msgid "IP Address: " +msgstr "Direccion IP: " + +#: all-in-one-wp-security/classes/wp-security-user-login.php:267 +msgid "IP Range: " +msgstr "Rango IP:" + +#: all-in-one-wp-security/classes/wp-security-user-login.php:268 +msgid "" +"Log into your site's WordPress administration panel to see the duration of " +"the lockout or to unlock the user." +msgstr "" +"Inicie sesión en el panel de administración de WordPress de su sitio para " +"ver la duración del bloqueo o desbloquear el usuario." + +#: all-in-one-wp-security/classes/wp-security-user-login.php:425 +#, php-format +msgid "" +"Your session has expired because it has been over %d minutes since your last " +"login." +msgstr "" +"Su sesión ha expirado ya que han pasado más de %d minutos desde el último " +"acceso." + +#: all-in-one-wp-security/classes/wp-security-user-login.php:426 +#: all-in-one-wp-security/classes/wp-security-user-login.php:430 +msgid "Please log back in to continue." +msgstr "Por favor, vuelva a iniciar sesión para continuar." + +#: all-in-one-wp-security/classes/wp-security-user-login.php:429 +msgid "You were logged out because you just changed the \"admin\" username." +msgstr "" + +#: all-in-one-wp-security/classes/wp-security-utility-ip-address.php:79 +#: all-in-one-wp-security/classes/wp-security-utility-ip-address.php:98 +#: all-in-one-wp-security/classes/wp-security-utility-ip-address.php:113 +#: all-in-one-wp-security/classes/wp-security-utility-ip-address.php:128 +msgid " is not a valid ip address format." +msgstr "no es un formato de dirección IP válida." + +#: all-in-one-wp-security/classes/wp-security-utility-ip-address.php:136 +msgid "You cannot ban your own IP address: " +msgstr "No se puede prohibir su propia dirección IP: " + +#: all-in-one-wp-security/classes/wp-security-utility.php:151 +msgid "" +"This feature can only be configured by the \"superadmin\" on the main site." +msgstr "" + +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:29 +msgid "Remove WP Generatore Meta Tag" +msgstr "" + +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:35 +msgid "Change Display Name" +msgstr "Cambiar de nombre a mostrar" + +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:43 +msgid "Lost Password Captcha" +msgstr "Recuperar contraseña Captcha" + +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:45 +msgid "Login IP Whitelisting" +msgstr "" + +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:51 +msgid "Registration Approval" +msgstr "Aprobación de Registro" + +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:67 +msgid "WordPress Files Access" +msgstr "Acceso archivos de WordPress" + +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:71 +msgid "IP and User Agent Blacklisting" +msgstr "" + +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:75 +msgid "Enable Basic Firewall" +msgstr "Habilitar Firewall Basico" + +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:76 +msgid "Enable Pingback Vulnerability Protection" +msgstr "" + +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:82 +msgid "Forbid Proxy Comments" +msgstr "Prohibir los comentarios via proxy" + +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:83 +msgid "Deny Bad Queries" +msgstr "Denegar malas consultas" + +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:85 +msgid "5G Blacklist" +msgstr "5G Lista Negra" + +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:88 +msgid "Block Spambots" +msgstr "Bloquear spam bots" + +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:90 +msgid "Comment Captcha" +msgstr "Captcha comentarios" + +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item.php:28 +msgid "Basic" +msgstr "Basico" + +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item.php:31 +msgid "Intermediate" +msgstr "Intermedio" + +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item.php:34 +msgid "Advanced" +msgstr "Avanzado" diff --git a/all-in-one-wp-security/languages/aiowpsecurity-fa_IR.mo b/all-in-one-wp-security/languages/aiowpsecurity-fa_IR.mo new file mode 100644 index 0000000000000000000000000000000000000000..cb7af13d0fe0aa2e589e1234ee30deb58e875ed6 GIT binary patch literal 140066 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

@x$%3fJ6gF&<1H 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 literal 0 HcmV?d00001 diff --git a/all-in-one-wp-security/languages/aiowpsecurity-fa_IR.po b/all-in-one-wp-security/languages/aiowpsecurity-fa_IR.po new file mode 100644 index 0000000..d622595 --- /dev/null +++ b/all-in-one-wp-security/languages/aiowpsecurity-fa_IR.po @@ -0,0 +1,4056 @@ +msgid "" +msgstr "" +"Project-Id-Version: امنیت Ùراگیر وردپرس\n" +"POT-Creation-Date: 2013-12-03 12:53+1000\n" +"PO-Revision-Date: 2014-05-21 11:45+0330\n" +"Last-Translator: Amir Mousavi \n" +"Language-Team: Amir Mousavi \n" +"Language: fa_IR\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 1.6.5\n" +"X-Poedit-KeywordsList: __;_e\n" +"X-Poedit-Basepath: .\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Poedit-SearchPath-0: .\n" + +#: all-in-one-wp-security/admin/wp-security-admin-init.php:156 +msgid "WP Security" +msgstr "امنیت Ùراگیر وردپرس" + +#: all-in-one-wp-security/admin/wp-security-admin-init.php:157 +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:22 +msgid "Dashboard" +msgstr "پیشخوان امنیت" + +#: all-in-one-wp-security/admin/wp-security-admin-init.php:158 +msgid "Settings" +msgstr "تنظیمات" + +#: all-in-one-wp-security/admin/wp-security-admin-init.php:159 +msgid "User Accounts" +msgstr "حساب های کاربری" + +#: all-in-one-wp-security/admin/wp-security-admin-init.php:160 +msgid "User Login" +msgstr "ورود کاربران" + +#: all-in-one-wp-security/admin/wp-security-admin-init.php:161 +msgid "User Registration" +msgstr "نام‌نویسی کاربران" + +#: all-in-one-wp-security/admin/wp-security-admin-init.php:162 +msgid "Database Security" +msgstr "امنیت پایگاه داده" + +#: all-in-one-wp-security/admin/wp-security-admin-init.php:166 +msgid "Filesystem Security" +msgstr "امنیت Ùایل‌های سیستم" + +#: all-in-one-wp-security/admin/wp-security-admin-init.php:168 +msgid "WHOIS Lookup" +msgstr "مراجعه به WHOIS" + +#: all-in-one-wp-security/admin/wp-security-admin-init.php:172 +msgid "Blacklist Manager" +msgstr "مدیریت Ùهرست سیاه" + +#: all-in-one-wp-security/admin/wp-security-admin-init.php:177 +msgid "Firewall" +msgstr "دیوار آتش" + +#: all-in-one-wp-security/admin/wp-security-admin-init.php:179 +msgid "SPAM Prevention" +msgstr "جلوگیری از اسپم" + +#: all-in-one-wp-security/admin/wp-security-admin-init.php:183 +msgid "Scanner" +msgstr "اسکنر" + +#: all-in-one-wp-security/admin/wp-security-admin-init.php:185 +msgid "Maintenance" +msgstr "حالت تعمیر" + +#: all-in-one-wp-security/admin/wp-security-admin-menu.php:43 +msgid "Settings successfully updated." +msgstr "تنظیمات با موÙقیت به روز رسانی شد!" + +#: all-in-one-wp-security/admin/wp-security-admin-menu.php:50 +msgid "The selected record(s) deleted successfully!" +msgstr "رکورد(های) انتخابی با موÙقیت پاک شد(ند)!" + +#: all-in-one-wp-security/admin/wp-security-blacklist-menu.php:22 +msgid "Ban Users" +msgstr "ممنوع کردن کاربران" + +#: all-in-one-wp-security/admin/wp-security-blacklist-menu.php:80 +msgid "Nonce check failed for save blacklist settings!" +msgstr "بررسی Nonce برای ذخیره Ùهرست سیاه، ناموÙÙ‚ بود!" + +#: all-in-one-wp-security/admin/wp-security-blacklist-menu.php:132 +#: all-in-one-wp-security/admin/wp-security-list-comment-spammer-ip.php:147 +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:400 +msgid "" +"The plugin was unable to write to the .htaccess file. Please edit file " +"manually." +msgstr "" +"اÙزونه قادر به نوشتن در Ùایل htaccess. نیست. لطÙا Ùایل را به صورت دستی " +"ویرایش کنید." + +#: all-in-one-wp-security/admin/wp-security-blacklist-menu.php:139 +msgid "Ban IPs or User Agents" +msgstr "ممنوعیت IP یا نرم اÙزار نماینده کاربران (User Agents)" + +#: all-in-one-wp-security/admin/wp-security-blacklist-menu.php:142 +msgid "" +"The All In One WP Security Blacklist feature gives you the option of banning " +"certain host IP addresses or ranges and also user agents." +msgstr "" +"Ùهرست سیاه AIOWP به شما این امکان را Ù…ÛŒ دهد تا یک میزبان IP مشخص یا یک رنج " +"IP یا یک نرم اÙزار خاص را مسدود کنید." + +#: all-in-one-wp-security/admin/wp-security-blacklist-menu.php:143 +msgid "" +"This feature will deny total site access for users which have IP addresses " +"or user agents matching those which you have configured in the settings " +"below." +msgstr "" +"این ویژگی دسترسی کامل به سایت را برای کاربرانی Ú©Ù‡ IP یا نرم اÙزار مشخص شده " +"در پایین را دارند، قطع Ù…ÛŒ کند." + +#: all-in-one-wp-security/admin/wp-security-blacklist-menu.php:144 +msgid "" +"The plugin achieves this by making appropriate modifications to your ." +"htaccess file." +msgstr "اÙزونه برای رسیدن به این هد٠تغییراتی در Ùایل .htaccess شما Ù…ÛŒ دهد." + +#: all-in-one-wp-security/admin/wp-security-blacklist-menu.php:145 +msgid "" +"By blocking people via the .htaccess file your are using the most secure " +"first line of defence which denies all access to blacklisted visitors as " +"soon as they hit your hosting server." +msgstr "" +"با مسدود کردن مردم از طریق Ùایل htaccess. شما از محکم ترین خط دÙاعی اولیه " +"استÙاده Ù…ÛŒ کنید؛ این خط دÙاعی دسترسی کامل بازدیدکنندگان ممنوعه را قطع Ù…ÛŒ کند." + +#: all-in-one-wp-security/admin/wp-security-blacklist-menu.php:151 +msgid "IP Hosts and User Agent Blacklist Settings" +msgstr "ساماندهی Ùهرست سیاه میزبان های IP Ùˆ نرم اÙزارهای نماینده کاربر" + +#: all-in-one-wp-security/admin/wp-security-blacklist-menu.php:162 +msgid "Enable IP or User Agent Blacklisting" +msgstr "Ùعال سازی Ùهرست سیاه برای IP یا نرم اÙزار نماینده کاربری" + +#: all-in-one-wp-security/admin/wp-security-blacklist-menu.php:165 +msgid "" +"Check this if you want to enable the banning (or blacklisting) of selected " +"IP addresses and/or user agents specified in the settings below" +msgstr "" +"این گزینه برای را برای Ùعال‌سازی ممنوعیت IPها/نرم اÙزارهای نماینده کاربر تیک " +"بزنید." + +#: all-in-one-wp-security/admin/wp-security-blacklist-menu.php:169 +msgid "Enter IP Addresses:" +msgstr "آدرس های IP را وارد کنید:" + +#: all-in-one-wp-security/admin/wp-security-blacklist-menu.php:173 +msgid "Enter one or more IP addresses or IP ranges." +msgstr "یک یا چند IP یا رنج IP را وارد کنید." + +#: all-in-one-wp-security/admin/wp-security-blacklist-menu.php:174 +#: all-in-one-wp-security/admin/wp-security-blacklist-menu.php:194 +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:271 +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:288 +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:147 +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:177 +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:308 +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:338 +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:369 +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:397 +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:426 +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:514 +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:669 +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:703 +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:726 +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:747 +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:174 +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:259 +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:456 +msgid "More Info" +msgstr "اطلاعات بیشتر" + +#: all-in-one-wp-security/admin/wp-security-blacklist-menu.php:177 +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:459 +msgid "Each IP address must be on a new line." +msgstr "هر IP آدرس Ù…ÛŒ بایست در یک خط جدید وارد شود." + +#: all-in-one-wp-security/admin/wp-security-blacklist-menu.php:178 +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:460 +msgid "" +"To specify an IP range use a wildcard \"*\" character. Acceptable ways to " +"use wildcards is shown in the examples below:" +msgstr "" +"برای مشخص کردن یک رنج IP از Wildcard \"*\" استÙاده کنید. روش های درست " +"استÙاده از Wildcardها در نمونه های زیر نشان داده شده است:" + +#: all-in-one-wp-security/admin/wp-security-blacklist-menu.php:179 +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:461 +msgid "Example 1: 195.47.89.*" +msgstr "نمونه یک : *.195.47.89" + +#: all-in-one-wp-security/admin/wp-security-blacklist-menu.php:180 +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:462 +msgid "Example 2: 195.47.*.*" +msgstr "نمونه دو : *.*.195.47" + +#: all-in-one-wp-security/admin/wp-security-blacklist-menu.php:181 +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:463 +msgid "Example 3: 195.*.*.*" +msgstr "نمونه سه : *.*.*.195" + +#: all-in-one-wp-security/admin/wp-security-blacklist-menu.php:188 +msgid "Enter User Agents:" +msgstr "نرم اÙزارهای نماینده کاربر را وارد کنید:" + +#: all-in-one-wp-security/admin/wp-security-blacklist-menu.php:193 +msgid "Enter one or more user agent strings." +msgstr "یک یا چند نرم اÙزار نماینده کاربری را وارد کنید." + +#: all-in-one-wp-security/admin/wp-security-blacklist-menu.php:197 +msgid "Each user agent string must be on a new line." +msgstr "هر نرم اÙزار نماینده کاربری Ù…ÛŒ بایست در یک خط جدید وارد شود." + +#: all-in-one-wp-security/admin/wp-security-blacklist-menu.php:198 +msgid "Example 1 - A single user agent string to block:" +msgstr "نمونه یک : یک نرم اÙزار نماینده کاربری برای مسدود کردن" + +#: all-in-one-wp-security/admin/wp-security-blacklist-menu.php:200 +msgid "Example 2 - A list of more than 1 user agent strings to block" +msgstr "نمونه دو: یک لیست از نرم اÙزارهای نماینده کاربری برای مسدود کردن" + +#: all-in-one-wp-security/admin/wp-security-blacklist-menu.php:208 +#: all-in-one-wp-security/admin/wp-security-database-menu.php:347 +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:309 +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:231 +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:497 +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:189 +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:232 +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:336 +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:470 +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:628 +#: all-in-one-wp-security/admin/wp-security-user-registration-menu.php:146 +#: all-in-one-wp-security/admin/wp-security-user-registration-menu.php:221 +msgid "Save Settings" +msgstr "ذخیره تنظیمات" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:23 +msgid "System Info" +msgstr "اطلاعات سیستم" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:73 +msgid "For information, updates and documentation, please visit the" +msgstr "برای اطلاعات، بروز رسانی ها Ùˆ راهنمای استÙاده، لطÙا برگه" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:73 +msgid "AIO WP Security & Firewall Plugin" +msgstr "اÙزونه امنیت Ùراگیر Ùˆ دیوار آتش وردپرس" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:73 +msgid "Page" +msgstr "را ببینید" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:74 +msgid "Follow us" +msgstr "ما را دنبال کنید" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:74 +msgid "" +"Twitter, Google+ or via Email to stay upto date about the new security " +"features of this plugin." +msgstr "" +"توییتر، Ú¯ÙˆÚ¯Ù„ پلاس Ùˆ یا از طریق ایمیل تا از ویژگی‌های جدید امنیتی این اÙزونه " +"با خبر باشید." + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:88 +msgid "Security Strength Meter" +msgstr "نشانگر میزان امنیت" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:117 +msgid "Total Achievable Points: " +msgstr "همه امتیازهای قابل کسب:" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:119 +msgid "Current Score of Your Site: " +msgstr "امتیاز کنونی سایت شما:" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:129 +msgid "Security Points Breakdown" +msgstr "تÙکیک امتیازهای امنیتی" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:170 +msgid "Critical Feature Status" +msgstr "وضعیت ویژگی‌های مهم" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:174 +msgid "" +"Below is the current status of the critical features that you should " +"activate on your site to achieve a minimum level of recommended security" +msgstr "" +"در زیر وضعیت کنونی ویژگی‌های مهم را Ù…ÛŒ بینید Ú©Ù‡ برای رسیدن به سطح حداقل امنیت " +"باید آنها را Ùعال کنید." + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:178 +msgid "Admin Username" +msgstr "نام کاربری سرپرست" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:193 +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:27 +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:39 +msgid "Login Lockdown" +msgstr "Ù‚ÙÙ„ ورود" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:208 +msgid "File Permission" +msgstr "اجازه دسترسی به Ùایل" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:223 +msgid "Basic Firewall" +msgstr "دیوار آتش آغازین" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:241 +msgid "Maintenance Mode Status" +msgstr "وضعیت حالت تعمیر" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:245 +msgid "" +"Maintenance mode is currently enabled. Remember to turn it off when you are " +"done" +msgstr "" +"حالت تعمیر Ùعال است. به یاد داشته باشید پس از اتمام کارتان آن را خاموش کنید." + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:248 +msgid "Maintenance mode is currently off." +msgstr "حالت تعمیر خاموش است." + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:252 +msgid "Maintenance Mode" +msgstr "حالت تعمیر" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:291 +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:33 +msgid "Logged In Users" +msgstr "کاربران وارد شده" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:301 +msgid "Number of users currently logged in site-wide is:" +msgstr "تعداد کاربرانی Ú©Ù‡ هم اکنون در سایت وارد شده اند:" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:302 +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:324 +#, php-format +msgid "Go to the %s menu to see more details" +msgstr "برای مشاهده جزییات بیشتر به Ùهرست %s بروید" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:307 +msgid "There are no other site-wide users currently logged in." +msgstr "هم اکنون هیچ کاربر دیگری در سایت وارد نشده است." + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:323 +msgid "Number of users currently logged into your site is:" +msgstr "تعداد کاربرانی Ú©Ù‡ در حال حاضر در سایت هستند." + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:329 +msgid "There are no other users currently logged in." +msgstr "هم اکنون هیچ کاربر دیگری در سایت حضور ندارد." + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:340 +msgid "Spread the Word" +msgstr "گسترش این اÙزونه" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:343 +msgid "" +"We are working to make your WordPress site more secure. Please support us, " +"here is how:" +msgstr "" +"ما کار Ù…ÛŒ کنیم تا سایت وردپرسی شما را امن‌تر کنیم. لطÙا از اینجا ما را حمایت " +"کنید:" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:367 +msgid "Site Info" +msgstr "اطلاعات سایت" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:369 +msgid "Plugin Version" +msgstr "نسخه اÙزونه" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:370 +msgid "WP Version" +msgstr "نسخه وردپرس" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:372 +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:374 +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:395 +msgid "Version" +msgstr "نسخه" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:373 +msgid "Table Prefix" +msgstr "پیشوند جدول" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:375 +msgid "Session Save Path" +msgstr "محل ذخیره جلسه" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:377 +msgid "Server Name" +msgstr "نام سÙرور" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:378 +msgid "Cookie Domain" +msgstr "دامنه Ú©ÙˆÚ©ÛŒ" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:379 +msgid "Library Present" +msgstr "کتابخانه موجود" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:380 +msgid "Debug File Write Permissions" +msgstr "اشکال یابی مجوزهای نوشتن Ùایل" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:384 +msgid "Active Plugins" +msgstr "اÙزونه های Ùعال" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:394 +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:130 +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:149 +msgid "Name" +msgstr "نام" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:396 +msgid "Plugin URL" +msgstr "آدرس اÙزونه" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:23 +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:57 +msgid "DB Prefix" +msgstr "پیشوند دیتابیس" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:24 +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:59 +msgid "DB Backup" +msgstr "Ùایل پشتیبان دیتابیس" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:84 +msgid "Nonce check failed for DB prefix change operation!" +msgstr "بررسی Nonce برای تغییر پیشوند دیتابیس ناموÙÙ‚ بود!" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:92 +msgid "" +"The plugin has detected that it cannot write to the wp-config.php file. This " +"feature can only be used if the plugin can successfully write to the wp-" +"config.php file." +msgstr "" +"اÙزونه نمی تواند در Ùایل wp-config.php کدنویسی کند. این ویژگی تنها در صورتی " +"کار Ù…ÛŒ کند Ú©Ù‡ اÙزونه بتواند در Ùایل wp-config.php کدنویسی کند." + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:105 +msgid "Please enter a value for the DB prefix." +msgstr "لطÙا یک مقدار(Value) برای پیشوند دیتابیس وارد کنید." + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:114 +msgid "" +"ERROR: The table prefix can only contain numbers, letters, " +"and underscores." +msgstr "" +"خطا: پیشوند جدول، Ùقط باید شامل حروÙ،عدد Ùˆ یا Underline " +"باشد." + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:122 +msgid "Change Database Prefix" +msgstr "تغییر پیشوند دیتابیس" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:125 +msgid "" +"Your WordPress DB is the most important asset of your website because it " +"contains a lot of your site's precious information." +msgstr "" +"دیتابیس وردپرس شما،مهم ترین قسمت سایت شماست؛ زیرا بخش ارزشمند اطلاعات سایت " +"شما در آن است." + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:126 +msgid "" +"The DB is also a target for hackers via methods such as SQL injections and " +"malicious and automated code which targets certain tables." +msgstr "" +"دیتابیس همچنین هدÙÛŒ برای هکرها Ù…ÛŒ باشد Ú©Ù‡ از طریق SQL Injections یا کدهای " +"خرابکارانه خودکار جدولهای خاصی را هد٠می گیرند." + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:127 +msgid "" +"One way to add a layer of protection for your DB is to change the default " +"WordPress table prefix from \"wp_\" to something else which will be " +"difficult for hackers to guess." +msgstr "" +"یک راه برای Ø­Ùاظت از دیتابیس، تغییر پیشوند وردپرس برای جدول ها یعنی \"wp_" +"\" ØŒ به چیز دیگری است Ú©Ù‡ حدس زدن آن برای هکرها دشوار باشد." + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:128 +msgid "" +"This feature allows you to easily change the prefix to a value of your " +"choice or to a random value set by this plugin." +msgstr "" +"این ویژگی به شما امکان تغییر آسان پیشوند دیتابیس را Ù…ÛŒ دهد؛ شما Ù…ÛŒ توانید از " +"پیشوند دلخواه خودتان یا از پیشوند تصادÙÛŒ اÙزونه استÙاده کنید." + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:134 +msgid "DB Prefix Options" +msgstr "گزینه های تغییر پیشوند دیتابیس" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:145 +#, php-format +msgid "It is recommended that you perform a %s before using this feature" +msgstr "توصیه Ù…ÛŒ شود قبل از استÙاده از این ویژگی %s" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:154 +msgid "Current DB Table Prefix" +msgstr "پیشوند Ùعلی جدول های دیتابیس" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:160 +msgid "" +"Your site is currently using the default WordPress DB prefix value of \"wp_" +"\". \n" +" To increase your site's security you should " +"consider changing the DB prefix value to another value." +msgstr "" +"سایت شما هم اکنون از پیشوند وردپرس یعنی \"wp_\" برای دیتابیس استÙاده Ù…ÛŒ " +"کند.\n" +"برای اÙزایش امنیت سایت،بهتر است شما یک پیشوند دیگر انتخاب کنید" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:167 +msgid "Generate New DB Table Prefix" +msgstr "ساختن یک پیشوند تصادÙÛŒ جدید برای دیتابیس" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:170 +msgid "" +"Check this if you want the plugin to generate a random 6 character string " +"for the table prefix" +msgstr "" +"اگر Ù…ÛŒ خواهید اÙزونه یک پیشوند تصادÙÛŒ 6 کاراکتری برای دیتابیس شما بسازد، این " +"گزینه را تیک بزنید." + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:171 +msgid "OR" +msgstr "یا" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:173 +msgid "" +"Choose your own DB prefix by specifying a string which contains letters and/" +"or numbers and/or underscores. Example: xyz_" +msgstr "" +"خودتان یک پیشوند دلخواه به زبان انگلیسی برای دیتابیس بنویسید(پیشوند Ù…ÛŒ تواند " +"شامل حروÙ،عدد Ùˆ یا Underline باشد)" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:177 +msgid "Change DB Prefix" +msgstr "تغییر پیشوند دیتابیس" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:198 +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:86 +msgid "Nonce check failed for manual DB backup operation!" +msgstr "بررسی Nonce برای پشتیبان گیری دستی از دیتابیس، ناموÙÙ‚ بود!" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:215 +msgid "" +"DB Backup was successfully completed! You will receive the backup file via " +"email if you have enabled \"Send Backup File Via Email\", otherwise you can " +"retrieve it via FTP from the following directory:" +msgstr "" +"Ùایل پشتیبان دیتابیس با موÙقیت ایجاد شد. شما یک نسخه از Ùایل پشتیبان را از " +"طریق ایمیل دریاÙت Ù…ÛŒ کنید به شرط اینکه گزینه \"ارسال Ùایل پشتیبان از طریق " +"ایمیل\" را Ùعال کرده باشید. در غیر این صورت شما Ù…ÛŒ توانید Ùایل را در آدرس " +"زیر بیابید:" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:217 +msgid "Your DB Backup File location: " +msgstr "محل قرارگیری Ùایل پشتیبان دیتابیس:" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:225 +msgid "DB Backup failed. Please check the permissions of the backup directory." +msgstr "" +"پشتیبان گیری ناموÙÙ‚ بود! لطÙا مجوزهای مسیر ذخیره Ùایل پشتیبان را بررسی کنید." + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:242 +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:126 +msgid "" +"You entered a non numeric value for the \"backup time interval\" field. It " +"has been set to the default value." +msgstr "" +"شما یک مقدار غیر عددی برای \"بازه زمانی پشتیبان گیری\" وارد کرده اید. بازه " +"زمانی روی مقدار پیش‌Ùرض تنظیم Ù…ÛŒ شود." + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:249 +msgid "" +"You entered a non numeric value for the \"number of backup files to keep\" " +"field. It has been set to the default value." +msgstr "" +"شما یک مقدار غیر عددی برای \"تعداد Ùایلهای پشتیبانی Ú©Ù‡ باید Ù†Ú¯Ù‡ داشته شود\" " +"وارد کرده اید. تعداد Ùایل ها روی مقدار پیش‌Ùرض تنظیم Ù…ÛŒ شود." + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:256 +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:156 +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:121 +msgid "" +"You have entered an incorrect email address format. It has been set to your " +"WordPress admin email as default." +msgstr "" +"شما یک آدرس ایمیل نامعتبر وارد کرده اید. آدرس ایمیل طبق آدرس ایمیل پیش‌Ùرض " +"سایت تنظیم Ù…ÛŒ شود." + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:262 +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:162 +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:219 +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:127 +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:581 +msgid "Attention!" +msgstr "توجه!" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:289 +msgid "Manual Backup" +msgstr "پشتیبان گیری دستی" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:295 +msgid "To create a new DB backup just click on the button below." +msgstr "برای ایجاد یک پشتیبان دیتابیس روی کلید زیر کلیک کنید" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:298 +msgid "Create DB Backup Now" +msgstr "ایجاد Ùایل پشتیبان دیتابیس" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:302 +msgid "Automated Scheduled Backups" +msgstr "پشتیبان گیری خودکار" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:314 +msgid "Enable Automated Scheduled Backups" +msgstr "Ùعال‌سازی پشتیبان گیری خودکار" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:317 +msgid "" +"Check this if you want the system to automatically generate backups " +"periodically based on the settings below" +msgstr "" +"برای پشتیبان گیری خودکار در بازه های زمانی مختلÙØŒ گزینه زیر را تیک بزنید." + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:321 +msgid "Backup Time Interval" +msgstr "بازه زمانی پشتیبان گیری" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:324 +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:259 +msgid "Hours" +msgstr "ساعت" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:325 +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:260 +msgid "Days" +msgstr "روز" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:326 +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:261 +msgid "Weeks" +msgstr "Ù‡Ùته" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:328 +msgid "Set the value for how often you would like an automated backup to occur" +msgstr "" +"برای تعیین اینکه هرچند وقت یک بار پشتیبان گیری خودکار انجام شود،یک مقدار " +"وارد کنید" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:332 +msgid "Number of Backup Files To Keep" +msgstr "تعداد Ùایل های پشتیبان Ú©Ù‡ باید Ù†Ú¯Ù‡ داشته شود" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:334 +msgid "" +"Thie field allows you to choose the number of backup files you would like to " +"keep in the backup directory" +msgstr "" +"این قسمت به شما اجازه Ù…ÛŒ دهد تعیین کنید Ú†Ù‡ تعداد Ùایل پشتیبان روی هاست باقی " +"بمانند." + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:338 +msgid "Send Backup File Via Email" +msgstr "Ùرستادن Ùایل پشتیبان از طریق ایمیل" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:341 +msgid "" +"Check this if you want the system to email you the backup file after a DB " +"backup has been performed" +msgstr "" +"برای اینکه سیستم پس از تهیه هر پشتیبان، یک نسخه برای شما ایمیل کند، این " +"گزینه را تیک بزنید" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:343 +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:305 +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:228 +msgid "Enter an email address" +msgstr "یک آدرس ایمیل وارد کنید" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:373 +msgid "Starting DB prefix change operations....." +msgstr "آغاز عملیات تغییر پیشوند دیتابیس" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:375 +#, php-format +msgid "" +"Your WordPress system has a total of %s tables and your new DB prefix will " +"be: %s" +msgstr "" +"سیستم وردپرس شما در Ú©Ù„ %s جدول دارد Ùˆ پیشوند جدید دیتابیس شما %s خواهد بود." + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:381 +#: all-in-one-wp-security/classes/wp-security-utility.php:206 +msgid "" +"Failed to make a backup of the wp-config.php file. This operation will not " +"go ahead." +msgstr "خطا در پشتیبان گیری از Ùایل wp-config.php. عملیات متوق٠شد." + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:385 +msgid "A backup copy of your wp-config.php file was created successfully!" +msgstr "یک پشتیبان از Ùایل wp-config.php شما با موÙقیت ایجاد شد!" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:408 +#, php-format +msgid "%s table name update failed" +msgstr "بروزرسانی نام جدول %s ناموÙÙ‚ بود" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:420 +#, php-format +msgid "Please change the prefix manually for the above tables to: %s" +msgstr "لطÙا پیشوند جدول(های) Ùوق را به صورت دستی به %s تغییر دهید." + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:423 +#, php-format +msgid "%s tables had their prefix updated successfully!" +msgstr "%s جدول، پیشوندشان به خوبی بروز شد." + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:438 +msgid "wp-config.php file was updated successfully!" +msgstr "Ùایل wp-config.php به خوبی بروز شد!" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:441 +#, php-format +msgid "" +"The \"wp-config.php\" file was not able to be modified. Please modify this " +"file manually using your favourite editor and search \n" +" for variable \"$table_prefix\" and assign the following " +"value to that variable: %s" +msgstr "" +"Ùایل wp-config.php قابل ویرایش نیست. لطÙا به صورت دستی Ùایل را باز کرده \n" +" Ùˆ متغیر \"$table_prefix\" را بیابید. سپس مقدار آن را به %s تغییر دهید." + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:462 +msgid "There was an error when updating the options table." +msgstr "هنگام بروز کردن جدول Options خطایی رخ داد." + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:466 +msgid "" +"The options table records which had references to the old DB prefix were " +"updated successfully!" +msgstr "" +"رکوردهای جدول Options Ú©Ù‡ به پیشوند قبلی دیتابیس ارجاع داشتند، به خوبی بروز " +"شدند!" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:491 +#, php-format +msgid "" +"Error updating user_meta table where new meta_key = %s, old meta_key = %s " +"and user_id = %s." +msgstr "" +"خطا در بروز رسانی جدول user_meta در جایی Ú©Ù‡ meta_key جدید = %s ØŒ meta_key " +"قدیمی = %s Ùˆ user_id = %s است." + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:497 +msgid "" +"The usermeta table records which had references to the old DB prefix were " +"updated successfully!" +msgstr "" +"رکوردهای جدول Usermeta Ú©Ù‡ به پیشوند قبلی دیتابیس ارجاع داشتند، به خوبی بروز " +"شدند!" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:499 +msgid "DB prefix change tasks have been completed." +msgstr "عملیات تغییر پیشوند دیتابیس با موÙقیت به پایان رسید." + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:22 +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:94 +msgid "File Change Detection" +msgstr "شناسایی تغییر Ùایل" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:93 +msgid "Nonce check failed for manual file change detection scan operation!" +msgstr "بررسی Nonce برای شناسایی دستی تغییر Ùایل ناموÙÙ‚ بود!" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:100 +msgid "" +"The plugin has detected that this is your first file change detection scan. " +"The file details from this scan will be used to detect file changes for " +"future scans!" +msgstr "" +"این نخستین اسکن شما برای تغییر Ùایل است.برای شناسایی تغییر Ùایل در اسکن های " +"آینده از جزییات این اسکن استÙاده Ù…ÛŒ شود." + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:194 +msgid "" +"NEW SCAN COMPLETED: The plugin has detected that you have made changes to " +"the \"File Types To Ignore\" or \"Files To Ignore\" fields.\n" +" In order to ensure that future scan results are " +"accurate, the old scan data has been refreshed." +msgstr "" +"اسکن جدید انجام شد. اÙزونه تشخیص داده Ú©Ù‡ شما تغییراتی در \"Ùرمت هایی Ú©Ù‡ باید " +"چشم پوشی شود\" یا \"Ùایل هایی Ú©Ù‡ باید چشم پوشی شود\" ایجاد کرده اید.\n" +"برای اطمینان از اینکه نتایج اسکن های آینده دقیق خواهند بود، نتایج اسکن قدیمی " +"بروز شد." + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:204 +msgid "" +"All In One WP Security & Firewall has detected that there was a change in " +"your host's files." +msgstr "امنیت Ùراگیر وردپرس یک تغییر در Ùایل‌های هاست شما شناسایی کرده است." + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:206 +msgid "View Scan Details & Clear This Message" +msgstr "مشاهده نتایج اسکن Ùˆ پاک کردن این پیغام" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:215 +msgid "" +"If given an opportunity hackers can insert their code or files into your " +"system which they can then use to carry out malicious acts on your site." +msgstr "" +"اگر به هکرها امکان داده شود آنها Ù…ÛŒ توانند Ùایلها یا کدهای خود را وارد " +"سیستم شما کرده Ùˆ از طریق آنها اعمال خرابکارانه روی سایت شما انجام دهند." + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:216 +msgid "" +"Being informed of any changes in your files can be a good way to quickly " +"prevent a hacker from causing damage to your website." +msgstr "" +"آگاهی همیشگی از تغییر Ùایل‌ها راه بسیار خوبی برای جلوگیری از خرابکاری یک هکر " +"در سایت شماست." + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:217 +msgid "" +"In general, WordPress core and plugin files and file types such as \".php\" " +"or \".js\" should not change often and when they do, it is important that " +"you are made aware when a change occurs and which file was affected." +msgstr "" +"معمولا Ùایل‌های هسته وردپرس،Ùایل های اÙزونه‌ها Ùˆ همچنین Ùایلهایی مانند \".php" +"\" یا \".js\" خیلی Ú©Ù… تغییر می‌کنند Ùˆ این مهم است Ú©Ù‡ هرگاه این Ùایلها تغییر " +"کردند بلاÙاصله شما باخبر شوید." + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:218 +msgid "" +"The \"File Change Detection Feature\" will notify you of any file change " +"which occurs on your system, including the addition and deletion of files by " +"performing a regular automated or manual scan of your system's files." +msgstr "" +" \"ویژگی تشخیص تغییر Ùایل‌ها\" با انجام یک اسکن خودکار یا دستی، هر گاه تغییری " +"شامل پاک شدن یا اÙزوده شدن در Ùایل های شما اتÙاق بیÙتد، شما را با خبر Ù…ÛŒ " +"سازد." + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:219 +msgid "" +"This feature also allows you to exclude certain files or folders from the " +"scan in cases where you know that they change often as part of their normal " +"operation. (For example log files and certain caching plugin files may " +"change often and hence you may choose to exclude such files from the file " +"change detection scan)" +msgstr "" +"این ویژگی همچنین به شما اجازه Ù…ÛŒ دهد تا Ùایلها Ùˆ پوشه های مشخصی را (Ú©Ù‡ Ù…ÛŒ " +"دانید اغلب تغییر Ù…ÛŒ کنند) از لیست اسکن خارج کنید.(برای مثال Ùایلهای گزارش " +"(Log) )" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:224 +msgid "Manual File Change Detection Scan" +msgstr "اسکن شناسایی تغییر Ùایل به صورت دستی" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:230 +msgid "" +"To perform a manual file change detection scan click on the button below." +msgstr "" +"برای انجام یک اسکن شناسایی تغییر Ùایل به صورت دستی روی دکمه زیر کلیک کنید." + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:233 +msgid "Perform Scan Now" +msgstr "انجام اسکن" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:237 +msgid "File Change Detection Settings" +msgstr "تنظیمات شناسایی تغییر Ùایل" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:249 +msgid "Enable Automated File Change Detection Scan" +msgstr "Ùعال کردن شناسایی تغییر Ùایل به طور خودکار" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:252 +msgid "" +"Check this if you want the system to automatically/periodically scan your " +"files to check for file changes based on the settings below" +msgstr "" +"برای اسکن خودکار/زمان‌بندی شده Ùایل ها بر اساس تنظیمات زیر، این گزینه را تیک " +"بزنید" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:256 +msgid "Scan Time Interval" +msgstr "بازه زمانی اسکن" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:263 +msgid "Set the value for how often you would like a scan to occur" +msgstr "تعیین کنید هر چند وقت یک بار اسکن انجام شود " + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:267 +msgid "File Types To Ignore" +msgstr "Ùرمت هایی Ú©Ù‡ باید چشم پوشی شود" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:270 +msgid "" +"Enter each file type or extension on a new line which you wish to exclude " +"from the file change detection scan." +msgstr "در هر خط Ùرمت هایی Ú©Ù‡ Ù…ÛŒ خواهید اسکن نشوند را وارد کنید" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:274 +msgid "" +"You can exclude file types from the scan which would not normally pose any " +"security threat if they were changed. These can include things such as image " +"files." +msgstr "" +"شما Ù…ÛŒ توانید Ùرمت Ùایلهایی را Ú©Ù‡ تغییر آنها به طور معمول خطری برای سیستم " +"ندارد، از اسکن شدن بازدارید. برای نمونه Ùرمت Ùایلهای تصویری." + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:275 +msgid "" +"Example: If you want the scanner to ignore files of type jpg, png, and bmp, " +"then you would enter the following:" +msgstr "" +"نمونه: اگر شما Ù…ÛŒ خواهید Ú©Ù‡ اسکنر Ùایلهایی با پسوند jpgØŒ png Ùˆ bmp را اسکن " +"نکند آنها را به Ø´Ú©Ù„ زیر وارد کنید:" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:276 +msgid "jpg" +msgstr "jpg" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:277 +msgid "png" +msgstr "png" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:278 +msgid "bmp" +msgstr "bmp" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:284 +msgid "Files/Directories To Ignore" +msgstr "Ùایل‌ها/ مسیرهایی Ú©Ù‡ باید چشم پوشی شود:" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:287 +msgid "" +"Enter each file or directory on a new line which you wish to exclude from " +"the file change detection scan." +msgstr "در هر خط Ùایل‌ها Ùˆ مسیرهایی را Ú©Ù‡ Ù…ÛŒ خواهید اسکن نشوند وارد کنید." + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:291 +msgid "" +"You can exclude specific files/directories from the scan which would not " +"normally pose any security threat if they were changed. These can include " +"things such as log files." +msgstr "" +"شما Ù…ÛŒ توانید Ùایلها Ùˆ مسیرهایی را Ú©Ù‡ تغییر آنها به طور معمول خطری برای " +"سیستم ندارد، از اسکن شدن بازدارید. برای نمونه Ùایلهای گزارش (Log)" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:292 +msgid "" +"Example: If you want the scanner to ignore certain files in different " +"directories or whole directories, then you would enter the following:" +msgstr "" +"نمونه: اگر شما می‌خواهید Ú©Ù‡ اسکنر Ùایل های خاصی را در مسیر های مختل٠و یا Ú©Ù„ " +"مسیرها اسکن نکند، آنها را به Ø´Ú©Ù„ زیر وارد کنید:" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:293 +msgid "cache/config/master.php" +msgstr "cache/config/master.php" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:294 +msgid "somedirectory" +msgstr "somedirectory" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:300 +msgid "Send Email When Change Detected" +msgstr "هنگامی Ú©Ù‡ تغییر Ùایل شناسایی شد به من ایمیل بÙرست" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:303 +msgid "" +"Check this if you want the system to email you if a file change was detected" +msgstr "" +"اگر Ù…ÛŒ خواهید سیستم وقتی یک تغییر Ùایل را شناسایی کرد به شما ایمیل بÙرستد " +"این گزینه را تیک بزنید" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:335 +msgid "Latest File Change Scan Results" +msgstr "واپسین نتایج تغییرات Ùایل" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:344 +msgid "The following files were added to your host." +msgstr "Ùایلهای زیر به هاست شما اضاÙÙ‡ شده اند." + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:347 +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:368 +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:392 +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:26 +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:27 +msgid "File" +msgstr "Ùایل" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:348 +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:369 +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:393 +msgid "File Size" +msgstr "اندازه Ùایل" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:349 +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:370 +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:394 +msgid "File Modified" +msgstr "اصلاح شدن Ùایل" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:365 +msgid "The following files were removed from your host." +msgstr "Ùایل‌های زیر از هاست شما پاک شدند." + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:389 +msgid "The following files were changed on your host." +msgstr "Ùایل‌های زیر در هاست شما تغییر کرده اند" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:26 +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:63 +msgid "File Permissions" +msgstr "مجوزهای Ùایل" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:27 +msgid "PHP File Editing" +msgstr "ویرایش Ùایل PHP" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:28 +msgid "WP File Access" +msgstr "دسترسی به Ùایلهای وردپرس" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:29 +msgid "Host System Logs" +msgstr "گزارش‌های سیستم هاست" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:96 +#, php-format +msgid "The permissions for %s were succesfully changed to %s" +msgstr "مجوزها برای %s به خوبی به %s تغییر کردند." + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:100 +#, php-format +msgid "Unable to change permissions for %s!" +msgstr "ناتوانی در تغییر مجوزها برای %s !" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:106 +msgid "File Permissions Scan" +msgstr "اسکن مجوزهای Ùایل" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:109 +msgid "" +"Your WordPress file and folder permission settings govern the accessability " +"and read/write privileges of the files and folders which make up your WP " +"installation." +msgstr "" +"دسترسی Ùˆ اجازه خواندن Ùˆ نوشتن Ùایل ها Ùˆ پوشه هایی Ú©Ù‡ وردپرس را Ù…ÛŒ سازند، " +"توسط مجوزهای Ùایل کنترل Ù…ÛŒ شود." + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:110 +msgid "" +"Your WP installation already comes with reasonably secure file permission " +"settings for the filesystem." +msgstr "نسخه وردپرس شما به صورت پیش‌Ùرض با تنظیمات درست مجوزهای Ùایل عرضه می‌شود" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:111 +msgid "" +"However, sometimes people or other plugins modify the various permission " +"settings of certain core WP folders or files such that they end up making " +"their site less secure because they chose the wrong permission values." +msgstr "" +"با این حال،گاهی مردم یا سایر اÙزونه ها تنظیمات این مجوزها را برای Ùایلهای " +"هسته وردپرس به Ø´Ú©Ù„ نادرستی تغییر می‌دهند Ùˆ این در نهایت باعث ناامن شدن سایت " +"Ù…ÛŒ شود." + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:112 +msgid "" +"This feature will scan the critical WP core folders and files and will " +"highlight any permission settings which are insecure." +msgstr "" +"این ویژگی Ùایل‌ها Ùˆ پوشه‌های مهم هسته وردپرس را اسکن Ù…ÛŒ کند؛ سپس هر تنظیمات " +"مجوزی را Ú©Ù‡ ناامن باشد مشخص Ù…ÛŒ کند." + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:118 +msgid "WP Directory and File Permissions Scan Results" +msgstr "نتایج اسکن مسیر نصب وردپرس Ùˆ مجوزهای Ùایل" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:131 +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:150 +msgid "File/Folder" +msgstr "Ùایل/پوشه" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:132 +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:151 +msgid "Current Permissions" +msgstr "مجوزهای Ùعلی" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:133 +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:152 +msgid "Recommended Permissions" +msgstr "مجوزهای پیشنهادی" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:134 +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:153 +msgid "Recommended Action" +msgstr "کار پیشنهادی" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:191 +msgid "Your PHP file editing settings were saved successfully." +msgstr "تنظیمات ویرایش Ùایل PHP با موÙقیت ذخیره شد." + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:195 +msgid "" +"Operation failed! Unable to modify or make a backup of wp-config.php file!" +msgstr "" +"عملیات ناموÙÙ‚ بود! ناتوانی در اصلاح یا تهیه Ùایل پشتیبان از Ùایل wp-config." +"php !" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:201 +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:65 +msgid "File Editing" +msgstr "ویرایش Ùایل" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:204 +msgid "" +"The Wordpress Dashboard by default allows administrators to edit PHP files, " +"such as plugin and theme files." +msgstr "" +"پیشخوان وردپرس به طور پیش‌Ùرض به مدیران سایت اجازه ویرایش Ùایل‌های PHP (مانند " +"Ùایل‌های پوسته ها Ùˆ اÙزونه ها) را می‌دهد." + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:205 +msgid "" +"This is often the first tool an attacker will use if able to login, since it " +"allows code execution." +msgstr "" +"معمولا این نخستین راهی است Ú©Ù‡ یک هکر در صورت ورود به سایت از آن استÙاده Ù…ÛŒ " +"کند؛ زیرا از این طریق Ù…ÛŒ تواند کدهای خودش را اجرا کند.\v" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:206 +msgid "" +"This feature will disable the ability for people to edit PHP files via the " +"dashboard." +msgstr "" +"این ویژگی امکان ویرایش Ùایل های PHP از طریق پیشخوان وردپرس را غیرÙعال Ù…ÛŒ کند." + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:212 +msgid "Disable PHP File Editing" +msgstr "غیرÙعال کردن ویرایش Ùایل PHP" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:224 +msgid "Disable Ability To Edit PHP Files" +msgstr "غیرÙعال کردن ویرایش Ùایل‌های PHP" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:227 +msgid "" +"Check this if you want to remove the ability for people to edit PHP files " +"via the WP dashboard" +msgstr "" +"اگر Ù…ÛŒ خواهید اجازه ویرایش Ùایل‌های PHP از طریق پیشخوان وردپرس را غیرÙعال " +"کنید این گزینه را تیک بزنید." + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:271 +msgid "" +"You have successfully saved the Prevent Access to Default WP Files " +"configuration." +msgstr "" +"شما با موÙقیت تنظیمات \"جلوگیری از دسترسی به Ùایل‌های وردپرس\" را ذخیره کردید." + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:275 +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:115 +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:269 +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:480 +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:619 +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:106 +msgid "" +"Could not write to the .htaccess file. Please check the file permissions." +msgstr "" +"نمی توان در Ùایل .htaccess چیزی نوشت.لطÙا مجوزهای این Ùایل را بررسی کنید." + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:280 +msgid "WordPress Files" +msgstr "Ùایل‌های وردپرس" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:283 +#, php-format +msgid "" +"This feature allows you to prevent access to files such as %s, %s and %s " +"which are delivered with all WP installations." +msgstr "" +"این ویژگی امکان جلوگیری از دسترسی به Ùایل‌‎هایی مانند %s ØŒ %s Ùˆ %s را Ùراهم Ù…ÛŒ " +"کند. این Ùایل‌ها به همراه هر نگارش وردپرس عرضه Ù…ÛŒ شوند." + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:284 +msgid "" +"By preventing access to these files you are hiding some key pieces of " +"information (such as WordPress version info) from potential hackers." +msgstr "" +"با جلوگیری از دسترسی به این Ùایل‌ها شما تعدادی از اطلاعات کلیدی (مانند نسخه " +"وردپرس) را از چشم هکرها پنهان Ù…ÛŒ کنید." + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:289 +msgid "Prevent Access to Default WP Files" +msgstr "جلوگیری از دسترسی به Ùایل‌های پیش‌Ùرض وردپرس" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:300 +msgid "Prevent Access to WP Default Install Files" +msgstr "جلوگیری از دسترسی به Ùایل‌های نصب پیش‌Ùرض وردپرس" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:303 +msgid "" +"Check this if you want to prevent access to readme.html, license.txt and wp-" +"config-sample.php." +msgstr "" +"اگر Ù…ÛŒ خواهید جلو دسترسی به Ùایل‌های readme.htmlØŒ license.txt Ùˆ wp-config-" +"sample.php را بگیرید، این گزینه را تیک بزنید." + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:307 +msgid "Save Setting" +msgstr "ذخیره تنظیمات" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:331 +msgid "System Logs" +msgstr "گزارش‌های سیستم" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:334 +msgid "" +"Sometimes your hosting platform will produce error or warning logs in a file " +"called \"error_log\"." +msgstr "" +"گاهی سیستم هاست شما گزارش‌های خطا یا هشدار در قالب Ùایل \"error_log\" تولید " +"Ù…ÛŒ کند." + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:335 +msgid "" +"Depending on the nature and cause of the error or warning, your hosting " +"server can create multiple instances of this file in numerous directory " +"locations of your WordPress installation." +msgstr "" +"بسته به نوع Ùˆ دلیل بروز خطا یا هشدار، سیستم هاست شما می‌تواند چندین نسخه از " +"این Ùایل را در مسیرهای مختل٠وردپرس ایجاد کند." + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:336 +msgid "" +"By occassionally viewing the contents of these logs files you can keep " +"informed of any underlying problems on your system which you might need to " +"address." +msgstr "" +"با دیدن گاه به گاه درونمایه این Ùایل‌های گزارش شما Ù…ÛŒ توانید از همه مشکلات " +"پنهان سیستم آگاه شوید." + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:342 +msgid "View System Logs" +msgstr "دیدن گزارش‌های سیستم" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:347 +msgid "Enter System Log File Name" +msgstr "ورود نام Ùایل گزارش" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:349 +msgid "Enter your system log file name. (Defaults to error_log)" +msgstr "نام Ùایل‌ گزارش سیستم خود را وارد کنید. (پیش‌Ùرض error_log است)" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:352 +msgid "View Latest System Logs" +msgstr "دیدن تازه‌ترین گزارش های سیستم" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:354 +msgid "Loading..." +msgstr "بارگذاری..." + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:371 +msgid "No system logs were found!" +msgstr "هیچ گزارشی یاÙت نشد!" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:424 +msgid "Set Recommended Permissions" +msgstr "تنظیم مجوزهای پیشنهادی" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:430 +msgid "No Action Required" +msgstr "کاری نیاز نیست." + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:470 +#, php-format +msgid "Showing latest entries of error_log file: %s" +msgstr "نمایش تازه ترین نوشته‌های Ùایل error_log : %s" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:25 +msgid "Basic Firewall Rules" +msgstr "دستورهای پایه دیوارآتش" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:26 +msgid "Additional Firewall Rules" +msgstr "دستورهای اضاÙÛŒ دیوارآتش" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:27 +msgid "5G Blacklist Firewall Rules" +msgstr "دستورهای دیوارآتش لیست سیاه 5G" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:28 +msgid "Brute Force Prevention" +msgstr "جلوگیری از Brute Force" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:111 +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:102 +#: all-in-one-wp-security/admin/wp-security-user-registration-menu.php:96 +msgid "Settings were successfully saved" +msgstr "تنظیمات به خوبی ذخیره شد." + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:120 +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:485 +msgid "Firewall Settings" +msgstr "تنظیمات دیوارآتش" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:127 +#, php-format +msgid "" +"This should not have any impact on your site's general functionality but if " +"you wish you can take a %s of your .htaccess file before proceeding." +msgstr "" +"این کار نباید هیچ‌گونه آسیبی به کارایی سایت شما وارد کند اما شما اگر بخواهید " +"Ù…ÛŒ توانید یک %s از Ùایل .htaccess خود بگیرید." + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:128 +msgid "" +"The features in this tab allow you to activate some basic firewall security " +"protection rules for your site." +msgstr "این ویژگی" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:129 +msgid "" +"The firewall functionality is achieved via the insertion of special code " +"into your currently active .htaccess file." +msgstr "" +"کارایی دیوارآتش از راه وارد کردن کدهای ویژه در Ùایل .htaccess شما به دست Ù…ÛŒ " +"آید." + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:135 +msgid "Basic Firewall Settings" +msgstr "تنظیمات پایه دیوارآتش" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:143 +msgid "Enable Basic Firewall Protection" +msgstr "به کار انداختن محاÙظت دیوارآتش پایه" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:146 +msgid "Check this if you want to apply basic firewall protection to your site." +msgstr "" +"اگر می‌خواهید محاÙظت پایه دیوارآتش روی سایت شما به کار گرÙته شود، این گزینه " +"را تیک بزنید." + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:150 +msgid "" +"This setting will implement the following basic firewall protection " +"mechanisms on your site:" +msgstr "این تنظیم ساز Ùˆ کارهای محÙاظت زیر را در سایت شما به کار Ù…ÛŒ گیرد:" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:151 +msgid "1) Protect your htaccess file by denying access to it." +msgstr "1) Ø­Ùاظت از Ùایل .htaccess به وسیله جلوگیری از دسترسی به آن" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:152 +msgid "2) Disable the server signature." +msgstr "2) از کار انداختن امضای سرور (server signature)" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:153 +msgid "3) Limit file upload size (10MB)." +msgstr "3) محدود کردن حجم قابل آپلود (10 مگابایت)" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:154 +msgid "4) Protect your wp-config.php file by denying access to it." +msgstr "4) Ø­Ùاظت از Ùایل wp-config.php به وسیله جلوگیری از دسترسی به آن" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:155 +msgid "" +"The above firewall features will be applied via your .htaccess file and " +"should not affect your site's overall functionality." +msgstr "" +"Ø­Ùاظت های بالا از راه Ùایل .htaccess شما به کار گرÙته Ù…ÛŒ شود Ùˆ نبایستی به " +"کارایی سایت شما آسیب بزند." + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:156 +msgid "" +"You are still advised to take a backup of your active .htaccess file just in " +"case." +msgstr "هنوز هم به شما سÙارش می‌شود از Ùایل .htaccess خود پشتیبان بگیرید." + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:165 +msgid "WordPress Pingback Vulnerability Protection" +msgstr "Ø­Ùاظت آسیب‌پذیری Pingback وردپرس" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:173 +msgid "Enable Pingback Protection" +msgstr "Ùعال کردن Ø­Ùاظت Pingback" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:176 +msgid "" +"Check this if you are not using the WP XML-RPC functionality and you want to " +"enable protection against WordPress pingback vulnerabilities." +msgstr "" +"این گزینه را تیک بزنید اگر از کارایی WP XML-RPC استÙاده نمی‌کنید Ùˆ می‌خواهید " +"از آسیب‌پذیری Pingback وردپرس Ø­Ùاظت کنید." + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:180 +msgid "" +"This setting will add a directive in your .htaccess to disable access to the " +"WordPress xmlrpc.php file which is responsible for the XML-RPC functionality " +"such as pingbacks in WordPress." +msgstr "" +"این تنظیم یک دستور‌دهنده (directive) در Ùایل .htaceess شما وارد می‌کند. این " +"دستوردهنده دسترسی به Ùایل xmlrpc.php وردپرس را قطع می‌کند.این Ùایل مسئولیت " +"کارایی‌های XML-RPC (مانند pingback) را برعهده دارد." + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:181 +msgid "" +"Hackers can exploit various pingback vulnerabilities in the WordPress XML-" +"RPC API in a number of ways such as:" +msgstr "" +"هکرها می‌توانند از آسیب‌پذیری های مختل٠Pingback در XML-RPC API وردپرس " +"استÙاده کنند. تعدادی از این راه‌ها در زیر نوشته شده:" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:182 +msgid "1) Denial of Service (DoS) attacks" +msgstr "1) حمله‌های رد سرویس (DoS)" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:183 +msgid "2) Hacking internal routers." +msgstr "2) Ù‡Ú© کردن مسیریاب های داخلی" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:184 +msgid "3) Scanning ports in internal networks to get info from various hosts." +msgstr "" +"3) اسکن پورت‌ها در شبکه‌های داخلی؛برای بدست آوردن اطلاعات از هاست‌های مختلÙ" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:185 +msgid "" +"Apart from the security protection benefit, this feature may also help " +"reduce load on your server, particularly if your site currently has a lot of " +"unwanted traffic hitting the XML-RPC API on your installation." +msgstr "" +"جدا از مسئله امنیتی، این ویژگی Ùشار روی سÙرور شما را Ú©Ù… می‌کند؛ چنانچه سایت " +"شما در حال حاضر دارای حجم بزرگی از تراÙیک‌ ناخواسته است (Ú©Ù‡ بوسیله XML-RPC " +"API بوجود می‎‌آید)." + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:186 +msgid "" +"NOTE: You should only enable this feature if you are not currently using the " +"XML-RPC functionality on your WordPress installation." +msgstr "" +"توجه: چنانچه شما از قابلیت XML-RPC استÙاده می‌کنید، نباید این ویژگی را Ùعال " +"کنید." + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:193 +msgid "Save Basic Firewall Settings" +msgstr "ذخیره تنظیمات دیوارآتش پایه" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:265 +msgid "" +"You have successfully saved the Additional Firewall Protection configuration" +msgstr "شما با موÙقیت تنظیمات اضاÙÛŒ دیوار آتش را ذخیره کردید." + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:279 +msgid "Additional Firewall Protection" +msgstr "موارد اضاÙÛŒ دیوار آتش" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:283 +#, php-format +msgid "" +"Due to the nature of the code being inserted to the .htaccess file, this " +"feature may break some functionality for certain plugins and you are " +"therefore advised to take a %s of .htaccess before applying this " +"configuration." +msgstr "" +"با توجه به ماهیت کدهایی Ú©Ù‡ در Ùایل .htaccess وارد می‌شود، این ویژگی ممکن است " +"کارکرد بعضی از اÙزونه‌ها را مختل کند. از این رو به شما سÙارش می‌شود حتما قبل " +"از به کارگیری این ویژگی، یک %s ." + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:285 +msgid "" +"This feature allows you to activate more advanced firewall settings to your " +"site." +msgstr "این ویژگی به شما امکان Ùعال‌سازی تنظیمات پیشرÙته دیوارآتش را Ù…ÛŒ دهد." + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:286 +msgid "" +"The advanced firewall rules are applied via the insertion of special code to " +"your currently active .htaccess file." +msgstr "" +"ویژگی‌های پیشرÙته دیوارآتش از راه وارد کردن کدهای مخصوص در Ùایل .htaccess " +"شما، به کار گرÙته می‌شود." + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:295 +msgid "Listing of Directory Contents" +msgstr "Ùهرست کردن محتوای دایرکتوری" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:304 +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:80 +msgid "Disable Index Views" +msgstr "از کار انداختن مشاهده محتوا به صورت Ùهرست (Index Views)" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:307 +msgid "Check this if you want to disable directory and file listing." +msgstr "" +"اگر می‌خواهید Ùهرست کردن دایرکتوری Ùˆ Ùایل‌ها را از کار بندازید، این گزینه را " +"تیک بزنید." + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:312 +msgid "" +"By default, an Apache server will allow the listing of the contents of a " +"directory if it doesn't contain an index.php file." +msgstr "" +"به صورت پیش‌Ùرض، سرور آپاچی اجازه Ùهرست کردن محتوای یک دایرکتوری را می‌دهد.(در " +"صورت نبودن Ùایل index.php در آن دایرکتوری)" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:314 +msgid "This feature will prevent the listing of contents for all directories." +msgstr "" +"این ویژگی امکان Ùهرست کردن محتوا را برای تمام دایرکتوری‌ها غیرÙعال می‌کند." + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:316 +msgid "" +"NOTE: In order for this feature to work \"AllowOverride\" must be enabled in " +"your httpd.conf file. Ask your hosting provider to check this if you don't " +"have access to httpd.conf" +msgstr "" +"توجه: برای به کارگیری این ویژگی باید \"AllowOverride\" در Ùایل httpd.conf " +"Ùعال شده باشد. چنانچه به این Ùایل دسترسی ندارید از ارائه دهنده خدمات هاست " +"خود بخواهید این مورد را بررسی کند." + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:325 +msgid "Trace and Track" +msgstr "ردیابی Ùˆ رهگیری" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:334 +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:81 +msgid "Disable Trace and Track" +msgstr "از کار انداختن ردیابی Ùˆ رهگیری" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:337 +msgid "Check this if you want to disable trace and track." +msgstr "اگر می‌خواهید ردیابی Ùˆ رهگیری را از کار بندازید این گزینه را تیک بزنید." + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:342 +msgid "" +"HTTP Trace attack (XST) can be used to return header requests and grab " +"cookies and other information." +msgstr "" +"حمله ردیابی HTTP یا XST می‌تواند برای بازگرداندن درخواست‌های Header Ùˆ گرÙتن " +"Ú©ÙˆÚ©ÛŒ ها Ùˆ دیگر اطلاعات استÙاده شود." + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:344 +msgid "" +"This hacking technique is usually used together with cross site scripting " +"attacks (XSS)." +msgstr "" +"این تکنیک Ù‡Ú© کردن معمولا همراه با حمله‌های برنامه نویسی متقابل سایت (XSS) " +"استÙاده می‌شود." + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:346 +msgid "" +"Disabling trace and track on your site will help prevent HTTP Trace attacks." +msgstr "" +"از کار انداختن ردیابی Ùˆ رهگیری روی سایت شما از بروز حملات ردیابی HTTP " +"جلوگیری می‌کند." + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:355 +msgid "Proxy Comment Posting" +msgstr "Ùرستادن دیدگاه از راه پراکسی" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:365 +msgid "Forbid Proxy Comment Posting" +msgstr "ممنوع کردن Ùرستادن دیدگاه از راه پراکسی" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:368 +msgid "Check this if you want to forbid proxy comment posting." +msgstr "" +"اگر می‌خواهید Ùرستادن دیدگاه از راه پراکسی را غیرÙعال کنید، این گزینه را تیک " +"بزنید." + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:373 +msgid "" +"This setting will deny any requests that use a proxy server when posting " +"comments." +msgstr "" +"همه درخواست‌های Ùرستادن دیدگاه Ú©Ù‡ هنگام Ùرستادن از یک پراکسی سÙرور استÙاده " +"می‌کنند، توسط این تنظیم رد می‌شوند." + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:374 +msgid "" +"By forbidding proxy comments you are in effect eliminating some SPAM and " +"other proxy requests." +msgstr "" +"با ممنوع کردن Ùرستادن دیدگاه از راه پراکسی، در عمل شما جلوی بسیاری از SPAMها " +"Ùˆ سایر درخواست‌های پراکسی را می‌گیرید." + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:383 +msgid "Bad Query Strings" +msgstr "Bad Query Strings" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:393 +msgid "Deny Bad Query Strings" +msgstr "جلوگیری از Bad Query Strings" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:396 +msgid "This will help protect you against malicious queries via XSS." +msgstr "این ویژگی از شما در برابر کوئری‌های خراب‌کارانه XSS ØŒ محاÙظت می‌کند." + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:401 +msgid "" +"This feature will write rules in your .htaccess file to prevent malicious " +"string attacks on your site using XSS." +msgstr "" +"این ویژگی دستورهایی در Ùایل .htaccess شما وارد می‌کند Ú©Ù‡ جلوی حملات رشته‌های " +"خراب‌کارانه XSS را می‌گیرد." + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:402 +msgid "" +"NOTE: Some of these strings might be used for plugins or themes and hence " +"this might break some functionality." +msgstr "" +"توجه: بعضی از این رشته‌ها ممکن است برای اÙزونه‌ها Ùˆ پوسته‌ها استÙاده شوند " +"بنابراین این ویژگی ممکن است برخی از کارکردها را مختل کند." + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:403 +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:433 +msgid "" +"You are therefore strongly advised to take a backup of your active .htaccess " +"file before applying this feature." +msgstr "" +"پس به شما شدیدا سÙارش می‌شود قبل از به‌کارگیری این قابلیت یک Ùایل پشتیبان از ." +"htaccess Ùعلی خود بگیرید." + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:412 +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:84 +msgid "Advanced Character String Filter" +msgstr "Ùیلتر پیشرÙته برای رشته‌های کارکتری" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:422 +msgid "Enable Advanced Character String Filter" +msgstr "Ùعال کردن Ùیلتر پیشرÙته رشته‌های کارکتری" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:425 +msgid "This will block bad character matches from XSS." +msgstr "این ویژگی مانع جور شدن کارکترهای بد از XSS می‌شود." + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:430 +msgid "" +"This is an advanced character string filter to prevent malicious string " +"attacks on your site coming from Cross Site Scripting (XSS)." +msgstr "" +"این یک Ùیلتر پیشرÙته رشته‌های کارکتری است Ú©Ù‡ برای جلوگیری از حملات خراب‌کارانه " +"XSS به سایت شما، به کار می‌رود." + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:431 +msgid "" +"This setting matches for common malicious string patterns and exploits and " +"will produce a 403 error for the hacker attempting the query." +msgstr "" +"این تنظیم الگوهای رشته‌ای Ú©Ù‡ معمولا برای حمله به کار می‌روند شناسایی می‌کند Ùˆ " +"در صورت تلاش هکر برای دستیابی به اطلاعات خطای 403 را به او نشان می‌دهد." + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:432 +msgid "NOTE: Some strings for this setting might break some functionality." +msgstr "" +"توجه: بعضی رشته‌ها برای این تنظیم ممکن است برخی از کارکردها را مختل کنند." + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:441 +msgid "Save Additional Firewall Settings" +msgstr "ذخیره تنظیمات اضاÙÛŒ دیوارآتش" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:476 +msgid "You have successfully saved the 5G Firewall Protection configuration" +msgstr "شما با موÙقیت پیکربندی دیوارآتش 5G را ذخیره کردید." + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:489 +#, php-format +msgid "" +"This feature allows you to activate the 5G firewall security protection " +"rules designed and produced by %s." +msgstr "" +"این ویژگی به شما امکان به کارگیری لایه Ø­Ùاظتی 5G را می‌دهد Ú©Ù‡ توسط %s طراحی Ùˆ " +"توسعه داده شده است." + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:490 +msgid "" +"The 5G Blacklist is a simple, flexible blacklist that helps reduce the " +"number of malicious URL requests that hit your website." +msgstr "" +"لیست سیاه 5G یک لیست‌سیاه ساده Ùˆ انعطاÙ‌پذیر است Ú©Ù‡ تعداد درخواست‌های " +"خرابکارانه URL به سایت شما را کاهش می‌دهد." + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:491 +msgid "" +"The added advantage of applying the 5G firewall to your site is that it has " +"been tested and confirmed by the people at PerishablePress.com to be an " +"optimal and least disruptive set of .htaccess security rules for general WP " +"sites running on an Apache server or similar." +msgstr "" +"مزیت استÙاده از دیوارآتش 5G این است Ú©Ù‡ این دیوار آتش توسط اعضای سایت " +"PerishablePress.com آزمایش Ùˆ تأیید شده Ú©Ù‡ بهینه‌ترین تنظیمات امنیتی را به " +"سایت‌های وردپرس روی سÙرور Apache می‌دهد." + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:492 +#, php-format +msgid "" +"Therefore the 5G firewall rules should not have any impact on your site's " +"general functionality but if you wish you can take a %s of your .htaccess " +"file before proceeding." +msgstr "" +"بنابراین دستورهای 5G نبایستی روی کارکرد عمومی سایت شما تأثیر بگذارد. اما اگر " +"شما بخواهید، پیش از ادامه دادن می‌توانید یک %s از Ùایل .htaccess Ùعلی خود " +"بگیرید." + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:498 +msgid "5G Blacklist/Firewall Settings" +msgstr "تنظیمات لیست‌سیاه/دیوارآتش 5G" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:510 +msgid "Enable 5G Firewall Protection" +msgstr "Ùعال کردن دیوارآتش 5G" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:513 +msgid "" +"Check this if you want to apply the 5G Blacklist firewall protection from " +"perishablepress.com to your site." +msgstr "" +"اگر Ù…ÛŒ خواهید دیوارآتش 5G ارائه شده توسط perishablepress.com را Ùعال کنید، " +"این گزینه را تیک بزنید." + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:517 +msgid "" +"This setting will implement the 5G security firewall protection mechanisms " +"on your site which include the following things:" +msgstr "این تنظیم ساز‌وکارهای Ø­Ùاظتی 5G زیر را روی سایت شما اعمال می‌کند:" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:518 +msgid "1) Block forbidden characters commonly used in exploitative attacks." +msgstr "" +"1) مسدودسازی کارکترهای غیرمجازی Ú©Ù‡ معمولا در حملات سودجویانه استÙاده می‌شوند." + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:519 +msgid "2) Block malicious encoded URL characters such as the \".css(\" string." +msgstr "2) مسدود سازی کارکترهای URL رمزگذاری شده مانند رشته \".css(\" ." + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:520 +msgid "" +"3) Guard against the common patterns and specific exploits in the root " +"portion of targeted URLs." +msgstr "3) Ø­Ùاظت در برابر الگوهای معمول Ùˆ سوء استÙاده های خاص در ریشه URLها." + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:521 +msgid "" +"4) Stop attackers from manipulating query strings by disallowing illicit " +"characters." +msgstr "" +"4) متوق٠کردن مهاجمان از دستکاری رشته‌های Query با ممانعت از کارکترهای غیرمجاز" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:522 +msgid "....and much more." +msgstr "Ùˆ بسیاری دیگر..." + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:528 +msgid "Save 5G Firewall Settings" +msgstr "ذخیره تنظیمات دیوارآتش 5G" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:556 +msgid "" +"Settings have not been saved - your secret word must consist only of " +"alphanumeric characters, ie, letters and/or numbers only!" +msgstr "" +"تنظیمات ذخیره نشده است - واژه محرمانه شما باید Ùقط شامل حروÙØŒ اعداد Ùˆ یا " +"مخلوطی از حر٠و عدد باشد." + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:574 +msgid "" +"You have successfully enabled the cookie based brute force prevention feature" +msgstr "ویژگی جلوگیری از brute force برپایه کوکی، با موÙقیت Ùعال شد." + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:575 +msgid "" +"From now on you will need to log into your WP Admin using the following URL:" +msgstr "از هم‌اکنون شما باید از آدرس زیر وارد پیشخوان وردپرس شوید:" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:577 +msgid "" +"It is important that you save this URL value somewhere in case you forget " +"it, OR," +msgstr "" +"این مهم است Ú©Ù‡ شما این آدرس را جایی ذخیره کنید؛ چون ممکن است آن را Ùراموش " +"کنید. یا اینکه" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:578 +#, php-format +msgid "simply remember to add a \"?%s=1\" to your current site URL address." +msgstr "" +"به یاد داشته باشید Ú©Ù‡ یک \"?%s=1\" به انتهای آدرس Ùعلی سایت خود اضاÙÙ‡ کنید." + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:584 +msgid "" +"You have successfully saved cookie based brute force prevention feature " +"settings." +msgstr "تنظیمات جلوگیری از brute force برپایه Ú©ÙˆÚ©ÛŒ با موÙقیت ذخیره شد." + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:629 +msgid "Brute Force Prevention Firewall Settings" +msgstr "دیوارآتش جلوگیری از Brute Force" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:634 +msgid "" +"A Brute Force Attack is when a hacker tries many combinations of usernames " +"and passwords until they succeed in guessing the right combination." +msgstr "" +"حمله بی‌رحمانه یا Brute Force Attack وقتی اتÙاق می‌اÙتد Ú©Ù‡ هکر ترکیب‌های مختل٠" +"زیادی از نام کاربری Ùˆ رمزعبور را آزمایش می‌کند تا بالاخره موÙÙ‚ بشود ترکیب " +"درست را حدس بزند." + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:635 +msgid "" +"Due to the fact that at any one time there may be many concurrent login " +"attempts occurring on your site via malicious automated robots, this also " +"has a negative impact on your server's memory and performance." +msgstr "" +"با توجه به این واقعیت Ú©Ù‡ در هر زمان ممکن است از طریق روبات های مخرب خودکار " +"تلاش‌های زیادی برای ورود به سایت شما رخ دهد، در نتیجه Brute force تأثیر منÙÛŒ " +"روی عملکرد سÙرور شما می‌گذارد/" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:636 +msgid "" +"The features in this tab will stop the majority of Brute Force Login Attacks " +"at the .htaccess level thus providing even better protection for your WP " +"login page and also reducing the load on your server because the system does " +"not have to run PHP code to process the login attempts." +msgstr "" +"این ویژگی اکثریت حملات Brute Force را از طریق Ùایل .htaccess متوق٠می‌کند. " +"بنابراین از برگه ورود وردپرس شما محاÙظت بهتری به عمل می‌آید. همچنین این کار " +"باعث کاهش Ùشار روی سÙرور می‌شود؛زیرا سیستم مجبور نیست برای هر تلاش ورود تعداد " +"زیادی کد php را اجرا کند." + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:643 +#, php-format +msgid "" +"Even though this feature should not have any impact on your site's general " +"functionality you are strongly encouraged to take a %s of your ." +"htaccess file before proceeding." +msgstr "" +"هرچند این ویژگی نباید هیچگونه تأثیری روی کارکرد سایت شما بگذارد اما " +"شدیدا به شما سÙارش می‌شود Ú©Ù‡ قبل از انجام این کار یک %s از Ùایل ." +"htaccess خود بگیرید." + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:644 +msgid "" +"If this feature is not used correctly, you can get locked out of your site. " +"A backup file will come in handy if that happens." +msgstr "" +"اگر این ویژگی به درستی استÙاده نشود ممکن است Ú©Ù‡ امکان ورود به سایت برای خود " +"شما هم Ù‚ÙÙ„ شود.در چنین حالتی یک Ùایل پشتیبان بسیار کارآمد است." + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:645 +#, php-format +msgid "" +"To learn more about how to use this feature please watch the following %s." +msgstr "برای آموختن بیشتر درباره استÙاده از این ویژگی لطÙا این %s را ببینید." + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:654 +msgid "Cookie Based Brute Force Login Prevention" +msgstr "جلوگیری از Brute Force بر پایه Ú©ÙˆÚ©ÛŒ" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:665 +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:79 +msgid "Enable Brute Force Attack Prevention" +msgstr "Ùعال کردن جلوگیری از Brute Force" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:668 +msgid "" +"Check this if you want to protect your login page from Brute Force Attack." +msgstr "" +"اگر می‌خواهید برگه ورود خود را از حمله Brute Force Ø­Ùظ کنید، این گزینه را تیک " +"بزنید." + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:673 +msgid "" +"This feature will deny access to your WordPress login page for all people " +"except those who have a special cookie in their browser." +msgstr "" +"این گزینه دسترسی همه کاربران را به صÙحه ورود وردپرس قطع می‌کند به جز کاربرانی " +"Ú©Ù‡ در مرورگر خود یک Ú©ÙˆÚ©ÛŒ ویژه داشته باشند." + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:675 +msgid "To use this feature do the following:" +msgstr "برای بهره‌گیری از این ویژگی به Ø´Ú©Ù„ زیر عمل کنید:" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:677 +msgid "1) Enable the checkbox." +msgstr "1) گزینه را تیک بزنید." + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:679 +msgid "" +"2) Enter a secret word consisting of alphanumeric characters which will be " +"difficult to guess. This secret word will be useful whenever you need to " +"know the special URL which you will use to access the login page (see point " +"below)." +msgstr "" +"2) یک واژه محرمانه(شامل حر٠و عدد) Ú©Ù‡ حدس زدن آن سخت باشد، وارد کنید. این " +"واژه محرمانه وقتی به کار می‌آید Ú©Ù‡ شما بخواهید بدانید از Ú†Ù‡ آدرس خاصی برای " +"دسترسی به صÙحه ورود باید استÙاده کنید. (مورد پایینی را ببینید)" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:681 +msgid "" +"3) You will then be provided with a special login URL. You will need to use " +"this URL to login to your WordPress site instead of the usual login URL. " +"NOTE: The system will deposit a special cookie in your browser which will " +"allow you access to the WordPress administration login page." +msgstr "" +"3) سپس یک URL ویژه به شما داده می‌شود. شما برای ورود به سایت باید از این URL " +"استÙاده کنید(به جای استÙاده از آدرس معمولی ورود). توجه: سیستم یک Ú©ÙˆÚ©ÛŒ خاص را " +"در مرورگر شما ذخیره می‌کند Ú©Ù‡ به شما اجازه دسترسی به صÙحه ورود را خواهد داد." + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:683 +msgid "" +"Any person trying to access your login page who does not have the special " +"cookie in their browser will be automatically blocked." +msgstr "" +"هرکسی Ú©Ù‡ تلاش کند به صÙحه ورود شما دست یابد Ùˆ این Ú©ÙˆÚ©ÛŒ ویژه را در مرورگر " +"خودش نداشته باشد به طور خودکار بلاک می‌شود." + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:690 +msgid "Secret Word" +msgstr "واژه محرمانه" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:692 +msgid "" +"Choose a secret word consisting of alphanumeric characters which you can use " +"to access your special URL. Your are highly encouraged to choose a word " +"which will be difficult to guess." +msgstr "" +"یک واژه محرمانه شامل(حرو٠یا اعداد، یا هر دو) انتخاب کنید Ú©Ù‡ بتوانید از آن " +"برای دسترسی به URL ویژه استÙاده کنید. به شما سÙارش می‌کنیم واژه‌ای را انتخاب " +"کنید Ú©Ù‡ حدس زدن آن سخت باشد." + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:696 +msgid "Re-direct URL" +msgstr "آدرس تغییر مسیر (Re-direct URL)" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:700 +msgid "" +"Specify a URL to redirect a hacker to when they try to access your WordPress " +"login page." +msgstr "" +"یک آدرس مشخص کنید Ú©Ù‡ وقتی یک هکر تلاش می‌کند به برگه ورود شما دست یابد به آن " +"آدرس منتقل شود." + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:707 +msgid "" +"The URL specified here can be any site's URL and does not have to be your " +"own. For example you can be as creative as you like and send hackers to the " +"CIA or NSA home page." +msgstr "" +"آدرسی Ú©Ù‡ اینجا مشخص می‌کنید، می‌تواند متعلق به هر سایتی باشد Ùˆ نیاز نیست حتما " +"آدرسی در سایت خود شما باشد. برای نمونه شما می‌توانید خلاقیت به خرج دهید Ùˆ " +"هکرها را به سایت CIA یا NSA هدایت کنید!" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:709 +msgid "" +"This field will default to: http://127.0.0.1 if you do not enter a value." +msgstr "" +"اگر شما چیزی وارد نکنید مقدار پیش‌Ùرض به کار گرÙته می‌شود: http://127.0.0.1" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:711 +msgid "Useful Tip:" +msgstr "راهنمایی کارآمد:" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:713 +msgid "" +"It's a good idea to not redirect attempted brute force login attempts to " +"your site because it increases the load on your server." +msgstr "" +"این ایده خوبی هست Ú©Ù‡ حملات Brute force را به یک آدرس در سایت خودتان منتقل " +"نکنید؛ چون این کار باعث اÙزایش Ùشار روی سÙرور شما می‌شود." + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:715 +msgid "" +"Redirecting a hacker or malicious bot back to \"http://127.0.0.1\" is ideal " +"because it deflects them back to their own local host and puts the load on " +"their server instead of yours." +msgstr "" +"هدایت یک هکر یا یک ربات خرابکار به \"http://127.0.0.1\" ایده بسیار خوبی " +"است. زیرا این کار آنها را به هاست خودشان بر می‌گرداند Ùˆ از این طریق Ùشار روی " +"سÙرور آنها وارد می‌شود نه سÙرور شما." + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:722 +msgid "My Site Has Posts Or Pages Which Are Password Protected" +msgstr "سایت من نوشته‌ها یا برگه‌هایی دارد Ú©Ù‡ با رمز محاÙظت می‌شوند." + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:725 +msgid "" +"Check this if you are using the native WordPress password protection feature " +"for some or all of your blog posts or pages." +msgstr "" +"اگر شما از قابلیت داخلی وردپرس برای رمزگذاری همه یا بعضی از نوشته‌ها Ùˆ " +"برگه‌های خود استÙاده می‌کنید؛ این گزینه را تیک بزنید." + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:730 +msgid "" +"In the cases where you are protecting some of your posts or pages using the " +"in-built WordPress password protection feature, a few extra lines of " +"directives and exceptions need to be added to your .htacces file so that " +"people trying to access pages are not automatically blocked." +msgstr "" +"در موارد Ú©Ù‡ در آن شما از برخی از نوشته ها Ùˆ یا برگه‌های خود با استÙاده از " +"ویژگی درونی وردپرس(رمزگذاری نوشته‌ها) محاÙظت می‌کنید، نیاز است Ú©Ù‡ چند خط کوتاه " +"دستورهای اضاÙÛŒ به Ùایل .htaccess شما اضاÙÙ‡ شود؛ بنابراین اÙرادی Ú©Ù‡ می‌خواهد " +"برگه‌ها را ببینند به طور خودکار بلاک نمی‌شوند." + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:732 +msgid "" +"By enabling this checkbox the plugin will add the necessary rules and " +"exceptions to your .htacces file so that people trying to access these pages " +"are not automatically blocked." +msgstr "" +"با Ùعال کردن این گزینه، اÙزونه دستورها Ùˆ استثنائات لازم را به Ùایل .htaccess " +"شما اضاÙÙ‡ می‌کند بنابراین کسانی Ú©Ù‡ تلاش می‌کنند به برگه‌های محاÙظت شده برسند به " +"صورت خودکار بلاک نمی‌شوند." + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:734 +msgid "Helpful Tip:" +msgstr "راهنمایی کارآمد:" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:736 +msgid "" +"If you do not use the WordPress password protection feature for your posts " +"or pages then it is highly recommended that you leave this checkbox disabled." +msgstr "" +"اگر شما از ویژگی رمزگذاری وردپرس برای برگه‌ها یا نوشته‌ها استÙاده نمی‌کنید، " +"شدیدا سÙارش می‌شود این گزینه را غیرÙعال بگذارید." + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:743 +msgid "My Site Has a Theme or Plugins Which Use AJAX" +msgstr "سایت من پوسته یا اÙزونه‌ای دارد Ú©Ù‡ از AJAX استÙاده می‌کند" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:746 +msgid "Check this if your site uses AJAX functionality." +msgstr "اگر سایت شما از AJAX استÙاده می‌کند این گزینه را تیک بزنید." + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:751 +msgid "" +"In the cases where your WordPress installation has a theme or plugins which " +"use AJAX, a few extra lines of directives and exceptions need to be added to " +"your .htacces file to prevent AJAX requests from being automatically blocked " +"by the brute force prevention feature." +msgstr "" +"در مواردی Ú©Ù‡ سایت وردپرس شما پوسته یا اÙزونه‌ای دارد Ú©Ù‡ از AJAX استÙاده " +"می‌کند، نیاز است Ú©Ù‡ چند خط کوتاه دستورهای اضاÙÛŒ به Ùایل .htaccess شما اضاÙÙ‡ " +"شود؛ بنابراین درخواست‌های AJAX به صورت خودکار بلاک نمی‌شوند." + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:753 +msgid "" +"By enabling this checkbox the plugin will add the necessary rules and " +"exceptions to your .htacces file so that AJAX operations will work as " +"expected." +msgstr "" +"با Ùعال کردن این گزینه، اÙزونه دستورها Ùˆ استثنائات لازم را به Ùایل .htaccess " +"شما اضاÙÙ‡ می‌کند بنابراین کارکردهای AJAX مختل نمی‌شود." + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:768 +msgid "The cookie test was successful. You can now enable this feature." +msgstr "آزمایش Ú©ÙˆÚ©ÛŒ موÙÙ‚ بود. شما هم اکنون می‌توانید این ویژگی را Ùعال کنید." + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:771 +msgid "Save Feature Settings" +msgstr "ذخیره تنظیمات ویژگی" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:778 +msgid "" +"The cookie test failed on this server. So this feature cannot be used on " +"this site." +msgstr "" +"آزمایش Ú©ÙˆÚ©ÛŒ ناموÙÙ‚ بود. پس نمی‌توان از این ویژگی روی این سایت استÙاده کرد." + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:784 +msgid "" +"Before using this feature you are required to perform a cookie test first. " +"This is to make sure that your browser cookie is working correctly and that " +"you won't lock yourself out." +msgstr "" +"پیش از استÙاده از این ویژگی شما باید یک آزمایش Ú©ÙˆÚ©ÛŒ انجام دهید. این کار برای " +"اطمینان از کارکرد درست Ú©ÙˆÚ©ÛŒ روی مرورگر شماست Ú©Ù‡ باعث می‌شود دسترسی خودتان به " +"سایت قطع نشود." + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:786 +msgid "Perform Cookie Test" +msgstr "انجام آزمایش Ú©ÙˆÚ©ÛŒ" + +#: all-in-one-wp-security/admin/wp-security-list-acct-activity.php:79 +#: all-in-one-wp-security/admin/wp-security-list-comment-spammer-ip.php:86 +#: all-in-one-wp-security/admin/wp-security-list-locked-ip.php:80 +#: all-in-one-wp-security/admin/wp-security-list-locked-ip.php:91 +#: all-in-one-wp-security/admin/wp-security-list-login-fails.php:78 +#: all-in-one-wp-security/admin/wp-security-list-registered-users.php:82 +#: all-in-one-wp-security/admin/wp-security-list-registered-users.php:93 +msgid "Please select some records using the checkboxes" +msgstr "لطÙا تعدادی رکورد را با استÙاده از جعبه‌تیک انتخاب کنید" + +#: all-in-one-wp-security/admin/wp-security-list-acct-activity.php:107 +#: all-in-one-wp-security/admin/wp-security-list-login-fails.php:107 +msgid "The selected entries were deleted successfully!" +msgstr "رکوردهای انتخاب شده با موÙقیت پاک شدند." + +#: all-in-one-wp-security/admin/wp-security-list-acct-activity.php:120 +#: all-in-one-wp-security/admin/wp-security-list-login-fails.php:119 +msgid "The selected entry was deleted successfully!" +msgstr "رکورد انتخابی با موÙقیت پاک شد." + +#: all-in-one-wp-security/admin/wp-security-list-comment-spammer-ip.php:139 +msgid "" +"The selected IP addresses were saved in the blacklist configuration settings." +msgstr "IP آدرس‌های انتخابی در پیکربندی لیست‌سیاه ذخیره می‌شوند." + +#: all-in-one-wp-security/admin/wp-security-list-comment-spammer-ip.php:153 +msgid "" +"The .htaccess file was successfully modified to include the selected IP " +"addresses." +msgstr "IP آدرس‌های انتخابی با موÙقیت به Ùایل .htaccess اÙزوده شدند." + +#: all-in-one-wp-security/admin/wp-security-list-comment-spammer-ip.php:159 +msgid "" +"NOTE: The .htaccess file was not modified because you have disabled the " +"\"Enable IP or User Agent Blacklisting\" check box." +msgstr "" +"توجه: Ùایل .htaccess ویرایش نشد؛ زیرا شما گزینه \"قرار دادن IP یا نماینده " +"کاربری در لیست سیاه\" را Ùعال نکرده اید." + +#: all-in-one-wp-security/admin/wp-security-list-comment-spammer-ip.php:160 +#, php-format +msgid "" +"To block these IP addresses you will need to enable the above flag in the %s " +"menu" +msgstr "" +"برای مسدود کردن این IP آدرس‌ها، شما باید flag بالا را در Ùهرست %s Ùعال کنید." + +#: all-in-one-wp-security/admin/wp-security-list-locked-ip.php:115 +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:748 +msgid "The selected IP ranges were unlocked successfully!" +msgstr "محدوده IP های انتخابی آزاد شدند!" + +#: all-in-one-wp-security/admin/wp-security-list-locked-ip.php:124 +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:757 +msgid "The selected IP range was unlocked successfully!" +msgstr "محدوده IP انتخاب‌شده آزاد شد!" + +#: all-in-one-wp-security/admin/wp-security-list-registered-users.php:118 +msgid "The selected accounts were approved successfully!" +msgstr "حساب‌های کاربری انتخاب‌شده تأیید شدند!" + +#: all-in-one-wp-security/admin/wp-security-list-registered-users.php:125 +msgid "The selected account was approved successfully!" +msgstr "حساب کاربری انتخاب‌شده آزاد شد!" + +#: all-in-one-wp-security/admin/wp-security-list-registered-users.php:146 +msgid "The selected accounts were deleted successfully!" +msgstr "حساب‌های کاربری انتخاب‌شده پاک شدند!" + +#: all-in-one-wp-security/admin/wp-security-list-registered-users.php:154 +msgid "The selected account was deleted successfully!" +msgstr "حساب کاربری انتخاب‌شده پاک شد!" + +#: all-in-one-wp-security/admin/wp-security-maintenance-menu.php:22 +msgid "Visitor Lockout" +msgstr "Ù‚ÙÙ„ کردن بازدید" + +#: all-in-one-wp-security/admin/wp-security-maintenance-menu.php:88 +msgid "Site lockout feature settings saved!" +msgstr "تنظیمات Ù‚ÙÙ„ کردن ذخیره شد!" + +#: all-in-one-wp-security/admin/wp-security-maintenance-menu.php:93 +msgid "General Visitor Lockout" +msgstr "Ù‚ÙÙ„ کردن بازدید عمومی" + +#: all-in-one-wp-security/admin/wp-security-maintenance-menu.php:99 +msgid "" +"This feature allows you to put your site into \"maintenance mode\" by " +"locking down the front-end to all visitors except logged in users with super " +"admin privileges." +msgstr "" +"این ویژگی به شما اجازه Ù…ÛŒ دهد Ú©Ù‡ با ممنوع کردن بازدیدکنندگان سایت خود را در " +"\"حالت تعمیر\" قرار دهید. در این حالت تنها مدیران قادر به دیدن سایت هستند." + +#: all-in-one-wp-security/admin/wp-security-maintenance-menu.php:100 +msgid "" +"Locking your site down to general visitors can be useful if you are " +"investigating some issues on your site or perhaps you might be doing some " +"maintenance and wish to keep out all traffic for security reasons." +msgstr "" +"Ù‚ÙÙ„ کردن سایت زمانی به کار می‌آید Ú©Ù‡ شما بخواهید برخی مسائل را در سایت بررسی " +"کنید یا تعمیراتی در سایت انجام دهید Ùˆ نخواهید در این مدت کسی سایت را ببیند." + +#: all-in-one-wp-security/admin/wp-security-maintenance-menu.php:105 +msgid "Enable Front-end Lockout" +msgstr "Ùعال سازی Ù‚ÙÙ„ کردن سایت" + +#: all-in-one-wp-security/admin/wp-security-maintenance-menu.php:108 +msgid "" +"Check this if you want all visitors except those who are logged in as " +"administrator to be locked out of the front-end of your site." +msgstr "" +"اگر می‌خواهید نمای سایت را برای همه (به جز مدیران) Ù‚ÙÙ„ کنید، این گزینه را تیک " +"بزنید." + +#: all-in-one-wp-security/admin/wp-security-maintenance-menu.php:112 +msgid "Enter a Message:" +msgstr "یک پیام وارد کنید:" + +#: all-in-one-wp-security/admin/wp-security-maintenance-menu.php:124 +msgid "" +"Enter a message you wish to display to visitors when your site is in " +"maintenance mode." +msgstr "" +"پیامی را Ú©Ù‡ می‌خواهید بازدیدکنندگان هنگام مشاهده حالت تعمیر ببینند در این جا " +"وارد کنید." + +#: all-in-one-wp-security/admin/wp-security-maintenance-menu.php:131 +msgid "Save Site Lockout Settings" +msgstr "ذخیره تنظیمات Ù‚ÙÙ„ سایت" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:25 +msgid "General Settings" +msgstr "تنظیمات عمومی" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:28 +msgid "WP Meta Info" +msgstr "اطلاعات MetaÛŒ وردپرس" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:95 +msgid "All the security features have been disabled successfully!" +msgstr "همه ویژگی‌های امنیتی با موÙقیت از کار انداخته شدند!" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:99 +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:126 +msgid "" +"Could not write to the .htaccess file. Please restore your .htaccess file " +"manually using the restore functionality in the \".htaccess File\"." +msgstr "" +"نمی‌توان در Ùایل .htaccess نوشت. لطÙا Ùایل .htaccess خود را با مراجه به قسمت " +"\"Ùایل .htaccess\". بازگردانی کنید." + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:104 +msgid "" +"Could not write to the wp-config.php. Please restore your wp-config.php file " +"manually using the restore functionality in the \"wp-config.php File\"." +msgstr "" +"نمی‌توان در Ùایل wp-config.php نوشت. لطÙا Ùایل wp-config.php خود را با مراجه " +"به قسمت \"Ùایل wp-config.php\". بازگردانی کنید." + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:122 +msgid "All firewall rules have been disabled successfully!" +msgstr "همه دستورهای دیوارآتش با موÙقیت از کار انداخته شدند!" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:136 +msgid "WP Security Plugin" +msgstr "اÙزونه امنیت Ùراگیر وردپرس" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:138 +msgid "" +"Thank you for using our WordPress security plugin. There are a lot of " +"security features in this plugin." +msgstr "" +"از شما سپاسگزاریم Ú©Ù‡ از اÙزونه امنیت وردپرس ما استÙاده می‌کنید. در این اÙزونه " +"ویژگی‌های امنیتی بسیاری وجود دارد." + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:139 +msgid "" +"Go through each menu items and enable the security options to add more " +"security to your site. Start by activating the basic features first." +msgstr "" +"به هرکدام از گزینه‌های Ùهرست بروید Ùˆ با Ùعال کردن ویژگی‌های امنیتی، سایت خود " +"را امن‌تر کنید. با Ùعال کردن ویژگی‌های پایه شروع کنید." + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:140 +msgid "" +"It is a good practice to take a backup of your .htaccess file, database and " +"wp-config.php file before activating the security features. This plugin has " +"options that you can use to backup those resources easily." +msgstr "" +"این یک تمرین خوب است Ú©Ù‡ پیش از Ùعال‌کردن ویژگی امنیتی یک پشتیبان از Ùایل ." +"htaccess ØŒ پایگاه‌داده Ùˆ Ùایل wp-config.php خودتان بگیرید. این اÙزونه " +"گزینه‌هایی دارد Ú©Ù‡ با آنها به آسانی می‌توانید از Ùایل‌های ذکر شده پشتیبان تهیه " +"کنید." + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:143 +msgid "Backup your database" +msgstr "پشتیبان‌گیری از پایگاه‌داده" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:144 +msgid "Backup .htaccess file" +msgstr "پشتیبان‌گیری از Ùایل .htaccess" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:145 +msgid "Backup wp-config.php file" +msgstr "پشتیبان‌گیری از Ùایل wp-config.php" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:151 +msgid "Disable Security Features" +msgstr "از کار انداختن ویژگی امنیتی" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:157 +msgid "" +"If you think that some plugin functionality on your site is broken due to a " +"security feature you enabled in this plugin, then use the following option " +"to turn off all the security features of this plugin." +msgstr "" +"اگر Ùکر می‌کنید Ú©Ù‡ یکی از ویژگی‌های امنیتی این اÙزونه باعث اختلال در کارکرد " +"سایت شما شده است با استÙاده از گزینه زیر می‌توانید همه ویژگی‌های امنیتی این " +"اÙزونه را از کار بیندازید." + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:161 +msgid "Disable All Security Features" +msgstr "از کار انداختن همه ویژگی‌های امنیتی" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:167 +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:177 +msgid "Disable All Firewall Rules" +msgstr "از کار انداختن همه دستورهای دیوارآتش" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:173 +msgid "" +"This feature will disable all firewall rules which are currently active in " +"this plugin and it will also delete these rules from your .htacess file. Use " +"it if you think one of the firewall rules is causing an issue on your site." +msgstr "" +"این ویژگی همه دستورهای دیوارآتش را Ú©Ù‡ هم اکنون Ùعال است، از کار می‌اندازد Ùˆ " +"همچنین این دستورها را از Ùایل .htaccess شما پاک می‌کند. اگر Ùکر می‌کنید یکی از " +"دستورهای دیوارآتش باعث بروز مشکل در سایت شما شده، از این ویژگی استÙاده کنید." + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:206 +msgid "" +"Your .htaccess file was successfully backed up! Using an FTP program go to " +"the \"backups\" directory of this plugin to save a copy of the file to your " +"computer." +msgstr "" +"Ùایل .htaccess شما با موÙقیت پشتیبان‌گیری شد. با یک نرم‌اÙزار FTP به پوشه " +"\"backups\" در مسیر نصب این اÙزونه بروید تا یک نسخه از پشتیبان را در " +"کامپیوتر خود ذخیره کنید." + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:216 +msgid "" +"htaccess file rename failed during backup. Please check your root directory " +"for the backup file using FTP." +msgstr "" +"تغییر نام Ùایل .htaccess در هنگام پشتیبان‌گیری ناموÙÙ‚ بود. لطÙا مسیر root " +"هاست خود را برای یاÙتن Ùایل پشتیبان Ú†Ú© کنید. (با نرم اÙزار FTP)" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:222 +msgid "htaccess backup failed." +msgstr "پشتیبان‌گیری از .htaccess ناموÙÙ‚ بود." + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:237 +msgid "Please choose a .htaccess to restore from." +msgstr "" +"لطÙا یک Ùایل .htaccess را انتخاب کنید تا با استÙاده از آن بازگردانی انجام " +"شود." + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:253 +msgid "" +"htaccess file restore failed. Please attempt to restore the .htaccess " +"manually using FTP." +msgstr "" +"بازگردانی Ùایل htaccess. ناموÙÙ‚ بود. لطÙا بازگردانی htaccess. را به صورت " +"دستی بازگردانی کنید." + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:257 +msgid "Your .htaccess file has successfully been restored!" +msgstr "Ùایل .htaccess شما با موÙقیت بازگردانی شد!" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:263 +msgid "" +"htaccess Restore operation failed! Please check the contents of the file you " +"are trying to restore from." +msgstr "" +"عملیات بازگردانی .htaccess ناموÙÙ‚ بود. لطÙا محتویات Ùایلی Ú©Ù‡ قصد بازگردانی " +"از آن را داشتید، بررسی کنید." + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:269 +msgid ".htaccess File Operations" +msgstr "عملیات Ùایل .htaccess" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:272 +msgid "" +"Your \".htaccess\" file is a key component of your website's security and it " +"can be modified to implement various levels of protection mechanisms." +msgstr "" +"Ùایل \".htaccess\" شما یک جزء کلیدی در امنیت سایت شماست Ú©Ù‡ می‌توان با ویرایش " +"آن ساز‌و‌کار‌های مختل٠امنیتی را به سایت اضاÙÙ‡ کرد." + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:273 +msgid "" +"This feature allows you to backup and save your currently active .htaccess " +"file should you need to re-use the the backed up file in the future." +msgstr "" +"این ویژگی به شما امکان پشتیبان‌گیری Ùˆ ذخیره Ùایل .htaccess Ùعلی را می‌دهد Ú©Ù‡ " +"اگر در آینده لازم شد بتوانید دوباره از این Ùایل استÙاده کنید." + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:274 +msgid "" +"You can also restore your site's .htaccess settings using a backed up ." +"htaccess file." +msgstr "" +"شما همچنین می‌توانید تنظیمات .htaccess سایتتان را با استÙاده از یک Ùایل " +"پشتیبان بازگردانی کنید." + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:288 +msgid "Save the current .htaccess file" +msgstr "ذخیره Ùایل .htaccess کنونی" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:292 +msgid "" +"Click the button below to backup and save the currently active .htaccess " +"file." +msgstr "" +"روی دکمه زیر کلیک کنید تا از Ùایل .htaccess کنونی پشتیبان Ùˆ ذخیره گرÙته شود." + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:293 +msgid "Backup .htaccess File" +msgstr "پشتیبان‌گیری از Ùایل .htaccess" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:297 +msgid "Restore from a backed up .htaccess file" +msgstr "بازگردانی از یک Ùایل پشتیبان .htaccess" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:303 +msgid ".htaccess file to restore from" +msgstr "Ùایل .htaccess Ú©Ù‡ بایستی از آن برای بازگردانی استÙاده شود" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:309 +msgid "" +"After selecting your file, click the button below to restore your site using " +"the backed up htaccess file (htaccess_backup.txt)." +msgstr "" +"پس از انتخاب Ùایل، روی دکمه زیر کلیک کنید تا سایت شما از Ùایل پشتیبان ." +"htaccess بازگردانی شود. (htaccess_backup.txt)" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:315 +msgid "Restore .htaccess File" +msgstr "بازگردانی Ùایل .htaccess" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:319 +msgid "View Contents of the currently active .htaccess file" +msgstr "مشاهده محتویات Ùایل .htaccess کنونی" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:348 +msgid "Please choose a wp-config.php file to restore from." +msgstr "لطÙا یک Ùایل wp-config.php را برای بازگردانی انتخاب کنید." + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:364 +msgid "" +"wp-config.php file restore failed. Please attempt to restore this file " +"manually using FTP." +msgstr "" +"باز گردانی Ùایل wp-config.php ناموÙÙ‚ بود. لطÙا به صورت دستی بازگردانی را " +"انجام دهید." + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:368 +msgid "Your wp-config.php file has successfully been restored!" +msgstr "Ùایل wp-config.php شما با موÙقیت بازگردانی شد!" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:374 +msgid "" +"wp-config.php Restore operation failed! Please check the contents of the " +"file you are trying to restore from." +msgstr "" +"عملیات بازگردانی wp-config.php ناموÙÙ‚ بود. لطÙا محتویات Ùایلی را Ú©Ù‡ " +"می‌خواستید بازگردانی کنید بررسی کنید." + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:380 +msgid "wp-config.php File Operations" +msgstr "عملیات Ùایل wp-config.php" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:383 +msgid "" +"Your \"wp-config.php\" file is one of the most important in your WordPress " +"installation. It is a primary configuration file and contains crucial things " +"such as details of your database and other critical components." +msgstr "" +"Ùایل \"wp-config.php\" یکی از مهم‌ترین Ùایل‌های وردپرس است. این Ùایل یک پرونده " +"پیکربندی اصلی است Ú©Ù‡ شامل جزییات مهمی درباره پایگاه‌داده شما Ùˆ دیگر بخش‌های " +"مهم وردپرس می‌باشد." + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:384 +msgid "" +"This feature allows you to backup and save your currently active wp-config." +"php file should you need to re-use the the backed up file in the future." +msgstr "" +"این ویژگی به شما اجازه می‌دهد Ú©Ù‡ از Ùایل wp-config.php کنونی خود پشتیبان تهیه " +"کنید تا در صورت نیاز در آینده بتوانید از آن استÙاده کنید." + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:385 +msgid "" +"You can also restore your site's wp-config.php settings using a backed up wp-" +"config.php file." +msgstr "" +"همچنین شما می‌توانید با استÙاده از یک پشتیبان Ú©Ù‡ قبلا از این Ùایل تهیه کرده " +"اید، تنظیمات wp-config.php سایت خود را بازگردانی کنید." + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:399 +msgid "Save the current wp-config.php file" +msgstr "دخیره Ùایل wp-config.php کنونی" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:403 +msgid "" +"Click the button below to backup and download the contents of the currently " +"active wp-config.php file." +msgstr "" +"روی دکمه زیر کلیک کنید تا از Ùایل wp-config.php کنونی پشتیبان تهیه کنید." + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:404 +msgid "Backup wp-config.php File" +msgstr "پشتیبان‌گیری از Ùایل wp-config.php" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:409 +msgid "Restore from a backed up wp-config file" +msgstr "بازگردانی از یک Ùایل پشتیبان wp-config" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:415 +msgid "wp-config file to restore from" +msgstr "Ùایلی Ú©Ù‡ باید از آن برای بازگردانی استÙاده کرد" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:421 +msgid "" +"After selecting your file click the button below to restore your site using " +"the backed up wp-config file (wp-config.php.backup.txt)." +msgstr "" +"بعد از آن Ú©Ù‡ Ùایل پشتیبان را انتخاب کردید روی دکمه زیر کلیک کنید تا تنظیمات " +"wp-config.php از Ùایل پشتیبان بازگردانی شود. (wp-config.php.backup.txt)" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:427 +msgid "Restore wp-config File" +msgstr "بازگردانی Ùایل wp-config" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:431 +msgid "View Contents of the currently active wp-config.php file" +msgstr "دیدن محتویات Ùایل wp-config.php کنونی" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:466 +msgid "WP Generator Meta Tag" +msgstr "سازنده تگ‌های Meta" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:469 +msgid "" +"Wordpress generator automatically adds some meta information inside the " +"\"head\" tags of every page on your site's front end. Below is an example of " +"this:" +msgstr "" +"وردپرس به طور خودکارتعدادی Ùراداده(Metadata) را در قسمت \"head\" هر صÙحه از " +"سایت شما وارد می‌کند. در زیر می‌توانید نمونه‌ای از این Ùراداده‌ها را ببینید:" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:471 +msgid "" +"The above meta information shows which version of WordPress your site is " +"currently running and thus can help hackers or crawlers scan your site to " +"see if you have an older version of WordPress or one with a known exploit." +msgstr "" +"Ùراداده‌های بالا نشان می‌دهند Ú©Ù‡ شما از کدام نسخه وردپرس استÙاده می‌کنید؛ در " +"نتیجه هکرها یا Crawlerها می‌توانند بÙهمند Ú©Ù‡ آیا شما از نسخه‌های قدیمی وردپرس " +"استÙاده می‌کنید Ùˆ یا Ø­Ùره امنیتی شناخته شده‌ای دارید." + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:472 +msgid "" +"This feature will allow you to remove the WP generator meta info from your " +"site's pages." +msgstr "" +"این ویژگی به شما اجازه می‌دهد Ú©Ù‡ این Ùراداده‌ها را از برگه‌های سایت خود پاک " +"کنید." + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:478 +msgid "WP Generator Meta Info" +msgstr "سازنده Ùراداده" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:490 +msgid "Remove WP Generator Meta Info" +msgstr "پاک کردن Ùراداده‌ها" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:493 +msgid "" +"Check this if you want to remove the meta info produced by WP Generator from " +"all pages" +msgstr "" +"اگر می‌خواهید Ú©Ù‡ Ùراداده‌هایی Ú©Ù‡ بدست وردپرس ساخته شده از همه برگه‌ها پاک شود، " +"این گزینه را تیک بزنید." + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:23 +msgid "Comment SPAM" +msgstr "دیدگاه‌های جÙÙ†Ú¯" + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:24 +msgid "Comment SPAM IP Monitoring" +msgstr "نظارت بر IP دیدگاه‌های جÙÙ†Ú¯" + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:111 +msgid "Comment SPAM Settings" +msgstr "تنظیمات دیدگاه‌های جÙÙ†Ú¯" + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:116 +msgid "Add Captcha To Comments Form" +msgstr "اÙزودن Ùرم Captcha به Ùرم دیدگاه‌ها" + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:120 +msgid "" +"This feature will add a simple math captcha field in the WordPress comments " +"form." +msgstr "این ویژگی یک زمینه Captcha ریاضی به Ùرم دیدگاه‌های وردپرس اضاÙÙ‡ می‌کند." + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:137 +msgid "Enable Captcha On Comment Forms" +msgstr "Ùعال کردن Captcha در Ùرم دیدگاه‌ها" + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:140 +msgid "Check this if you want to insert a captcha field on the comment forms" +msgstr "" +"اگر می‌خواهید یک زمینه Captcha در Ùرم دیدگاه‌ها وارد کنید، این گزینه را تیک " +"بزنید." + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:148 +msgid "Block Spambot Comments" +msgstr "بازداشتن ربات‌های جÙنگ‌نویس" + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:152 +msgid "" +"A large portion of WordPress blog comment SPAM is mainly produced by " +"automated bots and not necessarily by humans. " +msgstr "" +"بخش بزرگی از دیدگاه‌های جÙÙ†Ú¯ یک سایت وردپرس،از سوی ربات‌های خودکار نوشته می‌شود." + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:153 +msgid "" +"This feature will greatly minimize the useless and unecessary traffic and " +"load on your server resulting from SPAM comments by blocking all comment " +"requests which do not originate from your domain." +msgstr "" +"این ویژگی از راه بازداشتن درخواست‌های ثبت دیدگاه تا اندازه زیادی تراÙیک " +"بی‌استÙاده Ùˆ بی‌اهمیت Ùˆ Ùشار روی سÙرور شما را (Ú©Ù‡ نتیجه دیدگاه‌های جÙÙ†Ú¯ است) " +"کاهش می‌دهد." + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:170 +msgid "Block Spambots From Posting Comments" +msgstr "بازداشتن ربات‌های جÙنگ‌نویس از Ùرستادن دیدگاه" + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:173 +msgid "" +"Check this if you want to apply a firewall rule which will block comments " +"originating from spambots." +msgstr "" +"اگر می‌خواهید یک دستور دیوارآتش برای جلوگیری از ربات‌های جÙنگ‌نویس به کار " +"بگیرید این گزینه را تیک بزنید." + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:177 +msgid "" +"This feature will implement a firewall rule to block all comment attempts " +"which do not originate from your domain." +msgstr "" +"این ویژگی یک دستور دیوارآتش برای جلوگیری از تمام درخواست‌های ثبت دیدگاه Ú©Ù‡ از " +"دامنه شما سرچشمه نگرÙته، پیاده سازی می‌کند." + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:178 +msgid "" +"A legitimate comment is one which is submitted by a human who physically " +"fills out the comment form and clicks the submit button. For such events, " +"the HTTP_REFERRER is always set to your own domain." +msgstr "" +"یک دیدگاه واقعی، دیدگاهی است Ú©Ù‡ توسط یک انسان پر می‌شود؛ یک انسان Ú©Ù‡ Ùرم " +"دیدگاه را پر می‌کند Ùˆ سپس روی گزینه ثبت کلیک می‌کند. برای بعضی رخدادها مانند " +"دیدگاه‌گذاری HTTP_REFERRER روی دامنه شما تنظیم می‌شود." + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:179 +msgid "" +"A comment submitted by a spambot is done by directly calling the comments." +"php file, which usually means that the HTTP_REFERRER value is not your " +"domain and often times empty." +msgstr "" +"دیدگاهی Ú©Ù‡ از سوی یک ربات جÙنگ‌گذار تولید می‌شود، تنها با Ùراخوانی Ùایل " +"comments.php به ثبت می‌رسد Ú©Ù‡ معمولا در این Ùرآیند مقدار HTTP_REFERRER دامنه " +"شما نیست Ùˆ اغلب خالی است." + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:180 +msgid "" +"This feature will check and block comment requests which are not referred by " +"your domain thus greatly reducing your overall blog SPAM and PHP requests " +"done by the server to process these comments." +msgstr "" +"این ویژگی درخواست‌های ثبت دیدگاه را بررسی می‌کند Ùˆ آن‌هایی Ú©Ù‡ از دامنه شما " +"سرچشمه نمی‌گیرند، مسدود می‌کند. این کار باعث کاهش حجم عظیم جÙنگ‌ها Ùˆ پردازش‌هایی " +"می‌شود Ú©Ù‡ سÙرور برای این جÙنگ‌ها انجام می‌دهد." + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:207 +msgid "Nonce check failed for list SPAM comment IPs!" +msgstr "بررسی Nonce برای لیست کردن IP دیدگاه‌های جÙÙ†Ú¯ ناموÙÙ‚ بود!" + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:213 +msgid "" +"You entered a non numeric value for the minimum SPAM comments per IP field. " +"It has been set to the default value." +msgstr "" +"شما یک مقدار غیرعددی برای کمترین تعداد جÙÙ†Ú¯ برای هر IP وارد کردید. مقدار " +"پیش‌Ùرض استÙاده می‌شود." + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:225 +#, php-format +msgid "" +"Displaying results for IP addresses which have posted a minimum of %s SPAM " +"comments" +msgstr "نمایش نتایج برای IP آدرس‌هایی Ú©Ù‡ حداقل %s دیدگاه جÙÙ†Ú¯ Ùرستاده‌اند." + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:241 +msgid "" +"This tab displays a list of the IP addresses of the people or bots who have " +"left SPAM comments on your site." +msgstr "" +"این تَب Ùهرست IP آدرس‌ مردم یا ربات‌هایی Ú©Ù‡ در سایت شما دیدگاه جÙÙ†Ú¯ نوشته‌اند، " +"نشان می‌دهد." + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:242 +msgid "" +"This information can be handy for identifying the most persistent IP " +"addresses or ranges used by spammers." +msgstr "" +"برای شناسایی محدوده IPهایی Ú©Ù‡ توسط جÙنگ‌نویس‌ها استÙاده می‌شود،این داده‌ها به " +"کار می‌آیند." + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:243 +msgid "" +"By inspecting the IP address data coming from spammers you will be in a " +"better position to determine which addresses or address ranges you should " +"block by adding them to your blacklist." +msgstr "" +"با شناسایی IP جÙنگ‌نویس‌ها شما بهتر می‌توانید IPها یا محدوده IPهایی Ú©Ù‡ باید در " +"لیست سیاه قرار دهید، تشخیص بدهید." + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:244 +msgid "" +"To add one or more of the IP addresses displayed in the table below to your " +"blacklist, simply click the \"Block\" link for the individual row or select " +"more than one address \n" +" using the checkboxes and then choose the \"block" +"\" option from the Bulk Actions dropdown list and click the \"Apply\" button." +msgstr "" +"برای اÙزودن هرکدام از IPهای زیر به لیست سیاه، روی لینک \"بازداشتن\" در ردی٠" +"هرکدام کلیک کنید یا برای اÙزودن چندتایی آدرس‌ها از جعبه‌تیک‌ها استÙاده کنید، " +"سپس گزینه \"بازداشتن\" را از Ùهرست کارهای دسته‌جمعی انتخاب Ùˆ روی دکمه اجرا " +"کلیک کنید." + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:250 +msgid "List SPAMMER IP Addresses" +msgstr "Ùهرست IP آدرس‌های جÙنگ‌نویس‌ها" + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:256 +msgid "Minimum number of SPAM comments per IP" +msgstr "کمترین تعداد دیدگاه‌های جÙÙ†Ú¯ برای هر IP" + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:258 +msgid "" +"This field allows you to list only those IP addresses which have been used " +"to post X or more SPAM comments." +msgstr "" +"این زمینه به شما اجازه می‌دهد Ú©Ù‡ تنها IP آدرس‌هایی را Ùهرست کنید Ú©Ù‡ برای " +"Ùرستادن X دیدگاه جÙÙ†Ú¯ یا بیشتر استÙاده شده اند." + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:262 +msgid "" +"Example 1: Setting this value to \"0\" or \"1\" will list ALL IP addresses " +"which were used to submit SPAM comments." +msgstr "" +"نمونه یک: تنظیم این مقدار روی عدد 0 یا 1 باعث می‌شود Ú©Ù‡ همه IP آدرس‌های " +"استÙاده شده برای دیدگاه‌های جÙنگ، Ùهرست شوند." + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:263 +msgid "" +"Example 2: Setting this value to \"5\" will list only those IP addresses " +"which were used to submit 5 SPAM comments or more on your site." +msgstr "" +"نمونه دو: تنظیم این مقدار روی عدد 5 باعث می‌شود Ú©Ù‡ همه IP آدرس‌هایی Ú©Ù‡ برای " +"ثبت 5 دیدگاه جÙÙ†Ú¯ یا بیشتر استÙاده شده‌اند، Ùهرست شوند." + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:270 +msgid "Find IP Addresses" +msgstr "یاÙتن IP آدرس‌ها" + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:274 +msgid "SPAMMER IP Address Results" +msgstr "نتایج IP آدرس‌های جÙنگ‌نویس" + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:280 +#: all-in-one-wp-security/classes/wp-security-utility.php:150 +msgid "" +"The plugin has detected that you are using a Multi-Site WordPress " +"installation." +msgstr "اÙزونه تشخیص داده است Ú©Ù‡ شما از نسخه چندین‌سایت وردپرس استÙاده می‌کنید." + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:281 +msgid "Only the \"superadmin\" can block IP addresses from the main site." +msgstr "تنها مدیر ارشد می‌تواند IP آدرس‌ها را از سایت اصلی مسدود کند." + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:282 +msgid "" +"Take note of the IP addresses you want blocked and ask the superadmin to add " +"these to the blacklist using the \"Blacklist Manager\" on the main site." +msgstr "" +"همه IP آدرس‌هایی را Ú©Ù‡ می‌خواهید مسدود شوند یادداشت کرده Ùˆ به از مدیر ارشد " +"سایت بخواهید Ú©Ù‡ آن‌ها را در لیست سیاه قرار دهد.(با استÙاده از \"مدیریت لیست " +"سیاه\")" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:29 +msgid "WP Username" +msgstr "نام کاربری وردپرس" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:30 +msgid "Display Name" +msgstr "نام نمایشی" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:31 +msgid "Password" +msgstr "گذرواژه" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:85 +msgid "Admin User Security" +msgstr "امنیت کاربر مدیر" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:88 +msgid "" +"By default, WordPress sets the administrator username to \"admin\" at " +"installation time." +msgstr "" +"در هنگام نصب وردپرس، نام کاربری مدیر به طور پیش‌Ùرض روی \"admin\" تنظیم " +"می‌شود." + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:89 +msgid "" +"A lot of hackers try to take advantage of this information by attempting " +"\"Brute Force Login Attacks\" where they repeatedly try to guess the " +"password by using \"admin\" for username." +msgstr "" +"بسیاری از هکرها با دانستن این نام کاربری پیش‌Ùرض،دست به حملات Brute Force " +"برای ورود به سایت می‌زنند. Ú©Ù‡ این حملات ترکیبی از نام کاربری \"admin\" Ùˆ " +"گذرواژه‌های مختل٠است." + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:90 +msgid "" +"From a security perspective, changing the default \"admin\" user name is one " +"of the first and smartest things you should do on your site." +msgstr "" +"از دیدگاه امنیتی، تغییر نام کاربری پیش‌Ùرض \"admin\"ØŒ یکی از اولین Ùˆ " +"هوشمندانه‌ترین کارهایی است Ú©Ù‡ شما باید روی سایتتان انجام دهید." + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:91 +msgid "" +"This feature will allow you to change your default \"admin\" user name to a " +"more secure name of your choosing." +msgstr "" +"این ویژگی به شما امکان تغییر نام کاربری پیش‌Ùرض \"admin\" را به هر نام کاربری " +"دیگری می‌دهد." + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:98 +msgid "List of Administrator Accounts" +msgstr "Ùهرست حساب‌های کاربری مدیران" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:107 +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:33 +msgid "Change Admin Username" +msgstr "تغییر نام‌کاربری مدیر" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:115 +msgid "" +"Your site currently has an account which uses the default \"admin\" " +"username. \n" +" It is highly recommended that you change this name to " +"something else. \n" +" Use the following field to change the admin username." +msgstr "" +"سایت شما هم اکنون دارای حسابی با نام کاربری \"admin\" می‌باشد.\n" +"به شما شدیداً توصیه می‌شود Ú©Ù‡ این نام کاربری را با نام دیگری عوض کنید. \n" +"از زمینه زیر برای تغییر نام کاربری مدیر استÙاده کنید." + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:123 +msgid "New Admin Username" +msgstr "نام‌کاربری تازه برای مدیر" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:125 +msgid "Choose a new username for admin." +msgstr "یک نام کاربری تازه برای مدیر انتخاب کنید." + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:129 +msgid "Change Username" +msgstr "تغییر نام‌کاربری" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:131 +msgid "" +"NOTE: If you are currently logged in as \"admin\" you will be automatically " +"logged out after changing your username and will be required to log back in." +msgstr "" +"توجه: چنانچه شما هم اکنون با نام کاربری \"admin\" وارد سایت شده‌اید، پس از " +"تغییر نام‌کاربری به طور خودکار از سایت خارج می‌شود Ùˆ بایستی دوباره وارد سایت " +"شوید." + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:138 +msgid "No action required! " +msgstr "هیچ اقدامی نیاز نیست!" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:140 +msgid "" +"Your site does not have any account which uses the default \"admin\" " +"username. " +msgstr "سایت شما هیچ حساب کاربری با نام پیش‌Ùرض \"admin\" ندارد." + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:141 +msgid "This is good security practice." +msgstr "این یک آمادگی خوب امنیتی است." + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:153 +msgid "Display Name Security" +msgstr "امنیت نام نمایشی" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:156 +msgid "" +"When you submit a post or answer a comment, WordPress will usually display " +"your \"nickname\"." +msgstr "" +"هنگامی Ú©Ù‡ شما یک نوشته را منتشر می‌کنید یا به یک دیدگاه پاسخ می‌دهید، وردپرس " +"معمولا لقب شما را نمایش می‌دهد." + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:157 +msgid "" +"By default the nickname is set to the login (or user) name of your account." +msgstr "" +"به طور پیش‌Ùرض لقب همان نام‌کاربری حساب شماست(یا نامی Ú©Ù‡ برای ورود به سایت " +"استÙاده می‌کنید)." + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:158 +msgid "" +"From a security perspective, leaving your nickname the same as your user " +"name is bad practice because it gives a hacker at least half of your " +"account's login credentials." +msgstr "" +"از دیدگاه امنیتی، نمایش نام‌کاربری به عنوان لقب یک کار خطرناک است زیرا در این " +"صورت شما نیمی از اطلاعات لازم برای ورود به سایت را در اختیار هکرها می‌گذارید." + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:159 +msgid "" +"Therefore to further tighten your site's security you are advised to change " +"your nickname and Display name to be " +"different from your Username." +msgstr "" +"پس به شما سÙارش می‌شود برای امن‌تر کردن سایتتان، لقب Ùˆ " +"نمایش عمومی نام خود را، به چیزی متÙاوت از نام " +"کاربری تغییر دهید." + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:165 +msgid "Modify Accounts With Identical Login Name & Display Name" +msgstr "ویرایش حساب‌هایی Ú©Ù‡ نام نمایشی Ùˆ نام‌ورود آن‌ها یکسان است" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:174 +msgid "" +"Your site currently has the following accounts which have an identical login " +"name and display name." +msgstr "حساب‌های زیر در سایت شما دارای نام نمایشی Ùˆ نام‌ورود یکسان هستند." + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:175 +msgid "Click on the link to edit the settings of that particular user account" +msgstr "برای ویرایش تنظیمات هر کاربر روی لینک مربوط به آن حساب کلیک کنید" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:190 +msgid "No action required." +msgstr "اقدامی نیاز نیست!" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:191 +msgid "" +"Your site does not have a user account where the display name is identical " +"to the username." +msgstr "هیچ حسابی در سایت شما دارای نام نمایشی Ùˆ نام‌ورود یکسان نیست." + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:202 +msgid "Password Tool" +msgstr "ابزار گذرواژه" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:205 +msgid "" +"Poor password selection is one of the most common weak points of many sites " +"and is usually the first thing a hacker will try to exploit when attempting " +"to break into your site." +msgstr "" +"انتخاب گذرواژه ضعی٠یکی از آسیب‌پذیری‌های معمول در بسیاری از سایت‌هاست Ùˆ معمولا " +"اولین چیزی است Ú©Ù‡ هکرها از آن برای ورود به سایت شما سوءاستÙاده می‌کنند." + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:206 +msgid "" +"Many people fall into the trap of using a simple word or series of numbers " +"as their password. Such a predictable and simple password would take a " +"competent hacker merely minutes to guess your password by using a simple " +"script which cycles through the easy and most common combinations." +msgstr "" +"بسیاری از مردم با انتخاب یک واژه ساده یا دنباله‌ای از اعداد برای گذرواژه‌‌شان، " +"در دام می‌اÙتند. یک گذرواژه ساده Ùˆ قابل پیش‌بینی صرÙا چند دقیقه از وقت یک هکر " +"ماهر را می‌گیرد Ú©Ù‡ با استÙاده از یک اسکریپت ساده Ùˆ چرخیدن در میان عبارت‌های " +"رایج گذرواژه شما را پیدا کند." + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:207 +msgid "" +"The longer and more complex your password is the harder it is for hackers to " +"\"crack\" because more complex passwords require much greater computing " +"power and time." +msgstr "" +"هرچه گذرواژه طولانی‌تر Ùˆ پیچیده‌تر باشد، شکستن یا کرک کردن آن سخت‌تر می‌شود؛ " +"زیرا گذرواژه پیچیده‌تر زمان Ùˆ قدرت پردازشی بیشتری نیاز دارد." + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:208 +msgid "" +"This section contains a useful password strength tool which you can use to " +"check whether your password is sufficiently strong enough." +msgstr "" +"این بخش دارای یک ابزار کاربردی قدرت گذرواژه است Ú©Ù‡ می‌توانید با استÙاده از آن " +"بÙهمید Ú©Ù‡ گذواژه‌تان چقدر قوی است." + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:213 +msgid "Password Strength Tool" +msgstr "ابزار قدرت گذرواژه" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:218 +msgid "Start typing a password." +msgstr "یک گذرواژه تایپ کنید" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:221 +msgid "It would take a desktop PC approximately" +msgstr "باری یک رایانه رومیزی تقریباً" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:222 +msgid "1 sec" +msgstr "1 ثانیه" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:222 +msgid "to crack your password!" +msgstr "طول می‌کشد تا گذرواژه شما را بشکند." + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:227 +msgid "Password Strength" +msgstr "قدرت گذرواژه" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:243 +msgid "Nonce check failed on admin username change operation!" +msgstr "بررسی Nonce برای عملیات تغییر نام مدیر ناموÙÙ‚ بود!" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:250 +msgid "Username " +msgstr "نام کاربری" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:250 +msgid " already exists. Please enter another value. " +msgstr "از قبل وجود دارد.لطÙا مقدار دیگری وارد کنید." + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:266 +msgid "The database update operation of the user account failed!" +msgstr "عملیات به روز‌رسانی پایگاه‌داده برای این نام‌کاربری ناموÙÙ‚ بود!" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:293 +msgid "You entered an invalid username. Please enter another value. " +msgstr "شما یک نام‌کاربری نامعتبر وارد کردید.یک نام دیگر را آزمایش کنید." + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:297 +msgid "Please enter a value for your username. " +msgstr "لطÙا یک نام کاربری وارد کنید." + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:304 +msgid "Username Successfully Changed!" +msgstr "نام کاربری با موÙقیت تغییر کرد!" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:324 +msgid "Account Login Name" +msgstr "نام ورود مورد استÙاده حساب" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:28 +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:41 +msgid "Login Captcha" +msgstr "Captcha برای ورود" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:29 +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:407 +msgid "Login Whitelist" +msgstr "لیست سÙید ورود" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:30 +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:519 +msgid "Failed Login Records" +msgstr "رکورد ورودهای ناموÙÙ‚" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:31 +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:47 +msgid "Force Logout" +msgstr "خروج اجباری" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:32 +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:653 +msgid "Account Activity Logs" +msgstr "گزارش Ùعالیت‌های حساب" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:100 +msgid "" +"You entered a non numeric value for the max login attempts field. It has " +"been set to the default value." +msgstr "" +"شما یک مقدار غیر عددی برای حداکثر تلاش‌های ورود وارد کردید. مقدار پیش‌Ùرض " +"استÙاده می‌شود." + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:107 +msgid "" +"You entered a non numeric value for the login retry time period field. It " +"has been set to the default value." +msgstr "" +"شما یک مقدار غیر عددی برای بازه‌زمانی تلاش‌دوباره ورود وارد کردید. مقدار " +"پیش‌Ùرض استÙاده می‌شود." + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:114 +msgid "" +"You entered a non numeric value for the lockout time length field. It has " +"been set to the default value." +msgstr "" +"شما یک مقدار غیر عددی برای زمان بازداشتن از ورود وارد کردید. مقدار پیش‌Ùرض " +"استÙاده می‌شود." + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:159 +msgid "Login Lockdown Configuration" +msgstr "تنظیمات بازداری از ورود" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:163 +msgid "One of the ways hackers try to compromise sites is via a " +msgstr "یکی از راههایی Ú©Ù‡ هکر‌ها در روش" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:163 +msgid "Brute Force Login Attack" +msgstr "حمله Brute Force" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:164 +msgid "" +"This is where attackers use repeated login attempts until they guess the " +"password." +msgstr "" +"برای ورود استÙاده می‌کنند این است Ú©Ù‡ به صورت مداوم اقدام به ورود می‌کنند تا " +"زمانی Ú©Ù‡ رمز را حدس بزنند." + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:165 +msgid "" +"Apart from choosing strong passwords, monitoring and blocking IP addresses " +"which are involved in repeated login failures in a short period of time is a " +"very effective way to stop these types of attacks." +msgstr "" +"جدا از انتخاب گذرواژه قدرتمند، نظارت Ùˆ مسدود کردن IPهایی Ú©Ù‡ در یک بازه کوتاه " +"چندین‌بار ورود ناموÙÙ‚ داشته اند، یک روش کارآمد برای جلوگیری از بروز این نوع " +"حملات است." + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:166 +#, php-format +msgid "" +"You may also want to checkout our %s feature for another secure way to " +"protect against these types of attacks." +msgstr "" +"اگر بخواهید می‌توانید ویژگی دیگری Ú©Ù‡ ما برای جلوگیری از این نوع حملات به کار " +"Ù…ÛŒ گیریم ببینید: %s" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:171 +msgid "Login Lockdown Options" +msgstr "گزینه‌های بازداری از ورود" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:183 +msgid "Enable Login Lockdown Feature" +msgstr "به‌کارگیری ویژگی بازداری از ورود" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:186 +msgid "" +"Check this if you want to enable the login lockdown feature and apply the " +"settings below" +msgstr "" +"اگر می‌خواهید ویژگی بازداری از ورود Ùˆ تنظیمات زیر را به کار بگیرید، این گزینه " +"را تیک بزنید" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:190 +msgid "Max Login Attempts" +msgstr "حداکثر تعداد تلاش برای ورود" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:192 +msgid "" +"Set the value for the maximum login retries before IP address is locked out" +msgstr "" +"حداکثر دÙعاتی را Ú©Ù‡ یک IP قبل از Ù‚ÙÙ„ شدن می‌تواند اقدام به ورود کند، وارد کنید" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:196 +msgid "Login Retry Time Period (min)" +msgstr "بازه زمانی تلاش برای ورود دوباره (دقیقه)" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:198 +msgid "" +"If the maximum number of failed login attempts for a particular IP address " +"occur within this time period the plugin will lock out that address" +msgstr "" +"اگر حداکثر دÙعات ورود ناموÙÙ‚ برای یک IP رخ بدهد، اÙزونه به اندازه این بازه " +"زمانی، آن IP را Ù‚ÙÙ„ می‌کند." + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:202 +msgid "Time Length of Lockout (min)" +msgstr "بازه زمانی Ù‚ÙÙ„ کردن (دقیقه)" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:204 +msgid "" +"Set the length of time for which a particular IP address will be prevented " +"from logging in" +msgstr "بازه‎‌ای Ú©Ù‡ باید از ورود یک IP خاص جلوگیری شود، در این جا وارد کنید" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:208 +msgid "Display Generic Error Message" +msgstr "نمایش پیام خطای عمومی" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:211 +msgid "" +"Check this if you want to show a generic error message when a login attempt " +"fails" +msgstr "" +"اگر می‌خواهید بعد از یک ورود ناموÙÙ‚ØŒ یک پیام خطای عمومی نمایش داده شود این " +"گزینه را تیک بزنید." + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:215 +msgid "Instantly Lockout Invalid Usernames" +msgstr "Ù‚ÙÙ„ کردن Ùوری نام‌های کاربری نامعتبر" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:218 +msgid "" +"Check this if you want to instantly lockout login attempts with usernames " +"which do not exist on your system" +msgstr "" +"اگر می‌خواهید بلاÙاصله تلاش‌های ورود برای نام‌های کاربری Ú©Ù‡ در سایتتان نیست Ù‚ÙÙ„ " +"شود، این گزینه را تیک بزنید" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:223 +msgid "Notify By Email" +msgstr "آگاه کردن از راه ایمیل" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:226 +msgid "" +"Check this if you want to receive an email when someone has been locked out " +"due to maximum failed login attempts" +msgstr "" +"اگر می‌خواهید وقتی IP یک Ù†Ùر در اثر تلاش‌های ناموÙÙ‚ زیاد Ù‚ÙÙ„ شد، به شما ایمیل " +"زده شود، این گزینه را تیک بزنید." + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:236 +msgid "Currently Locked Out IP Address Ranges" +msgstr "محدوده IPهایی Ú©Ù‡ هم اکنون Ù‚ÙÙ„ شده اند" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:290 +msgid "" +"This feature allows you to add a captcha form on the WordPress login page." +msgstr "" +"این ویژگی به شما امکان اضاÙÙ‡ کردن یک Ùرم Captcha به صÙحه ورود وردپرس را " +"می‌دهد." + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:291 +msgid "" +"Users who attempt to login will also need to enter the answer to a simple " +"mathematical question - if they enter the wrong answer, the plugin will not " +"allow them login even if they entered the correct username and password." +msgstr "" +"کاربرانی Ú©Ù‡ قصد ورود دارند همچنین باید پاسخ یک سوال ساده ریاضی را وارد کنند. " +"اگر پاسخ نادرست بدهند اÙزونه از ورود آن‌ها جلوگیری می‌کند؛ حتی اگر نام‌کاربری Ùˆ " +"گذرواژه صحیح را وارد کرده باشند." + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:292 +msgid "" +"Therefore, adding a captcha form on the login page is another effective yet " +"simple \"Brute Force\" prevention technique." +msgstr "" +"بنابراین اÙزودن یک Ùرم Captcha به برگه ورود، یک ترÙند ساده دیگر برای جلوگیری " +"از Brute Force است." + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:298 +msgid "Login Form Captcha Settings" +msgstr "تنظیمات Captcha برای برگه ورود" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:309 +msgid "Enable Captcha On Login Page" +msgstr "Ùعال کردن Captcha در برگه ورود" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:312 +msgid "Check this if you want to insert a captcha form on the login page" +msgstr "" +"اگر Ù…ÛŒ خواهید یک Ùرم Captcha به برگه ورود شما اضاÙÙ‡ شود، این گزینه را تیک " +"بزنید." + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:318 +msgid "Lost Password Form Captcha Settings" +msgstr "تنظیم Captcha برای Ùرم بازیابی گذرواژه" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:328 +msgid "Enable Captcha On Lost Password Page" +msgstr "Ùعال کردن Captcha برای برگه بازیابی گذرواژه" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:331 +msgid "" +"Check this if you want to insert a captcha form on the lost password page" +msgstr "" +"اگر می‌خواهید به برگه بازیابی گذرواژه یک Ùرم Captcha اضاÙÙ‡ کنید، این گزینه را " +"تیک بزنید." + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:353 +msgid "Nonce check failed for save whitelist settings!" +msgstr "بررسی Nonce برای ذخیره لیست سÙید ناموÙÙ‚ بود!" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:410 +msgid "" +"The All In One WP Security Whitelist feature gives you the option of only " +"allowing certain IP addresses or ranges to have access to your WordPress " +"login page." +msgstr "" +"لیست سÙید اÙزونه امنیت Ùراگیر وردپرس به شما اجازه می‌دهد تا Ùقط به تعداد " +"مشخصی آدرس/محدوده IP اجازه دسترسی به برگه ورود را بدهید." + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:411 +msgid "" +"This feature will deny login access for all IP addresses which are not in " +"your whitelist as configured in the settings below." +msgstr "" +"طبق تنظیمات زیر، هر IP آدرسی Ú©Ù‡ در لیست سÙید نباشد از دسترسی به برگه ورود " +"باز می‌ماند." + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:412 +msgid "" +"The plugin achieves this by writing the appropriate directives to your ." +"htaccess file." +msgstr "اÙزونه برای این کار، دستورهای مناسبی را در Ùایل htaccess. شما می‌نویسد." + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:413 +msgid "" +"By allowing/blocking IP addresses via the .htaccess file your are using the " +"most secure first line of defence because login access will only be granted " +"to whitelisted IP addresses and other addresses will be blocked as soon as " +"they try to access your login page." +msgstr "" +"با اجازه دادن یا ندادن به IP آدرس‌ها از طریق Ùایل htaccess. ØŒ شما از امن‌ترین " +"خط دÙاعی اولیه استÙاده می‌کنید؛ زیرا اجازه دسترسی به برگه ورود تنها برای IP " +"آدرس‌های موجود در لیست سÙید صادر می‌شود Ùˆ بقیه آدرس‌ها به محض تلاش برای رسیدن " +"به برگه ورود، مسدود خواهند شد." + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:420 +#, php-format +msgid "" +"Attention: If in addition to enabling the white list feature, you also have " +"the %s feature enabled, you will still need to use your secret word " +"in the URL when trying to access your WordPress login page." +msgstr "" +"توجه: اگر علاوه بر Ùعال کردن ویژگی لیست سÙید، شما ویژگی %s را هم Ùعال " +"کنید، شما همچنان برای دسترسی به برگه ورود وردپرس، نیاز به وارد کردن " +"واژه محرمانه در آدرس اینترنتی دارید." + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:421 +msgid "" +"These features are NOT functionally related. Having both of them enabled on " +"your site means you are creating 2 layers of security." +msgstr "" +"این دو ویژگی کارکرد مشابهی ندارند. Ùعال کردن همزمان آنها روی سایت به این " +"معنا است Ú©Ù‡ شما دو لایه Ø­Ùاظتی ایجاد کرده اید." + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:426 +msgid "Login IP Whitelist Settings" +msgstr "تنظیمات لیست سÙید IP" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:437 +msgid "Enable IP Whitelisting" +msgstr "Ùعال کردن تنظیمات لیست سÙید IP" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:440 +msgid "" +"Check this if you want to enable the whitelisting of selected IP addresses " +"specified in the settings below" +msgstr "" +"اگر می‌خواهید ویژگی لیست سÙید را برای IP آدرس‌هایی Ú©Ù‡ در زیر مشخص کرده اید، " +"Ùعال شود، این گزینه را تیک بزنید." + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:444 +msgid "Your Current IP Address" +msgstr "آدرس IP کنونی شما" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:447 +msgid "" +"You can copy and paste this address in the text box below if you want to " +"include it in your login whitelist." +msgstr "" +"شما می‌توانید این آدرس را Ú©Ù¾ÛŒ Ùˆ در جعبه متن پایین، Paste کنید.(اگر می‌خواهید " +"IP کنونی شما در لیست سÙید ثبت شود)" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:451 +msgid "Enter Whitelisted IP Addresses:" +msgstr "IP آدرس‌های لیست سÙید را وارد کنید:" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:455 +msgid "" +"Enter one or more IP addresses or IP ranges you wish to include in your " +"whitelist. Only the addresses specified here will have access to the " +"WordPress login page." +msgstr "" +"یک یا چند IP آدرس یا محدوده IP وارد کنید. تنها آدرس‌هایی Ú©Ù‡ در اینجا ذکر شوند " +"اجازه دسترسی به برگه ورود وردپرس را خواهند داشت." + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:485 +msgid "Nonce check failed for delete all failed login records operation!" +msgstr "" +"بررسی Nonce برای پاک کردن همه گزارش‌های ورود ناموÙÙ‚ØŒ با شکست رو به رو شد!" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:494 +msgid "User Login Feature - Delete all failed login records operation failed!" +msgstr "" +"ویژگی ورود کاربر - عملیات پاک کردن همه گزارش‌های ورود ناموÙÙ‚ØŒ با شکست رو به " +"رو شد!" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:498 +msgid "All records from the Failed Logins table were deleted successfully!" +msgstr "همه گزارش‌ها از جدول ورودهای ناموÙÙ‚ پاک شدند!" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:513 +msgid "This tab displays the failed login attempts for your site." +msgstr "این تَب، همه تلاش‌های ناموÙÙ‚ برای ورود به سایت شما را نشان می‌دهد." + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:514 +msgid "" +"The information below can be handy if you need to do security investigations " +"because it will show you the IP range, username and ID (if applicable) and " +"the time/date of the failed login attempt." +msgstr "" +"اگر شما نیاز به انجام بررسی‌های امنیتی دارید، اطلاعات زیر Ù…ÛŒ تواند سودمند " +"باشد. زیرا این اطلاعات به شما محدوده IPØŒ نام کاربری Ùˆ ID (در صورت وجود) Ùˆ " +"تاریخ / زمانهای ورود ناموÙÙ‚ را نشان می‌دهد." + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:535 +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:544 +msgid "Delete All Failed Login Records" +msgstr "پاک کردن همه گزارش‌های ورود ناموÙÙ‚" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:541 +msgid "" +"Click this button if you wish to delete all failed login records in one go." +msgstr "" +"اگر می‌خواهید در یک حرکت همه گزارش‌های ورود ناموÙÙ‚ را پاک کنید، روی دکمه کلیک " +"کنید." + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:569 +msgid "" +"You entered a non numeric value for the logout time period field. It has " +"been set to the default value." +msgstr "" +"شما یک مقدار غیر عددی برای بازه زمانی خروج از سایت وارد کرده‌اید. مقدار " +"پیش‌Ùرض استÙاده می‌شود." + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:597 +msgid "" +"Setting an expiry period for your WP administration session is a simple way " +"to protect against unauthorized access to your site from your computer." +msgstr "" +"تنظیم یک بازه زمانی برای مدت زمان حضور مدیر در سایت، یک راه Ù…Ùید برای " +"جلوگیری از دسترسی غیرمجاز به سایت از راه کامپیوتر شماست." + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:598 +msgid "" +"This feature allows you to specify a time period in minutes after which the " +"admin session will expire and the user will be forced to log back in." +msgstr "" +"این ویژگی به شما اجازه می‌دهد تا یک بازه زمانی(به دقیقه) تعیین کنید؛ پس از " +"این بازه زمانی مدیر به طور خودکار از سایت خارج می‌شود Ùˆ برای وارد شدن دوباره " +"باید گذرواژه را وارد کند." + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:603 +msgid "Force User Logout Options" +msgstr "گزینه‌های بیرون‌کردن اجباری کاربر" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:615 +msgid "Enable Force WP User Logout" +msgstr "Ùعال‌سازی بیرون کردن اجباری کاربر" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:618 +msgid "" +"Check this if you want to force a wp user to be logged out after a " +"configured amount of time" +msgstr "" +"اگر می‌خواهید یک کاربر بعد از بازه زمانی مشخصی از سایت بیرون شود، این گزینه " +"را تیک بزنید." + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:622 +msgid "Logout the WP User After XX Minutes" +msgstr "بیرون کردن کاربر پس از XX دقیقه" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:624 +msgid "" +"(Minutes) The user will be forced to log back in after this time period has " +"elapased." +msgstr "(دقیقه) بعد از گذشت این زمان کاربر دوباره باید وارد سایت شود." + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:647 +msgid "" +"This tab displays the login activity for WordPress admin accounts registered " +"with your site." +msgstr "این تَب، Ùعالیت‌های ورود را برای حساب‌های مدیران سایت نشان می‌دهد." + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:648 +msgid "" +"The information below can be handy if you need to do security investigations " +"because it will show you the last 50 recent login events by username, IP " +"address and time/date." +msgstr "" +"اگر شما نیاز به انجام بررسی‌های امنیتی دارید، اطلاعات زیر Ù…ÛŒ تواند سودمند " +"باشد. زیرا 50 ورود آخر را بر اساس نام کاربری، IP آدرس Ùˆ زمان/تاریخ نشان " +"می‌دهد." + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:685 +msgid "Nonce check failed for users logged in list!" +msgstr "بررسی Nonce برای Ùهرست کاربران حاضر در سایت، ناموÙÙ‚ بود!" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:698 +msgid "Refresh Logged In User Data" +msgstr "تازه کردن اطلاعات کاربران حاضر در سایت" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:702 +msgid "Refresh Data" +msgstr "تازه‌سازی" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:708 +msgid "This tab displays all users who are currently logged into your site." +msgstr "این تَب همه کاربرانی را Ú©Ù‡ هم اکنون در سایت شما حاضر هستند، نشان می‌دهد." + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:709 +msgid "" +"If you suspect there is a user or users who are logged in which should not " +"be, you can block them by inspecting the IP addresses from the data below " +"and adding them to your blacklist." +msgstr "" +"اگر شما به یک یا چند Ù†Ùر از کاربران حاضر، بدگمان هستید، می‌توانید IP آدرس " +"آن‌ها را از جدول زیر برداشته Ùˆ در لیست سیاه خود قرار دهید." + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:714 +msgid "Currently Logged In Users" +msgstr "کاربران حاضر در سایت" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:779 +msgid "The selected records were deleted successfully!" +msgstr "گزارش‌های انتخاب شده با موÙقیت پاک شدند!" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:788 +msgid "The selected record was deleted successfully!" +msgstr "گزارش انتخاب شده با موÙقیت پاک شد!" + +#: all-in-one-wp-security/admin/wp-security-user-registration-menu.php:23 +msgid "Manual Approval" +msgstr "تأیید دستی" + +#: all-in-one-wp-security/admin/wp-security-user-registration-menu.php:24 +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:53 +msgid "Registration Captcha" +msgstr "Captcha برای نام‌نویسی" + +#: all-in-one-wp-security/admin/wp-security-user-registration-menu.php:112 +msgid "User Registration Settings" +msgstr "تنظیمات نام‌نویسی کاربر" + +#: all-in-one-wp-security/admin/wp-security-user-registration-menu.php:116 +msgid "Manually Approve New Registrations" +msgstr "تأیید دستی نام‌نویسی‌های تازه" + +#: all-in-one-wp-security/admin/wp-security-user-registration-menu.php:120 +msgid "" +"If your site allows people to create their own accounts via the WordPress " +"registration form, then you can minimize SPAM or bogus registrations by " +"manually approving each registration." +msgstr "" +"اگر سایت شما به مردم اجازه می‌دهد Ú©Ù‡ خودشان از طریق Ùرم نام‌نویسی وردپرس برای " +"خودشان حساب کاربری بسازند، شما می‌توانید با تأیید دستی نام‌نویسی‌ها جلوی " +"مزاحم‌ها Ùˆ جÙنگ‌نویس‌ها را بگیرید." + +#: all-in-one-wp-security/admin/wp-security-user-registration-menu.php:121 +msgid "" +"This feature will automatically set a newly registered account to \"pending" +"\" until the administrator activates it. Therefore undesirable registrants " +"will be unable to log in without your express approval." +msgstr "" +"این ویژگی به طور خودکار، حساب‌های تازه را در لیست انتظار قرار می‌دهد تا زمانی " +"Ú©Ù‡ مدیر آن حساب را Ùعال کند. بنابراین حساب‌های ناخواسته بدون تأیید صریح شما " +"نمی‌توانند وارد سایت شوند." + +#: all-in-one-wp-security/admin/wp-security-user-registration-menu.php:122 +msgid "" +"You can view all accounts which have been newly registered via the handy " +"table below and you can also perform bulk activation/deactivation/deletion " +"tasks on each account." +msgstr "" +"شما می‌توانید همه حساب‌هایی را Ú©Ù‡ به تازگی نام‌نویسی کرده اند در جدول زیر " +"ببینید Ùˆ کارهای دسته جمعی مانند Ùعال‌کردن/غیر Ùعال‌کردن/پاک کردن را روی آنها " +"انجام دهید." + +#: all-in-one-wp-security/admin/wp-security-user-registration-menu.php:138 +msgid "Enable manual approval of new registrations" +msgstr "Ùعال‌سازی تأیید دستی برای نام‌نویسی‌های تازه" + +#: all-in-one-wp-security/admin/wp-security-user-registration-menu.php:141 +msgid "" +"Check this if you want to automatically disable all newly registered " +"accounts so that you can approve them manually." +msgstr "" +"اگر می‌خواهید هر نام‌نویسی تازه‌ای Ú©Ù‡ اتÙاق می‌اÙتد به صورت دستی تأیید کنید، این " +"گزینه را تیک بزنید." + +#: all-in-one-wp-security/admin/wp-security-user-registration-menu.php:150 +msgid "Approve Registered Users" +msgstr "تأیید کاربران ثبت‌نام شده" + +#: all-in-one-wp-security/admin/wp-security-user-registration-menu.php:195 +msgid "" +"This feature allows you to add a captcha form on the WordPress registration " +"page." +msgstr "" +"این ویژگی به شما اجازه می‌دهد Ú©Ù‡ یک Ùرم Captcha به برگه نام‌نویسی وردپرس اضاÙÙ‡ " +"کنید." + +#: all-in-one-wp-security/admin/wp-security-user-registration-menu.php:196 +msgid "" +"Users who attempt to register will also need to enter the answer to a simple " +"mathematical question - if they enter the wrong answer, the plugin will not " +"allow them to register." +msgstr "" +"کسانی Ú©Ù‡ می‌خواهند نام‌نویسی کنند بایستی به یک پرسش ساده ریاضی پاسخ بدهند. در " +"صورت دادن پاسخ اشتباه آن‌ها نمی‌توانند نام نویسی کنند." + +#: all-in-one-wp-security/admin/wp-security-user-registration-menu.php:197 +msgid "" +"Therefore, adding a captcha form on the registration page is another " +"effective yet simple SPAM registration prevention technique." +msgstr "" +"بنابراین اÙزودن یک Ùرم Captcha به برگه نام‌نویسی یک ترÙند ساده دیگر برای " +"جلوگیری از نام‌نویسی جÙنگ‌نویس‌هاست." + +#: all-in-one-wp-security/admin/wp-security-user-registration-menu.php:202 +msgid "Registration Page Captcha Settings" +msgstr "تنظیمات Captcha برای نام‌نویسی" + +#: all-in-one-wp-security/admin/wp-security-user-registration-menu.php:214 +msgid "Enable Captcha On Registration Page" +msgstr "Ùعال‌سازی Captcha در برگه نام‌نویسی" + +#: all-in-one-wp-security/admin/wp-security-user-registration-menu.php:217 +msgid "" +"Check this if you want to insert a captcha form on the WordPress user " +"registration page (if you allow user registration)." +msgstr "" +"اگر می‌خواهید یک Ùرم Captcha به برگه نام‌نویسی وردپرس اضاÙÙ‡ کنید این گزینه را " +"تیک بزنید. (در صورتی Ú©Ù‡ نام‌نویسی را برای سایت آزاد کرده‌اید)" + +#: all-in-one-wp-security/admin/wp-security-whois-menu.php:22 +msgid "WhoIS Lookup" +msgstr "جستجوی WhoIS" + +#: all-in-one-wp-security/admin/wp-security-whois-menu.php:74 +msgid "WHOIS Lookup Information" +msgstr "اطلاعات جستجوی WHOIS" + +#: all-in-one-wp-security/admin/wp-security-whois-menu.php:77 +msgid "" +"This feature allows you to look up more detailed information about an IP " +"address or domain name by querying the WHOIS API." +msgstr "" +"این ویژگی به شما اجازه می‌دهد تا از راه جستجو در WHOIS اطلاعات دقیق‌تری درباره " +"یک IP آدرس یا نام دامنه بدست آورید." + +#: all-in-one-wp-security/admin/wp-security-whois-menu.php:83 +msgid "Perform a WHOIS Lookup for an IP or Domain Name" +msgstr "انجام جستجوی WHOIS برای یک IP Ùˆ یا نام دامنه" + +#: all-in-one-wp-security/admin/wp-security-whois-menu.php:89 +msgid "Enter IP Address or Domain Name" +msgstr "نام دامنه یا IP آدرس را وارد کنید" + +#: all-in-one-wp-security/admin/wp-security-whois-menu.php:91 +msgid "" +"Enter an IP address or domain name. Example: 111.11.12.13 OR some-domain-" +"name.com" +msgstr "" +"یک IP آدرس یا نام دامنه وارد کنید. نمونه: 13.12.11.111 یا some-domain-name." +"com" + +#: all-in-one-wp-security/admin/wp-security-whois-menu.php:95 +msgid "Perform IP or Domain Lookup" +msgstr "انجام جستجوی IP یا دامنه" + +#: all-in-one-wp-security/admin/wp-security-whois-menu.php:115 +msgid "WHOIS lookup successfully completed. Please see the results below:" +msgstr "جستجوی WHOIS با موÙقیت به پایان رسید. لطÙا نتایج زیر را ببینید:" + +#: all-in-one-wp-security/admin/wp-security-whois-menu.php:127 +msgid "" +"You have entered an incorrectly formatted IP address or domain name. Please " +"try again." +msgstr "" +"شما آدرس IP یا نام دامنه را در قالب نادرستی وارد کرده‌اید. لطÙا دوباره تلاش " +"کنید." + +#: all-in-one-wp-security/admin/general/wp-security-list-table.php:178 +msgid "No items found." +msgstr "موردی یاÙت نشد." + +#: all-in-one-wp-security/admin/general/wp-security-list-table.php:281 +msgid "Bulk Actions" +msgstr "کارهای دسته‌جمعی" + +#: all-in-one-wp-security/admin/general/wp-security-list-table.php:291 +msgid "Apply" +msgstr "به کار گرÙتن" + +#: all-in-one-wp-security/admin/general/wp-security-list-table.php:365 +msgid "Show all dates" +msgstr "نمایش همه تاریخ‌ها" + +#: all-in-one-wp-security/admin/general/wp-security-list-table.php:378 +#, php-format +msgid "%1$s %2$d" +msgstr "%1$s %2$d" + +#: all-in-one-wp-security/admin/general/wp-security-list-table.php:394 +msgid "List View" +msgstr "نمایش Ùهرست‌وار" + +#: all-in-one-wp-security/admin/general/wp-security-list-table.php:395 +msgid "Excerpt View" +msgstr "نمایش چکیده" + +#: all-in-one-wp-security/admin/general/wp-security-list-table.php:421 +#, php-format +msgid "%s pending" +msgstr "%s در انتظار" + +#: all-in-one-wp-security/admin/general/wp-security-list-table.php:653 +msgid "Select All" +msgstr "انتخاب همه" + +#: all-in-one-wp-security/classes/wp-security-backup.php:177 +msgid "All In One WP Security - Site Database Backup" +msgstr "اÙزونه امنیت Ùراگیر وردپرس - پشتیبان پایگاه داده سایت" + +#: all-in-one-wp-security/classes/wp-security-backup.php:179 +msgid "Attached is your latest DB backup file for site URL" +msgstr "" +"Ùایل پیوست‌شده تازه‌ترین نسخه پشتیبان از پایگاه داده برای این نشانی سایت است" + +#: all-in-one-wp-security/classes/wp-security-backup.php:179 +msgid " generated on" +msgstr "ساخته‌شده در" + +#: all-in-one-wp-security/classes/wp-security-captcha.php:12 +msgid "Please enter an answer in digits:" +msgstr "لطÙا پاسخ را به رقم وارد کنید:" + +#: all-in-one-wp-security/classes/wp-security-captcha.php:91 +msgid "one" +msgstr "یک" + +#: all-in-one-wp-security/classes/wp-security-captcha.php:92 +msgid "two" +msgstr "دو" + +#: all-in-one-wp-security/classes/wp-security-captcha.php:93 +msgid "three" +msgstr "سه" + +#: all-in-one-wp-security/classes/wp-security-captcha.php:94 +msgid "four" +msgstr "چهار" + +#: all-in-one-wp-security/classes/wp-security-captcha.php:95 +msgid "five" +msgstr "پنج" + +#: all-in-one-wp-security/classes/wp-security-captcha.php:96 +msgid "six" +msgstr "شش" + +#: all-in-one-wp-security/classes/wp-security-captcha.php:97 +msgid "seven" +msgstr "Ù‡Ùت" + +#: all-in-one-wp-security/classes/wp-security-captcha.php:98 +msgid "eight" +msgstr "هشت" + +#: all-in-one-wp-security/classes/wp-security-captcha.php:99 +msgid "nine" +msgstr "نه" + +#: all-in-one-wp-security/classes/wp-security-captcha.php:100 +msgid "ten" +msgstr "ده" + +#: all-in-one-wp-security/classes/wp-security-captcha.php:101 +msgid "eleven" +msgstr "یازده" + +#: all-in-one-wp-security/classes/wp-security-captcha.php:102 +msgid "twelve" +msgstr "دوازده" + +#: all-in-one-wp-security/classes/wp-security-captcha.php:103 +msgid "thirteen" +msgstr "سیزده" + +#: all-in-one-wp-security/classes/wp-security-captcha.php:104 +msgid "fourteen" +msgstr "چهارده" + +#: all-in-one-wp-security/classes/wp-security-captcha.php:105 +msgid "fifteen" +msgstr "پانزده" + +#: all-in-one-wp-security/classes/wp-security-captcha.php:106 +msgid "sixteen" +msgstr "شانزده" + +#: all-in-one-wp-security/classes/wp-security-captcha.php:107 +msgid "seventeen" +msgstr "Ù‡Ùده" + +#: all-in-one-wp-security/classes/wp-security-captcha.php:108 +msgid "eighteen" +msgstr "هجده" + +#: all-in-one-wp-security/classes/wp-security-captcha.php:109 +msgid "nineteen" +msgstr "نوزده" + +#: all-in-one-wp-security/classes/wp-security-captcha.php:110 +msgid "twenty" +msgstr "بیست" + +#: all-in-one-wp-security/classes/wp-security-file-scan.php:58 +msgid "All In One WP Security - File change detected!" +msgstr "امنیت Ùراگیر وردپرس - شناسایی تغییر Ùایل" + +#: all-in-one-wp-security/classes/wp-security-file-scan.php:60 +msgid "A file change was detected on your system for site URL" +msgstr "یک تغییر Ùایل روی سیستم شما برای این سایت شناسایی شده است" + +#: all-in-one-wp-security/classes/wp-security-file-scan.php:60 +msgid ". Scan was generated on" +msgstr ". بررسی در این تاریخ انجام شده است" + +#: all-in-one-wp-security/classes/wp-security-file-scan.php:61 +msgid "Login to your site to view the scan details." +msgstr "برای مشاهده جزییات بررسی، وارد پیشخوان سایت خود شوید." + +#: all-in-one-wp-security/classes/wp-security-general-init-tasks.php:158 +msgid "Please enter an answer in the CAPTCHA field." +msgstr "لطÙا یک پاسخ در زمینه Captcha وارد کنید." + +#: all-in-one-wp-security/classes/wp-security-general-init-tasks.php:168 +msgid "" +"Error: You entered an incorrect CAPTCHA answer. Please go back and try again." +msgstr "خطا: پاسخ شما به Captcha نادرست بود. برگردید Ùˆ دوباره تلاش کنید." + +#: all-in-one-wp-security/classes/wp-security-general-init-tasks.php:196 +#: all-in-one-wp-security/classes/wp-security-user-login.php:63 +#: all-in-one-wp-security/classes/wp-security-user-login.php:66 +#: all-in-one-wp-security/classes/wp-security-user-registration.php:59 +msgid "ERROR: Your answer was incorrect - please try again." +msgstr "خطا: پاسخ شما اشتباه بود - دوباره تلاش کنید." + +#: all-in-one-wp-security/classes/wp-security-user-login.php:39 +msgid "" +"ERROR: Login failed because your IP address has been " +"blocked.\n" +" Please contact the administrator." +msgstr "" +"خطا ورود با شکست مواجه شد. زیرا IP شما مسدود شده است.\n" +" لطÙا با مدیر تماس بگیرید." + +#: all-in-one-wp-security/classes/wp-security-user-login.php:76 +msgid "ERROR: The username field is empty." +msgstr "خطا : زمینه نام‌کاربری خالی است." + +#: all-in-one-wp-security/classes/wp-security-user-login.php:80 +msgid "ERROR: The password field is empty." +msgstr "خطا : زمینه گذرواژه خالی است." + +#: all-in-one-wp-security/classes/wp-security-user-login.php:100 +#: all-in-one-wp-security/classes/wp-security-user-login.php:126 +msgid "ERROR: Invalid login credentials." +msgstr "خطا : اطلاعات ورود نادرست است." + +#: all-in-one-wp-security/classes/wp-security-user-login.php:103 +msgid "ERROR: Invalid username." +msgstr "خطا :نام کاربری نادرست است." + +#: all-in-one-wp-security/classes/wp-security-user-login.php:129 +#, php-format +msgid "" +"ERROR: Incorrect password. Lost your password?" +msgstr "" +"خطا : گذرواژه نادرست است.گذرواژه‌تان را Ú¯Ù… کردید؟" + +#: all-in-one-wp-security/classes/wp-security-user-login.php:140 +msgid "" +"ACCOUNT PENDING: Your account is currently not active. An " +"administrator needs to activate your account before you can login." +msgstr "" +"نام نویسی در انتظار : حساب شما هنوز Ùعال نشده است. قبل از " +"اینکه بتوانید وارد شوید، یک مدیر باید حساب شما را Ùعال کند." + +#: all-in-one-wp-security/classes/wp-security-user-login.php:263 +msgid "Site Lockout Notification" +msgstr "هشدار ورود ناموÙÙ‚ به سایت" + +#: all-in-one-wp-security/classes/wp-security-user-login.php:264 +msgid "" +"A lockdown event has occurred due to too many failed login attempts or " +"invalid username:" +msgstr "" +"در Ù¾ÛŒ تلاش‌های ناموÙÙ‚ زیاد برای ورود یا وارد کردن نام کاربری نادرست، ورود به " +"سایت برای یک IP یا نام کاربری Ù‚ÙÙ„ شده است:" + +#: all-in-one-wp-security/classes/wp-security-user-login.php:265 +msgid "Username: " +msgstr "نام کاربری:" + +#: all-in-one-wp-security/classes/wp-security-user-login.php:266 +msgid "IP Address: " +msgstr "آدرس IP:" + +#: all-in-one-wp-security/classes/wp-security-user-login.php:267 +msgid "IP Range: " +msgstr "محدوده IP:" + +#: all-in-one-wp-security/classes/wp-security-user-login.php:268 +msgid "" +"Log into your site's WordPress administration panel to see the duration of " +"the lockout or to unlock the user." +msgstr "" +"برای مشاهده مدت زمان Ù‚ÙÙ„ شدن کاربر یا آزاد کردن آن به پیشخوان سایت وردپرس " +"خود وارد شوید." + +#: all-in-one-wp-security/classes/wp-security-user-login.php:425 +#, php-format +msgid "" +"Your session has expired because it has been over %d minutes since your last " +"login." +msgstr "" +"جلسه شما به پایان رسیده است زیرا بیش از %d دقیقه از آخرین ورود شما می‌گذرد." + +#: all-in-one-wp-security/classes/wp-security-user-login.php:426 +#: all-in-one-wp-security/classes/wp-security-user-login.php:430 +msgid "Please log back in to continue." +msgstr "برای ادامه، لطÙا دوباره وارد شوید." + +#: all-in-one-wp-security/classes/wp-security-user-login.php:429 +msgid "You were logged out because you just changed the \"admin\" username." +msgstr "شما از سایت بیرون شدید چون نام کاربری admin را تغییر دادید." + +#: all-in-one-wp-security/classes/wp-security-utility-ip-address.php:79 +#: all-in-one-wp-security/classes/wp-security-utility-ip-address.php:98 +#: all-in-one-wp-security/classes/wp-security-utility-ip-address.php:113 +#: all-in-one-wp-security/classes/wp-security-utility-ip-address.php:128 +msgid " is not a valid ip address format." +msgstr "یک قالب درستی IP آدرس نیست." + +#: all-in-one-wp-security/classes/wp-security-utility-ip-address.php:136 +msgid "You cannot ban your own IP address: " +msgstr "شما نمی‌توانید آدرس IP خودتان را مسدود کنید:" + +#: all-in-one-wp-security/classes/wp-security-utility.php:151 +msgid "" +"This feature can only be configured by the \"superadmin\" on the main site." +msgstr "این ویژگی تنها توسط مدیر ارشد سایت قابل تنظیم است." + +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:29 +msgid "Remove WP Generatore Meta Tag" +msgstr "حذ٠سازنده تگ‌های متا" + +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:35 +msgid "Change Display Name" +msgstr "تغییر نمایش عمومی نام" + +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:43 +msgid "Lost Password Captcha" +msgstr "Captcha برای گذرواژه گمشده" + +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:45 +msgid "Login IP Whitelisting" +msgstr "لیست سÙید IPها برای ورود به سایت" + +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:51 +msgid "Registration Approval" +msgstr "تأیید نام‌نویسی" + +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:67 +msgid "WordPress Files Access" +msgstr "دسترسی به Ùایل‌های وردپرس" + +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:71 +msgid "IP and User Agent Blacklisting" +msgstr "لیست سیاه IP یا نماینده کاربری" + +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:75 +msgid "Enable Basic Firewall" +msgstr "Ùعال‌سازی دیوارآتش پایه" + +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:76 +msgid "Enable Pingback Vulnerability Protection" +msgstr "Ùعال‌سازی محاÙظت در برابر آسیب‌پذیری Pingback" + +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:82 +msgid "Forbid Proxy Comments" +msgstr "ممنوع کردن Ùرستادن دیدگاه از طریق پراکسی" + +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:83 +msgid "Deny Bad Queries" +msgstr "رد کردن جستجوهای خطرناک" + +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:85 +msgid "5G Blacklist" +msgstr "لیست سیاه 5G" + +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:88 +msgid "Block Spambots" +msgstr "مسدود کردن ربات‌های جÙنگ‌نویس" + +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:90 +msgid "Comment Captcha" +msgstr "Captcha برای دیدگاه" + +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item.php:28 +msgid "Basic" +msgstr "آسان" + +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item.php:31 +msgid "Intermediate" +msgstr "میانه" + +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item.php:34 +msgid "Advanced" +msgstr "پیشرÙته" diff --git a/all-in-one-wp-security/languages/aiowpsecurity-hu_HU.mo b/all-in-one-wp-security/languages/aiowpsecurity-hu_HU.mo new file mode 100644 index 0000000000000000000000000000000000000000..4bc6368b8c5542a920b6fabf4fe6abe4053087a7 GIT binary patch literal 3139 zcmb7_O>7%Q6vqeJ0yW>^qm=UT8dO9{*0qz+7Uu(;)Jd$SiIut^a3C75$M$;Hv)1m| zsVz8hKpc=-Ar2reIiMbqDmX&9I^YPxB zH*emIe;L^S8N){?FX(a~V?&zvqr&$c_zCzu*aR=_V{Al^gU7+!;8pP0e#XYY8!`U` zbLi6n#?FBi@F@5-I1K&_;>Y$qz}Q3JK@dMSfa*c;FbEUuXv|kZEjJYR$Kw8*AY5S6 zptd&)9t0QS@r$6g_io%Tf!a<5)bcKfA8W;YAJq0f1lJIYkH8PmKMo}yybex)N3h5# z@G^KEyb2oN=>%h=U2%*@h-#Ud4Qi)ZqSa}y`x@eIA= zwmjmd>9(XI%O|ttc|t0uL()~4P*z(cDJzMW8a%%U5s&hauCI3a3Jg=u5+v`0mMad-nRpHSpc4%!MtU=Alf8}+ESGi7yoaeb- zn1O`w3!DPZv`=RyTPV)VXECS^CMk|U)uj?Q?eP5jti`jTC2c3tf;lQ%RZIC9w!4H5 zW^c7HKuIR7YE4Boj)@6Jw1J9MQMy~ftzZ>od{~7;(vpJdD(t!F_@PQzhhx5Vg`tFP z1tY3vc~J+ME|^*s4y*!FbpV$YJhzTpVdTrkMdA6DD>IbMFI_5}PZXAl#*8Pp!k}>m z_b)>usr0Ck9x+m*lpe{vF*=k^rBV92awiKn4CzE5CiMqyF(a{fxzksJILn|xeD`IDI8aJrPRV_owM8Ro! z+%aZduiEq)&`sW4r%vu2!jFh&q{lLuTgHO-WZ1CmW z+}73U++yG3mc{J}Htjm6I+92_qKe0}LEKisMmtHlD(*w{w04yjtReQ2+hhyJ(K1#$ zSaYPshpB;!yLC+|JR451-jsbW(0qP6+qYuyvDXgPWk>1t^s0V0*!-U_YR;)ZyRHNl zj4j;xr0%(9NrZb}IWKmrCg>!n~5 z4$oU9o}u||o!%oDTSEZLE;0Z*N!kubLr5JDJSu*d6ApM+^F5Ve*ol`$^dnCdAuZP$ zby4jI8|j{5J?Z}x=GzZ+7{ijlABgO@j>(kO6|%1hgV9)ULor>DL%pG>Y2&Y1#)@%U pE7gK^6={a88t?UVBiQKn=GHv70pSqg;x=x{)-?>>^t&wX`~$PGmIMF* literal 0 HcmV?d00001 diff --git a/all-in-one-wp-security/languages/aiowpsecurity-hu_HU.po b/all-in-one-wp-security/languages/aiowpsecurity-hu_HU.po new file mode 100644 index 0000000..3a66e60 --- /dev/null +++ b/all-in-one-wp-security/languages/aiowpsecurity-hu_HU.po @@ -0,0 +1,3544 @@ +msgid "" +msgstr "" +"Project-Id-Version: AIOWPS\n" +"POT-Creation-Date: 2013-12-03 12:53+1000\n" +"PO-Revision-Date: 2014-04-17 20:34+0100\n" +"Last-Translator: I♥WP \n" +"Language-Team: \n" +"Language: hu_HU\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 1.6.4\n" +"X-Poedit-KeywordsList: __;_e\n" +"X-Poedit-Basepath: .\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Poedit-SearchPath-0: .\n" + +#: all-in-one-wp-security/admin/wp-security-admin-init.php:156 +msgid "WP Security" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-admin-init.php:157 +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:22 +msgid "Dashboard" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-admin-init.php:158 +msgid "Settings" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-admin-init.php:159 +msgid "User Accounts" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-admin-init.php:160 +msgid "User Login" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-admin-init.php:161 +msgid "User Registration" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-admin-init.php:162 +msgid "Database Security" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-admin-init.php:166 +msgid "Filesystem Security" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-admin-init.php:168 +msgid "WHOIS Lookup" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-admin-init.php:172 +msgid "Blacklist Manager" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-admin-init.php:177 +msgid "Firewall" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-admin-init.php:179 +msgid "SPAM Prevention" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-admin-init.php:183 +msgid "Scanner" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-admin-init.php:185 +msgid "Maintenance" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-admin-menu.php:43 +msgid "Settings successfully updated." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-admin-menu.php:50 +msgid "The selected record(s) deleted successfully!" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-blacklist-menu.php:22 +msgid "Ban Users" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-blacklist-menu.php:80 +msgid "Nonce check failed for save blacklist settings!" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-blacklist-menu.php:132 +#: all-in-one-wp-security/admin/wp-security-list-comment-spammer-ip.php:147 +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:400 +msgid "" +"The plugin was unable to write to the .htaccess file. Please edit file " +"manually." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-blacklist-menu.php:139 +msgid "Ban IPs or User Agents" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-blacklist-menu.php:142 +msgid "" +"The All In One WP Security Blacklist feature gives you the option of banning " +"certain host IP addresses or ranges and also user agents." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-blacklist-menu.php:143 +msgid "" +"This feature will deny total site access for users which have IP addresses " +"or user agents matching those which you have configured in the settings " +"below." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-blacklist-menu.php:144 +msgid "" +"The plugin achieves this by making appropriate modifications to your ." +"htaccess file." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-blacklist-menu.php:145 +msgid "" +"By blocking people via the .htaccess file your are using the most secure " +"first line of defence which denies all access to blacklisted visitors as " +"soon as they hit your hosting server." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-blacklist-menu.php:151 +msgid "IP Hosts and User Agent Blacklist Settings" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-blacklist-menu.php:162 +msgid "Enable IP or User Agent Blacklisting" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-blacklist-menu.php:165 +msgid "" +"Check this if you want to enable the banning (or blacklisting) of selected " +"IP addresses and/or user agents specified in the settings below" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-blacklist-menu.php:169 +msgid "Enter IP Addresses:" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-blacklist-menu.php:173 +msgid "Enter one or more IP addresses or IP ranges." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-blacklist-menu.php:174 +#: all-in-one-wp-security/admin/wp-security-blacklist-menu.php:194 +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:271 +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:288 +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:147 +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:177 +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:308 +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:338 +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:369 +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:397 +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:426 +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:514 +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:669 +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:703 +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:726 +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:747 +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:174 +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:259 +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:456 +msgid "More Info" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-blacklist-menu.php:177 +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:459 +msgid "Each IP address must be on a new line." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-blacklist-menu.php:178 +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:460 +msgid "" +"To specify an IP range use a wildcard \"*\" character. Acceptable ways to " +"use wildcards is shown in the examples below:" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-blacklist-menu.php:179 +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:461 +msgid "Example 1: 195.47.89.*" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-blacklist-menu.php:180 +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:462 +msgid "Example 2: 195.47.*.*" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-blacklist-menu.php:181 +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:463 +msgid "Example 3: 195.*.*.*" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-blacklist-menu.php:188 +msgid "Enter User Agents:" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-blacklist-menu.php:193 +msgid "Enter one or more user agent strings." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-blacklist-menu.php:197 +msgid "Each user agent string must be on a new line." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-blacklist-menu.php:198 +msgid "Example 1 - A single user agent string to block:" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-blacklist-menu.php:200 +msgid "Example 2 - A list of more than 1 user agent strings to block" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-blacklist-menu.php:208 +#: all-in-one-wp-security/admin/wp-security-database-menu.php:347 +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:309 +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:231 +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:497 +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:189 +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:232 +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:336 +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:470 +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:628 +#: all-in-one-wp-security/admin/wp-security-user-registration-menu.php:146 +#: all-in-one-wp-security/admin/wp-security-user-registration-menu.php:221 +msgid "Save Settings" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:23 +msgid "System Info" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:73 +msgid "For information, updates and documentation, please visit the" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:73 +msgid "AIO WP Security & Firewall Plugin" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:73 +msgid "Page" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:74 +msgid "Follow us" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:74 +msgid "" +"Twitter, Google+ or via Email to stay upto date about the new security " +"features of this plugin." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:88 +msgid "Security Strength Meter" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:117 +msgid "Total Achievable Points: " +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:119 +msgid "Current Score of Your Site: " +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:129 +msgid "Security Points Breakdown" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:170 +msgid "Critical Feature Status" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:174 +msgid "" +"Below is the current status of the critical features that you should " +"activate on your site to achieve a minimum level of recommended security" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:178 +msgid "Admin Username" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:193 +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:27 +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:39 +msgid "Login Lockdown" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:208 +msgid "File Permission" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:223 +msgid "Basic Firewall" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:241 +msgid "Maintenance Mode Status" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:245 +msgid "" +"Maintenance mode is currently enabled. Remember to turn it off when you are " +"done" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:248 +msgid "Maintenance mode is currently off." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:252 +msgid "Maintenance Mode" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:291 +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:33 +msgid "Logged In Users" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:301 +msgid "Number of users currently logged in site-wide is:" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:302 +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:324 +#, php-format +msgid "Go to the %s menu to see more details" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:307 +msgid "There are no other site-wide users currently logged in." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:323 +msgid "Number of users currently logged into your site is:" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:329 +msgid "There are no other users currently logged in." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:340 +msgid "Spread the Word" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:343 +msgid "" +"We are working to make your WordPress site more secure. Please support us, " +"here is how:" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:367 +msgid "Site Info" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:369 +msgid "Plugin Version" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:370 +msgid "WP Version" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:372 +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:374 +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:395 +msgid "Version" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:373 +msgid "Table Prefix" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:375 +msgid "Session Save Path" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:377 +msgid "Server Name" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:378 +msgid "Cookie Domain" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:379 +msgid "Library Present" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:380 +msgid "Debug File Write Permissions" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:384 +msgid "Active Plugins" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:394 +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:130 +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:149 +msgid "Name" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:396 +msgid "Plugin URL" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:23 +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:57 +msgid "DB Prefix" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:24 +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:59 +msgid "DB Backup" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:84 +msgid "Nonce check failed for DB prefix change operation!" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:92 +msgid "" +"The plugin has detected that it cannot write to the wp-config.php file. This " +"feature can only be used if the plugin can successfully write to the wp-" +"config.php file." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:105 +msgid "Please enter a value for the DB prefix." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:114 +msgid "" +"ERROR: The table prefix can only contain numbers, letters, " +"and underscores." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:122 +msgid "Change Database Prefix" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:125 +msgid "" +"Your WordPress DB is the most important asset of your website because it " +"contains a lot of your site's precious information." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:126 +msgid "" +"The DB is also a target for hackers via methods such as SQL injections and " +"malicious and automated code which targets certain tables." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:127 +msgid "" +"One way to add a layer of protection for your DB is to change the default " +"WordPress table prefix from \"wp_\" to something else which will be " +"difficult for hackers to guess." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:128 +msgid "" +"This feature allows you to easily change the prefix to a value of your " +"choice or to a random value set by this plugin." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:134 +msgid "DB Prefix Options" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:145 +#, php-format +msgid "It is recommended that you perform a %s before using this feature" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:154 +msgid "Current DB Table Prefix" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:160 +msgid "" +"Your site is currently using the default WordPress DB prefix value of \"wp_" +"\". \n" +" To increase your site's security you should " +"consider changing the DB prefix value to another value." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:167 +msgid "Generate New DB Table Prefix" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:170 +msgid "" +"Check this if you want the plugin to generate a random 6 character string " +"for the table prefix" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:171 +msgid "OR" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:173 +msgid "" +"Choose your own DB prefix by specifying a string which contains letters and/" +"or numbers and/or underscores. Example: xyz_" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:177 +msgid "Change DB Prefix" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:198 +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:86 +msgid "Nonce check failed for manual DB backup operation!" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:215 +msgid "" +"DB Backup was successfully completed! You will receive the backup file via " +"email if you have enabled \"Send Backup File Via Email\", otherwise you can " +"retrieve it via FTP from the following directory:" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:217 +msgid "Your DB Backup File location: " +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:225 +msgid "DB Backup failed. Please check the permissions of the backup directory." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:242 +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:126 +msgid "" +"You entered a non numeric value for the \"backup time interval\" field. It " +"has been set to the default value." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:249 +msgid "" +"You entered a non numeric value for the \"number of backup files to keep\" " +"field. It has been set to the default value." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:256 +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:156 +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:121 +msgid "" +"You have entered an incorrect email address format. It has been set to your " +"WordPress admin email as default." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:262 +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:162 +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:219 +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:127 +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:581 +msgid "Attention!" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:289 +msgid "Manual Backup" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:295 +msgid "To create a new DB backup just click on the button below." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:298 +msgid "Create DB Backup Now" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:302 +msgid "Automated Scheduled Backups" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:314 +msgid "Enable Automated Scheduled Backups" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:317 +msgid "" +"Check this if you want the system to automatically generate backups " +"periodically based on the settings below" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:321 +msgid "Backup Time Interval" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:324 +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:259 +msgid "Hours" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:325 +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:260 +msgid "Days" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:326 +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:261 +msgid "Weeks" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:328 +msgid "Set the value for how often you would like an automated backup to occur" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:332 +msgid "Number of Backup Files To Keep" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:334 +msgid "" +"Thie field allows you to choose the number of backup files you would like to " +"keep in the backup directory" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:338 +msgid "Send Backup File Via Email" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:341 +msgid "" +"Check this if you want the system to email you the backup file after a DB " +"backup has been performed" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:343 +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:305 +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:228 +msgid "Enter an email address" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:373 +msgid "Starting DB prefix change operations....." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:375 +#, php-format +msgid "" +"Your WordPress system has a total of %s tables and your new DB prefix will " +"be: %s" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:381 +#: all-in-one-wp-security/classes/wp-security-utility.php:206 +msgid "" +"Failed to make a backup of the wp-config.php file. This operation will not " +"go ahead." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:385 +msgid "A backup copy of your wp-config.php file was created successfully!" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:408 +#, php-format +msgid "%s table name update failed" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:420 +#, php-format +msgid "Please change the prefix manually for the above tables to: %s" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:423 +#, php-format +msgid "%s tables had their prefix updated successfully!" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:438 +msgid "wp-config.php file was updated successfully!" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:441 +#, php-format +msgid "" +"The \"wp-config.php\" file was not able to be modified. Please modify this " +"file manually using your favourite editor and search \n" +" for variable \"$table_prefix\" and assign the following " +"value to that variable: %s" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:462 +msgid "There was an error when updating the options table." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:466 +msgid "" +"The options table records which had references to the old DB prefix were " +"updated successfully!" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:491 +#, php-format +msgid "" +"Error updating user_meta table where new meta_key = %s, old meta_key = %s " +"and user_id = %s." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:497 +msgid "" +"The usermeta table records which had references to the old DB prefix were " +"updated successfully!" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:499 +msgid "DB prefix change tasks have been completed." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:22 +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:94 +msgid "File Change Detection" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:93 +msgid "Nonce check failed for manual file change detection scan operation!" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:100 +msgid "" +"The plugin has detected that this is your first file change detection scan. " +"The file details from this scan will be used to detect file changes for " +"future scans!" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:194 +msgid "" +"NEW SCAN COMPLETED: The plugin has detected that you have made changes to " +"the \"File Types To Ignore\" or \"Files To Ignore\" fields.\n" +" In order to ensure that future scan results are " +"accurate, the old scan data has been refreshed." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:204 +msgid "" +"All In One WP Security & Firewall has detected that there was a change in " +"your host's files." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:206 +msgid "View Scan Details & Clear This Message" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:215 +msgid "" +"If given an opportunity hackers can insert their code or files into your " +"system which they can then use to carry out malicious acts on your site." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:216 +msgid "" +"Being informed of any changes in your files can be a good way to quickly " +"prevent a hacker from causing damage to your website." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:217 +msgid "" +"In general, WordPress core and plugin files and file types such as \".php\" " +"or \".js\" should not change often and when they do, it is important that " +"you are made aware when a change occurs and which file was affected." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:218 +msgid "" +"The \"File Change Detection Feature\" will notify you of any file change " +"which occurs on your system, including the addition and deletion of files by " +"performing a regular automated or manual scan of your system's files." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:219 +msgid "" +"This feature also allows you to exclude certain files or folders from the " +"scan in cases where you know that they change often as part of their normal " +"operation. (For example log files and certain caching plugin files may " +"change often and hence you may choose to exclude such files from the file " +"change detection scan)" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:224 +msgid "Manual File Change Detection Scan" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:230 +msgid "" +"To perform a manual file change detection scan click on the button below." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:233 +msgid "Perform Scan Now" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:237 +msgid "File Change Detection Settings" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:249 +msgid "Enable Automated File Change Detection Scan" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:252 +msgid "" +"Check this if you want the system to automatically/periodically scan your " +"files to check for file changes based on the settings below" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:256 +msgid "Scan Time Interval" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:263 +msgid "Set the value for how often you would like a scan to occur" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:267 +msgid "File Types To Ignore" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:270 +msgid "" +"Enter each file type or extension on a new line which you wish to exclude " +"from the file change detection scan." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:274 +msgid "" +"You can exclude file types from the scan which would not normally pose any " +"security threat if they were changed. These can include things such as image " +"files." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:275 +msgid "" +"Example: If you want the scanner to ignore files of type jpg, png, and bmp, " +"then you would enter the following:" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:276 +msgid "jpg" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:277 +msgid "png" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:278 +msgid "bmp" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:284 +msgid "Files/Directories To Ignore" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:287 +msgid "" +"Enter each file or directory on a new line which you wish to exclude from " +"the file change detection scan." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:291 +msgid "" +"You can exclude specific files/directories from the scan which would not " +"normally pose any security threat if they were changed. These can include " +"things such as log files." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:292 +msgid "" +"Example: If you want the scanner to ignore certain files in different " +"directories or whole directories, then you would enter the following:" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:293 +msgid "cache/config/master.php" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:294 +msgid "somedirectory" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:300 +msgid "Send Email When Change Detected" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:303 +msgid "" +"Check this if you want the system to email you if a file change was detected" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:335 +msgid "Latest File Change Scan Results" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:344 +msgid "The following files were added to your host." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:347 +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:368 +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:392 +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:26 +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:27 +msgid "File" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:348 +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:369 +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:393 +msgid "File Size" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:349 +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:370 +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:394 +msgid "File Modified" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:365 +msgid "The following files were removed from your host." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:389 +msgid "The following files were changed on your host." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:26 +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:63 +msgid "File Permissions" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:27 +msgid "PHP File Editing" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:28 +msgid "WP File Access" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:29 +msgid "Host System Logs" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:96 +#, php-format +msgid "The permissions for %s were succesfully changed to %s" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:100 +#, php-format +msgid "Unable to change permissions for %s!" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:106 +msgid "File Permissions Scan" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:109 +msgid "" +"Your WordPress file and folder permission settings govern the accessability " +"and read/write privileges of the files and folders which make up your WP " +"installation." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:110 +msgid "" +"Your WP installation already comes with reasonably secure file permission " +"settings for the filesystem." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:111 +msgid "" +"However, sometimes people or other plugins modify the various permission " +"settings of certain core WP folders or files such that they end up making " +"their site less secure because they chose the wrong permission values." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:112 +msgid "" +"This feature will scan the critical WP core folders and files and will " +"highlight any permission settings which are insecure." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:118 +msgid "WP Directory and File Permissions Scan Results" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:131 +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:150 +msgid "File/Folder" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:132 +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:151 +msgid "Current Permissions" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:133 +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:152 +msgid "Recommended Permissions" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:134 +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:153 +msgid "Recommended Action" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:191 +msgid "Your PHP file editing settings were saved successfully." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:195 +msgid "" +"Operation failed! Unable to modify or make a backup of wp-config.php file!" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:201 +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:65 +msgid "File Editing" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:204 +msgid "" +"The Wordpress Dashboard by default allows administrators to edit PHP files, " +"such as plugin and theme files." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:205 +msgid "" +"This is often the first tool an attacker will use if able to login, since it " +"allows code execution." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:206 +msgid "" +"This feature will disable the ability for people to edit PHP files via the " +"dashboard." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:212 +msgid "Disable PHP File Editing" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:224 +msgid "Disable Ability To Edit PHP Files" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:227 +msgid "" +"Check this if you want to remove the ability for people to edit PHP files " +"via the WP dashboard" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:271 +msgid "" +"You have successfully saved the Prevent Access to Default WP Files " +"configuration." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:275 +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:115 +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:269 +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:480 +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:619 +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:106 +msgid "" +"Could not write to the .htaccess file. Please check the file permissions." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:280 +msgid "WordPress Files" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:283 +#, php-format +msgid "" +"This feature allows you to prevent access to files such as %s, %s and %s " +"which are delivered with all WP installations." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:284 +msgid "" +"By preventing access to these files you are hiding some key pieces of " +"information (such as WordPress version info) from potential hackers." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:289 +msgid "Prevent Access to Default WP Files" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:300 +msgid "Prevent Access to WP Default Install Files" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:303 +msgid "" +"Check this if you want to prevent access to readme.html, license.txt and wp-" +"config-sample.php." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:307 +msgid "Save Setting" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:331 +msgid "System Logs" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:334 +msgid "" +"Sometimes your hosting platform will produce error or warning logs in a file " +"called \"error_log\"." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:335 +msgid "" +"Depending on the nature and cause of the error or warning, your hosting " +"server can create multiple instances of this file in numerous directory " +"locations of your WordPress installation." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:336 +msgid "" +"By occassionally viewing the contents of these logs files you can keep " +"informed of any underlying problems on your system which you might need to " +"address." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:342 +msgid "View System Logs" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:347 +msgid "Enter System Log File Name" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:349 +msgid "Enter your system log file name. (Defaults to error_log)" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:352 +msgid "View Latest System Logs" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:354 +msgid "Loading..." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:371 +msgid "No system logs were found!" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:424 +msgid "Set Recommended Permissions" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:430 +msgid "No Action Required" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:470 +#, php-format +msgid "Showing latest entries of error_log file: %s" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:25 +msgid "Basic Firewall Rules" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:26 +msgid "Additional Firewall Rules" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:27 +msgid "5G Blacklist Firewall Rules" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:28 +msgid "Brute Force Prevention" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:111 +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:102 +#: all-in-one-wp-security/admin/wp-security-user-registration-menu.php:96 +msgid "Settings were successfully saved" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:120 +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:485 +msgid "Firewall Settings" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:127 +#, php-format +msgid "" +"This should not have any impact on your site's general functionality but if " +"you wish you can take a %s of your .htaccess file before proceeding." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:128 +msgid "" +"The features in this tab allow you to activate some basic firewall security " +"protection rules for your site." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:129 +msgid "" +"The firewall functionality is achieved via the insertion of special code " +"into your currently active .htaccess file." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:135 +msgid "Basic Firewall Settings" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:143 +msgid "Enable Basic Firewall Protection" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:146 +msgid "Check this if you want to apply basic firewall protection to your site." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:150 +msgid "" +"This setting will implement the following basic firewall protection " +"mechanisms on your site:" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:151 +msgid "1) Protect your htaccess file by denying access to it." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:152 +msgid "2) Disable the server signature." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:153 +msgid "3) Limit file upload size (10MB)." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:154 +msgid "4) Protect your wp-config.php file by denying access to it." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:155 +msgid "" +"The above firewall features will be applied via your .htaccess file and " +"should not affect your site's overall functionality." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:156 +msgid "" +"You are still advised to take a backup of your active .htaccess file just in " +"case." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:165 +msgid "WordPress Pingback Vulnerability Protection" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:173 +msgid "Enable Pingback Protection" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:176 +msgid "" +"Check this if you are not using the WP XML-RPC functionality and you want to " +"enable protection against WordPress pingback vulnerabilities." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:180 +msgid "" +"This setting will add a directive in your .htaccess to disable access to the " +"WordPress xmlrpc.php file which is responsible for the XML-RPC functionality " +"such as pingbacks in WordPress." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:181 +msgid "" +"Hackers can exploit various pingback vulnerabilities in the WordPress XML-" +"RPC API in a number of ways such as:" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:182 +msgid "1) Denial of Service (DoS) attacks" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:183 +msgid "2) Hacking internal routers." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:184 +msgid "3) Scanning ports in internal networks to get info from various hosts." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:185 +msgid "" +"Apart from the security protection benefit, this feature may also help " +"reduce load on your server, particularly if your site currently has a lot of " +"unwanted traffic hitting the XML-RPC API on your installation." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:186 +msgid "" +"NOTE: You should only enable this feature if you are not currently using the " +"XML-RPC functionality on your WordPress installation." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:193 +msgid "Save Basic Firewall Settings" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:265 +msgid "" +"You have successfully saved the Additional Firewall Protection configuration" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:279 +msgid "Additional Firewall Protection" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:283 +#, php-format +msgid "" +"Due to the nature of the code being inserted to the .htaccess file, this " +"feature may break some functionality for certain plugins and you are " +"therefore advised to take a %s of .htaccess before applying this " +"configuration." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:285 +msgid "" +"This feature allows you to activate more advanced firewall settings to your " +"site." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:286 +msgid "" +"The advanced firewall rules are applied via the insertion of special code to " +"your currently active .htaccess file." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:295 +msgid "Listing of Directory Contents" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:304 +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:80 +msgid "Disable Index Views" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:307 +msgid "Check this if you want to disable directory and file listing." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:312 +msgid "" +"By default, an Apache server will allow the listing of the contents of a " +"directory if it doesn't contain an index.php file." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:314 +msgid "This feature will prevent the listing of contents for all directories." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:316 +msgid "" +"NOTE: In order for this feature to work \"AllowOverride\" must be enabled in " +"your httpd.conf file. Ask your hosting provider to check this if you don't " +"have access to httpd.conf" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:325 +msgid "Trace and Track" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:334 +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:81 +msgid "Disable Trace and Track" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:337 +msgid "Check this if you want to disable trace and track." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:342 +msgid "" +"HTTP Trace attack (XST) can be used to return header requests and grab " +"cookies and other information." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:344 +msgid "" +"This hacking technique is usually used together with cross site scripting " +"attacks (XSS)." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:346 +msgid "" +"Disabling trace and track on your site will help prevent HTTP Trace attacks." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:355 +msgid "Proxy Comment Posting" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:365 +msgid "Forbid Proxy Comment Posting" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:368 +msgid "Check this if you want to forbid proxy comment posting." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:373 +msgid "" +"This setting will deny any requests that use a proxy server when posting " +"comments." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:374 +msgid "" +"By forbidding proxy comments you are in effect eliminating some SPAM and " +"other proxy requests." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:383 +msgid "Bad Query Strings" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:393 +msgid "Deny Bad Query Strings" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:396 +msgid "This will help protect you against malicious queries via XSS." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:401 +msgid "" +"This feature will write rules in your .htaccess file to prevent malicious " +"string attacks on your site using XSS." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:402 +msgid "" +"NOTE: Some of these strings might be used for plugins or themes and hence " +"this might break some functionality." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:403 +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:433 +msgid "" +"You are therefore strongly advised to take a backup of your active .htaccess " +"file before applying this feature." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:412 +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:84 +msgid "Advanced Character String Filter" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:422 +msgid "Enable Advanced Character String Filter" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:425 +msgid "This will block bad character matches from XSS." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:430 +msgid "" +"This is an advanced character string filter to prevent malicious string " +"attacks on your site coming from Cross Site Scripting (XSS)." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:431 +msgid "" +"This setting matches for common malicious string patterns and exploits and " +"will produce a 403 error for the hacker attempting the query." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:432 +msgid "NOTE: Some strings for this setting might break some functionality." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:441 +msgid "Save Additional Firewall Settings" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:476 +msgid "You have successfully saved the 5G Firewall Protection configuration" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:489 +#, php-format +msgid "" +"This feature allows you to activate the 5G firewall security protection " +"rules designed and produced by %s." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:490 +msgid "" +"The 5G Blacklist is a simple, flexible blacklist that helps reduce the " +"number of malicious URL requests that hit your website." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:491 +msgid "" +"The added advantage of applying the 5G firewall to your site is that it has " +"been tested and confirmed by the people at PerishablePress.com to be an " +"optimal and least disruptive set of .htaccess security rules for general WP " +"sites running on an Apache server or similar." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:492 +#, php-format +msgid "" +"Therefore the 5G firewall rules should not have any impact on your site's " +"general functionality but if you wish you can take a %s of your .htaccess " +"file before proceeding." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:498 +msgid "5G Blacklist/Firewall Settings" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:510 +msgid "Enable 5G Firewall Protection" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:513 +msgid "" +"Check this if you want to apply the 5G Blacklist firewall protection from " +"perishablepress.com to your site." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:517 +msgid "" +"This setting will implement the 5G security firewall protection mechanisms " +"on your site which include the following things:" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:518 +msgid "1) Block forbidden characters commonly used in exploitative attacks." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:519 +msgid "2) Block malicious encoded URL characters such as the \".css(\" string." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:520 +msgid "" +"3) Guard against the common patterns and specific exploits in the root " +"portion of targeted URLs." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:521 +msgid "" +"4) Stop attackers from manipulating query strings by disallowing illicit " +"characters." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:522 +msgid "....and much more." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:528 +msgid "Save 5G Firewall Settings" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:556 +msgid "" +"Settings have not been saved - your secret word must consist only of " +"alphanumeric characters, ie, letters and/or numbers only!" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:574 +msgid "" +"You have successfully enabled the cookie based brute force prevention feature" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:575 +msgid "" +"From now on you will need to log into your WP Admin using the following URL:" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:577 +msgid "" +"It is important that you save this URL value somewhere in case you forget " +"it, OR," +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:578 +#, php-format +msgid "simply remember to add a \"?%s=1\" to your current site URL address." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:584 +msgid "" +"You have successfully saved cookie based brute force prevention feature " +"settings." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:629 +msgid "Brute Force Prevention Firewall Settings" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:634 +msgid "" +"A Brute Force Attack is when a hacker tries many combinations of usernames " +"and passwords until they succeed in guessing the right combination." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:635 +msgid "" +"Due to the fact that at any one time there may be many concurrent login " +"attempts occurring on your site via malicious automated robots, this also " +"has a negative impact on your server's memory and performance." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:636 +msgid "" +"The features in this tab will stop the majority of Brute Force Login Attacks " +"at the .htaccess level thus providing even better protection for your WP " +"login page and also reducing the load on your server because the system does " +"not have to run PHP code to process the login attempts." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:643 +#, php-format +msgid "" +"Even though this feature should not have any impact on your site's general " +"functionality you are strongly encouraged to take a %s of your ." +"htaccess file before proceeding." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:644 +msgid "" +"If this feature is not used correctly, you can get locked out of your site. " +"A backup file will come in handy if that happens." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:645 +#, php-format +msgid "" +"To learn more about how to use this feature please watch the following %s." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:654 +msgid "Cookie Based Brute Force Login Prevention" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:665 +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:79 +msgid "Enable Brute Force Attack Prevention" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:668 +msgid "" +"Check this if you want to protect your login page from Brute Force Attack." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:673 +msgid "" +"This feature will deny access to your WordPress login page for all people " +"except those who have a special cookie in their browser." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:675 +msgid "To use this feature do the following:" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:677 +msgid "1) Enable the checkbox." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:679 +msgid "" +"2) Enter a secret word consisting of alphanumeric characters which will be " +"difficult to guess. This secret word will be useful whenever you need to " +"know the special URL which you will use to access the login page (see point " +"below)." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:681 +msgid "" +"3) You will then be provided with a special login URL. You will need to use " +"this URL to login to your WordPress site instead of the usual login URL. " +"NOTE: The system will deposit a special cookie in your browser which will " +"allow you access to the WordPress administration login page." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:683 +msgid "" +"Any person trying to access your login page who does not have the special " +"cookie in their browser will be automatically blocked." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:690 +msgid "Secret Word" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:692 +msgid "" +"Choose a secret word consisting of alphanumeric characters which you can use " +"to access your special URL. Your are highly encouraged to choose a word " +"which will be difficult to guess." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:696 +msgid "Re-direct URL" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:700 +msgid "" +"Specify a URL to redirect a hacker to when they try to access your WordPress " +"login page." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:707 +msgid "" +"The URL specified here can be any site's URL and does not have to be your " +"own. For example you can be as creative as you like and send hackers to the " +"CIA or NSA home page." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:709 +msgid "" +"This field will default to: http://127.0.0.1 if you do not enter a value." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:711 +msgid "Useful Tip:" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:713 +msgid "" +"It's a good idea to not redirect attempted brute force login attempts to " +"your site because it increases the load on your server." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:715 +msgid "" +"Redirecting a hacker or malicious bot back to \"http://127.0.0.1\" is ideal " +"because it deflects them back to their own local host and puts the load on " +"their server instead of yours." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:722 +msgid "My Site Has Posts Or Pages Which Are Password Protected" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:725 +msgid "" +"Check this if you are using the native WordPress password protection feature " +"for some or all of your blog posts or pages." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:730 +msgid "" +"In the cases where you are protecting some of your posts or pages using the " +"in-built WordPress password protection feature, a few extra lines of " +"directives and exceptions need to be added to your .htacces file so that " +"people trying to access pages are not automatically blocked." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:732 +msgid "" +"By enabling this checkbox the plugin will add the necessary rules and " +"exceptions to your .htacces file so that people trying to access these pages " +"are not automatically blocked." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:734 +msgid "Helpful Tip:" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:736 +msgid "" +"If you do not use the WordPress password protection feature for your posts " +"or pages then it is highly recommended that you leave this checkbox disabled." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:743 +msgid "My Site Has a Theme or Plugins Which Use AJAX" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:746 +msgid "Check this if your site uses AJAX functionality." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:751 +msgid "" +"In the cases where your WordPress installation has a theme or plugins which " +"use AJAX, a few extra lines of directives and exceptions need to be added to " +"your .htacces file to prevent AJAX requests from being automatically blocked " +"by the brute force prevention feature." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:753 +msgid "" +"By enabling this checkbox the plugin will add the necessary rules and " +"exceptions to your .htacces file so that AJAX operations will work as " +"expected." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:768 +msgid "The cookie test was successful. You can now enable this feature." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:771 +msgid "Save Feature Settings" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:778 +msgid "" +"The cookie test failed on this server. So this feature cannot be used on " +"this site." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:784 +msgid "" +"Before using this feature you are required to perform a cookie test first. " +"This is to make sure that your browser cookie is working correctly and that " +"you won't lock yourself out." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:786 +msgid "Perform Cookie Test" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-list-acct-activity.php:79 +#: all-in-one-wp-security/admin/wp-security-list-comment-spammer-ip.php:86 +#: all-in-one-wp-security/admin/wp-security-list-locked-ip.php:80 +#: all-in-one-wp-security/admin/wp-security-list-locked-ip.php:91 +#: all-in-one-wp-security/admin/wp-security-list-login-fails.php:78 +#: all-in-one-wp-security/admin/wp-security-list-registered-users.php:82 +#: all-in-one-wp-security/admin/wp-security-list-registered-users.php:93 +msgid "Please select some records using the checkboxes" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-list-acct-activity.php:107 +#: all-in-one-wp-security/admin/wp-security-list-login-fails.php:107 +msgid "The selected entries were deleted successfully!" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-list-acct-activity.php:120 +#: all-in-one-wp-security/admin/wp-security-list-login-fails.php:119 +msgid "The selected entry was deleted successfully!" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-list-comment-spammer-ip.php:139 +msgid "" +"The selected IP addresses were saved in the blacklist configuration settings." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-list-comment-spammer-ip.php:153 +msgid "" +"The .htaccess file was successfully modified to include the selected IP " +"addresses." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-list-comment-spammer-ip.php:159 +msgid "" +"NOTE: The .htaccess file was not modified because you have disabled the " +"\"Enable IP or User Agent Blacklisting\" check box." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-list-comment-spammer-ip.php:160 +#, php-format +msgid "" +"To block these IP addresses you will need to enable the above flag in the %s " +"menu" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-list-locked-ip.php:115 +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:748 +msgid "The selected IP ranges were unlocked successfully!" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-list-locked-ip.php:124 +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:757 +msgid "The selected IP range was unlocked successfully!" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-list-registered-users.php:118 +msgid "The selected accounts were approved successfully!" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-list-registered-users.php:125 +msgid "The selected account was approved successfully!" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-list-registered-users.php:146 +msgid "The selected accounts were deleted successfully!" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-list-registered-users.php:154 +msgid "The selected account was deleted successfully!" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-maintenance-menu.php:22 +msgid "Visitor Lockout" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-maintenance-menu.php:88 +msgid "Site lockout feature settings saved!" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-maintenance-menu.php:93 +msgid "General Visitor Lockout" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-maintenance-menu.php:99 +msgid "" +"This feature allows you to put your site into \"maintenance mode\" by " +"locking down the front-end to all visitors except logged in users with super " +"admin privileges." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-maintenance-menu.php:100 +msgid "" +"Locking your site down to general visitors can be useful if you are " +"investigating some issues on your site or perhaps you might be doing some " +"maintenance and wish to keep out all traffic for security reasons." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-maintenance-menu.php:105 +msgid "Enable Front-end Lockout" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-maintenance-menu.php:108 +msgid "" +"Check this if you want all visitors except those who are logged in as " +"administrator to be locked out of the front-end of your site." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-maintenance-menu.php:112 +msgid "Enter a Message:" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-maintenance-menu.php:124 +msgid "" +"Enter a message you wish to display to visitors when your site is in " +"maintenance mode." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-maintenance-menu.php:131 +msgid "Save Site Lockout Settings" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:25 +msgid "General Settings" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:28 +msgid "WP Meta Info" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:95 +msgid "All the security features have been disabled successfully!" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:99 +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:126 +msgid "" +"Could not write to the .htaccess file. Please restore your .htaccess file " +"manually using the restore functionality in the \".htaccess File\"." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:104 +msgid "" +"Could not write to the wp-config.php. Please restore your wp-config.php file " +"manually using the restore functionality in the \"wp-config.php File\"." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:122 +msgid "All firewall rules have been disabled successfully!" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:136 +msgid "WP Security Plugin" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:138 +msgid "" +"Thank you for using our WordPress security plugin. There are a lot of " +"security features in this plugin." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:139 +msgid "" +"Go through each menu items and enable the security options to add more " +"security to your site. Start by activating the basic features first." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:140 +msgid "" +"It is a good practice to take a backup of your .htaccess file, database and " +"wp-config.php file before activating the security features. This plugin has " +"options that you can use to backup those resources easily." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:143 +msgid "Backup your database" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:144 +msgid "Backup .htaccess file" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:145 +msgid "Backup wp-config.php file" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:151 +msgid "Disable Security Features" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:157 +msgid "" +"If you think that some plugin functionality on your site is broken due to a " +"security feature you enabled in this plugin, then use the following option " +"to turn off all the security features of this plugin." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:161 +msgid "Disable All Security Features" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:167 +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:177 +msgid "Disable All Firewall Rules" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:173 +msgid "" +"This feature will disable all firewall rules which are currently active in " +"this plugin and it will also delete these rules from your .htacess file. Use " +"it if you think one of the firewall rules is causing an issue on your site." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:206 +msgid "" +"Your .htaccess file was successfully backed up! Using an FTP program go to " +"the \"backups\" directory of this plugin to save a copy of the file to your " +"computer." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:216 +msgid "" +"htaccess file rename failed during backup. Please check your root directory " +"for the backup file using FTP." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:222 +msgid "htaccess backup failed." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:237 +msgid "Please choose a .htaccess to restore from." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:253 +msgid "" +"htaccess file restore failed. Please attempt to restore the .htaccess " +"manually using FTP." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:257 +msgid "Your .htaccess file has successfully been restored!" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:263 +msgid "" +"htaccess Restore operation failed! Please check the contents of the file you " +"are trying to restore from." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:269 +msgid ".htaccess File Operations" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:272 +msgid "" +"Your \".htaccess\" file is a key component of your website's security and it " +"can be modified to implement various levels of protection mechanisms." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:273 +msgid "" +"This feature allows you to backup and save your currently active .htaccess " +"file should you need to re-use the the backed up file in the future." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:274 +msgid "" +"You can also restore your site's .htaccess settings using a backed up ." +"htaccess file." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:288 +msgid "Save the current .htaccess file" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:292 +msgid "" +"Click the button below to backup and save the currently active .htaccess " +"file." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:293 +msgid "Backup .htaccess File" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:297 +msgid "Restore from a backed up .htaccess file" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:303 +msgid ".htaccess file to restore from" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:309 +msgid "" +"After selecting your file, click the button below to restore your site using " +"the backed up htaccess file (htaccess_backup.txt)." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:315 +msgid "Restore .htaccess File" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:319 +msgid "View Contents of the currently active .htaccess file" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:348 +msgid "Please choose a wp-config.php file to restore from." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:364 +msgid "" +"wp-config.php file restore failed. Please attempt to restore this file " +"manually using FTP." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:368 +msgid "Your wp-config.php file has successfully been restored!" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:374 +msgid "" +"wp-config.php Restore operation failed! Please check the contents of the " +"file you are trying to restore from." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:380 +msgid "wp-config.php File Operations" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:383 +msgid "" +"Your \"wp-config.php\" file is one of the most important in your WordPress " +"installation. It is a primary configuration file and contains crucial things " +"such as details of your database and other critical components." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:384 +msgid "" +"This feature allows you to backup and save your currently active wp-config." +"php file should you need to re-use the the backed up file in the future." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:385 +msgid "" +"You can also restore your site's wp-config.php settings using a backed up wp-" +"config.php file." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:399 +msgid "Save the current wp-config.php file" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:403 +msgid "" +"Click the button below to backup and download the contents of the currently " +"active wp-config.php file." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:404 +msgid "Backup wp-config.php File" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:409 +msgid "Restore from a backed up wp-config file" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:415 +msgid "wp-config file to restore from" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:421 +msgid "" +"After selecting your file click the button below to restore your site using " +"the backed up wp-config file (wp-config.php.backup.txt)." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:427 +msgid "Restore wp-config File" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:431 +msgid "View Contents of the currently active wp-config.php file" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:466 +msgid "WP Generator Meta Tag" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:469 +msgid "" +"Wordpress generator automatically adds some meta information inside the " +"\"head\" tags of every page on your site's front end. Below is an example of " +"this:" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:471 +msgid "" +"The above meta information shows which version of WordPress your site is " +"currently running and thus can help hackers or crawlers scan your site to " +"see if you have an older version of WordPress or one with a known exploit." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:472 +msgid "" +"This feature will allow you to remove the WP generator meta info from your " +"site's pages." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:478 +msgid "WP Generator Meta Info" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:490 +msgid "Remove WP Generator Meta Info" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:493 +msgid "" +"Check this if you want to remove the meta info produced by WP Generator from " +"all pages" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:23 +msgid "Comment SPAM" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:24 +msgid "Comment SPAM IP Monitoring" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:111 +msgid "Comment SPAM Settings" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:116 +msgid "Add Captcha To Comments Form" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:120 +msgid "" +"This feature will add a simple math captcha field in the WordPress comments " +"form." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:137 +msgid "Enable Captcha On Comment Forms" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:140 +msgid "Check this if you want to insert a captcha field on the comment forms" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:148 +msgid "Block Spambot Comments" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:152 +msgid "" +"A large portion of WordPress blog comment SPAM is mainly produced by " +"automated bots and not necessarily by humans. " +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:153 +msgid "" +"This feature will greatly minimize the useless and unecessary traffic and " +"load on your server resulting from SPAM comments by blocking all comment " +"requests which do not originate from your domain." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:170 +msgid "Block Spambots From Posting Comments" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:173 +msgid "" +"Check this if you want to apply a firewall rule which will block comments " +"originating from spambots." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:177 +msgid "" +"This feature will implement a firewall rule to block all comment attempts " +"which do not originate from your domain." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:178 +msgid "" +"A legitimate comment is one which is submitted by a human who physically " +"fills out the comment form and clicks the submit button. For such events, " +"the HTTP_REFERRER is always set to your own domain." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:179 +msgid "" +"A comment submitted by a spambot is done by directly calling the comments." +"php file, which usually means that the HTTP_REFERRER value is not your " +"domain and often times empty." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:180 +msgid "" +"This feature will check and block comment requests which are not referred by " +"your domain thus greatly reducing your overall blog SPAM and PHP requests " +"done by the server to process these comments." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:207 +msgid "Nonce check failed for list SPAM comment IPs!" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:213 +msgid "" +"You entered a non numeric value for the minimum SPAM comments per IP field. " +"It has been set to the default value." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:225 +#, php-format +msgid "" +"Displaying results for IP addresses which have posted a minimum of %s SPAM " +"comments" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:241 +msgid "" +"This tab displays a list of the IP addresses of the people or bots who have " +"left SPAM comments on your site." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:242 +msgid "" +"This information can be handy for identifying the most persistent IP " +"addresses or ranges used by spammers." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:243 +msgid "" +"By inspecting the IP address data coming from spammers you will be in a " +"better position to determine which addresses or address ranges you should " +"block by adding them to your blacklist." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:244 +msgid "" +"To add one or more of the IP addresses displayed in the table below to your " +"blacklist, simply click the \"Block\" link for the individual row or select " +"more than one address \n" +" using the checkboxes and then choose the \"block" +"\" option from the Bulk Actions dropdown list and click the \"Apply\" button." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:250 +msgid "List SPAMMER IP Addresses" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:256 +msgid "Minimum number of SPAM comments per IP" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:258 +msgid "" +"This field allows you to list only those IP addresses which have been used " +"to post X or more SPAM comments." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:262 +msgid "" +"Example 1: Setting this value to \"0\" or \"1\" will list ALL IP addresses " +"which were used to submit SPAM comments." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:263 +msgid "" +"Example 2: Setting this value to \"5\" will list only those IP addresses " +"which were used to submit 5 SPAM comments or more on your site." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:270 +msgid "Find IP Addresses" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:274 +msgid "SPAMMER IP Address Results" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:280 +#: all-in-one-wp-security/classes/wp-security-utility.php:150 +msgid "" +"The plugin has detected that you are using a Multi-Site WordPress " +"installation." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:281 +msgid "Only the \"superadmin\" can block IP addresses from the main site." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:282 +msgid "" +"Take note of the IP addresses you want blocked and ask the superadmin to add " +"these to the blacklist using the \"Blacklist Manager\" on the main site." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:29 +msgid "WP Username" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:30 +msgid "Display Name" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:31 +msgid "Password" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:85 +msgid "Admin User Security" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:88 +msgid "" +"By default, WordPress sets the administrator username to \"admin\" at " +"installation time." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:89 +msgid "" +"A lot of hackers try to take advantage of this information by attempting " +"\"Brute Force Login Attacks\" where they repeatedly try to guess the " +"password by using \"admin\" for username." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:90 +msgid "" +"From a security perspective, changing the default \"admin\" user name is one " +"of the first and smartest things you should do on your site." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:91 +msgid "" +"This feature will allow you to change your default \"admin\" user name to a " +"more secure name of your choosing." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:98 +msgid "List of Administrator Accounts" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:107 +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:33 +msgid "Change Admin Username" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:115 +msgid "" +"Your site currently has an account which uses the default \"admin\" " +"username. \n" +" It is highly recommended that you change this name to " +"something else. \n" +" Use the following field to change the admin username." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:123 +msgid "New Admin Username" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:125 +msgid "Choose a new username for admin." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:129 +msgid "Change Username" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:131 +msgid "" +"NOTE: If you are currently logged in as \"admin\" you will be automatically " +"logged out after changing your username and will be required to log back in." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:138 +msgid "No action required! " +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:140 +msgid "" +"Your site does not have any account which uses the default \"admin\" " +"username. " +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:141 +msgid "This is good security practice." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:153 +msgid "Display Name Security" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:156 +msgid "" +"When you submit a post or answer a comment, WordPress will usually display " +"your \"nickname\"." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:157 +msgid "" +"By default the nickname is set to the login (or user) name of your account." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:158 +msgid "" +"From a security perspective, leaving your nickname the same as your user " +"name is bad practice because it gives a hacker at least half of your " +"account's login credentials." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:159 +msgid "" +"Therefore to further tighten your site's security you are advised to change " +"your nickname and Display name to be " +"different from your Username." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:165 +msgid "Modify Accounts With Identical Login Name & Display Name" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:174 +msgid "" +"Your site currently has the following accounts which have an identical login " +"name and display name." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:175 +msgid "Click on the link to edit the settings of that particular user account" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:190 +msgid "No action required." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:191 +msgid "" +"Your site does not have a user account where the display name is identical " +"to the username." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:202 +msgid "Password Tool" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:205 +msgid "" +"Poor password selection is one of the most common weak points of many sites " +"and is usually the first thing a hacker will try to exploit when attempting " +"to break into your site." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:206 +msgid "" +"Many people fall into the trap of using a simple word or series of numbers " +"as their password. Such a predictable and simple password would take a " +"competent hacker merely minutes to guess your password by using a simple " +"script which cycles through the easy and most common combinations." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:207 +msgid "" +"The longer and more complex your password is the harder it is for hackers to " +"\"crack\" because more complex passwords require much greater computing " +"power and time." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:208 +msgid "" +"This section contains a useful password strength tool which you can use to " +"check whether your password is sufficiently strong enough." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:213 +msgid "Password Strength Tool" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:218 +msgid "Start typing a password." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:221 +msgid "It would take a desktop PC approximately" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:222 +msgid "1 sec" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:222 +msgid "to crack your password!" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:227 +msgid "Password Strength" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:243 +msgid "Nonce check failed on admin username change operation!" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:250 +msgid "Username " +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:250 +msgid " already exists. Please enter another value. " +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:266 +msgid "The database update operation of the user account failed!" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:293 +msgid "You entered an invalid username. Please enter another value. " +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:297 +msgid "Please enter a value for your username. " +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:304 +msgid "Username Successfully Changed!" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:324 +msgid "Account Login Name" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:28 +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:41 +msgid "Login Captcha" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:29 +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:407 +msgid "Login Whitelist" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:30 +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:519 +msgid "Failed Login Records" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:31 +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:47 +msgid "Force Logout" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:32 +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:653 +msgid "Account Activity Logs" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:100 +msgid "" +"You entered a non numeric value for the max login attempts field. It has " +"been set to the default value." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:107 +msgid "" +"You entered a non numeric value for the login retry time period field. It " +"has been set to the default value." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:114 +msgid "" +"You entered a non numeric value for the lockout time length field. It has " +"been set to the default value." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:159 +msgid "Login Lockdown Configuration" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:163 +msgid "One of the ways hackers try to compromise sites is via a " +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:163 +msgid "Brute Force Login Attack" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:164 +msgid "" +"This is where attackers use repeated login attempts until they guess the " +"password." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:165 +msgid "" +"Apart from choosing strong passwords, monitoring and blocking IP addresses " +"which are involved in repeated login failures in a short period of time is a " +"very effective way to stop these types of attacks." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:166 +#, php-format +msgid "" +"You may also want to checkout our %s feature for another secure way to " +"protect against these types of attacks." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:171 +msgid "Login Lockdown Options" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:183 +msgid "Enable Login Lockdown Feature" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:186 +msgid "" +"Check this if you want to enable the login lockdown feature and apply the " +"settings below" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:190 +msgid "Max Login Attempts" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:192 +msgid "" +"Set the value for the maximum login retries before IP address is locked out" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:196 +msgid "Login Retry Time Period (min)" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:198 +msgid "" +"If the maximum number of failed login attempts for a particular IP address " +"occur within this time period the plugin will lock out that address" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:202 +msgid "Time Length of Lockout (min)" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:204 +msgid "" +"Set the length of time for which a particular IP address will be prevented " +"from logging in" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:208 +msgid "Display Generic Error Message" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:211 +msgid "" +"Check this if you want to show a generic error message when a login attempt " +"fails" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:215 +msgid "Instantly Lockout Invalid Usernames" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:218 +msgid "" +"Check this if you want to instantly lockout login attempts with usernames " +"which do not exist on your system" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:223 +msgid "Notify By Email" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:226 +msgid "" +"Check this if you want to receive an email when someone has been locked out " +"due to maximum failed login attempts" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:236 +msgid "Currently Locked Out IP Address Ranges" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:290 +msgid "" +"This feature allows you to add a captcha form on the WordPress login page." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:291 +msgid "" +"Users who attempt to login will also need to enter the answer to a simple " +"mathematical question - if they enter the wrong answer, the plugin will not " +"allow them login even if they entered the correct username and password." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:292 +msgid "" +"Therefore, adding a captcha form on the login page is another effective yet " +"simple \"Brute Force\" prevention technique." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:298 +msgid "Login Form Captcha Settings" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:309 +msgid "Enable Captcha On Login Page" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:312 +msgid "Check this if you want to insert a captcha form on the login page" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:318 +msgid "Lost Password Form Captcha Settings" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:328 +msgid "Enable Captcha On Lost Password Page" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:331 +msgid "" +"Check this if you want to insert a captcha form on the lost password page" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:353 +msgid "Nonce check failed for save whitelist settings!" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:410 +msgid "" +"The All In One WP Security Whitelist feature gives you the option of only " +"allowing certain IP addresses or ranges to have access to your WordPress " +"login page." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:411 +msgid "" +"This feature will deny login access for all IP addresses which are not in " +"your whitelist as configured in the settings below." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:412 +msgid "" +"The plugin achieves this by writing the appropriate directives to your ." +"htaccess file." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:413 +msgid "" +"By allowing/blocking IP addresses via the .htaccess file your are using the " +"most secure first line of defence because login access will only be granted " +"to whitelisted IP addresses and other addresses will be blocked as soon as " +"they try to access your login page." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:420 +#, php-format +msgid "" +"Attention: If in addition to enabling the white list feature, you also have " +"the %s feature enabled, you will still need to use your secret word " +"in the URL when trying to access your WordPress login page." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:421 +msgid "" +"These features are NOT functionally related. Having both of them enabled on " +"your site means you are creating 2 layers of security." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:426 +msgid "Login IP Whitelist Settings" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:437 +msgid "Enable IP Whitelisting" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:440 +msgid "" +"Check this if you want to enable the whitelisting of selected IP addresses " +"specified in the settings below" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:444 +msgid "Your Current IP Address" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:447 +msgid "" +"You can copy and paste this address in the text box below if you want to " +"include it in your login whitelist." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:451 +msgid "Enter Whitelisted IP Addresses:" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:455 +msgid "" +"Enter one or more IP addresses or IP ranges you wish to include in your " +"whitelist. Only the addresses specified here will have access to the " +"WordPress login page." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:485 +msgid "Nonce check failed for delete all failed login records operation!" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:494 +msgid "User Login Feature - Delete all failed login records operation failed!" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:498 +msgid "All records from the Failed Logins table were deleted successfully!" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:513 +msgid "This tab displays the failed login attempts for your site." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:514 +msgid "" +"The information below can be handy if you need to do security investigations " +"because it will show you the IP range, username and ID (if applicable) and " +"the time/date of the failed login attempt." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:535 +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:544 +msgid "Delete All Failed Login Records" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:541 +msgid "" +"Click this button if you wish to delete all failed login records in one go." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:569 +msgid "" +"You entered a non numeric value for the logout time period field. It has " +"been set to the default value." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:597 +msgid "" +"Setting an expiry period for your WP administration session is a simple way " +"to protect against unauthorized access to your site from your computer." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:598 +msgid "" +"This feature allows you to specify a time period in minutes after which the " +"admin session will expire and the user will be forced to log back in." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:603 +msgid "Force User Logout Options" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:615 +msgid "Enable Force WP User Logout" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:618 +msgid "" +"Check this if you want to force a wp user to be logged out after a " +"configured amount of time" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:622 +msgid "Logout the WP User After XX Minutes" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:624 +msgid "" +"(Minutes) The user will be forced to log back in after this time period has " +"elapased." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:647 +msgid "" +"This tab displays the login activity for WordPress admin accounts registered " +"with your site." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:648 +msgid "" +"The information below can be handy if you need to do security investigations " +"because it will show you the last 50 recent login events by username, IP " +"address and time/date." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:685 +msgid "Nonce check failed for users logged in list!" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:698 +msgid "Refresh Logged In User Data" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:702 +msgid "Refresh Data" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:708 +msgid "This tab displays all users who are currently logged into your site." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:709 +msgid "" +"If you suspect there is a user or users who are logged in which should not " +"be, you can block them by inspecting the IP addresses from the data below " +"and adding them to your blacklist." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:714 +msgid "Currently Logged In Users" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:779 +msgid "The selected records were deleted successfully!" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:788 +msgid "The selected record was deleted successfully!" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-registration-menu.php:23 +msgid "Manual Approval" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-registration-menu.php:24 +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:53 +msgid "Registration Captcha" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-registration-menu.php:112 +msgid "User Registration Settings" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-registration-menu.php:116 +msgid "Manually Approve New Registrations" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-registration-menu.php:120 +msgid "" +"If your site allows people to create their own accounts via the WordPress " +"registration form, then you can minimize SPAM or bogus registrations by " +"manually approving each registration." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-registration-menu.php:121 +msgid "" +"This feature will automatically set a newly registered account to \"pending" +"\" until the administrator activates it. Therefore undesirable registrants " +"will be unable to log in without your express approval." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-registration-menu.php:122 +msgid "" +"You can view all accounts which have been newly registered via the handy " +"table below and you can also perform bulk activation/deactivation/deletion " +"tasks on each account." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-registration-menu.php:138 +msgid "Enable manual approval of new registrations" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-registration-menu.php:141 +msgid "" +"Check this if you want to automatically disable all newly registered " +"accounts so that you can approve them manually." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-registration-menu.php:150 +msgid "Approve Registered Users" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-registration-menu.php:195 +msgid "" +"This feature allows you to add a captcha form on the WordPress registration " +"page." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-registration-menu.php:196 +msgid "" +"Users who attempt to register will also need to enter the answer to a simple " +"mathematical question - if they enter the wrong answer, the plugin will not " +"allow them to register." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-registration-menu.php:197 +msgid "" +"Therefore, adding a captcha form on the registration page is another " +"effective yet simple SPAM registration prevention technique." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-registration-menu.php:202 +msgid "Registration Page Captcha Settings" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-registration-menu.php:214 +msgid "Enable Captcha On Registration Page" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-registration-menu.php:217 +msgid "" +"Check this if you want to insert a captcha form on the WordPress user " +"registration page (if you allow user registration)." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-whois-menu.php:22 +msgid "WhoIS Lookup" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-whois-menu.php:74 +msgid "WHOIS Lookup Information" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-whois-menu.php:77 +msgid "" +"This feature allows you to look up more detailed information about an IP " +"address or domain name by querying the WHOIS API." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-whois-menu.php:83 +msgid "Perform a WHOIS Lookup for an IP or Domain Name" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-whois-menu.php:89 +msgid "Enter IP Address or Domain Name" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-whois-menu.php:91 +msgid "" +"Enter an IP address or domain name. Example: 111.11.12.13 OR some-domain-" +"name.com" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-whois-menu.php:95 +msgid "Perform IP or Domain Lookup" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-whois-menu.php:115 +msgid "WHOIS lookup successfully completed. Please see the results below:" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-whois-menu.php:127 +msgid "" +"You have entered an incorrectly formatted IP address or domain name. Please " +"try again." +msgstr "" + +#: all-in-one-wp-security/admin/general/wp-security-list-table.php:178 +msgid "No items found." +msgstr "" + +#: all-in-one-wp-security/admin/general/wp-security-list-table.php:281 +msgid "Bulk Actions" +msgstr "" + +#: all-in-one-wp-security/admin/general/wp-security-list-table.php:291 +msgid "Apply" +msgstr "" + +#: all-in-one-wp-security/admin/general/wp-security-list-table.php:365 +msgid "Show all dates" +msgstr "" + +#: all-in-one-wp-security/admin/general/wp-security-list-table.php:378 +#, php-format +msgid "%1$s %2$d" +msgstr "" + +#: all-in-one-wp-security/admin/general/wp-security-list-table.php:394 +msgid "List View" +msgstr "" + +#: all-in-one-wp-security/admin/general/wp-security-list-table.php:395 +msgid "Excerpt View" +msgstr "" + +#: all-in-one-wp-security/admin/general/wp-security-list-table.php:421 +#, php-format +msgid "%s pending" +msgstr "" + +#: all-in-one-wp-security/admin/general/wp-security-list-table.php:653 +msgid "Select All" +msgstr "" + +#: all-in-one-wp-security/classes/wp-security-backup.php:177 +msgid "All In One WP Security - Site Database Backup" +msgstr "" + +#: all-in-one-wp-security/classes/wp-security-backup.php:179 +msgid "Attached is your latest DB backup file for site URL" +msgstr "" + +#: all-in-one-wp-security/classes/wp-security-backup.php:179 +msgid " generated on" +msgstr "" + +#: all-in-one-wp-security/classes/wp-security-captcha.php:12 +msgid "Please enter an answer in digits:" +msgstr "Kérjük, adja meg a választ számjegyekkel:" + +#: all-in-one-wp-security/classes/wp-security-captcha.php:91 +msgid "one" +msgstr "egy" + +#: all-in-one-wp-security/classes/wp-security-captcha.php:92 +msgid "two" +msgstr "kettÅ‘" + +#: all-in-one-wp-security/classes/wp-security-captcha.php:93 +msgid "three" +msgstr "három" + +#: all-in-one-wp-security/classes/wp-security-captcha.php:94 +msgid "four" +msgstr "négy" + +#: all-in-one-wp-security/classes/wp-security-captcha.php:95 +msgid "five" +msgstr "öt" + +#: all-in-one-wp-security/classes/wp-security-captcha.php:96 +msgid "six" +msgstr "hat" + +#: all-in-one-wp-security/classes/wp-security-captcha.php:97 +msgid "seven" +msgstr "hét" + +#: all-in-one-wp-security/classes/wp-security-captcha.php:98 +msgid "eight" +msgstr "nyolc" + +#: all-in-one-wp-security/classes/wp-security-captcha.php:99 +msgid "nine" +msgstr "kilenc" + +#: all-in-one-wp-security/classes/wp-security-captcha.php:100 +msgid "ten" +msgstr "tíz" + +#: all-in-one-wp-security/classes/wp-security-captcha.php:101 +msgid "eleven" +msgstr "tizenegy" + +#: all-in-one-wp-security/classes/wp-security-captcha.php:102 +msgid "twelve" +msgstr "tizenkettÅ‘" + +#: all-in-one-wp-security/classes/wp-security-captcha.php:103 +msgid "thirteen" +msgstr "tizenhárom" + +#: all-in-one-wp-security/classes/wp-security-captcha.php:104 +msgid "fourteen" +msgstr "tizennégy" + +#: all-in-one-wp-security/classes/wp-security-captcha.php:105 +msgid "fifteen" +msgstr "tizenöt" + +#: all-in-one-wp-security/classes/wp-security-captcha.php:106 +msgid "sixteen" +msgstr "tizenhat" + +#: all-in-one-wp-security/classes/wp-security-captcha.php:107 +msgid "seventeen" +msgstr "tizenhét" + +#: all-in-one-wp-security/classes/wp-security-captcha.php:108 +msgid "eighteen" +msgstr "tizennyolc" + +#: all-in-one-wp-security/classes/wp-security-captcha.php:109 +msgid "nineteen" +msgstr "tizenkilenc" + +#: all-in-one-wp-security/classes/wp-security-captcha.php:110 +msgid "twenty" +msgstr "húsz" + +#: all-in-one-wp-security/classes/wp-security-file-scan.php:58 +msgid "All In One WP Security - File change detected!" +msgstr "" + +#: all-in-one-wp-security/classes/wp-security-file-scan.php:60 +msgid "A file change was detected on your system for site URL" +msgstr "" + +#: all-in-one-wp-security/classes/wp-security-file-scan.php:60 +msgid ". Scan was generated on" +msgstr "" + +#: all-in-one-wp-security/classes/wp-security-file-scan.php:61 +msgid "Login to your site to view the scan details." +msgstr "" + +#: all-in-one-wp-security/classes/wp-security-general-init-tasks.php:158 +msgid "Please enter an answer in the CAPTCHA field." +msgstr "Kérjük adja meg a választ a CAPTCHA mezÅ‘ben." + +#: all-in-one-wp-security/classes/wp-security-general-init-tasks.php:168 +msgid "" +"Error: You entered an incorrect CAPTCHA answer. Please go back and try again." +msgstr "" +"Hiba: Helytelen CAPTCHA választ adott meg. Kérjük menjen vissza és próbálja " +"meg újból." + +#: all-in-one-wp-security/classes/wp-security-general-init-tasks.php:196 +#: all-in-one-wp-security/classes/wp-security-user-login.php:63 +#: all-in-one-wp-security/classes/wp-security-user-login.php:66 +#: all-in-one-wp-security/classes/wp-security-user-registration.php:59 +msgid "ERROR: Your answer was incorrect - please try again." +msgstr "" +"HIBA: A válasz helytelen - kérjük, próbálja meg újból." + +#: all-in-one-wp-security/classes/wp-security-user-login.php:39 +msgid "" +"ERROR: Login failed because your IP address has been " +"blocked.\n" +" Please contact the administrator." +msgstr "" +"HIBA: A bejelentkezés sikertelen, mert az IP címe blokkolva " +"van.\n" +" Kérjük lépjen kapcsolatba az " +"adminisztrátorral." + +#: all-in-one-wp-security/classes/wp-security-user-login.php:76 +msgid "ERROR: The username field is empty." +msgstr "HIBA: A felhasználó mezÅ‘ üres." + +#: all-in-one-wp-security/classes/wp-security-user-login.php:80 +msgid "ERROR: The password field is empty." +msgstr "HIBA: A jelszó mezÅ‘ üres." + +#: all-in-one-wp-security/classes/wp-security-user-login.php:100 +#: all-in-one-wp-security/classes/wp-security-user-login.php:126 +msgid "ERROR: Invalid login credentials." +msgstr "HIBA: Érvénytelen bejelentkezési adatok." + +#: all-in-one-wp-security/classes/wp-security-user-login.php:103 +msgid "ERROR: Invalid username." +msgstr "HIBA: Érvénytelen felhasználónév." + +#: all-in-one-wp-security/classes/wp-security-user-login.php:129 +#, php-format +msgid "" +"ERROR: Incorrect password. Lost your password?" +msgstr "" +"HIBA: Érvénytelen jelszó. Elfelejtett jelszó?" + +#: all-in-one-wp-security/classes/wp-security-user-login.php:140 +msgid "" +"ACCOUNT PENDING: Your account is currently not active. An " +"administrator needs to activate your account before you can login." +msgstr "" +"FIÓK FÃœGGÅBEN: A fiókja jelenleg nem aktív. Egy " +"adminisztrátornak kell aktiválnia, mielÅ‘tt belépne." + +#: all-in-one-wp-security/classes/wp-security-user-login.php:263 +msgid "Site Lockout Notification" +msgstr "" + +#: all-in-one-wp-security/classes/wp-security-user-login.php:264 +msgid "" +"A lockdown event has occurred due to too many failed login attempts or " +"invalid username:" +msgstr "" + +#: all-in-one-wp-security/classes/wp-security-user-login.php:265 +msgid "Username: " +msgstr "" + +#: all-in-one-wp-security/classes/wp-security-user-login.php:266 +msgid "IP Address: " +msgstr "" + +#: all-in-one-wp-security/classes/wp-security-user-login.php:267 +msgid "IP Range: " +msgstr "" + +#: all-in-one-wp-security/classes/wp-security-user-login.php:268 +msgid "" +"Log into your site's WordPress administration panel to see the duration of " +"the lockout or to unlock the user." +msgstr "" + +#: all-in-one-wp-security/classes/wp-security-user-login.php:425 +#, php-format +msgid "" +"Your session has expired because it has been over %d minutes since your last " +"login." +msgstr "" + +#: all-in-one-wp-security/classes/wp-security-user-login.php:426 +#: all-in-one-wp-security/classes/wp-security-user-login.php:430 +msgid "Please log back in to continue." +msgstr "" + +#: all-in-one-wp-security/classes/wp-security-user-login.php:429 +msgid "You were logged out because you just changed the \"admin\" username." +msgstr "" + +#: all-in-one-wp-security/classes/wp-security-utility-ip-address.php:79 +#: all-in-one-wp-security/classes/wp-security-utility-ip-address.php:98 +#: all-in-one-wp-security/classes/wp-security-utility-ip-address.php:113 +#: all-in-one-wp-security/classes/wp-security-utility-ip-address.php:128 +msgid " is not a valid ip address format." +msgstr "" + +#: all-in-one-wp-security/classes/wp-security-utility-ip-address.php:136 +msgid "You cannot ban your own IP address: " +msgstr "" + +#: all-in-one-wp-security/classes/wp-security-utility.php:151 +msgid "" +"This feature can only be configured by the \"superadmin\" on the main site." +msgstr "" + +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:29 +msgid "Remove WP Generatore Meta Tag" +msgstr "" + +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:35 +msgid "Change Display Name" +msgstr "" + +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:43 +msgid "Lost Password Captcha" +msgstr "" + +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:45 +msgid "Login IP Whitelisting" +msgstr "" + +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:51 +msgid "Registration Approval" +msgstr "" + +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:67 +msgid "WordPress Files Access" +msgstr "" + +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:71 +msgid "IP and User Agent Blacklisting" +msgstr "" + +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:75 +msgid "Enable Basic Firewall" +msgstr "" + +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:76 +msgid "Enable Pingback Vulnerability Protection" +msgstr "" + +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:82 +msgid "Forbid Proxy Comments" +msgstr "" + +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:83 +msgid "Deny Bad Queries" +msgstr "" + +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:85 +msgid "5G Blacklist" +msgstr "" + +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:88 +msgid "Block Spambots" +msgstr "" + +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:90 +msgid "Comment Captcha" +msgstr "" + +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item.php:28 +msgid "Basic" +msgstr "" + +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item.php:31 +msgid "Intermediate" +msgstr "" + +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item.php:34 +msgid "Advanced" +msgstr "" diff --git a/all-in-one-wp-security/languages/aiowpsecurity-it_IT.mo b/all-in-one-wp-security/languages/aiowpsecurity-it_IT.mo new file mode 100644 index 0000000000000000000000000000000000000000..5b84c43ea67d68c6e16ff99aac2e901586eea835 GIT binary patch literal 118493 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\n" +"Language-Team: Marco Guglielmetti \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Poedit 1.6.5\n" +"X-Poedit-SourceCharset: UTF-8\n" +"X-Poedit-KeywordsList: __;_e;__ngettext:1,2;_n:1,2;__ngettext_noop:1,2;" +"_n_noop:1,2;_c,_nc:4c,1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2\n" +"X-Poedit-Basepath: .\n" +"X-Textdomain-Support: yes\n" +"Language: it_IT\n" +"X-Poedit-SearchPath-0: ..\n" + +# @ aiowpsecurity +#: admin/wp-security-admin-init.php:158 +msgid "WP Security" +msgstr "Sicurezza WP" + +# @ aiowpsecurity +#: admin/wp-security-admin-init.php:159 +#: admin/wp-security-dashboard-menu.php:23 +msgid "Dashboard" +msgstr "Bacheca" + +# @ aiowpsecurity +#: admin/wp-security-admin-init.php:160 +msgid "Settings" +msgstr "Impostazioni" + +# @ aiowpsecurity +#: admin/wp-security-admin-init.php:161 +msgid "User Accounts" +msgstr "Account Utente" + +# @ aiowpsecurity +#: admin/wp-security-admin-init.php:162 +msgid "User Login" +msgstr "Login Utente" + +# @ aiowpsecurity +#: admin/wp-security-admin-init.php:163 +msgid "User Registration" +msgstr "Registrazione Utenti" + +# @ aiowpsecurity +#: admin/wp-security-admin-init.php:164 +msgid "Database Security" +msgstr "Sicurezza Database" + +# @ aiowpsecurity +#: admin/wp-security-admin-init.php:168 +msgid "Filesystem Security" +msgstr "Sicurezza File Sistema" + +# @ aiowpsecurity +#: admin/wp-security-admin-init.php:170 +msgid "WHOIS Lookup" +msgstr "Ricerca WHOIS" + +# @ aiowpsecurity +#: admin/wp-security-admin-init.php:174 +msgid "Blacklist Manager" +msgstr "Gestione Blacklist" + +# @ aiowpsecurity +#: admin/wp-security-admin-init.php:179 +msgid "Firewall" +msgstr "Firewall" + +# @ aiowpsecurity +#: admin/wp-security-admin-init.php:186 +msgid "SPAM Prevention" +msgstr "Prevenzione SPAM" + +# @ aiowpsecurity +#: admin/wp-security-admin-init.php:190 +msgid "Scanner" +msgstr "Scanner" + +# @ aiowpsecurity +#: admin/wp-security-admin-init.php:192 +msgid "Maintenance" +msgstr "Manutenzione" + +# @ aiowpsecurity +#: admin/wp-security-admin-menu.php:43 +msgid "Settings successfully updated." +msgstr "Le Impostazioni sono state salvate con successo" + +# @ aiowpsecurity +#: admin/wp-security-admin-menu.php:50 +msgid "The selected record(s) deleted successfully!" +msgstr "Record selezionato (i) cancellato con successo!" + +# @ aiowpsecurity +#: admin/wp-security-blacklist-menu.php:22 +msgid "Ban Users" +msgstr "Utenti Bannati" + +# @ aiowpsecurity +#: admin/wp-security-blacklist-menu.php:80 +msgid "Nonce check failed for save blacklist settings!" +msgstr "Salvataggio impostazioni blacklist fallito!" + +# @ aiowpsecurity +#: admin/wp-security-blacklist-menu.php:132 +#: admin/wp-security-brute-force-menu.php:608 +#: admin/wp-security-list-comment-spammer-ip.php:147 +msgid "" +"The plugin was unable to write to the .htaccess file. Please edit file " +"manually." +msgstr "" +"Il plugin non è stato in grado di scrivere nel file .htaccess. Si prega di " +"modificare il file manualmente." + +# @ aiowpsecurity +#: admin/wp-security-blacklist-menu.php:139 +msgid "Ban IPs or User Agents" +msgstr "IP o User Agent Bannati" + +# @ aiowpsecurity +#: admin/wp-security-blacklist-menu.php:142 +msgid "" +"The All In One WP Security Blacklist feature gives you the option of banning " +"certain host IP addresses or ranges and also user agents." +msgstr "" +"L'All In One caratteristica Blacklist WP Security offre la possibilità di " +"vietare determinati indirizzi IP o intervalli di accesso e anche user agent." + +# @ aiowpsecurity +#: admin/wp-security-blacklist-menu.php:143 +msgid "" +"This feature will deny total site access for users which have IP addresses " +"or user agents matching those which you have configured in the settings " +"below." +msgstr "" +"Questa funzione potrà negare l'accesso totale del sito per gli utenti che " +"dispongono di indirizzi IP o gli agenti utente che corrispondono a quelli " +"che si è configurato nelle impostazioni di seguito." + +# @ aiowpsecurity +#: admin/wp-security-blacklist-menu.php:144 +msgid "" +"The plugin achieves this by making appropriate modifications to your ." +"htaccess file." +msgstr "" +"Il plugin realizza questo, facendo le opportune modifiche al file .htaccess." + +# @ aiowpsecurity +#: admin/wp-security-blacklist-menu.php:145 +msgid "" +"By blocking people via the .htaccess file your are using the most secure " +"first line of defence which denies all access to blacklisted visitors as " +"soon as they hit your hosting server." +msgstr "" +"Bloccando le persone tramite il file .htaccess si sta usando la prima linea " +"di difesa più sicura che nega tutti gli accessi ai visitatori nella lista " +"nera non appena provano a collegarsi al vostro server di hosting." + +# @ aiowpsecurity +#: admin/wp-security-blacklist-menu.php:151 +msgid "IP Hosts and User Agent Blacklist Settings" +msgstr "Impostazioni Blacklist IP Host e User Agent" + +# @ aiowpsecurity +#: admin/wp-security-blacklist-menu.php:162 +msgid "Enable IP or User Agent Blacklisting" +msgstr "Attiva IP o User Agent Blacklist" + +# @ aiowpsecurity +#: admin/wp-security-blacklist-menu.php:165 +msgid "" +"Check this if you want to enable the banning (or blacklisting) of selected " +"IP addresses and/or user agents specified in the settings below" +msgstr "" +"Selezionare questa se si desidera attivare la messa al bando (o lista nera) " +"di indirizzi IP selezionati e / o user agents specificati nelle impostazioni " +"di seguito" + +# @ aiowpsecurity +#: admin/wp-security-blacklist-menu.php:169 +msgid "Enter IP Addresses:" +msgstr "Inserisci Indirizzo IP:" + +# @ aiowpsecurity +#: admin/wp-security-blacklist-menu.php:173 +msgid "Enter one or more IP addresses or IP ranges." +msgstr "Immettere uno o più indirizzi IP o intervalli IP." + +# @ aiowpsecurity +#: admin/wp-security-blacklist-menu.php:174 +#: admin/wp-security-blacklist-menu.php:194 +#: admin/wp-security-brute-force-menu.php:343 +#: admin/wp-security-brute-force-menu.php:377 +#: admin/wp-security-brute-force-menu.php:400 +#: admin/wp-security-brute-force-menu.php:421 +#: admin/wp-security-brute-force-menu.php:664 +#: admin/wp-security-filescan-menu.php:291 +#: admin/wp-security-filescan-menu.php:308 +#: admin/wp-security-firewall-menu.php:165 +#: admin/wp-security-firewall-menu.php:195 +#: admin/wp-security-firewall-menu.php:326 +#: admin/wp-security-firewall-menu.php:356 +#: admin/wp-security-firewall-menu.php:387 +#: admin/wp-security-firewall-menu.php:415 +#: admin/wp-security-firewall-menu.php:444 +#: admin/wp-security-firewall-menu.php:532 +#: admin/wp-security-firewall-menu.php:622 +#: admin/wp-security-firewall-menu.php:824 +#: admin/wp-security-firewall-menu.php:847 admin/wp-security-spam-menu.php:166 +#: admin/wp-security-spam-menu.php:251 +msgid "More Info" +msgstr "Altre Info" + +# @ aiowpsecurity +#: admin/wp-security-blacklist-menu.php:177 +#: admin/wp-security-brute-force-menu.php:667 +msgid "Each IP address must be on a new line." +msgstr "Ogni indirizzo IP deve essere su una nuova linea." + +# @ aiowpsecurity +#: admin/wp-security-blacklist-menu.php:178 +#: admin/wp-security-brute-force-menu.php:668 +msgid "" +"To specify an IP range use a wildcard \"*\" character. Acceptable ways to " +"use wildcards is shown in the examples below:" +msgstr "" +"Per specificare un intervallo di indirizzi IP utilizzare un carattere jolly/" +"asterisco \"*\". Il modo corretto per utilizzare i caratteri jolly è " +"mostrato negli esempi qui sotto:" + +# @ aiowpsecurity +#: admin/wp-security-blacklist-menu.php:179 +#: admin/wp-security-brute-force-menu.php:669 +msgid "Example 1: 195.47.89.*" +msgstr "Esempio 1: 195.47.89.*" + +# @ aiowpsecurity +#: admin/wp-security-blacklist-menu.php:180 +#: admin/wp-security-brute-force-menu.php:670 +msgid "Example 2: 195.47.*.*" +msgstr "Esempio 2: 195.47.*.*" + +# @ aiowpsecurity +#: admin/wp-security-blacklist-menu.php:181 +#: admin/wp-security-brute-force-menu.php:671 +msgid "Example 3: 195.*.*.*" +msgstr "Esempio 3: 195.*.*.*" + +# @ aiowpsecurity +#: admin/wp-security-blacklist-menu.php:188 +msgid "Enter User Agents:" +msgstr "Inserisci User Agents:" + +# @ aiowpsecurity +#: admin/wp-security-blacklist-menu.php:193 +msgid "Enter one or more user agent strings." +msgstr "Inserisci una o più stringhe user agent." + +# @ aiowpsecurity +#: admin/wp-security-blacklist-menu.php:197 +msgid "Each user agent string must be on a new line." +msgstr "Ogni stringa user agent deve essere su una nuova linea." + +# @ aiowpsecurity +#: admin/wp-security-blacklist-menu.php:198 +msgid "Example 1 - A single user agent string to block:" +msgstr "Esempio 1 - Una singola stringa user agent per bloccare:" + +# @ aiowpsecurity +#: admin/wp-security-blacklist-menu.php:200 +msgid "Example 2 - A list of more than 1 user agent strings to block" +msgstr "Esempio 2 - Un elenco di più stringhe di agent per bloccare" + +# @ aiowpsecurity +#: admin/wp-security-blacklist-menu.php:208 +#: admin/wp-security-brute-force-menu.php:188 +#: admin/wp-security-brute-force-menu.php:544 +#: admin/wp-security-brute-force-menu.php:678 +#: admin/wp-security-database-menu.php:356 +#: admin/wp-security-filescan-menu.php:329 +#: admin/wp-security-filesystem-menu.php:231 +#: admin/wp-security-firewall-menu.php:700 +#: admin/wp-security-firewall-menu.php:866 +#: admin/wp-security-settings-menu.php:493 admin/wp-security-spam-menu.php:181 +#: admin/wp-security-user-login-menu.php:239 +#: admin/wp-security-user-login-menu.php:407 +#: admin/wp-security-user-registration-menu.php:146 +#: admin/wp-security-user-registration-menu.php:221 +msgid "Save Settings" +msgstr "Salva Impostazioni" + +# @ aiowpsecurity +#: admin/wp-security-dashboard-menu.php:24 +msgid "System Info" +msgstr "Info Sistema" + +# @ aiowpsecurity +#: admin/wp-security-dashboard-menu.php:75 +msgid "For information, updates and documentation, please visit the" +msgstr "" +"Per informazioni, aggiornamenti e documentazione, si prega di visitare la" + +# @ aiowpsecurity +#: admin/wp-security-dashboard-menu.php:75 +msgid "AIO WP Security & Firewall Plugin" +msgstr "AIO WP Security & Firewall Plugin" + +# @ aiowpsecurity +#: admin/wp-security-dashboard-menu.php:75 +msgid "Page" +msgstr "Pagina" + +# @ aiowpsecurity +#: admin/wp-security-dashboard-menu.php:76 +msgid "Follow us" +msgstr "Seguici su" + +# @ aiowpsecurity +#: admin/wp-security-dashboard-menu.php:92 +msgid "Security Strength Meter" +msgstr "Indicatore Stato Sicurezza" + +# @ aiowpsecurity +#: admin/wp-security-dashboard-menu.php:121 +msgid "Total Achievable Points: " +msgstr "Totale punti realizzabili:" + +# @ aiowpsecurity +#: admin/wp-security-dashboard-menu.php:123 +msgid "Current Score of Your Site: " +msgstr "Punteggio attuale del tuo sito:" + +# @ aiowpsecurity +#: admin/wp-security-dashboard-menu.php:133 +msgid "Security Points Breakdown" +msgstr "Scomposizione Punti Sicurezza" + +# @ aiowpsecurity +#: admin/wp-security-dashboard-menu.php:193 +msgid "Critical Feature Status" +msgstr "Stato Caratteristiche Critiche" + +# @ aiowpsecurity +#: admin/wp-security-dashboard-menu.php:197 +msgid "" +"Below is the current status of the critical features that you should " +"activate on your site to achieve a minimum level of recommended security" +msgstr "" +"Di seguito è riportato lo stato attuale delle caratteristiche fondamentali " +"che si dovrebbe attivare sul tuo sito per ottenere un livello minimo di " +"sicurezza raccomandata" + +# @ aiowpsecurity +#: admin/wp-security-dashboard-menu.php:201 +msgid "Admin Username" +msgstr "Nome Utente Admin" + +# @ aiowpsecurity +#: admin/wp-security-dashboard-menu.php:216 +#: admin/wp-security-user-login-menu.php:25 +#: classes/grade-system/wp-security-feature-item-manager.php:42 +msgid "Login Lockdown" +msgstr "Blocco Login" + +# @ aiowpsecurity +#: admin/wp-security-dashboard-menu.php:231 +msgid "File Permission" +msgstr "Permessi File" + +# @ aiowpsecurity +#: admin/wp-security-dashboard-menu.php:246 +msgid "Basic Firewall" +msgstr "Firewall Base" + +# @ aiowpsecurity +#: admin/wp-security-dashboard-menu.php:309 +msgid "Maintenance Mode Status" +msgstr "Modo Stato Manutenzione" + +# @ aiowpsecurity +#: admin/wp-security-dashboard-menu.php:313 +msgid "" +"Maintenance mode is currently enabled. Remember to turn it off when you are " +"done" +msgstr "" +"Modalità manutenzione è attualmente abilitata. Ricordati di disattivarla " +"quando hai fatto." + +# @ aiowpsecurity +#: admin/wp-security-dashboard-menu.php:316 +msgid "Maintenance mode is currently off." +msgstr "Modalità Manutenzione è attualmente disattivata" + +# @ aiowpsecurity +#: admin/wp-security-dashboard-menu.php:320 +msgid "Maintenance Mode" +msgstr "Modo Manutenzione" + +# @ aiowpsecurity +#: admin/wp-security-dashboard-menu.php:410 +#: admin/wp-security-user-login-menu.php:29 +msgid "Logged In Users" +msgstr "Utenti attualmente loggati." + +# @ aiowpsecurity +#: admin/wp-security-dashboard-menu.php:420 +msgid "Number of users currently logged in site-wide is:" +msgstr "NIl numero di utenti attualmente collegati a livello di sito è:" + +# @ aiowpsecurity +#: admin/wp-security-dashboard-menu.php:421 +#: admin/wp-security-dashboard-menu.php:443 +#: admin/wp-security-dashboard-menu.php:471 +#, php-format +msgid "Go to the %s menu to see more details" +msgstr "Vai al menu %s per vedere più dettagli" + +# @ aiowpsecurity +#: admin/wp-security-dashboard-menu.php:426 +msgid "There are no other site-wide users currently logged in." +msgstr "Non ci sono altri utenti a livello di sito attualmente loggati" + +# @ aiowpsecurity +#: admin/wp-security-dashboard-menu.php:448 +msgid "There are no other users currently logged in." +msgstr "Non ci sono altri utenti attualmente loggati." + +# @ aiowpsecurity +#: admin/wp-security-dashboard-menu.php:174 +msgid "Spread the Word" +msgstr "Diffondi la Parola" + +# @ aiowpsecurity +#: admin/wp-security-dashboard-menu.php:513 +msgid "Site Info" +msgstr "Info Sito" + +# @ aiowpsecurity +#: admin/wp-security-dashboard-menu.php:515 +msgid "Plugin Version" +msgstr "Versione Plugin" + +# @ aiowpsecurity +#: admin/wp-security-dashboard-menu.php:516 +msgid "WP Version" +msgstr "Versione WP:" + +# @ aiowpsecurity +#: admin/wp-security-dashboard-menu.php:518 +#: admin/wp-security-dashboard-menu.php:520 +#: admin/wp-security-dashboard-menu.php:616 +msgid "Version" +msgstr "Versione" + +# @ aiowpsecurity +#: admin/wp-security-dashboard-menu.php:519 +msgid "Table Prefix" +msgstr "Prefisso Tabelle" + +# @ aiowpsecurity +#: admin/wp-security-dashboard-menu.php:521 +msgid "Session Save Path" +msgstr "Salva Sessione Percorso" + +# @ aiowpsecurity +#: admin/wp-security-dashboard-menu.php:523 +msgid "Server Name" +msgstr "Nome Server:" + +# @ aiowpsecurity +#: admin/wp-security-dashboard-menu.php:524 +msgid "Cookie Domain" +msgstr "Cookie Dominio" + +# @ aiowpsecurity +#: admin/wp-security-dashboard-menu.php:525 +msgid "Library Present" +msgstr "Libreria Presente" + +# @ aiowpsecurity +#: admin/wp-security-dashboard-menu.php:526 +msgid "Debug File Write Permissions" +msgstr "Debug File Permessi di scrittura" + +# @ aiowpsecurity +#: admin/wp-security-dashboard-menu.php:605 +msgid "Active Plugins" +msgstr "Plugin Attivo" + +# @ aiowpsecurity +#: admin/wp-security-dashboard-menu.php:615 +#: admin/wp-security-filesystem-menu.php:130 +#: admin/wp-security-filesystem-menu.php:149 +msgid "Name" +msgstr "Nome" + +# @ aiowpsecurity +#: admin/wp-security-dashboard-menu.php:617 +msgid "Plugin URL" +msgstr "URL Plugin" + +# @ aiowpsecurity +#: admin/wp-security-database-menu.php:30 +#: classes/grade-system/wp-security-feature-item-manager.php:60 +msgid "DB Prefix" +msgstr "Prefisso DB" + +# @ aiowpsecurity +#: admin/wp-security-database-menu.php:26 +#: admin/wp-security-database-menu.php:31 +#: classes/grade-system/wp-security-feature-item-manager.php:62 +msgid "DB Backup" +msgstr "Backup DB" + +# @ aiowpsecurity +#: admin/wp-security-database-menu.php:93 +msgid "Nonce check failed for DB prefix change operation!" +msgstr "Check non riuscito per operazione di cambiamento prefisso tabelle DB!" + +# @ aiowpsecurity +#: admin/wp-security-database-menu.php:101 +msgid "" +"The plugin has detected that it cannot write to the wp-config.php file. This " +"feature can only be used if the plugin can successfully write to the wp-" +"config.php file." +msgstr "" +"Il plugin ha rilevato che non si può scrivere nel file wp-config.php. Questa " +"funzione può essere utilizzata solo se il plug-in è in grado di scrivere " +"correttamente il file wp-config.php." + +# @ aiowpsecurity +#: admin/wp-security-database-menu.php:114 +msgid "Please enter a value for the DB prefix." +msgstr "Prego inserisci un valore per il prefisso DB." + +# @ aiowpsecurity +#: admin/wp-security-database-menu.php:123 +msgid "" +"ERROR: The table prefix can only contain numbers, letters, " +"and underscores." +msgstr "" +"ERRORE: Il prefisso della tabella può contenere solo " +"numeri, lettere e caratteri di sottolineatura." + +# @ aiowpsecurity +#: admin/wp-security-database-menu.php:131 +msgid "Change Database Prefix" +msgstr "Cambia Prefisso Database" + +# @ aiowpsecurity +#: admin/wp-security-database-menu.php:134 +msgid "" +"Your WordPress DB is the most important asset of your website because it " +"contains a lot of your site's precious information." +msgstr "" +"Il tuo DB WordPress è la risorsa più importante del tuo sito web perché " +"contiene un sacco di informazioni preziose del tuo sito." + +# @ aiowpsecurity +#: admin/wp-security-database-menu.php:135 +msgid "" +"The DB is also a target for hackers via methods such as SQL injections and " +"malicious and automated code which targets certain tables." +msgstr "" +"Anche Il DB è un bersaglio per gli hacker tramite metodi come injections SQL " +"e codice dannoso e automatizzato che può danneggiare le tabelle." + +# @ aiowpsecurity +#: admin/wp-security-database-menu.php:136 +msgid "" +"One way to add a layer of protection for your DB is to change the default " +"WordPress table prefix from \"wp_\" to something else which will be " +"difficult for hackers to guess." +msgstr "" +"Un modo per aggiungere un livello di protezione per il vostro DB è quello di " +"cambiare il prefisso delle tabelle di WordPress di default da \"wp_\" a " +"qualcos'altro che sarà difficile per gli hacker individuare." + +# @ aiowpsecurity +#: admin/wp-security-database-menu.php:137 +msgid "" +"This feature allows you to easily change the prefix to a value of your " +"choice or to a random value set by this plugin." +msgstr "" +"Questa funzione consente di modificare facilmente il prefisso per un valore " +"di tua scelta o su un valore casuale impostato dal plugin." + +# @ aiowpsecurity +#: admin/wp-security-database-menu.php:143 +msgid "DB Prefix Options" +msgstr "Opzioni Prefisso DB" + +# @ aiowpsecurity +#: admin/wp-security-database-menu.php:154 +#, php-format +msgid "It is recommended that you perform a %s before using this feature" +msgstr "Si consiglia di eseguire un %s prima di usare questa funzione." + +# @ aiowpsecurity +#: admin/wp-security-database-menu.php:163 +msgid "Current DB Table Prefix" +msgstr "Prefisso Tabelle DB Attuale" + +# @ aiowpsecurity +#: admin/wp-security-database-menu.php:169 +msgid "" +"Your site is currently using the default WordPress DB prefix value of \"wp_" +"\". \n" +" To increase your site's security you should " +"consider changing the DB prefix value to another value." +msgstr "" +"Il tuo sito sta usando il valore predefinito \"wp_\". \n" +" Per aumentare la sicurezza dovresti cambiare il " +"valore del prefisso DB a un altro valore." + +# @ aiowpsecurity +#: admin/wp-security-database-menu.php:176 +msgid "Generate New DB Table Prefix" +msgstr "Genera un Nuovo Prefisso Tabelle DB" + +# @ aiowpsecurity +#: admin/wp-security-database-menu.php:179 +msgid "" +"Check this if you want the plugin to generate a random 6 character string " +"for the table prefix" +msgstr "" +"Seleziona questo se vuoi che il plugin generi una stringa casuale di 6 " +"caratteri per il prefisso tabella" + +# @ aiowpsecurity +#: admin/wp-security-database-menu.php:180 +msgid "OR" +msgstr "O" + +# @ aiowpsecurity +#: admin/wp-security-database-menu.php:182 +msgid "" +"Choose your own DB prefix by specifying a string which contains letters and/" +"or numbers and/or underscores. Example: xyz_" +msgstr "" +"Scegli il prefisso DB specificando una stringa che contiene lettere e/o " +"numeri e/o trattino basso. esempio: xyz_" + +# @ aiowpsecurity +#: admin/wp-security-database-menu.php:186 +msgid "Change DB Prefix" +msgstr "Cambia Prefisso DB" + +# @ aiowpsecurity +#: admin/wp-security-database-menu.php:207 +#: admin/wp-security-filesystem-menu.php:86 +msgid "Nonce check failed for manual DB backup operation!" +msgstr "Check non riuscito per l'operazione di backup DB manuale!" + +# @ aiowpsecurity +#: admin/wp-security-database-menu.php:224 +msgid "" +"DB Backup was successfully completed! You will receive the backup file via " +"email if you have enabled \"Send Backup File Via Email\", otherwise you can " +"retrieve it via FTP from the following directory:" +msgstr "" +"DB backup è stato completato con successo! Riceverai il file di backup " +"tramite e-mail se hai attivato \"Invia file di Backup Via Email\", " +"altrimenti è possibile recuperarlo tramite FTP dalla seguente directory:" + +# @ default +#: admin/wp-security-database-menu.php:226 +msgid "Your DB Backup File location: " +msgstr "La posizione del tuo File di Backup DB" + +# @ aiowpsecurity +#: admin/wp-security-database-menu.php:234 +msgid "DB Backup failed. Please check the permissions of the backup directory." +msgstr "" +"DB Backup non riuscito. Si prega di controllare i permessi della directory " +"di backup." + +# @ aiowpsecurity +#: admin/wp-security-database-menu.php:251 +#: admin/wp-security-filescan-menu.php:133 +msgid "" +"You entered a non numeric value for the \"backup time interval\" field. It " +"has been set to the default value." +msgstr "" +"È stato immesso un valore non numerico per il campo \"intervallo di tempo di " +"backup\". È stato impostato il valore di default." + +# @ aiowpsecurity +#: admin/wp-security-database-menu.php:258 +msgid "" +"You entered a non numeric value for the \"number of backup files to keep\" " +"field. It has been set to the default value." +msgstr "" +"È stato immesso un valore non numerico per il campo \"numero file di backup " +"da conservare \". E 'stato impostato il valore di default." + +# @ aiowpsecurity +#: admin/wp-security-database-menu.php:265 +#: admin/wp-security-filescan-menu.php:163 +#: admin/wp-security-user-login-menu.php:117 +msgid "" +"You have entered an incorrect email address format. It has been set to your " +"WordPress admin email as default." +msgstr "" +"È stato immesso un formato di indirizzo email errato. E 'stato impostato la " +"tua email amministratore WordPress predefinita." + +# @ aiowpsecurity +#: admin/wp-security-brute-force-menu.php:108 +#: admin/wp-security-database-menu.php:271 +#: admin/wp-security-filescan-menu.php:169 +#: admin/wp-security-firewall-menu.php:769 admin/wp-security-spam-menu.php:211 +#: admin/wp-security-user-login-menu.php:123 +#: admin/wp-security-user-login-menu.php:360 +msgid "Attention!" +msgstr "Attenzione!" + +# @ aiowpsecurity +#: admin/wp-security-database-menu.php:298 +msgid "Manual Backup" +msgstr "Backup Manuale" + +# @ aiowpsecurity +#: admin/wp-security-database-menu.php:304 +msgid "To create a new DB backup just click on the button below." +msgstr "" +"Per creare un nuovo backup DB è sufficiente fare clic sul pulsante qui sotto." + +# @ aiowpsecurity +#: admin/wp-security-database-menu.php:307 +msgid "Create DB Backup Now" +msgstr "Crea nuovo Backup DB" + +# @ aiowpsecurity +#: admin/wp-security-database-menu.php:311 +msgid "Automated Scheduled Backups" +msgstr "Programma Automazione Backup" + +# @ aiowpsecurity +#: admin/wp-security-database-menu.php:323 +msgid "Enable Automated Scheduled Backups" +msgstr "Attiva Programmazione Automatica Backup" + +# @ aiowpsecurity +#: admin/wp-security-database-menu.php:326 +msgid "" +"Check this if you want the system to automatically generate backups " +"periodically based on the settings below" +msgstr "" +"Selezionare questa se si desidera che il sistema generari automaticamente i " +"backup periodicamente in base alle impostazioni di seguito" + +# @ aiowpsecurity +#: admin/wp-security-database-menu.php:330 +msgid "Backup Time Interval" +msgstr "Intervallo di Tempo Backup" + +# @ aiowpsecurity +#: admin/wp-security-database-menu.php:333 +#: admin/wp-security-filescan-menu.php:279 +msgid "Hours" +msgstr "Ore" + +# @ aiowpsecurity +#: admin/wp-security-database-menu.php:334 +#: admin/wp-security-filescan-menu.php:280 +msgid "Days" +msgstr "Giorni" + +# @ aiowpsecurity +#: admin/wp-security-database-menu.php:335 +#: admin/wp-security-filescan-menu.php:281 +msgid "Weeks" +msgstr "Settimane" + +# @ aiowpsecurity +#: admin/wp-security-database-menu.php:337 +msgid "Set the value for how often you would like an automated backup to occur" +msgstr "" +"Impostare il valore per quanto spesso si desidera creare un backup automatico" + +# @ aiowpsecurity +#: admin/wp-security-database-menu.php:341 +msgid "Number of Backup Files To Keep" +msgstr "Numero di file di backup da conservare" + +# @ aiowpsecurity +#: admin/wp-security-database-menu.php:343 +msgid "" +"Thie field allows you to choose the number of backup files you would like to " +"keep in the backup directory" +msgstr "" +"Il campo consente di scegliere il numero di file di backup che si desidera " +"mantenere nella directory di backup" + +# @ aiowpsecurity +#: admin/wp-security-database-menu.php:347 +msgid "Send Backup File Via Email" +msgstr "Invia File di Backup via Email" + +# @ aiowpsecurity +#: admin/wp-security-database-menu.php:350 +msgid "" +"Check this if you want the system to email you the backup file after a DB " +"backup has been performed" +msgstr "" +"Seleziona questa casella se vuoi che il File di backup venga inviato tramite " +"email quando viene eseguita una copia di backup DB" + +# @ aiowpsecurity +#: admin/wp-security-database-menu.php:352 +#: admin/wp-security-filescan-menu.php:325 +#: admin/wp-security-user-login-menu.php:235 +msgid "Enter an email address" +msgstr "Inserisci Indirizzo Email" + +# @ aiowpsecurity +#: admin/wp-security-database-menu.php:388 +msgid "Starting DB prefix change operations....." +msgstr "Operazioni Cambio Impostazioni Prefisso DB..." + +# @ aiowpsecurity +#: admin/wp-security-database-menu.php:390 +#, php-format +msgid "" +"Your WordPress system has a total of %s tables and your new DB prefix will " +"be: %s" +msgstr "" +"Il tuo sito WordPress ha un totale di%s tabelle ed il nuovo prefisso DB sarà:" +"%s" + +# @ aiowpsecurity +#: admin/wp-security-database-menu.php:396 classes/wp-security-utility.php:206 +msgid "" +"Failed to make a backup of the wp-config.php file. This operation will not " +"go ahead." +msgstr "" +"Impossibile effettuare un backup del file wp-config.php. Questa operazione " +"non andrà avanti." + +# @ aiowpsecurity +#: admin/wp-security-database-menu.php:400 +msgid "A backup copy of your wp-config.php file was created successfully!" +msgstr "" +"Una copia di backup del file wp-config.php è stato creato con successo!" + +# @ aiowpsecurity +#: admin/wp-security-database-menu.php:422 +#, php-format +msgid "%s table name update failed" +msgstr "%s aggiornamento nome tabelle fallito" + +# @ aiowpsecurity +#: admin/wp-security-database-menu.php:434 +#, php-format +msgid "Please change the prefix manually for the above tables to: %s" +msgstr "" +"Si prega di cambiare il prefisso manualmente per le tabelle di cui sopra a:%s" + +# @ aiowpsecurity +#: admin/wp-security-database-menu.php:437 +#, php-format +msgid "%s tables had their prefix updated successfully!" +msgstr "%s tabelle hanno il loro prefisso aggiornato con successo!" + +# @ aiowpsecurity +#: admin/wp-security-database-menu.php:452 +msgid "wp-config.php file was updated successfully!" +msgstr "wp-config.php file è stato aggiornato con successo!" + +# @ aiowpsecurity +#: admin/wp-security-database-menu.php:455 +#, php-format +msgid "" +"The \"wp-config.php\" file was not able to be modified. Please modify this " +"file manually using your favourite editor and search \n" +" for variable \"$table_prefix\" and assign the following " +"value to that variable: %s" +msgstr "" +"Non è stato possibile modificare il file \"wp-config.php\". Modifica il file " +"manualmente usando il tuo editor preferito, cerca \n" +" la variabile \"$table_prefix\" e assegna il seguente " +"valore a tale variabile: %s" + +# @ aiowpsecurity +#: admin/wp-security-database-menu.php:476 +msgid "There was an error when updating the options table." +msgstr "" +"Si è verificato un errore durante l'aggiornamento delle opzioni tabella." + +# @ aiowpsecurity +#: admin/wp-security-database-menu.php:480 +msgid "" +"The options table records which had references to the old DB prefix were " +"updated successfully!" +msgstr "" +"Le opzioni dei record della tabella che avevano i riferimenti al vecchio " +"prefisso DB sono state aggiornate con successo!" + +# @ aiowpsecurity +#: admin/wp-security-database-menu.php:505 +#, php-format +msgid "" +"Error updating user_meta table where new meta_key = %s, old meta_key = %s " +"and user_id = %s." +msgstr "" +"Errore di aggiornamento della tabella user_meta dove nuovo meta_key = %s, " +"vecchio meta_key = %s e user_id = %s." + +# @ aiowpsecurity +#: admin/wp-security-database-menu.php:511 +msgid "" +"The usermeta table records which had references to the old DB prefix were " +"updated successfully!" +msgstr "" +"I record della tabella usermeta che avevano riferimenti al vecchio prefisso " +"DB sono state aggiornate con successo!" + +# @ aiowpsecurity +#: admin/wp-security-database-menu.php:513 +msgid "DB prefix change tasks have been completed." +msgstr "Sono state completate le attività di DB del cambiamento di prefisso." + +# @ aiowpsecurity +#: admin/wp-security-filescan-menu.php:23 +#: classes/grade-system/wp-security-feature-item-manager.php:102 +msgid "File Change Detection" +msgstr "Rilevamento Modifiche File" + +# @ aiowpsecurity +#: admin/wp-security-filescan-menu.php:103 +msgid "Nonce check failed for manual file change detection scan operation!" +msgstr "" +"Check non riuscito per la scansione manulale di rilevamento modifica dei " +"file!" + +# @ aiowpsecurity +#: admin/wp-security-filescan-menu.php:110 +msgid "" +"The plugin has detected that this is your first file change detection scan. " +"The file details from this scan will be used to detect file changes for " +"future scans!" +msgstr "" +"Il plugin ha rilevato che questa è la tua prima scansione di rilevamento " +"delle modifiche dei file. I dettagli dei file da questa scansione verranno " +"utilizzati per rilevare i cambiamenti dei file per le scansioni future!" + +# @ aiowpsecurity +#: admin/wp-security-filescan-menu.php:201 +msgid "" +"NEW SCAN COMPLETED: The plugin has detected that you have made changes to " +"the \"File Types To Ignore\" or \"Files To Ignore\" fields.\n" +" In order to ensure that future scan results are " +"accurate, the old scan data has been refreshed." +msgstr "" +"NUOVA SCANSIONE COMPLETATA: Il plugin ha rilevato che sono state apportate " +"modifiche alla cartella \"Tipi di file da ignorare\" o\"File da ignorare " +"\"campi. \n" +" Al fine di garantire che i risultati delle scansioni " +"future siano precisi, i dati della scansione vecchia sono stati aggiornati." + +# @ aiowpsecurity +#: admin/wp-security-filescan-menu.php:211 +msgid "" +"All In One WP Security & Firewall has detected that there was a change in " +"your host's files." +msgstr "" +"All In One WP Security & firewall ha rilevato che c'è stato un cambiamento " +"nei file del proprio host." + +# @ aiowpsecurity +#: admin/wp-security-filescan-menu.php:213 +msgid "View Scan Details & Clear This Message" +msgstr "Visualizza i dettagli di scansione e cancella il messaggio" + +# @ aiowpsecurity +#: admin/wp-security-filescan-menu.php:222 +msgid "" +"If given an opportunity hackers can insert their code or files into your " +"system which they can then use to carry out malicious acts on your site." +msgstr "" +"Esiste la possibilità che hacker possono inserire il loro codice nei file o " +"nel vostro sistema, che possono poi utilizzare per eseguire operazioni " +"dannose sul tuo sito." + +# @ aiowpsecurity +#: admin/wp-security-filescan-menu.php:223 +msgid "" +"Being informed of any changes in your files can be a good way to quickly " +"prevent a hacker from causing damage to your website." +msgstr "" +"Essere informati di eventuali cambiamenti nei file può essere un buon modo " +"per evitare rapidamente che un hacker possa causare danni al vostro sito web." + +# @ aiowpsecurity +#: admin/wp-security-filescan-menu.php:224 +msgid "" +"In general, WordPress core and plugin files and file types such as \".php\" " +"or \".js\" should not change often and when they do, it is important that " +"you are made aware when a change occurs and which file was affected." +msgstr "" +"In generale, i file del cuore di WordPress dei plugin e tipi di file come ad " +"esempio \".php\" o \".js\" non dovrebbero cambiare spesso e, quando succede, " +"è importante sapere quando si verifica un cambiamento e quale file è stata " +"influenzato." + +# @ aiowpsecurity +#: admin/wp-security-filescan-menu.php:225 +msgid "" +"The \"File Change Detection Feature\" will notify you of any file change " +"which occurs on your system, including the addition and deletion of files by " +"performing a regular automated or manual scan of your system's files." +msgstr "" +"Il \"File Rilevamento Modifiche Funzioni\" comunicherà qualsiasi modifica di " +"file che si verifica sul sistema, tra cui l'aggiunta e la cancellazione dei " +"file per effettuare una normale scansione automatica o manuale dei file del " +"proprio sistema." + +# @ aiowpsecurity +#: admin/wp-security-filescan-menu.php:226 +msgid "" +"This feature also allows you to exclude certain files or folders from the " +"scan in cases where you know that they change often as part of their normal " +"operation. (For example log files and certain caching plugin files may " +"change often and hence you may choose to exclude such files from the file " +"change detection scan)" +msgstr "" +"Questa funzione consente inoltre di escludere determinati file o cartelle " +"dalla scansione se si sa che cambiano spesso come parte del loro normale " +"funzionamento. (Ad esempio i file di log e di alcuni file dei plugin di " +"caching possono cambiare spesso e quindi si può scegliere di escludere tali " +"file dalla scansione di rilevamento di modifica)" + +# @ aiowpsecurity +#: admin/wp-security-filescan-menu.php:231 +msgid "Manual File Change Detection Scan" +msgstr "Scansione Rilevamento Modifiche File Manuale" + +# @ aiowpsecurity +#: admin/wp-security-filescan-menu.php:237 +msgid "" +"To perform a manual file change detection scan click on the button below." +msgstr "" +"Per eseguire una scansione manuale di rilevamento modifica file clicca sul " +"pulsante qui sotto." + +# @ aiowpsecurity +#: admin/wp-security-filescan-menu.php:240 +msgid "Perform Scan Now" +msgstr "Esegui scansione Ora" + +# @ aiowpsecurity +#: admin/wp-security-filescan-menu.php:257 +msgid "File Change Detection Settings" +msgstr "Impostazioni Rilevamento Modifiche File" + +# @ aiowpsecurity +#: admin/wp-security-filescan-menu.php:269 +msgid "Enable Automated File Change Detection Scan" +msgstr "Attiva Scansione Automatica Rilevamento Modifiche File" + +# @ aiowpsecurity +#: admin/wp-security-filescan-menu.php:272 +msgid "" +"Check this if you want the system to automatically/periodically scan your " +"files to check for file changes based on the settings below" +msgstr "" +"Selezionare questa casella se vuoi che il sistema esegua in automatico/" +"periodicamente la scansione dei file per verificare eventuali modifiche in " +"base alle impostazioni di seguito" + +# @ aiowpsecurity +#: admin/wp-security-filescan-menu.php:276 +msgid "Scan Time Interval" +msgstr "Intervallo Tempo Scansione" + +# @ aiowpsecurity +#: admin/wp-security-filescan-menu.php:283 +msgid "Set the value for how often you would like a scan to occur" +msgstr "" +"Impostare il valore per quanto spesso si desidera creare una scansione di " +"verifica" + +# @ aiowpsecurity +#: admin/wp-security-filescan-menu.php:287 +msgid "File Types To Ignore" +msgstr "Tipi di file da ignorare" + +# @ aiowpsecurity +#: admin/wp-security-filescan-menu.php:290 +msgid "" +"Enter each file type or extension on a new line which you wish to exclude " +"from the file change detection scan." +msgstr "" +"Immettere ogni tipo di file o estensione su una nuova linea che si desidera " +"escludere dalla scansione di rilevamento delle modifiche dei file." + +# @ aiowpsecurity +#: admin/wp-security-filescan-menu.php:294 +msgid "" +"You can exclude file types from the scan which would not normally pose any " +"security threat if they were changed. These can include things such as image " +"files." +msgstr "" +"È possibile escludere tipi di file dalla scansione, che normalmente non " +"pongono alcuna minaccia per la sicurezza se sono stati modificati. Questi " +"possono includere cose come file di immagine." + +# @ aiowpsecurity +#: admin/wp-security-filescan-menu.php:295 +msgid "" +"Example: If you want the scanner to ignore files of type jpg, png, and bmp, " +"then you would enter the following:" +msgstr "" +"Esempio: Se si desidera che lo scanner ignori i file di tipo jpg, png, bmp, " +"immettere il seguente:" + +# @ aiowpsecurity +#: admin/wp-security-filescan-menu.php:296 +msgid "jpg" +msgstr "jpg" + +# @ aiowpsecurity +#: admin/wp-security-filescan-menu.php:297 +msgid "png" +msgstr "png" + +# @ aiowpsecurity +#: admin/wp-security-filescan-menu.php:298 +msgid "bmp" +msgstr "bmp" + +# @ aiowpsecurity +#: admin/wp-security-filescan-menu.php:304 +msgid "Files/Directories To Ignore" +msgstr "File/Directory Da Ignorare" + +# @ aiowpsecurity +#: admin/wp-security-filescan-menu.php:307 +msgid "" +"Enter each file or directory on a new line which you wish to exclude from " +"the file change detection scan." +msgstr "" +"Inserisci ogni file o directory, che si desidera escludere dalla scansione " +"di rilevamento delle modifiche dei file, su una nuova linea." + +# @ aiowpsecurity +#: admin/wp-security-filescan-menu.php:311 +msgid "" +"You can exclude specific files/directories from the scan which would not " +"normally pose any security threat if they were changed. These can include " +"things such as log files." +msgstr "" +"È possibile escludere file/directory specifici dalla scansione, che " +"normalmente non pongono alcuna minaccia per la sicurezza se sono stati " +"modificati. Questi possono includere cose come i file di log." + +# @ aiowpsecurity +#: admin/wp-security-filescan-menu.php:312 +msgid "" +"Example: If you want the scanner to ignore certain files in different " +"directories or whole directories, then you would enter the following:" +msgstr "" +"Esempio: Se si desidera che lo scanner ignori determinati file in diverse " +"directory o intere directory, immettere il seguente:" + +# @ aiowpsecurity +#: admin/wp-security-filescan-menu.php:313 +msgid "cache/config/master.php" +msgstr "cache/config/master.php" + +# @ aiowpsecurity +#: admin/wp-security-filescan-menu.php:314 +msgid "somedirectory" +msgstr "nomedirectory" + +# @ aiowpsecurity +#: admin/wp-security-filescan-menu.php:320 +msgid "Send Email When Change Detected" +msgstr "Invia e-mail quando viene rilevata una modifica" + +# @ aiowpsecurity +#: admin/wp-security-filescan-menu.php:323 +msgid "" +"Check this if you want the system to email you if a file change was detected" +msgstr "" +"Seleziona questa casella se vuoi ricevere un'email ogni volta che viene " +"rilevata una modifica" + +# @ aiowpsecurity +#: admin/wp-security-filescan-menu.php:391 +msgid "Latest File Change Scan Results" +msgstr "Ultimi Risultati scansione di modifica file" + +# @ aiowpsecurity +#: admin/wp-security-filescan-menu.php:400 +msgid "The following files were added to your host." +msgstr "I seguenti file sono stati aggiunti al tu Host." + +# @ aiowpsecurity +#: admin/wp-security-filescan-menu.php:403 +#: admin/wp-security-filescan-menu.php:424 +#: admin/wp-security-filescan-menu.php:448 +#: admin/wp-security-settings-menu.php:26 +#: admin/wp-security-settings-menu.php:27 +msgid "File" +msgstr "File" + +# @ aiowpsecurity +#: admin/wp-security-filescan-menu.php:404 +#: admin/wp-security-filescan-menu.php:425 +#: admin/wp-security-filescan-menu.php:449 +msgid "File Size" +msgstr "Dimensione File" + +# @ aiowpsecurity +#: admin/wp-security-filescan-menu.php:405 +#: admin/wp-security-filescan-menu.php:426 +#: admin/wp-security-filescan-menu.php:450 +msgid "File Modified" +msgstr "Modifica File" + +# @ aiowpsecurity +#: admin/wp-security-filescan-menu.php:421 +msgid "The following files were removed from your host." +msgstr "I seguenti file sono stati rimossi dal tuo host." + +# @ aiowpsecurity +#: admin/wp-security-filescan-menu.php:445 +msgid "The following files were changed on your host." +msgstr "I seguenti file sono stati modificati nel tuo host." + +# @ aiowpsecurity +#: admin/wp-security-filesystem-menu.php:26 +#: classes/grade-system/wp-security-feature-item-manager.php:66 +msgid "File Permissions" +msgstr "Permessi File" + +# @ aiowpsecurity +#: admin/wp-security-filesystem-menu.php:27 +msgid "PHP File Editing" +msgstr "Modifica File PHP" + +# @ aiowpsecurity +#: admin/wp-security-filesystem-menu.php:28 +msgid "WP File Access" +msgstr "Accesso File WP" + +# @ aiowpsecurity +#: admin/wp-security-filesystem-menu.php:29 +msgid "Host System Logs" +msgstr "Registro Sistema Host" + +# @ aiowpsecurity +#: admin/wp-security-filesystem-menu.php:96 +#, php-format +msgid "The permissions for %s were succesfully changed to %s" +msgstr "I permessi perr %s sono stati modificati con successo a %s" + +# @ aiowpsecurity +#: admin/wp-security-filesystem-menu.php:100 +#, php-format +msgid "Unable to change permissions for %s!" +msgstr "Impossibile modificare i permessi per %s!" + +# @ aiowpsecurity +#: admin/wp-security-filesystem-menu.php:106 +msgid "File Permissions Scan" +msgstr "Permessi Scansione File" + +# @ aiowpsecurity +#: admin/wp-security-filesystem-menu.php:109 +msgid "" +"Your WordPress file and folder permission settings govern the accessability " +"and read/write privileges of the files and folders which make up your WP " +"installation." +msgstr "" +"Il tuo file di WordPress e le impostazioni delle autorizzazioni delle " +"cartelle regolano i privilegi di accesso e lettura/scrittura dei file e " +"delle cartelle che compongono l'installazione WP." + +# @ aiowpsecurity +#: admin/wp-security-filesystem-menu.php:110 +msgid "" +"Your WP installation already comes with reasonably secure file permission " +"settings for the filesystem." +msgstr "" +"La tua installazione di WP viene fornito già con le impostazioni di " +"autorizzazione di file ragionevolmente sicuri per il filesystem." + +# @ aiowpsecurity +#: admin/wp-security-filesystem-menu.php:111 +msgid "" +"However, sometimes people or other plugins modify the various permission " +"settings of certain core WP folders or files such that they end up making " +"their site less secure because they chose the wrong permission values." +msgstr "" +"Tuttavia, a volte la gente o altri plugin, modificano le varie impostazioni " +"dei permessi di alcune cartelle o file WP fondamentali e lo rendono meno " +"sicuro perché hanno scelto i valori dei permessi sbagliati." + +# @ aiowpsecurity +#: admin/wp-security-filesystem-menu.php:112 +msgid "" +"This feature will scan the critical WP core folders and files and will " +"highlight any permission settings which are insecure." +msgstr "" +"Questa funzione consente di eseguire la scansione delle cartelle di base WP " +"e file critici e metterà in evidenza le impostazioni di autorizzazione che " +"sono insicure." + +# @ aiowpsecurity +#: admin/wp-security-filesystem-menu.php:118 +msgid "WP Directory and File Permissions Scan Results" +msgstr "Risultati scansione Directory WP e permessi dei file" + +# @ aiowpsecurity +#: admin/wp-security-filesystem-menu.php:131 +#: admin/wp-security-filesystem-menu.php:150 +msgid "File/Folder" +msgstr "File/Cartelle" + +# @ aiowpsecurity +#: admin/wp-security-filesystem-menu.php:132 +#: admin/wp-security-filesystem-menu.php:151 +msgid "Current Permissions" +msgstr "Permessi Attuali" + +# @ aiowpsecurity +#: admin/wp-security-filesystem-menu.php:133 +#: admin/wp-security-filesystem-menu.php:152 +msgid "Recommended Permissions" +msgstr "Permessi Raccomandati" + +# @ aiowpsecurity +#: admin/wp-security-filesystem-menu.php:134 +#: admin/wp-security-filesystem-menu.php:153 +msgid "Recommended Action" +msgstr "Azione Raccomandata" + +# @ aiowpsecurity +#: admin/wp-security-filesystem-menu.php:191 +msgid "Your PHP file editing settings were saved successfully." +msgstr "" +"Le impostazioni di editing dei file PHP sono state salvate con successo." + +# @ aiowpsecurity +#: admin/wp-security-filesystem-menu.php:195 +msgid "" +"Operation failed! Unable to modify or make a backup of wp-config.php file!" +msgstr "" +"Operazione non riuscita! Impossibile modificare o fare un backup del file wp-" +"config.php!" + +# @ aiowpsecurity +#: admin/wp-security-filesystem-menu.php:201 +#: classes/grade-system/wp-security-feature-item-manager.php:68 +msgid "File Editing" +msgstr "Modifica File" + +# @ aiowpsecurity +#: admin/wp-security-filesystem-menu.php:204 +msgid "" +"The Wordpress Dashboard by default allows administrators to edit PHP files, " +"such as plugin and theme files." +msgstr "" +"La Bacheca Wordpress di default consente agli amministratori di modificare i " +"file PHP, come plugin e file dei temi." + +# @ aiowpsecurity +#: admin/wp-security-filesystem-menu.php:205 +msgid "" +"This is often the first tool an attacker will use if able to login, since it " +"allows code execution." +msgstr "" +"Questo è spesso il primo strumento che chi attacca il sito utilizzerà, se in " +"grado di accedere, in quanto permette l'esecuzione di codice." + +# @ aiowpsecurity +#: admin/wp-security-filesystem-menu.php:206 +msgid "" +"This feature will disable the ability for people to edit PHP files via the " +"dashboard." +msgstr "" +"Questa funzione consente di disattivare la possibilità per le persone di " +"modificare i file PHP tramite la bacheca." + +# @ aiowpsecurity +#: admin/wp-security-filesystem-menu.php:212 +msgid "Disable PHP File Editing" +msgstr "Disabilità Modifica File PHP" + +# @ aiowpsecurity +#: admin/wp-security-filesystem-menu.php:224 +msgid "Disable Ability To Edit PHP Files" +msgstr "Disattivare la possibilità di modificare i file PHP" + +# @ aiowpsecurity +#: admin/wp-security-filesystem-menu.php:227 +msgid "" +"Check this if you want to remove the ability for people to edit PHP files " +"via the WP dashboard" +msgstr "" +"Selezionare questa casella se vuoi rimuovere la possibilità per le persone " +"di modificare i file PHP tramite la bacheca WP" + +# @ aiowpsecurity +#: admin/wp-security-filesystem-menu.php:271 +msgid "" +"You have successfully saved the Prevent Access to Default WP Files " +"configuration." +msgstr "" +"Hai salvato con successo di impedire l'accesso al file di configurazione di " +"default WP." + +# @ aiowpsecurity +#: admin/wp-security-brute-force-menu.php:281 +#: admin/wp-security-filesystem-menu.php:275 +#: admin/wp-security-firewall-menu.php:119 +#: admin/wp-security-firewall-menu.php:287 +#: admin/wp-security-firewall-menu.php:498 +#: admin/wp-security-firewall-menu.php:667 admin/wp-security-spam-menu.php:106 +msgid "" +"Could not write to the .htaccess file. Please check the file permissions." +msgstr "" +"Impossibile scrivere nel file .htaccess. Controlla i permessi dei file." + +# @ aiowpsecurity +#: admin/wp-security-filesystem-menu.php:280 +msgid "WordPress Files" +msgstr "File WordPress" + +# @ aiowpsecurity +#: admin/wp-security-filesystem-menu.php:283 +#, php-format +msgid "" +"This feature allows you to prevent access to files such as %s, %s and %s " +"which are delivered with all WP installations." +msgstr "" +"Questa funzione consente di impedire l'accesso ai file come %s, %s e %s che " +"vengono inseriti in tutte le installazioni WP.." + +# @ aiowpsecurity +#: admin/wp-security-filesystem-menu.php:284 +msgid "" +"By preventing access to these files you are hiding some key pieces of " +"information (such as WordPress version info) from potential hackers." +msgstr "" +"Impedendo l'accesso a questi file si nascondono alcune informazioni " +"fondamentali (come info sulla versione WordPress) da potenziali hacker." + +# @ aiowpsecurity +#: admin/wp-security-filesystem-menu.php:289 +msgid "Prevent Access to Default WP Files" +msgstr "Impedire l'accesso ai file di WP di default" + +# @ aiowpsecurity +#: admin/wp-security-filesystem-menu.php:300 +msgid "Prevent Access to WP Default Install Files" +msgstr "Impedire l'accesso ai file di installazione WP di default" + +# @ aiowpsecurity +#: admin/wp-security-filesystem-menu.php:303 +msgid "" +"Check this if you want to prevent access to readme.html, license.txt and wp-" +"config-sample.php." +msgstr "" +"Selezionare questa casella per impedire l'accesso a readme.html, license.txt " +"e wp-config-sample.php." + +# @ aiowpsecurity +#: admin/wp-security-filesystem-menu.php:307 +msgid "Save Setting" +msgstr "Salva Impostazioni" + +# @ aiowpsecurity +#: admin/wp-security-filesystem-menu.php:331 +msgid "System Logs" +msgstr "Registro Sistema" + +# @ aiowpsecurity +#: admin/wp-security-filesystem-menu.php:334 +msgid "" +"Sometimes your hosting platform will produce error or warning logs in a file " +"called \"error_log\"." +msgstr "" +"A volte la vostra piattaforma di hosting produrrà errore o log di avviso in " +"un file chiamato \"error_log\"." + +# @ aiowpsecurity +#: admin/wp-security-filesystem-menu.php:335 +msgid "" +"Depending on the nature and cause of the error or warning, your hosting " +"server can create multiple instances of this file in numerous directory " +"locations of your WordPress installation." +msgstr "" +"A seconda della natura e la causa di errore o di avvertimento, il server " +"dell'hosting è in grado di creare più istanze di questo file in numerose " +"posizioni di directory della vostra installazione WordPress." + +# @ aiowpsecurity +#: admin/wp-security-filesystem-menu.php:336 +msgid "" +"By occassionally viewing the contents of these logs files you can keep " +"informed of any underlying problems on your system which you might need to " +"address." +msgstr "" +"Di tanto in tanto la visualizzazione del contenuto di questi file di log può " +"darci informazioni di eventuali problemi di fondo sul sistema che si " +"potrebbe aver bisogno di affrontare." + +# @ aiowpsecurity +#: admin/wp-security-filesystem-menu.php:342 +msgid "View System Logs" +msgstr "Visualizza registri di sistema" + +# @ aiowpsecurity +#: admin/wp-security-filesystem-menu.php:347 +msgid "Enter System Log File Name" +msgstr "Inserisci il Nome File Registro Sistema" + +# @ aiowpsecurity +#: admin/wp-security-filesystem-menu.php:349 +msgid "Enter your system log file name. (Defaults to error_log)" +msgstr "" +"Immettere il nome del file di log di sistema. (Predefinito è error_log)" + +# @ aiowpsecurity +#: admin/wp-security-filesystem-menu.php:352 +msgid "View Latest System Logs" +msgstr "Visualizza ultimi registri di sistema" + +# @ aiowpsecurity +#: admin/wp-security-filesystem-menu.php:354 +msgid "Loading..." +msgstr "Caricamento..." + +# @ aiowpsecurity +#: admin/wp-security-filesystem-menu.php:371 +msgid "No system logs were found!" +msgstr "Nessun log di sistema sono stato trovato!" + +# @ aiowpsecurity +#: admin/wp-security-filesystem-menu.php:424 +msgid "Set Recommended Permissions" +msgstr "Imposta Permessi Consigliati" + +# @ aiowpsecurity +#: admin/wp-security-filesystem-menu.php:430 +msgid "No Action Required" +msgstr "Nessuna Azione Richiesta" + +# @ aiowpsecurity +#: admin/wp-security-filesystem-menu.php:470 +#, php-format +msgid "Showing latest entries of error_log file: %s" +msgstr "Risultati delle ultime voci di error_log file: %s" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:27 +msgid "Basic Firewall Rules" +msgstr "Regole Firewall Base" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:28 +msgid "Additional Firewall Rules" +msgstr "Regole Firewall Aggiuntive" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:29 +msgid "5G Blacklist Firewall Rules" +msgstr "Regole Blacklist Firewall 5G" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:115 +#: admin/wp-security-firewall-menu.php:663 admin/wp-security-spam-menu.php:102 +#: admin/wp-security-user-registration-menu.php:96 +msgid "Settings were successfully saved" +msgstr "Impostazioni salvate con successo" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:124 +#: admin/wp-security-firewall-menu.php:503 +msgid "Firewall Settings" +msgstr "Impostazioni Firewall" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:131 +#, php-format +msgid "" +"This should not have any impact on your site's general functionality but if " +"you wish you can take a %s of your .htaccess file before proceeding." +msgstr "" +"Questo non dovrebbe avere alcun impatto sulla funzionalità generale del tuo " +"sito, ma se vuoi puoi creare un %s del file .htaccess prima di procedere." + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:132 +msgid "" +"The features in this tab allow you to activate some basic firewall security " +"protection rules for your site." +msgstr "" +"Le funzionalità di questa scheda consentono di attivare alcune regole di " +"protezione di sicurezza del firewall di base per il sito." + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:133 +msgid "" +"The firewall functionality is achieved via the insertion of special code " +"into your currently active .htaccess file." +msgstr "" +"La funzionalità firewall è ottenuta tramite l'inserimento di codice speciale " +"nel file correntemente attivo. Htaccess." + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:153 +msgid "Basic Firewall Settings" +msgstr "Impostazioni Firewall Base" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:161 +msgid "Enable Basic Firewall Protection" +msgstr "Attiva Protezione Firewall Base" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:164 +msgid "Check this if you want to apply basic firewall protection to your site." +msgstr "" +"Seleziona questa casella se vuoi applicare la protezione di base del " +"firewall per il sito." + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:168 +msgid "" +"This setting will implement the following basic firewall protection " +"mechanisms on your site:" +msgstr "" +"Questa impostazione applicherà i seguenti meccanismi di base di protezione " +"firewall sul tuo sito:" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:169 +msgid "1) Protect your htaccess file by denying access to it." +msgstr "1) Proteggi il tuo .htaccess negando l'accesso ad esso." + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:170 +msgid "2) Disable the server signature." +msgstr "2) Disabilitare la firma del server." + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:171 +msgid "3) Limit file upload size (10MB)." +msgstr "3) Limite dimensione file di upload (10 MB)." + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:172 +msgid "4) Protect your wp-config.php file by denying access to it." +msgstr "4) Proteggere il file wp-config.php negando l'accesso ad esso." + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:173 +msgid "" +"The above firewall features will be applied via your .htaccess file and " +"should not affect your site's overall functionality." +msgstr "" +"Le funzioni di firewall di cui sopra verranno applicate tramite il file ." +"htaccess e non dovrebbe pregiudicare la funzionalità complessiva del tuo " +"sito." + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:174 +msgid "" +"You are still advised to take a backup of your active .htaccess file just in " +"case." +msgstr "" +"sei invitato ancora ad eseguire una copia di backup dell'attuale file ." +"htaccess per ogni evenienza." + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:183 +msgid "WordPress Pingback Vulnerability Protection" +msgstr "Protezione Vulnerabilità WordPress Pingback" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:144 +#: admin/wp-security-firewall-menu.php:191 +msgid "Enable Pingback Protection" +msgstr "Attiva Protezione Pingback" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:194 +msgid "" +"Check this if you are not using the WP XML-RPC functionality and you want to " +"enable protection against WordPress pingback vulnerabilities." +msgstr "" +"Seleziona questo se non utilizzi le funzioni WP XML-RPC e vuoi attivare la " +"protezione contro WordPress pingback vulnerabilità." + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:198 +msgid "" +"This setting will add a directive in your .htaccess to disable access to the " +"WordPress xmlrpc.php file which is responsible for the XML-RPC functionality " +"such as pingbacks in WordPress." +msgstr "" +"Questa impostazione aggiunge una direttiva nel file .htaccess per " +"disabilitare l'accesso al file xmlrpc.php WordPress che serve per la " +"funzionalità di XML-RPC come pingbacks in WordPress." + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:199 +msgid "" +"Hackers can exploit various pingback vulnerabilities in the WordPress XML-" +"RPC API in a number of ways such as:" +msgstr "" +"Gli hacker possono sfruttare le varie vulnerabilità pingback in WordPress " +"API XML-RPC in vari modi, ad esempio:" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:200 +msgid "1) Denial of Service (DoS) attacks" +msgstr "1) Attacchi Denial di Service (DoS)" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:201 +msgid "2) Hacking internal routers." +msgstr "2) Hacking router interni." + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:202 +msgid "3) Scanning ports in internal networks to get info from various hosts." +msgstr "" +"3) Scansione porte in reti interne per ottenere informazioni da vari host." + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:203 +msgid "" +"Apart from the security protection benefit, this feature may also help " +"reduce load on your server, particularly if your site currently has a lot of " +"unwanted traffic hitting the XML-RPC API on your installation." +msgstr "" +"Oltre al beneficio di protezione di sicurezza, questa funzione può anche " +"contribuire a ridurre il carico sul server, in particolare se il vostro sito " +"ha attualmente un sacco di traffico indesiderato che colpisce l'API XML-RPC " +"sulla tua installazione." + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:204 +msgid "" +"NOTE: You should only enable this feature if you are not currently using the " +"XML-RPC functionality on your WordPress installation." +msgstr "" +"NOTA: Si deve attivare questa funzione solo se non si sta utilizzando la " +"funzionalità XML-RPC di WordPress." + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:211 +msgid "Save Basic Firewall Settings" +msgstr "Salva Impostazioni Base Firewall" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:283 +msgid "" +"You have successfully saved the Additional Firewall Protection configuration" +msgstr "" +"Hai salvato con successo la configurazione Aggiuntiva di protezione firewall" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:297 +msgid "Additional Firewall Protection" +msgstr "Protezione Firewall Aggiuntiva" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:301 +#, php-format +msgid "" +"Due to the nature of the code being inserted to the .htaccess file, this " +"feature may break some functionality for certain plugins and you are " +"therefore advised to take a %s of .htaccess before applying this " +"configuration." +msgstr "" +"A causa della natura del codice che viene inserito nel file .htaccess, " +"questa funzione potrebbe bloccare la funzionalità di alcuni plugin e si " +"consiglia pertanto di salvare un %s di .htaccess prima di applicare questa " +"configurazione." + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:303 +msgid "" +"This feature allows you to activate more advanced firewall settings to your " +"site." +msgstr "" +"Questa funzione consente di attivare le impostazioni del firewall più " +"avanzate al tuo sito." + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:304 +msgid "" +"The advanced firewall rules are applied via the insertion of special code to " +"your currently active .htaccess file." +msgstr "" +"Le regole del firewall avanzate vengono applicate tramite l'inserimento di " +"codice speciale per l'attuale file .htaccess attivo." + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:313 +msgid "Listing of Directory Contents" +msgstr "Elenco Contenuti Directory" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:322 +#: classes/grade-system/wp-security-feature-item-manager.php:88 +msgid "Disable Index Views" +msgstr "Disabilita Vista Index" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:325 +msgid "Check this if you want to disable directory and file listing." +msgstr "" +"Selezionare questa se si desidera disabilitare directory e elenco file." + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:330 +msgid "" +"By default, an Apache server will allow the listing of the contents of a " +"directory if it doesn't contain an index.php file." +msgstr "" +"Per impostazione predefinita, un server Apache, può elencare il contenuto di " +"una directory se non contiene un file index.php." + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:332 +msgid "This feature will prevent the listing of contents for all directories." +msgstr "" +"Questa funzione impedisce di vedere l'elenco di contenuti per tutte le " +"directory." + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:343 +msgid "Trace and Track" +msgstr "Tracciamento e Monitoraggio" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:352 +#: classes/grade-system/wp-security-feature-item-manager.php:89 +msgid "Disable Trace and Track" +msgstr "Disattiva Tracciamento e Monitoraggio" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:355 +msgid "Check this if you want to disable trace and track." +msgstr "Seleziona questa per disabilitare tracciamento e monitoraraggio." + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:360 +msgid "" +"HTTP Trace attack (XST) can be used to return header requests and grab " +"cookies and other information." +msgstr "" +"Attacco Trace HTTP (XST) può essere utilizzato per trovare le richieste di " +"intestazione, catturare cookie e e altre informazioni." + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:362 +msgid "" +"This hacking technique is usually used together with cross site scripting " +"attacks (XSS)." +msgstr "" +"Questa tecnica di hacking è di solito usato con attacchi cross site " +"scripting (XSS)." + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:364 +msgid "" +"Disabling trace and track on your site will help prevent HTTP Trace attacks." +msgstr "" +"Disabilitare il tracciamento e monitoraggio sul tuo sito aiuterà a prevenire " +"gli attacchi di Trace HTTP." + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:373 +msgid "Proxy Comment Posting" +msgstr "Proxy Pubblicazione Commenti" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:383 +msgid "Forbid Proxy Comment Posting" +msgstr "Vieta pubblicazione dei commenti via Proxy" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:386 +msgid "Check this if you want to forbid proxy comment posting." +msgstr "" +"Seleziona questa casella se vuoi proibire pubblicazione commenti da proxy." + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:391 +msgid "" +"This setting will deny any requests that use a proxy server when posting " +"comments." +msgstr "" +"Con questa impostazione verrà rifiutata qualsiasi richiesta che utilizza un " +"server proxy durante la pubblicazione di commenti." + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:392 +msgid "" +"By forbidding proxy comments you are in effect eliminating some SPAM and " +"other proxy requests." +msgstr "" +"Vietando commenti proxy si eliminano in effetti molti commenti spam e altre " +"richieste proxy." + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:401 +msgid "Bad Query Strings" +msgstr "Stringhe Query Dannose" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:411 +msgid "Deny Bad Query Strings" +msgstr "Nega Stringhe Query Dannose" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:414 +msgid "This will help protect you against malicious queries via XSS." +msgstr "Questo aiuterà a proteggere contro query maligne fatte tramite XSS." + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:419 +msgid "" +"This feature will write rules in your .htaccess file to prevent malicious " +"string attacks on your site using XSS." +msgstr "" +"Questa funzione scriverà regole nel tuo file .htaccess per prevenire " +"attacchi dannosi sul tuo sito utilizzando query XSS." + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:420 +msgid "" +"NOTE: Some of these strings might be used for plugins or themes and hence " +"this might break some functionality." +msgstr "" +"NOTA: Alcune di queste stringhe potrebbero essere usate per i plugin o temi " +"e quindi questo potrebbe rompere alcune funzionalità." + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:421 +#: admin/wp-security-firewall-menu.php:451 +msgid "" +"You are therefore strongly advised to take a backup of your active .htaccess " +"file before applying this feature." +msgstr "" +"Si raccomanda pertanto di fare un backup del file .htaccess prima di " +"applicare questa funzione." + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:430 +#: classes/grade-system/wp-security-feature-item-manager.php:92 +msgid "Advanced Character String Filter" +msgstr "Filtro Avanzato Stringa Caratteri " + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:440 +msgid "Enable Advanced Character String Filter" +msgstr "Attiva Filtro Avanzato Stringa Caratteri" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:443 +msgid "This will block bad character matches from XSS." +msgstr "Questo bloccherà partite di caratteri dannosi da XSS." + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:448 +msgid "" +"This is an advanced character string filter to prevent malicious string " +"attacks on your site coming from Cross Site Scripting (XSS)." +msgstr "" +"Si tratta di un filtro stringa di caratteri avanzato per prevenire attacchi " +"di stringhe dannose sul tuo sito provenienti da Cross Site Scripting (XSS)." + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:449 +msgid "" +"This setting matches for common malicious string patterns and exploits and " +"will produce a 403 error for the hacker attempting the query." +msgstr "" +"Questa impostazione produrrà un errore 403 per l'hacker che tenta la query." + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:450 +msgid "NOTE: Some strings for this setting might break some functionality." +msgstr "" +"NOTA: Alcune stringhe con questa impostazione potrebbero rompere alcune " +"funzionalità." + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:459 +msgid "Save Additional Firewall Settings" +msgstr "Salva Impostazioni Aggiuntive Firewall" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:494 +msgid "You have successfully saved the 5G Firewall Protection configuration" +msgstr "" +"Hai salvato con successo la configurazione della protezione firewall 5G" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:507 +#, php-format +msgid "" +"This feature allows you to activate the 5G firewall security protection " +"rules designed and produced by %s." +msgstr "" +"Questa funzione consente di attivare le regole di tutela della sicurezza del " +"firewall 5G progettato e prodotto da %s." + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:508 +msgid "" +"The 5G Blacklist is a simple, flexible blacklist that helps reduce the " +"number of malicious URL requests that hit your website." +msgstr "" +"Il 5G Blacklist è una semplice lista nera, flessibile, che aiuta a ridurre " +"il numero di richieste da URL malevoli che ha colpito il vostro sito web." + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:509 +msgid "" +"The added advantage of applying the 5G firewall to your site is that it has " +"been tested and confirmed by the people at PerishablePress.com to be an " +"optimal and least disruptive set of .htaccess security rules for general WP " +"sites running on an Apache server or similar." +msgstr "" +"Il vantaggio di applicare il firewall 5G al tuo sito è che esso è stato " +"testato e confermato dal popolo PerishablePress.com come un insieme ottimale " +"e meno dirompente di regole di sicurezza .htaccess per siti WP generali in " +"esecuzione su server Apache o simili ." + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:510 +#, php-format +msgid "" +"Therefore the 5G firewall rules should not have any impact on your site's " +"general functionality but if you wish you can take a %s of your .htaccess " +"file before proceeding." +msgstr "" +"Pertanto le regole del firewall 5G non dovrebbero avere alcun impatto sulla " +"funzionalità generale del tuo sito, ma sempre meglio salvare un %s del file ." +"htaccess prima di procedere." + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:516 +msgid "5G Blacklist/Firewall Settings" +msgstr "Impostazioni Blacklist/Firewall 5G" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:528 +msgid "Enable 5G Firewall Protection" +msgstr "Abilita Protezione Firewall 5G" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:531 +msgid "" +"Check this if you want to apply the 5G Blacklist firewall protection from " +"perishablepress.com to your site." +msgstr "" +"Seleziona questa casella se si vuoi applicare la protezione del firewall 5G " +"Blacklist di perishablepress.com al tuo sito." + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:535 +msgid "" +"This setting will implement the 5G security firewall protection mechanisms " +"on your site which include the following things:" +msgstr "" +"Questa impostazione darà esecuzione ai meccanismi di protezione 5G di " +"sicurezza del firewall sul vostro sito, che comprendono le seguenti cose:" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:536 +msgid "1) Block forbidden characters commonly used in exploitative attacks." +msgstr "" +"1) Bloccare i caratteri proibiti comunemente utilizzati in attacchi " +"esplorativi." + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:537 +msgid "2) Block malicious encoded URL characters such as the \".css(\" string." +msgstr "" +"2) Bloccare URL codificati con caratteri maligni come stringa \".css (\" ." + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:538 +msgid "" +"3) Guard against the common patterns and specific exploits in the root " +"portion of targeted URLs." +msgstr "" +"3) Protezione contro i modelli comuni e specifici exploit nella root " +"principale di URL mirati." + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:539 +msgid "" +"4) Stop attackers from manipulating query strings by disallowing illicit " +"characters." +msgstr "" +"4) Arrestare tentativi di manipolazione stringhe di query vietando caratteri " +"illeciti." + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:540 +msgid "....and much more." +msgstr "...e molto altro." + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:546 +msgid "Save 5G Firewall Settings" +msgstr "Salva Impostazioni 5G Firewall" + +# @ aiowpsecurity +#: admin/wp-security-brute-force-menu.php:217 +msgid "" +"Settings have not been saved - your secret word must consist only of " +"alphanumeric characters, ie, letters and/or numbers only!" +msgstr "" +"Le impostazioni non sono state salvate - la tua parola segreta deve essere " +"composta solo da caratteri alfanumerici, cioè lettere e/o solo numeri!" + +# @ aiowpsecurity +#: admin/wp-security-brute-force-menu.php:236 +msgid "" +"You have successfully enabled the cookie based brute force prevention feature" +msgstr "" +"È stata attivata con successo la funzione di prevenzione base brute force" + +# @ aiowpsecurity +#: admin/wp-security-brute-force-menu.php:237 +msgid "" +"From now on you will need to log into your WP Admin using the following URL:" +msgstr "" +"Da ora in poi per accedere al pannello Admin WP dovrai usare il seguente URL:" + +# @ aiowpsecurity +#: admin/wp-security-brute-force-menu.php:239 +msgid "" +"It is important that you save this URL value somewhere in case you forget " +"it, OR," +msgstr "" +"Consiglio di salvare il nuovo URL di accesso nel caso dovessi dimenticarlo, " +"O," + +# @ aiowpsecurity +#: admin/wp-security-brute-force-menu.php:240 +#, php-format +msgid "simply remember to add a \"?%s=1\" to your current site URL address." +msgstr "" +"basta ti ricordi di aggiungere \"?%s=1\" al tuo attuale indirizzo URL del " +"sito." + +# @ aiowpsecurity +#: admin/wp-security-brute-force-menu.php:246 +msgid "" +"You have successfully saved cookie based brute force prevention feature " +"settings." +msgstr "" +"Hai salvato con successo il cookie per le impostazioni base di prevenzione " +"brute force." + +# @ aiowpsecurity +#: admin/wp-security-brute-force-menu.php:291 +msgid "Brute Force Prevention Firewall Settings" +msgstr "Impostazioni Prevenzione Brute Force Firewall" + +# @ aiowpsecurity +#: admin/wp-security-brute-force-menu.php:296 +msgid "" +"A Brute Force Attack is when a hacker tries many combinations of usernames " +"and passwords until they succeed in guessing the right combination." +msgstr "" +"Un attacco brute force è quando un hacker tenta molte combinazioni di nomi " +"utente e password fino a quando non riescono a indovinare quella giusta." + +# @ aiowpsecurity +#: admin/wp-security-brute-force-menu.php:297 +msgid "" +"Due to the fact that at any one time there may be many concurrent login " +"attempts occurring on your site via malicious automated robots, this also " +"has a negative impact on your server's memory and performance." +msgstr "" +"A causa del fatto che in qualsiasi momento ci possono essere molti tentativi " +"di accesso simultanei che si verificano sul tuo sito tramite robot " +"automatizzati maligni, anche questo ha un impatto negativo sulla memoria e " +"le prestazioni del server." + +# @ aiowpsecurity +#: admin/wp-security-brute-force-menu.php:298 +msgid "" +"The features in this tab will stop the majority of Brute Force Login Attacks " +"at the .htaccess level thus providing even better protection for your WP " +"login page and also reducing the load on your server because the system does " +"not have to run PHP code to process the login attempts." +msgstr "" +"Le funzionalità di questa scheda ferma la maggior parte degli attacchi di " +"brute force di login a livello .htaccess fornendo così una protezione ancora " +"migliore per la pagina di login WP e riducendo anche il carico sul server, " +"perché il sistema non ha bisogno di eseguire codice PHP per elaborare " +"tentativi di accesso." + +# @ aiowpsecurity +#: admin/wp-security-brute-force-menu.php:305 +#, php-format +msgid "" +"Even though this feature should not have any impact on your site's general " +"functionality you are strongly encouraged to take a %s of your ." +"htaccess file before proceeding." +msgstr "" +"Anche se questa caratteristica non dovrebbe avere alcun impatto sulla " +"funzionalità generale del tuo sito è vivamente consigliato fare una " +"%s del file .htaccess prima di procedere." + +# @ aiowpsecurity +#: admin/wp-security-brute-force-menu.php:307 +#, php-format +msgid "" +"To learn more about how to use this feature please watch the following %s." +msgstr "" +"Per ulteriori informazioni su come utilizzare questa funzionalità si prega " +"di guardare il seguente %s." + +# @ aiowpsecurity +#: admin/wp-security-brute-force-menu.php:328 +msgid "Cookie Based Brute Force Login Prevention" +msgstr "Cookie Brute Force Prevenzione Base Accesso." + +# @ aiowpsecurity +#: admin/wp-security-brute-force-menu.php:339 +#: classes/grade-system/wp-security-feature-item-manager.php:87 +msgid "Enable Brute Force Attack Prevention" +msgstr "Abilita Prevenzione Attacchi Brute Force" + +# @ aiowpsecurity +#: admin/wp-security-brute-force-menu.php:342 +msgid "" +"Check this if you want to protect your login page from Brute Force Attack." +msgstr "" +"Seleziona questa casella per proteggere la pagina di login da attacchi brute " +"force." + +# @ aiowpsecurity +#: admin/wp-security-brute-force-menu.php:347 +msgid "" +"This feature will deny access to your WordPress login page for all people " +"except those who have a special cookie in their browser." +msgstr "" +"Questa funzione nega l'accesso alla pagina di login di WordPress per tutte " +"le persone, tranne coloro che hanno un cookie speciale nel proprio browser." + +# @ aiowpsecurity +#: admin/wp-security-brute-force-menu.php:349 +msgid "To use this feature do the following:" +msgstr "Per utilizzare questa funzione, attenersi alla seguente procedura:" + +# @ aiowpsecurity +#: admin/wp-security-brute-force-menu.php:351 +msgid "1) Enable the checkbox." +msgstr "1) Attivare la casella di controllo." + +# @ aiowpsecurity +#: admin/wp-security-brute-force-menu.php:353 +msgid "" +"2) Enter a secret word consisting of alphanumeric characters which will be " +"difficult to guess. This secret word will be useful whenever you need to " +"know the special URL which you will use to access the login page (see point " +"below)." +msgstr "" +"2) Inserire una parola segreta composta da caratteri alfanumerici difficile " +"da indovinare. Questa parola segreta sarà utile ogni volta che è necessario " +"conoscere l'URL speciale che verrà utilizzato per accedere alla pagina di " +"login (vedi punto seguente)." + +# @ aiowpsecurity +#: admin/wp-security-brute-force-menu.php:355 +msgid "" +"3) You will then be provided with a special login URL. You will need to use " +"this URL to login to your WordPress site instead of the usual login URL. " +"NOTE: The system will deposit a special cookie in your browser which will " +"allow you access to the WordPress administration login page." +msgstr "" +"3) Ti verrà fornito un URL di accesso speciale. È necessario utilizzare " +"questo URL per accedere al sito WordPress invece del solito URL di login. " +"NOTA: Il sistema deposita un cookie speciale nel browser che permetterà di " +"accedere alla pagina di login di amministrazione WordPress." + +# @ aiowpsecurity +#: admin/wp-security-brute-force-menu.php:357 +msgid "" +"Any person trying to access your login page who does not have the special " +"cookie in their browser will be automatically blocked." +msgstr "" +"Qualsiasi persona che tenta di accedere alla pagina di login che non ha il " +"cookie speciale nel browser viene bloccato automaticamente." + +# @ aiowpsecurity +#: admin/wp-security-brute-force-menu.php:364 +msgid "Secret Word" +msgstr "Parola Segreta" + +# @ aiowpsecurity +#: admin/wp-security-brute-force-menu.php:366 +msgid "" +"Choose a secret word consisting of alphanumeric characters which you can use " +"to access your special URL. Your are highly encouraged to choose a word " +"which will be difficult to guess." +msgstr "" +"Scegli una parola segreta composta da caratteri alfanumerici che è possibile " +"utilizzare per accedere al tuo URL speciale. Mi raccomando di scegliere una " +"parola molto difficile da indovinare." + +# @ aiowpsecurity +#: admin/wp-security-brute-force-menu.php:370 +msgid "Re-direct URL" +msgstr "URL Re-direct" + +# @ aiowpsecurity +#: admin/wp-security-brute-force-menu.php:374 +msgid "" +"Specify a URL to redirect a hacker to when they try to access your WordPress " +"login page." +msgstr "" +"Specificare un URL per reindirizzare un hacker quando cerca di accedere alla " +"pagina di login di WordPress" + +# @ aiowpsecurity +#: admin/wp-security-brute-force-menu.php:381 +msgid "" +"The URL specified here can be any site's URL and does not have to be your " +"own. For example you can be as creative as you like and send hackers to the " +"CIA or NSA home page." +msgstr "" +"L'URL specificato qui può essere un URL di qualsiasi sito e non deve essere " +"per forza il tuo. Ad esempio puoi usare la fantasia e inviare l'hacker al " +"sito della polizia postale alla CIA o quello che preferisci." + +# @ aiowpsecurity +#: admin/wp-security-brute-force-menu.php:383 +msgid "" +"This field will default to: http://127.0.0.1 if you do not enter a value." +msgstr "" +"Se non inserisci un valore questo campo sarà di default impostato a: " +"http://127.0.0.1" + +# @ aiowpsecurity +#: admin/wp-security-brute-force-menu.php:385 +msgid "Useful Tip:" +msgstr "Suggerimento utile:" + +# @ aiowpsecurity +#: admin/wp-security-brute-force-menu.php:387 +msgid "" +"It's a good idea to not redirect attempted brute force login attempts to " +"your site because it increases the load on your server." +msgstr "" +"Una buona idea è di non reindirizzare i tentativi di attacco brute force al " +"tuo sito, perché il carico sul server aumenta." + +# @ aiowpsecurity +#: admin/wp-security-brute-force-menu.php:389 +msgid "" +"Redirecting a hacker or malicious bot back to \"http://127.0.0.1\" is ideal " +"because it deflects them back to their own local host and puts the load on " +"their server instead of yours." +msgstr "" +"Reindirizzare un hacker o bot maligni a \"http://127.0.0.1\" è l'ideale " +"perché li devia indietro al proprio host locale e mette il carico sui loro " +"server al posto del tuo." + +# @ aiowpsecurity +#: admin/wp-security-brute-force-menu.php:396 +msgid "My Site Has Posts Or Pages Which Are Password Protected" +msgstr "Il mio sito ha post o pagine che sono protetti da password" + +# @ aiowpsecurity +#: admin/wp-security-brute-force-menu.php:399 +msgid "" +"Check this if you are using the native WordPress password protection feature " +"for some or all of your blog posts or pages." +msgstr "" +"Seleziona questa casella se si utilizza la funzione di protezione con " +"password nativa di WordPress per alcuni o tutti i post/pagine del tuo blog." + +# @ aiowpsecurity +#: admin/wp-security-brute-force-menu.php:404 +msgid "" +"In the cases where you are protecting some of your posts or pages using the " +"in-built WordPress password protection feature, a few extra lines of " +"directives and exceptions need to be added to your .htacces file so that " +"people trying to access pages are not automatically blocked." +msgstr "" +"Nei casi in cui si stanno proteggendo alcuni post o pagine tramite la " +"funzione di protezione con password di WordPress, poche linee in più di " +"direttive e eccezioni devono essere aggiunte al file .htacces in modo che le " +"persone che cercano di accedere alle pagine non siano automaticamente " +"bloccate." + +# @ aiowpsecurity +#: admin/wp-security-brute-force-menu.php:406 +msgid "" +"By enabling this checkbox the plugin will add the necessary rules and " +"exceptions to your .htacces file so that people trying to access these pages " +"are not automatically blocked." +msgstr "" +"Abilitando questa casella il plugin aggiungerà le regole e le eccezioni " +"necessarie per il file .htacces in modo che le persone che cercano di " +"accedere a queste pagine non vengano automaticamente bloccate." + +# @ aiowpsecurity +#: admin/wp-security-brute-force-menu.php:408 +msgid "Helpful Tip:" +msgstr "Suggerimento utile:" + +# @ aiowpsecurity +#: admin/wp-security-brute-force-menu.php:410 +msgid "" +"If you do not use the WordPress password protection feature for your posts " +"or pages then it is highly recommended that you leave this checkbox disabled." +msgstr "" +"Se non si utilizza la funzione di protezione con password di WordPress per i " +"tuoi post o le pagine, allora si consiglia vivamente di lasciare questa " +"casella di controllo disattivata." + +# @ aiowpsecurity +#: admin/wp-security-brute-force-menu.php:417 +msgid "My Site Has a Theme or Plugins Which Use AJAX" +msgstr "Il mio sito ha un tema o plugin che utilizzano AJAX" + +# @ aiowpsecurity +#: admin/wp-security-brute-force-menu.php:420 +msgid "Check this if your site uses AJAX functionality." +msgstr "Seleziona questa casella se il sito utilizza funzionalità AJAX." + +# @ aiowpsecurity +#: admin/wp-security-brute-force-menu.php:425 +msgid "" +"In the cases where your WordPress installation has a theme or plugins which " +"use AJAX, a few extra lines of directives and exceptions need to be added to " +"your .htacces file to prevent AJAX requests from being automatically blocked " +"by the brute force prevention feature." +msgstr "" +"Nei casi in cui l'installazione di WordPress ha un tema o plugin che usano " +"AJAX, poche linee in più di direttive e eccezioni devono essere aggiunte al " +"file .htacces per evitare che le richieste AJAX vengano bloccate " +"automaticamente dalla funzione di prevenzione brute force." + +# @ aiowpsecurity +#: admin/wp-security-brute-force-menu.php:427 +msgid "" +"By enabling this checkbox the plugin will add the necessary rules and " +"exceptions to your .htacces file so that AJAX operations will work as " +"expected." +msgstr "" +"Abilitando questa casella il plugin aggiungerà le regole e le eccezioni " +"necessarie nel file .htacces in modo che le operazioni AJAX funzioneranno " +"come previsto." + +# @ aiowpsecurity +#: admin/wp-security-brute-force-menu.php:442 +msgid "The cookie test was successful. You can now enable this feature." +msgstr "" +"Il Test cookie ha avuto successo. Ora è possibile attivare questa funzione." + +# @ aiowpsecurity +#: admin/wp-security-brute-force-menu.php:445 +msgid "Save Feature Settings" +msgstr "Sala Impostazioni Caratteristiche" + +# @ aiowpsecurity +#: admin/wp-security-brute-force-menu.php:452 +msgid "" +"The cookie test failed on this server. So this feature cannot be used on " +"this site." +msgstr "" +"La provacookie non è riuscita su questo server. Quindi, questa funzione non " +"può essere utilizzata in questo sito." + +# @ aiowpsecurity +#: admin/wp-security-brute-force-menu.php:457 +msgid "" +"Before using this feature you are required to perform a cookie test first. " +"This is to make sure that your browser cookie is working correctly and that " +"you won't lock yourself out." +msgstr "" +"Prima di utilizzare questa funzione viene richiesto di eseguire un test " +"cookie. Questo per fare verificare che il cookie del browser funziona " +"correttamente e non rischi di rimanere fuori." + +# @ aiowpsecurity +#: admin/wp-security-brute-force-menu.php:459 +msgid "Perform Cookie Test" +msgstr "Esegui Test Cookie" + +# @ aiowpsecurity +#: admin/wp-security-list-404.php:108 +#: admin/wp-security-list-acct-activity.php:79 +#: admin/wp-security-list-comment-spammer-ip.php:86 +#: admin/wp-security-list-locked-ip.php:82 +#: admin/wp-security-list-locked-ip.php:93 +#: admin/wp-security-list-login-fails.php:78 +#: admin/wp-security-list-registered-users.php:82 +#: admin/wp-security-list-registered-users.php:93 +msgid "Please select some records using the checkboxes" +msgstr "" +"Si prega di selezionare alcuni record utilizzando le caselle di controllo" + +# @ aiowpsecurity +#: admin/wp-security-list-acct-activity.php:107 +#: admin/wp-security-list-login-fails.php:107 +msgid "The selected entries were deleted successfully!" +msgstr "Le voci selezionate sono state cancellate con successo!" + +# @ aiowpsecurity +#: admin/wp-security-list-acct-activity.php:120 +#: admin/wp-security-list-login-fails.php:119 +msgid "The selected entry was deleted successfully!" +msgstr "La voce selezionata è stata eliminata con successo!" + +# @ aiowpsecurity +#: admin/wp-security-list-comment-spammer-ip.php:139 +msgid "" +"The selected IP addresses were saved in the blacklist configuration settings." +msgstr "" +"Gli indirizzi IP selezionati sono stati salvati nelle impostazioni di " +"configurazione blacklist." + +# @ aiowpsecurity +#: admin/wp-security-list-comment-spammer-ip.php:153 +msgid "" +"The .htaccess file was successfully modified to include the selected IP " +"addresses." +msgstr "" +"Il file .htaccess è stato modificato correttamente per includere gli " +"indirizzi IP selezionati." + +# @ aiowpsecurity +#: admin/wp-security-list-comment-spammer-ip.php:159 +msgid "" +"NOTE: The .htaccess file was not modified because you have disabled the " +"\"Enable IP or User Agent Blacklisting\" check box." +msgstr "" +"NOTE: Il file .htaccess non è stata modificato perché è stata disattivata la " +"casella \"Abilita IP o User Agent Blacklisting\"." + +# @ aiowpsecurity +#: admin/wp-security-list-comment-spammer-ip.php:160 +#, php-format +msgid "" +"To block these IP addresses you will need to enable the above flag in the %s " +"menu" +msgstr "" +"Per bloccare questi indirizzi IP è necessario attivare il flag sopra nel " +"menù %s" + +# @ aiowpsecurity +#: admin/wp-security-list-registered-users.php:135 +msgid "The selected accounts were approved successfully!" +msgstr "Gli account selezionati sono stati approvati con successo!" + +# @ aiowpsecurity +#: admin/wp-security-list-registered-users.php:147 +msgid "The selected account was approved successfully!" +msgstr "Gli account selezionati sono stati approvati con successo!" + +# @ aiowpsecurity +#: admin/wp-security-list-registered-users.php:176 +msgid "The selected accounts were deleted successfully!" +msgstr "Gli account selezionati sono stati approvati con successo!" + +# @ aiowpsecurity +#: admin/wp-security-list-registered-users.php:184 +msgid "The selected account was deleted successfully!" +msgstr "Gli account selezionati sono stati approvati con successo!" + +# @ aiowpsecurity +#: admin/wp-security-maintenance-menu.php:22 +msgid "Visitor Lockout" +msgstr "Visitatori Bloccati" + +# @ aiowpsecurity +#: admin/wp-security-maintenance-menu.php:88 +msgid "Site lockout feature settings saved!" +msgstr "Impostazioni funzioni blocco sito salvate con successo!" + +# @ aiowpsecurity +#: admin/wp-security-maintenance-menu.php:93 +msgid "General Visitor Lockout" +msgstr "Visitatori Bloccati Generale" + +# @ aiowpsecurity +#: admin/wp-security-maintenance-menu.php:99 +msgid "" +"This feature allows you to put your site into \"maintenance mode\" by " +"locking down the front-end to all visitors except logged in users with super " +"admin privileges." +msgstr "" +"Questa funzione consente di mettere il sito in \"modalità manutenzione\" " +"bloccando il front-end a tutti i visitatori, tranne gli utenti registrati " +"con privilegi di super amministratore." + +# @ aiowpsecurity +#: admin/wp-security-maintenance-menu.php:100 +msgid "" +"Locking your site down to general visitors can be useful if you are " +"investigating some issues on your site or perhaps you might be doing some " +"maintenance and wish to keep out all traffic for security reasons." +msgstr "" +"Bloccare il sito per i visitatori generali può essere utile se si stanno " +"indagando alcuni problemi sul sito o forse si vuole fare un po' di " +"manutenzione e voler tenere fuori tutto il traffico per motivi di sicurezza." + +# @ aiowpsecurity +#: admin/wp-security-maintenance-menu.php:105 +msgid "Enable Front-end Lockout" +msgstr "Attiva Blocco Front-end" + +# @ aiowpsecurity +#: admin/wp-security-maintenance-menu.php:108 +msgid "" +"Check this if you want all visitors except those who are logged in as " +"administrator to be locked out of the front-end of your site." +msgstr "" +"Seleziona questa casella se desideri che tutti i visitatori, ad eccezione di " +"chi ha effettuato l'accesso come amministratore, siano bloccati fuori dal " +"front-end del tuo sito." + +# @ aiowpsecurity +#: admin/wp-security-maintenance-menu.php:112 +msgid "Enter a Message:" +msgstr "Inserisci Messaggio:" + +# @ aiowpsecurity +#: admin/wp-security-maintenance-menu.php:124 +msgid "" +"Enter a message you wish to display to visitors when your site is in " +"maintenance mode." +msgstr "" +"Immettere un messaggio che si desidera mostrare ai visitatori quando il sito " +"è in modalità manutenzione." + +# @ default +#: admin/wp-security-maintenance-menu.php:131 +msgid "Save Site Lockout Settings" +msgstr "Salva Impostazioni Blocco Sito" + +# @ aiowpsecurity +#: admin/wp-security-settings-menu.php:25 +msgid "General Settings" +msgstr "Impostazioni Generali" + +# @ aiowpsecurity +#: admin/wp-security-settings-menu.php:28 +msgid "WP Meta Info" +msgstr "Meta Info WP" + +# @ aiowpsecurity +#: admin/wp-security-settings-menu.php:95 +msgid "All the security features have been disabled successfully!" +msgstr "" +"Tutte le caratteristiche di sicurezza sono state disabilitate con successo!" + +# @ aiowpsecurity +#: admin/wp-security-settings-menu.php:99 +#: admin/wp-security-settings-menu.php:126 +msgid "" +"Could not write to the .htaccess file. Please restore your .htaccess file " +"manually using the restore functionality in the \".htaccess File\"." +msgstr "" +"Impossibile scrivere nel file .htaccess. Si prega di ripristinare il file " +"manualmente utilizzando la funzione di ripristino del \"File .htaccess\"." + +# @ aiowpsecurity +#: admin/wp-security-settings-menu.php:104 +msgid "" +"Could not write to the wp-config.php. Please restore your wp-config.php file " +"manually using the restore functionality in the \"wp-config.php File\"." +msgstr "" +"Impossibile scrivere il wp-config.php. Si prega di ripristinare il file wp-" +"config.php manualmente utilizzando la funzione di ripristino del \"File wp-" +"config.php\"." + +# @ aiowpsecurity +#: admin/wp-security-settings-menu.php:122 +msgid "All firewall rules have been disabled successfully!" +msgstr "Tutte le regole del firewall sono state disabilitate con successo!" + +# @ aiowpsecurity +#: admin/wp-security-settings-menu.php:136 +msgid "WP Security Plugin" +msgstr "WP Plugin Sicurezza" + +# @ aiowpsecurity +#: admin/wp-security-settings-menu.php:138 +msgid "" +"Thank you for using our WordPress security plugin. There are a lot of " +"security features in this plugin." +msgstr "" +"Grazie per aver scelto il nostro plugin di sicurezza WordPress. Ci sono un " +"sacco di funzioni di sicurezza in questo plugin." + +# @ aiowpsecurity +#: admin/wp-security-settings-menu.php:139 +msgid "" +"Go through each menu items and enable the security options to add more " +"security to your site. Start by activating the basic features first." +msgstr "" +"Passa attraverso ogni voce di menù e attiva le opzioni di sicurezza per " +"rendere più sicuro il tuo sito. Inizia attivando le funzionalità di Base." + +# @ aiowpsecurity +#: admin/wp-security-settings-menu.php:140 +msgid "" +"It is a good practice to take a backup of your .htaccess file, database and " +"wp-config.php file before activating the security features. This plugin has " +"options that you can use to backup those resources easily." +msgstr "" +"Sempre consigliato fare un backup dei file del database, wp-config.php e ." +"htaccess prima di attivare le funzioni di protezione. Questo plugin ha " +"opzioni che è possibile utilizzare per eseguire il backup di tali risorse " +"facilmente." + +# @ aiowpsecurity +#: admin/wp-security-settings-menu.php:143 +msgid "Backup your database" +msgstr "Backup tuo database" + +# @ aiowpsecurity +#: admin/wp-security-settings-menu.php:144 +msgid "Backup .htaccess file" +msgstr "Backup file .htaccess" + +# @ aiowpsecurity +#: admin/wp-security-settings-menu.php:145 +msgid "Backup wp-config.php file" +msgstr "Backup file wp-config.php" + +# @ aiowpsecurity +#: admin/wp-security-settings-menu.php:151 +msgid "Disable Security Features" +msgstr "Disabilita Funzioni Sicurezza" + +# @ aiowpsecurity +#: admin/wp-security-settings-menu.php:157 +msgid "" +"If you think that some plugin functionality on your site is broken due to a " +"security feature you enabled in this plugin, then use the following option " +"to turn off all the security features of this plugin." +msgstr "" +"Se pensi che alcune funzionalità del plugin sul ​​tuo sito non vanno più bene " +"a causa di una funzione di sicurezza attivata in questo plugin, utilizza la " +"seguente opzione per disattivare tutte le funzioni di sicurezza del plugin." + +# @ default +#: admin/wp-security-settings-menu.php:161 +msgid "Disable All Security Features" +msgstr "Disabilita Tutte le Funzioni di Sicurezza" + +# @ aiowpsecurity +# @ default +#: admin/wp-security-settings-menu.php:167 +#: admin/wp-security-settings-menu.php:177 +msgid "Disable All Firewall Rules" +msgstr "Disabilita Tutte le Regole del Firewall" + +# @ aiowpsecurity +#: admin/wp-security-settings-menu.php:173 +msgid "" +"This feature will disable all firewall rules which are currently active in " +"this plugin and it will also delete these rules from your .htacess file. Use " +"it if you think one of the firewall rules is causing an issue on your site." +msgstr "" +"Questa funzione consente di disattivare tutte le regole del firewall che " +"sono attualmente attive in questo plugin e saranno cancellate le regole dal " +"file .htacess. Usalo se pensi che una delle regole del firewall sta causando " +"un problema sul tuo sito." + +# @ aiowpsecurity +#: admin/wp-security-settings-menu.php:212 +msgid "" +"htaccess file rename failed during backup. Please check your root directory " +"for the backup file using FTP." +msgstr "" +"tentativo di rinominare il file .htaccess fallito durante il backup. " +"Verifica la tua root directory per il file di backup tramite FTP." + +# @ aiowpsecurity +#: admin/wp-security-settings-menu.php:218 +msgid "htaccess backup failed." +msgstr "backup .htaccess fallito" + +# @ aiowpsecurity +#: admin/wp-security-settings-menu.php:233 +msgid "Please choose a .htaccess to restore from." +msgstr "Seleziona un file .htaccess per il ripristino." + +# @ aiowpsecurity +#: admin/wp-security-settings-menu.php:249 +msgid "" +"htaccess file restore failed. Please attempt to restore the .htaccess " +"manually using FTP." +msgstr "" +"htaccess file di ripristino non riuscito. Si prega di provare a ripristinare " +"l'.htaccess manualmente tramite FTP." + +# @ aiowpsecurity +#: admin/wp-security-settings-menu.php:253 +msgid "Your .htaccess file has successfully been restored!" +msgstr "Il tuo file .htaccess è stato ripristinato con successo!" + +# @ aiowpsecurity +#: admin/wp-security-settings-menu.php:259 +msgid "" +"htaccess Restore operation failed! Please check the contents of the file you " +"are trying to restore from." +msgstr "" +"operazione di ripristino htaccess non riuscita! Si prega di verificare il " +"contenuto del file che si sta tentando di ripristinare da" + +# @ aiowpsecurity +#: admin/wp-security-settings-menu.php:265 +msgid ".htaccess File Operations" +msgstr "Operazioni File .htaccess" + +# @ aiowpsecurity +#: admin/wp-security-settings-menu.php:268 +msgid "" +"Your \".htaccess\" file is a key component of your website's security and it " +"can be modified to implement various levels of protection mechanisms." +msgstr "" +"Il file \".htaccess\" è un componente chiave della sicurezza del tuo sito " +"web e può essere modificato per implementare diversi livelli di meccanismi " +"di protezione." + +# @ aiowpsecurity +#: admin/wp-security-settings-menu.php:269 +msgid "" +"This feature allows you to backup and save your currently active .htaccess " +"file should you need to re-use the the backed up file in the future." +msgstr "" +"Questa funzione consente di eseguire il backup e salvare il file .htaccess " +"attualmente attivo e in caso di necessità ri-utilizzare il file di backup in " +"futuro." + +# @ aiowpsecurity +#: admin/wp-security-settings-menu.php:270 +msgid "" +"You can also restore your site's .htaccess settings using a backed up ." +"htaccess file." +msgstr "" +"È inoltre possibile ripristinare le impostazioni .htaccess del tuo sito " +"utilizzando un file .htaccess di cui eseguito il backup." + +# @ aiowpsecurity +#: admin/wp-security-settings-menu.php:284 +msgid "Save the current .htaccess file" +msgstr "Salva il file .htaccess attuale" + +# @ aiowpsecurity +#: admin/wp-security-settings-menu.php:288 +msgid "" +"Click the button below to backup and save the currently active .htaccess " +"file." +msgstr "" +"Fare clic sul bottone qui sotto per eseguire il backup e salvare il file ." +"htaccess attualmente attivo." + +# @ aiowpsecurity +#: admin/wp-security-settings-menu.php:289 +msgid "Backup .htaccess File" +msgstr "Backup File .htaccess" + +# @ aiowpsecurity +#: admin/wp-security-settings-menu.php:293 +msgid "Restore from a backed up .htaccess file" +msgstr "Ripristina da un file di backup .htaccess" + +# @ aiowpsecurity +#: admin/wp-security-settings-menu.php:299 +msgid ".htaccess file to restore from" +msgstr "ripristina file .htaccess da" + +# @ aiowpsecurity +#: admin/wp-security-settings-menu.php:305 +msgid "" +"After selecting your file, click the button below to restore your site using " +"the backed up htaccess file (htaccess_backup.txt)." +msgstr "" +"Dopo aver selezionato il file, fare clic sul pulsante qui sotto per " +"ripristinare il sito utilizzando il backup del file htaccess " +"(htaccess_backup.txt)." + +# @ aiowpsecurity +#: admin/wp-security-settings-menu.php:311 +msgid "Restore .htaccess File" +msgstr "Ripristina File .htaccess" + +# @ aiowpsecurity +#: admin/wp-security-settings-menu.php:315 +msgid "View Contents of the currently active .htaccess file" +msgstr "Vedi il contenuto del file .htaccess attualmente attivo" + +# @ aiowpsecurity +#: admin/wp-security-settings-menu.php:344 +msgid "Please choose a wp-config.php file to restore from." +msgstr "Prego scegli il file wp-config.php da ripristinare" + +# @ aiowpsecurity +#: admin/wp-security-settings-menu.php:360 +msgid "" +"wp-config.php file restore failed. Please attempt to restore this file " +"manually using FTP." +msgstr "" +"ripristino file wp-config.php non riuscito. Cerca di ripristinare questo " +"file manualmente tramite FTP." + +# @ aiowpsecurity +#: admin/wp-security-settings-menu.php:364 +msgid "Your wp-config.php file has successfully been restored!" +msgstr "Il tuo file wp-config.php è stato ripristinato con successo!" + +# @ aiowpsecurity +#: admin/wp-security-settings-menu.php:370 +msgid "" +"wp-config.php Restore operation failed! Please check the contents of the " +"file you are trying to restore from." +msgstr "" +"operazione ripristino wp-config.php fallita! Verifica il contenuto del file " +"che stai tentando di ripristinare da." + +# @ aiowpsecurity +#: admin/wp-security-settings-menu.php:376 +msgid "wp-config.php File Operations" +msgstr "Operazioni File wp-config.php" + +# @ aiowpsecurity +#: admin/wp-security-settings-menu.php:379 +msgid "" +"Your \"wp-config.php\" file is one of the most important in your WordPress " +"installation. It is a primary configuration file and contains crucial things " +"such as details of your database and other critical components." +msgstr "" +"Il file è \"wp-config.php\" uno dei più importanti dell'installazione di " +"WordPress. Si tratta di un file di configurazione principale e contiene cose " +"fondamentali come i dettagli del database e altri componenti critici." + +# @ aiowpsecurity +#: admin/wp-security-settings-menu.php:380 +msgid "" +"This feature allows you to backup and save your currently active wp-config." +"php file should you need to re-use the the backed up file in the future." +msgstr "" +"Questa funzione consente di eseguire il backup e salvare il file wp-config." +"php attualmente attivo e in caso di necessità ri-utilizzare il file di " +"backup in futuro." + +# @ aiowpsecurity +#: admin/wp-security-settings-menu.php:381 +msgid "" +"You can also restore your site's wp-config.php settings using a backed up wp-" +"config.php file." +msgstr "" +"È inoltre possibile ripristinare le impostazioni di wp-config.php del tuo " +"sito utilizzando un file wp-config.php di cui hai fatto il backup." + +# @ aiowpsecurity +#: admin/wp-security-settings-menu.php:395 +msgid "Save the current wp-config.php file" +msgstr "Salva il file wp-config.php corrente" + +# @ aiowpsecurity +#: admin/wp-security-settings-menu.php:399 +msgid "" +"Click the button below to backup and download the contents of the currently " +"active wp-config.php file." +msgstr "" +"Clicca sul bottone qui sotto per eseguire il backup e salvare il file wp-" +"config.php attualmente attivo." + +# @ aiowpsecurity +#: admin/wp-security-settings-menu.php:400 +msgid "Backup wp-config.php File" +msgstr "Backup File wp-config.php" + +# @ aiowpsecurity +#: admin/wp-security-settings-menu.php:405 +msgid "Restore from a backed up wp-config file" +msgstr "Ripristina file wp-config.php da un backup" + +# @ aiowpsecurity +#: admin/wp-security-settings-menu.php:411 +msgid "wp-config file to restore from" +msgstr "ripristino file wp-config.php da" + +# @ aiowpsecurity +#: admin/wp-security-settings-menu.php:417 +msgid "" +"After selecting your file click the button below to restore your site using " +"the backed up wp-config file (wp-config.php.backup.txt)." +msgstr "" +"Dopo aver selezionato il file fare clic sul pulsante qui sotto per " +"ripristinare il sito utilizzando il backup di file wp-config (wp-config.php." +"backup.txt)." + +# @ aiowpsecurity +#: admin/wp-security-settings-menu.php:423 +msgid "Restore wp-config File" +msgstr "Ripristina File wp-config.php" + +# @ aiowpsecurity +#: admin/wp-security-settings-menu.php:427 +msgid "View Contents of the currently active wp-config.php file" +msgstr "Vedi il contenuto dell'attuale file wp-config.php" + +# @ aiowpsecurity +#: admin/wp-security-settings-menu.php:462 +msgid "WP Generator Meta Tag" +msgstr "Generatore WP Meta Tag" + +# @ aiowpsecurity +#: admin/wp-security-settings-menu.php:465 +msgid "" +"Wordpress generator automatically adds some meta information inside the " +"\"head\" tags of every page on your site's front end. Below is an example of " +"this:" +msgstr "" +"Wordpress generatore aggiunge automaticamente alcune informazioni meta " +"dentro i tag della \"head\" di ogni pagina del front-end del tuo sito. Di " +"seguito è riportato un esempio di questo:" + +# @ aiowpsecurity +#: admin/wp-security-settings-menu.php:467 +msgid "" +"The above meta information shows which version of WordPress your site is " +"currently running and thus can help hackers or crawlers scan your site to " +"see if you have an older version of WordPress or one with a known exploit." +msgstr "" +"La meta informazioni di cui sopra mostra la versione di WordPress " +"attualmente in esecuzione e quindi può aiutare gli hacker o crawler nella " +"scansione del sito che potrebbero sfruttare bug noti di tale versione " +"WordPress." + +# @ aiowpsecurity +#: admin/wp-security-settings-menu.php:468 +msgid "" +"This feature will allow you to remove the WP generator meta info from your " +"site's pages." +msgstr "" +"Questa funzione permette di rimuovere il generatore di meta informazioni WP " +"dalle pagine del tuo sito." + +# @ aiowpsecurity +#: admin/wp-security-settings-menu.php:474 +msgid "WP Generator Meta Info" +msgstr "Generatore Meta Info WP" + +# @ aiowpsecurity +#: admin/wp-security-settings-menu.php:486 +msgid "Remove WP Generator Meta Info" +msgstr "Rimuovi Generatore Meta Info WP" + +# @ aiowpsecurity +#: admin/wp-security-settings-menu.php:489 +msgid "" +"Check this if you want to remove the meta info produced by WP Generator from " +"all pages" +msgstr "" +"Seleziona questa casella se per rimuovere le informazioni meta prodotte dal " +"generatore WP su tutte le pagine" + +# @ aiowpsecurity +#: admin/wp-security-spam-menu.php:23 +msgid "Comment SPAM" +msgstr "Commenti SPAM" + +# @ aiowpsecurity +#: admin/wp-security-spam-menu.php:24 +msgid "Comment SPAM IP Monitoring" +msgstr "Monitoraggio IP Commenti SPAM" + +# @ aiowpsecurity +#: admin/wp-security-spam-menu.php:111 +msgid "Comment SPAM Settings" +msgstr "Impostazione Commenti SPAM" + +# @ aiowpsecurity +#: admin/wp-security-spam-menu.php:116 +msgid "Add Captcha To Comments Form" +msgstr "Aggiungi Captcha al Modulo Commenti" + +# @ aiowpsecurity +#: admin/wp-security-spam-menu.php:120 +msgid "" +"This feature will add a simple math captcha field in the WordPress comments " +"form." +msgstr "" +"Questa funzione aggiungerà un semplice campo captcha matematico al modulo " +"commenti WordPress." + +# @ aiowpsecurity +#: admin/wp-security-spam-menu.php:130 +msgid "Enable Captcha On Comment Forms" +msgstr "Attiva Captcha nel Modulo Commenti" + +# @ aiowpsecurity +#: admin/wp-security-spam-menu.php:133 +msgid "Check this if you want to insert a captcha field on the comment forms" +msgstr "" +"Seleziona questo se desideri inserire un campo captcha nel modulo commenti" + +# @ aiowpsecurity +#: admin/wp-security-spam-menu.php:140 +msgid "Block Spambot Comments" +msgstr "Blocca Commenti Spambot" + +# @ aiowpsecurity +#: admin/wp-security-spam-menu.php:144 +msgid "" +"A large portion of WordPress blog comment SPAM is mainly produced by " +"automated bots and not necessarily by humans. " +msgstr "" +"Una gran parte dei commenti SPAM nei blog WordPress è prodotto " +"principalmente da bot automatici e non necessariamente da esseri umani." + +# @ aiowpsecurity +#: admin/wp-security-spam-menu.php:145 +msgid "" +"This feature will greatly minimize the useless and unecessary traffic and " +"load on your server resulting from SPAM comments by blocking all comment " +"requests which do not originate from your domain." +msgstr "" +"Questa caratteristica ridurrà al minimo il traffico inutile è buona regola " +"non caricare sul server commenti spam, bloccando tutte le richieste di " +"commento che non hanno origine dal proprio dominio." + +# @ aiowpsecurity +#: admin/wp-security-spam-menu.php:162 +msgid "Block Spambots From Posting Comments" +msgstr "Impedisci che Spambots possano pubblicare commenti" + +# @ aiowpsecurity +#: admin/wp-security-spam-menu.php:165 +msgid "" +"Check this if you want to apply a firewall rule which will block comments " +"originating from spambots." +msgstr "" +"Seleziona questa casella se vuoi applicare una regola firewall che blocca i " +"commenti provenienti da spambot." + +# @ aiowpsecurity +#: admin/wp-security-spam-menu.php:169 +msgid "" +"This feature will implement a firewall rule to block all comment attempts " +"which do not originate from your domain." +msgstr "" +"Questa funzione consente di applicare una regola firewall per bloccare tutti " +"i tentativi di commento che non hanno origine dal proprio dominio." + +# @ aiowpsecurity +#: admin/wp-security-spam-menu.php:170 +msgid "" +"A legitimate comment is one which is submitted by a human who physically " +"fills out the comment form and clicks the submit button. For such events, " +"the HTTP_REFERRER is always set to your own domain." +msgstr "" +"Un commento legittimo è quello che viene presentato da un umano che riempie " +"fisicamente il modulo commenti e fa clic sul pulsante di invio. Per tali " +"eventi, il HTTP_REFERRER è sempre impostato per il proprio dominio." + +# @ aiowpsecurity +#: admin/wp-security-spam-menu.php:171 +msgid "" +"A comment submitted by a spambot is done by directly calling the comments." +"php file, which usually means that the HTTP_REFERRER value is not your " +"domain and often times empty." +msgstr "" +"Un commento lasciato da uno spambot viene fatto chiamando direttamente il " +"file comments.php, che di solito significa che il valore HTTP_REFERRER non è " +"il vostro dominio e spesso vuoto." + +# @ aiowpsecurity +#: admin/wp-security-spam-menu.php:172 +msgid "" +"This feature will check and block comment requests which are not referred by " +"your domain thus greatly reducing your overall blog SPAM and PHP requests " +"done by the server to process these comments." +msgstr "" +"Questa funzione controlla e blocca commenti e richieste non contemplate dal " +"tuo dominio, riducendo notevolmente lo SPAM nel blog in generale e le " +"richieste PHP fatte dal server per elaborare questi commenti." + +# @ aiowpsecurity +#: admin/wp-security-spam-menu.php:199 +msgid "Nonce check failed for list SPAM comment IPs!" +msgstr "Check non riuscito per la lista IP spam Commenti!" + +# @ aiowpsecurity +#: admin/wp-security-spam-menu.php:205 +msgid "" +"You entered a non numeric value for the minimum SPAM comments per IP field. " +"It has been set to the default value." +msgstr "" +"È stato immesso un valore non numerico per i commenti di spam minimi per " +"campo IP. E 'stato impostato il valore di default." + +# @ aiowpsecurity +#: admin/wp-security-spam-menu.php:217 +#, php-format +msgid "" +"Displaying results for IP addresses which have posted a minimum of %s SPAM " +"comments" +msgstr "" +"Visualizzazione dei risultati per gli indirizzi IP che hanno inviato un " +"minimo di %s commenti spam" + +# @ aiowpsecurity +#: admin/wp-security-spam-menu.php:233 +msgid "" +"This tab displays a list of the IP addresses of the people or bots who have " +"left SPAM comments on your site." +msgstr "" +"Questa scheda visualizza un elenco degli indirizzi IP delle persone o bot " +"che hanno lasciato commenti di spam sul tuo sito." + +# @ aiowpsecurity +#: admin/wp-security-spam-menu.php:234 +msgid "" +"This information can be handy for identifying the most persistent IP " +"addresses or ranges used by spammers." +msgstr "" +"Questa informazione può essere utile per identificare gli indirizzi IP, o " +"intervalli IP, più persistenti dagli spammer." + +# @ aiowpsecurity +#: admin/wp-security-spam-menu.php:235 +msgid "" +"By inspecting the IP address data coming from spammers you will be in a " +"better position to determine which addresses or address ranges you should " +"block by adding them to your blacklist." +msgstr "" +"Osservando i dati degli indirizzi IP provenienti da spammer vi troverete in " +"una posizione migliore per determinare quali indirizzi o intervalli di " +"indirizzi si dovrebbe bloccare aggiungendoli alla lista nera." + +# @ aiowpsecurity +#: admin/wp-security-spam-menu.php:236 +msgid "" +"To add one or more of the IP addresses displayed in the table below to your " +"blacklist, simply click the \"Block\" link for the individual row or select " +"more than one address \n" +" using the checkboxes and then choose the \"block" +"\" option from the Bulk Actions dropdown list and click the \"Apply\" button." +msgstr "" +"Per aggiungere uno o più indirizzi IP visualizzato nella tabella di seguito " +"per la vostra lista nera, è sufficiente fare clic sul collegamento \"Block\" " +"per la singola riga o selezionare più di un indirizzo \n" +" utilizzando le caselle di controllo e quindi " +"scegliere l'opzione dal menu a discesa Azioni in blocco \"block\" e fare " +"clic sul pulsante \"Applica\"." + +# @ aiowpsecurity +#: admin/wp-security-spam-menu.php:242 +msgid "List SPAMMER IP Addresses" +msgstr "Lista indirizzi IP SPAMMER" + +# @ aiowpsecurity +#: admin/wp-security-spam-menu.php:248 +msgid "Minimum number of SPAM comments per IP" +msgstr "Numero minimo di commenti spam per IP" + +# @ aiowpsecurity +#: admin/wp-security-spam-menu.php:250 +msgid "" +"This field allows you to list only those IP addresses which have been used " +"to post X or more SPAM comments." +msgstr "" +"Questo campo consente di elencare solo gli indirizzi IP che sono stati " +"utilizzati per pubblicare X o più commenti spam." + +# @ aiowpsecurity +#: admin/wp-security-spam-menu.php:254 +msgid "" +"Example 1: Setting this value to \"0\" or \"1\" will list ALL IP addresses " +"which were used to submit SPAM comments." +msgstr "" +"Esempio 1: Impostando questo valore a \"0\" o \"1\" verranno elencati tutti " +"gli indirizzi IP che sono stati utilizzati per inviare commenti spam." + +# @ aiowpsecurity +#: admin/wp-security-spam-menu.php:255 +msgid "" +"Example 2: Setting this value to \"5\" will list only those IP addresses " +"which were used to submit 5 SPAM comments or more on your site." +msgstr "" +"Esempio 2: Impostando questo valore a \"5\" elencherà solo gli indirizzi IP " +"usati per creare almeno 5 commenti SPAM o più sul tuo sito." + +# @ aiowpsecurity +#: admin/wp-security-spam-menu.php:262 +msgid "Find IP Addresses" +msgstr "Trova Indirizzo IP" + +# @ aiowpsecurity +#: admin/wp-security-spam-menu.php:266 +msgid "SPAMMER IP Address Results" +msgstr "Risultato Indirizzi IP SPAMMER" + +# @ aiowpsecurity +#: admin/wp-security-spam-menu.php:272 classes/wp-security-utility.php:150 +msgid "" +"The plugin has detected that you are using a Multi-Site WordPress " +"installation." +msgstr "" +"Il plugin ha rilevato che si sta usando una installazione di WordPress Multi-" +"Site." + +# @ aiowpsecurity +#: admin/wp-security-spam-menu.php:273 +msgid "Only the \"superadmin\" can block IP addresses from the main site." +msgstr "" +"Solo il \"superadmin\" può bloccare gli indirizzi IP dal sito principale." + +# @ aiowpsecurity +#: admin/wp-security-spam-menu.php:274 +msgid "" +"Take note of the IP addresses you want blocked and ask the superadmin to add " +"these to the blacklist using the \"Blacklist Manager\" on the main site." +msgstr "" +"Prendere nota degli indirizzi IP da bloccare e chiedere al superadmin di " +"aggiungere questi per la lista nera con \"Gestione Blacklist\" sul sito " +"principale." + +# @ aiowpsecurity +#: admin/wp-security-user-accounts-menu.php:29 +msgid "WP Username" +msgstr "Nome utente WP" + +# @ aiowpsecurity +#: admin/wp-security-user-accounts-menu.php:30 +msgid "Display Name" +msgstr "Nome Visualizzato" + +# @ aiowpsecurity +# @ default +#: admin/wp-security-user-accounts-menu.php:31 +#: other-includes/wp-security-rename-login-feature.php:862 +msgid "Password" +msgstr "Password" + +# @ aiowpsecurity +#: admin/wp-security-user-accounts-menu.php:85 +msgid "Admin User Security" +msgstr "Sicurezza Utente Admin" + +# @ aiowpsecurity +#: admin/wp-security-user-accounts-menu.php:88 +msgid "" +"By default, WordPress sets the administrator username to \"admin\" at " +"installation time." +msgstr "" +"Per impostazione predefinita, WordPress imposta il nome utente " +"amministratore come \"admin\" al momento dell'installazione." + +# @ aiowpsecurity +#: admin/wp-security-user-accounts-menu.php:89 +msgid "" +"A lot of hackers try to take advantage of this information by attempting " +"\"Brute Force Login Attacks\" where they repeatedly try to guess the " +"password by using \"admin\" for username." +msgstr "" +"Un sacco di hacker cercano di approfittare di queste informazioni, tentando " +"\"Attacchi Brute Force Login\" dove hanno più possibilità di indovinare la " +"password utilizzando \"admin \" per il nome utente." + +# @ aiowpsecurity +#: admin/wp-security-user-accounts-menu.php:90 +msgid "" +"From a security perspective, changing the default \"admin\" user name is one " +"of the first and smartest things you should do on your site." +msgstr "" +"Dal punto di vista della sicurezza, la modifica del valore predefinito nome " +"utente \"admin\" è una delle prime e più intelligenti cose che dovresti fare " +"sul tuo sito." + +# @ aiowpsecurity +#: admin/wp-security-user-accounts-menu.php:91 +msgid "" +"This feature will allow you to change your default \"admin\" user name to a " +"more secure name of your choosing." +msgstr "" +"Questa funzione permette di cambiare il nome utente predefinito \"admin \" " +"in un nome più sicuro a tua scelta." + +# @ aiowpsecurity +#: admin/wp-security-user-accounts-menu.php:98 +msgid "List of Administrator Accounts" +msgstr "Lista Account di Amministrazione" + +# @ aiowpsecurity +#: admin/wp-security-user-accounts-menu.php:107 +#: classes/grade-system/wp-security-feature-item-manager.php:36 +msgid "Change Admin Username" +msgstr "Cambia Nome Utente Admin" + +# @ aiowpsecurity +#: admin/wp-security-user-accounts-menu.php:115 +msgid "" +"Your site currently has an account which uses the default \"admin\" " +"username. \n" +" It is highly recommended that you change this name to " +"something else. \n" +" Use the following field to change the admin username." +msgstr "" +"Il sito attualmente ha un account che usa il nome utente predefinito \"admin" +"\" . \n" +" È altamente consigliato modificare questo nome in qualcosa " +"d'altro. \n" +" Utilizzare il seguente campo per modificare il nome utente " +"admin." + +# @ aiowpsecurity +#: admin/wp-security-user-accounts-menu.php:123 +msgid "New Admin Username" +msgstr "Nuovo Nome Utente Admin" + +# @ aiowpsecurity +#: admin/wp-security-user-accounts-menu.php:125 +msgid "Choose a new username for admin." +msgstr "Scegli nuovo nome utente per admin" + +# @ aiowpsecurity +#: admin/wp-security-user-accounts-menu.php:129 +msgid "Change Username" +msgstr "Cambia Nome Utente" + +# @ aiowpsecurity +#: admin/wp-security-user-accounts-menu.php:131 +msgid "" +"NOTE: If you are currently logged in as \"admin\" you will be automatically " +"logged out after changing your username and will be required to log back in." +msgstr "" +"NOTA: Se si è effettuato l'accesso come \"admin\" si viene automaticamente " +"disconnessi dopo aver cambiato il nome utente e sarà richiesto di effettuare " +"il login per rientrare." + +# @ aiowpsecurity +#: admin/wp-security-user-accounts-menu.php:138 +msgid "No action required! " +msgstr "Nessuna azione richiesta!" + +# @ aiowpsecurity +#: admin/wp-security-user-accounts-menu.php:140 +msgid "" +"Your site does not have any account which uses the default \"admin\" " +"username. " +msgstr "" +"Il tuo sito non ha nessun account che usa il nome utente predefinito \"admin" +"\"." + +# @ aiowpsecurity +#: admin/wp-security-user-accounts-menu.php:141 +msgid "This is good security practice." +msgstr "Questa è una buona pratica di sicurezza." + +# @ aiowpsecurity +#: admin/wp-security-user-accounts-menu.php:153 +msgid "Display Name Security" +msgstr "Nome Sicurezza Visualizzato" + +# @ aiowpsecurity +#: admin/wp-security-user-accounts-menu.php:156 +msgid "" +"When you submit a post or answer a comment, WordPress will usually display " +"your \"nickname\"." +msgstr "" +"Quando si pubblica un articolo o si risponde a un commento, WordPress farà " +"comparire il tuo \"nickname\"." + +# @ aiowpsecurity +#: admin/wp-security-user-accounts-menu.php:157 +msgid "" +"By default the nickname is set to the login (or user) name of your account." +msgstr "" +"Per impostazione predefinita, il nickname impostato per il login (o utente) " +"è il nome del tuo account." + +# @ aiowpsecurity +#: admin/wp-security-user-accounts-menu.php:158 +msgid "" +"From a security perspective, leaving your nickname the same as your user " +"name is bad practice because it gives a hacker at least half of your " +"account's login credentials." +msgstr "" +"Dal punto di vista della sicurezza, lasciando il tuo nickname uguale al tuo " +"nome utente, è sbagliato e pericoloso, perché offre su un piatto a un hacker " +"almeno la metà delle credenziali di accesso del tuo account." + +# @ aiowpsecurity +#: admin/wp-security-user-accounts-menu.php:159 +msgid "" +"Therefore to further tighten your site's security you are advised to change " +"your nickname and Display name to be " +"different from your Username." +msgstr "" +"Quindi per stringere ulteriormente la sicurezza del tuo sito si consiglia di " +"cambiare il tuo nickname e Nome Visualizzato in modo che siano diverso da Nome Utente." + +# @ aiowpsecurity +#: admin/wp-security-user-accounts-menu.php:165 +msgid "Modify Accounts With Identical Login Name & Display Name" +msgstr "Modifica Account con Identico Nome Login & Nome Visualizzato" + +# @ aiowpsecurity +#: admin/wp-security-user-accounts-menu.php:174 +msgid "" +"Your site currently has the following accounts which have an identical login " +"name and display name." +msgstr "" +"Il sito ha attualmente i seguenti account che hanno un nome di login " +"identico al nome visualizzato." + +# @ aiowpsecurity +#: admin/wp-security-user-accounts-menu.php:175 +msgid "Click on the link to edit the settings of that particular user account" +msgstr "" +"Clicca sul collegamento per modificare le impostazioni di quel particolare " +"account utente" + +# @ aiowpsecurity +#: admin/wp-security-user-accounts-menu.php:190 +msgid "No action required." +msgstr "Nessuna azione richiesta" + +# @ aiowpsecurity +#: admin/wp-security-user-accounts-menu.php:191 +msgid "" +"Your site does not have a user account where the display name is identical " +"to the username." +msgstr "" +"Il sito non dispone di un account utente in cui il nome di visualizzazione è " +"identica al nome utente." + +# @ aiowpsecurity +#: admin/wp-security-user-accounts-menu.php:202 +msgid "Password Tool" +msgstr "Strumento Password" + +# @ aiowpsecurity +#: admin/wp-security-user-accounts-menu.php:205 +msgid "" +"Poor password selection is one of the most common weak points of many sites " +"and is usually the first thing a hacker will try to exploit when attempting " +"to break into your site." +msgstr "" +"Scelta di password brevi o facili è uno dei punti deboli più comuni di molti " +"siti e di solito è la prima cosa che un hacker cercherà di sfruttare quando " +"tenta di violare il sito." + +# @ aiowpsecurity +#: admin/wp-security-user-accounts-menu.php:206 +msgid "" +"Many people fall into the trap of using a simple word or series of numbers " +"as their password. Such a predictable and simple password would take a " +"competent hacker merely minutes to guess your password by using a simple " +"script which cycles through the easy and most common combinations." +msgstr "" +"Molte persone cadono nella trappola di usare una semplice parola o una serie " +"di numeri come password. Tale parola, prevedibile e semplice, permette a un " +"hacker competente di indovinare la password in pochi minuti, utilizzando un " +"semplice script che crea cicli di combinazioni semplici e più comuni." + +# @ aiowpsecurity +#: admin/wp-security-user-accounts-menu.php:207 +msgid "" +"The longer and more complex your password is the harder it is for hackers to " +"\"crack\" because more complex passwords require much greater computing " +"power and time." +msgstr "" +"Una password più lunga e complessa è più difficile per gli hacker da " +"\"crackare \", perché richiede maggiore tempo e potenza di calcolo." + +# @ aiowpsecurity +#: admin/wp-security-user-accounts-menu.php:208 +msgid "" +"This section contains a useful password strength tool which you can use to " +"check whether your password is sufficiently strong enough." +msgstr "" +"Questa sezione contiene un utile strumento password che è possibile " +"utilizzare per controllare se la password è sufficientemente forte." + +# @ aiowpsecurity +#: admin/wp-security-user-accounts-menu.php:213 +msgid "Password Strength Tool" +msgstr "Strumento Forza Password" + +# @ aiowpsecurity +#: admin/wp-security-user-accounts-menu.php:218 +msgid "Start typing a password." +msgstr "Iniziare a digitare una password." + +# @ aiowpsecurity +#: admin/wp-security-user-accounts-menu.php:221 +msgid "It would take a desktop PC approximately" +msgstr "Con un PC desktop ci vorrebbe circa" + +# @ aiowpsecurity +#: admin/wp-security-user-accounts-menu.php:222 +msgid "1 sec" +msgstr "1 sec" + +# @ aiowpsecurity +#: admin/wp-security-user-accounts-menu.php:222 +msgid "to crack your password!" +msgstr "per crackare la tua password!" + +# @ aiowpsecurity +#: admin/wp-security-user-accounts-menu.php:227 +msgid "Password Strength" +msgstr "Forza Password" + +# @ aiowpsecurity +#: admin/wp-security-user-accounts-menu.php:243 +msgid "Nonce check failed on admin username change operation!" +msgstr "" +"Check controllo fallito nell'operazione di cambiamento del nome utente " +"admin!" + +# @ aiowpsecurity +#: admin/wp-security-user-accounts-menu.php:250 +msgid "Username " +msgstr "Nome Utente" + +# @ aiowpsecurity +#: admin/wp-security-user-accounts-menu.php:250 +msgid " already exists. Please enter another value. " +msgstr "già esistente. Inserisci un altro valore." + +# @ aiowpsecurity +#: admin/wp-security-user-accounts-menu.php:266 +msgid "The database update operation of the user account failed!" +msgstr "" +"L'operazione di aggiornamento database dell'account utente non è riuscita!" + +# @ aiowpsecurity +#: admin/wp-security-user-accounts-menu.php:293 +msgid "You entered an invalid username. Please enter another value. " +msgstr "" +"Hai inserito un nome utente non valido. Si prega di inserire un altro valore." + +# @ aiowpsecurity +#: admin/wp-security-user-accounts-menu.php:297 +msgid "Please enter a value for your username. " +msgstr "Prego inserisci un valore per il nome utente." + +# @ aiowpsecurity +#: admin/wp-security-user-accounts-menu.php:304 +msgid "Username Successfully Changed!" +msgstr "Nome Utente Cambiato con Successo!" + +# @ aiowpsecurity +#: admin/wp-security-user-accounts-menu.php:324 +msgid "Account Login Name" +msgstr "Nome Login Account" + +# @ aiowpsecurity +#: admin/wp-security-brute-force-menu.php:27 +#: classes/grade-system/wp-security-feature-item-manager.php:44 +msgid "Login Captcha" +msgstr "Captcha Pagina Login" + +# @ aiowpsecurity +#: admin/wp-security-brute-force-menu.php:28 +#: admin/wp-security-brute-force-menu.php:615 +msgid "Login Whitelist" +msgstr "Lista Bianca Login" + +# @ aiowpsecurity +#: admin/wp-security-user-login-menu.php:26 +#: admin/wp-security-user-login-menu.php:298 +msgid "Failed Login Records" +msgstr "Record Login Falliti" + +# @ aiowpsecurity +#: admin/wp-security-user-login-menu.php:27 +#: classes/grade-system/wp-security-feature-item-manager.php:50 +msgid "Force Logout" +msgstr "Forza Logout Utente" + +# @ aiowpsecurity +#: admin/wp-security-user-login-menu.php:28 +#: admin/wp-security-user-login-menu.php:432 +msgid "Account Activity Logs" +msgstr "Account Attività Logs" + +# @ aiowpsecurity +#: admin/wp-security-user-login-menu.php:96 +msgid "" +"You entered a non numeric value for the max login attempts field. It has " +"been set to the default value." +msgstr "" +"È stato immesso un valore non numerico per il campo max tentativi di login. " +"È stato impostato il valore di default." + +# @ aiowpsecurity +#: admin/wp-security-user-login-menu.php:103 +msgid "" +"You entered a non numeric value for the login retry time period field. It " +"has been set to the default value." +msgstr "" +"È stato immesso un valore non numerico per il campo periodo di tempo login " +"riprovare. E' stato impostato il valore di default." + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:757 +#: admin/wp-security-user-login-menu.php:110 +msgid "" +"You entered a non numeric value for the lockout time length field. It has " +"been set to the default value." +msgstr "" +"È stato immesso un valore non numerico per il campo lunghezza tempo di " +"blocco. Reimpostato il valore di default." + +# @ aiowpsecurity +#: admin/wp-security-user-login-menu.php:159 +msgid "Login Lockdown Configuration" +msgstr "Configurazione Blocco Login" + +# @ aiowpsecurity +#: admin/wp-security-user-login-menu.php:163 +msgid "One of the ways hackers try to compromise sites is via a " +msgstr "" +"Uno dei modi con cui gli hacker tentano di compromettere siti è tramite un" + +# @ aiowpsecurity +#: admin/wp-security-user-login-menu.php:163 +msgid "Brute Force Login Attack" +msgstr "Attacco Brute Force Login" + +# @ aiowpsecurity +#: admin/wp-security-user-login-menu.php:164 +msgid "" +"This is where attackers use repeated login attempts until they guess the " +"password." +msgstr "" +"Questo è dove gli aggressori usano i tentativi di accesso ripetuti fino a " +"quando non indovinano la password." + +# @ aiowpsecurity +#: admin/wp-security-user-login-menu.php:165 +msgid "" +"Apart from choosing strong passwords, monitoring and blocking IP addresses " +"which are involved in repeated login failures in a short period of time is a " +"very effective way to stop these types of attacks." +msgstr "" +"Oltre alla scelta di password, il monitoraggio e il blocco degli indirizzi " +"IP che sono coinvolti in errori di login ripetuti in un breve periodo di " +"tempo è un modo molto efficace per fermare questi tipi di attacchi." + +# @ aiowpsecurity +#: admin/wp-security-user-login-menu.php:166 +#, php-format +msgid "" +"You may also want to checkout our %s feature for another secure way to " +"protect against these types of attacks." +msgstr "" +"Si consiglia inoltre di vedere %s un altro modo sicuro per proteggere contro " +"questi tipi di attacchi." + +# @ aiowpsecurity +#: admin/wp-security-user-login-menu.php:171 +msgid "Login Lockdown Options" +msgstr "Opzioni Blocco Login" + +# @ aiowpsecurity +#: admin/wp-security-user-login-menu.php:183 +msgid "Enable Login Lockdown Feature" +msgstr "Attiva Funzioni Blocco Login" + +# @ aiowpsecurity +#: admin/wp-security-user-login-menu.php:186 +msgid "" +"Check this if you want to enable the login lockdown feature and apply the " +"settings below" +msgstr "" +"Selezionare questa casella per attivare la funzione di blocco accesso e " +"applicare le seguenti impostazioni" + +# @ aiowpsecurity +#: admin/wp-security-user-login-menu.php:197 +msgid "Max Login Attempts" +msgstr "Max Tentativi Login" + +# @ aiowpsecurity +#: admin/wp-security-user-login-menu.php:199 +msgid "" +"Set the value for the maximum login retries before IP address is locked out" +msgstr "" +"Impostare il valore per il numero massimo di tentativi d'accesso prima che " +"l'indirizzo IP venga bloccato" + +# @ aiowpsecurity +#: admin/wp-security-user-login-menu.php:203 +msgid "Login Retry Time Period (min)" +msgstr "Tempo Tentativi Riprova Login (min)" + +# @ aiowpsecurity +#: admin/wp-security-user-login-menu.php:205 +msgid "" +"If the maximum number of failed login attempts for a particular IP address " +"occur within this time period the plugin will lock out that address" +msgstr "" +"Se il numero massimo di tentativi di accesso non riusciti per un particolare " +"indirizzo IP avviene entro questo periodo di tempo il plugin blocca " +"quell'indirizzo" + +# @ aiowpsecurity +#: admin/wp-security-user-login-menu.php:209 +msgid "Time Length of Lockout (min)" +msgstr "Tempo Durata Blocco (min)" + +# @ aiowpsecurity +#: admin/wp-security-user-login-menu.php:211 +msgid "" +"Set the length of time for which a particular IP address will be prevented " +"from logging in" +msgstr "" +"Impostare il periodo di tempo per il quale sarà impedito il login a un " +"particolare indirizzo IP" + +# @ aiowpsecurity +#: admin/wp-security-user-login-menu.php:215 +msgid "Display Generic Error Message" +msgstr "Mostra Messaggio Errore Generico" + +# @ aiowpsecurity +#: admin/wp-security-user-login-menu.php:218 +msgid "" +"Check this if you want to show a generic error message when a login attempt " +"fails" +msgstr "" +"Seleziona questa casella per mostrare un messaggio di errore generico quando " +"fallsce il login nel tempo" + +# @ aiowpsecurity +#: admin/wp-security-user-login-menu.php:222 +msgid "Instantly Lockout Invalid Usernames" +msgstr "Blocca immediatamente Nomi Utenti non validi" + +# @ aiowpsecurity +#: admin/wp-security-user-login-menu.php:225 +msgid "" +"Check this if you want to instantly lockout login attempts with usernames " +"which do not exist on your system" +msgstr "" +"Selezionare questa casella vuoi bloccare istantaneamente i tentativi di " +"accesso con nomi utente che non esistono sul tuo sistema" + +# @ aiowpsecurity +#: admin/wp-security-user-login-menu.php:230 +msgid "Notify By Email" +msgstr "Notifica via Email" + +# @ aiowpsecurity +#: admin/wp-security-user-login-menu.php:233 +msgid "" +"Check this if you want to receive an email when someone has been locked out " +"due to maximum failed login attempts" +msgstr "" +"Seleziona questa casella se vuoi ricevere una e-mail quando qualcuno è stato " +"bloccato a causa di massimi tentativi falliti d'accesso" + +# @ aiowpsecurity +#: admin/wp-security-user-login-menu.php:243 +msgid "Currently Locked Out IP Address Ranges" +msgstr " Intervalli di indirizzi IP attualmente bloccati" + +# @ aiowpsecurity +#: admin/wp-security-brute-force-menu.php:498 +msgid "" +"This feature allows you to add a captcha form on the WordPress login page." +msgstr "" +"Seleziona questo se desidere inserire un campo captcha nella pagina di Login " +"WordPress" + +# @ aiowpsecurity +#: admin/wp-security-brute-force-menu.php:499 +msgid "" +"Users who attempt to login will also need to enter the answer to a simple " +"mathematical question - if they enter the wrong answer, the plugin will not " +"allow them login even if they entered the correct username and password." +msgstr "" +"Gli utenti che tentano di accedere devono inserire la risposta ad una " +"semplice domanda matematica - se viene data la risposta sbagliata il plugin " +"non permetterà l'accesso anche se il nome utente e la password sono corretti." + +# @ aiowpsecurity +#: admin/wp-security-brute-force-menu.php:500 +msgid "" +"Therefore, adding a captcha form on the login page is another effective yet " +"simple \"Brute Force\" prevention technique." +msgstr "" +"Pertanto, l'aggiunta di un modulo captcha sulla pagina di login è un altro " +"efficace ma semplice metodo di prevenzione \"Brute Force\"." + +# @ aiowpsecurity +#: admin/wp-security-brute-force-menu.php:506 +msgid "Login Form Captcha Settings" +msgstr "Impostazioni Modulo Captcha pagina di Login" + +# @ aiowpsecurity +#: admin/wp-security-brute-force-menu.php:517 +msgid "Enable Captcha On Login Page" +msgstr "Attiva Captcha sulla Pagina di Login" + +# @ aiowpsecurity +#: admin/wp-security-brute-force-menu.php:520 +msgid "Check this if you want to insert a captcha form on the login page" +msgstr "" +"Seleziona quest se desideri inserire un campo captcha nel modulo della " +"pagina di login" + +# @ aiowpsecurity +#: admin/wp-security-brute-force-menu.php:526 +msgid "Lost Password Form Captcha Settings" +msgstr "Impostazioni Modulo Captcha Password persa " + +# @ aiowpsecurity +#: admin/wp-security-brute-force-menu.php:536 +msgid "Enable Captcha On Lost Password Page" +msgstr "Attiva Captcha nella Pagina Password Persa" + +# @ aiowpsecurity +#: admin/wp-security-brute-force-menu.php:539 +msgid "" +"Check this if you want to insert a captcha form on the lost password page" +msgstr "" +"Seleziona quest se desideri inserire un campo captcha nel modulo della " +"password persa" + +# @ aiowpsecurity +#: admin/wp-security-brute-force-menu.php:561 +msgid "Nonce check failed for save whitelist settings!" +msgstr "Verifica fallita per salvare le impostazioni whitelist!" + +# @ aiowpsecurity +#: admin/wp-security-brute-force-menu.php:618 +msgid "" +"The All In One WP Security Whitelist feature gives you the option of only " +"allowing certain IP addresses or ranges to have access to your WordPress " +"login page." +msgstr "" +"L'All In One caratteristica Whitelist Security WP ti dà la possibilità di " +"autorizzare solo determinati indirizzi IP, o intervalli, ad accedere alla " +"pagina login di WordPress." + +# @ aiowpsecurity +#: admin/wp-security-brute-force-menu.php:619 +msgid "" +"This feature will deny login access for all IP addresses which are not in " +"your whitelist as configured in the settings below." +msgstr "" +"Questa funzione nega l'accesso da login per tutti gli indirizzi IP che non " +"sono nella tua lista bianca come configurato nelle impostazioni di seguito." + +# @ aiowpsecurity +#: admin/wp-security-brute-force-menu.php:620 +msgid "" +"The plugin achieves this by writing the appropriate directives to your ." +"htaccess file." +msgstr "" +"Il plugin realizza questo, facendo le opportune modifiche al file .htaccess." + +# @ aiowpsecurity +#: admin/wp-security-brute-force-menu.php:621 +msgid "" +"By allowing/blocking IP addresses via the .htaccess file your are using the " +"most secure first line of defence because login access will only be granted " +"to whitelisted IP addresses and other addresses will be blocked as soon as " +"they try to access your login page." +msgstr "" +"Consentendo/bloccando gli indirizzi IP tramite il file .htaccess si sta " +"usando la linea di difesa più sicura, perché l'accesso di login sarà " +"concesso solo agli indirizzi IP nella whitelist e gli altri indirizzi " +"verranno bloccati non appena tentano di accedere alla pagina di login." + +# @ aiowpsecurity +#: admin/wp-security-brute-force-menu.php:628 +#, php-format +msgid "" +"Attention: If in addition to enabling the white list feature, you also have " +"the %s feature enabled, you will still need to use your secret word " +"in the URL when trying to access your WordPress login page." +msgstr "" +"Attenzione: Se oltre ad abilitare la funzione lista bianca, si ha anche la " +"%s funzione attivata,sarà comunque necessario utilizzare la tua " +"parola segreta nell'URL quando si cerca di accedere alla pagina di login di " +"WordPress." + +# @ aiowpsecurity +#: admin/wp-security-brute-force-menu.php:629 +msgid "" +"These features are NOT functionally related. Having both of them enabled on " +"your site means you are creating 2 layers of security." +msgstr "" +"Queste caratteristiche NON sono funzionalmente correlate. Se si abilitano " +"entrambe sul sito si creano due livelli di sicurezza." + +# @ aiowpsecurity +#: admin/wp-security-brute-force-menu.php:634 +msgid "Login IP Whitelist Settings" +msgstr "Login Configurazione Whitelist IP" + +# @ aiowpsecurity +#: admin/wp-security-brute-force-menu.php:645 +msgid "Enable IP Whitelisting" +msgstr "Attiva IP Whitelisting" + +# @ aiowpsecurity +#: admin/wp-security-brute-force-menu.php:648 +msgid "" +"Check this if you want to enable the whitelisting of selected IP addresses " +"specified in the settings below" +msgstr "" +"Selezionare questa se vuoi attivare la whitelist di indirizzi IP selezionati " +"specificati nelle impostazioni di seguito" + +# @ aiowpsecurity +#: admin/wp-security-brute-force-menu.php:652 +msgid "Your Current IP Address" +msgstr "Il Tuo Indirizzo IP Attuale" + +# @ aiowpsecurity +#: admin/wp-security-brute-force-menu.php:655 +msgid "" +"You can copy and paste this address in the text box below if you want to " +"include it in your login whitelist." +msgstr "" +"È possibile copiare e incollare questo indirizzo nella casella di testo " +"sottostante, se desideri includerlo nella tua lista bianca login." + +# @ aiowpsecurity +#: admin/wp-security-brute-force-menu.php:659 +msgid "Enter Whitelisted IP Addresses:" +msgstr "Inserisci Indirizzi IP Whitelisted:" + +# @ aiowpsecurity +#: admin/wp-security-brute-force-menu.php:663 +msgid "" +"Enter one or more IP addresses or IP ranges you wish to include in your " +"whitelist. Only the addresses specified here will have access to the " +"WordPress login page." +msgstr "" +"Immettere uno o più indirizzi IP o intervalli IP che vuoi includere nella " +"tua lista bianca. Solo gli indirizzi specificati qui potranno accedere alla " +"pagina di login di WordPress." + +# @ aiowpsecurity +#: admin/wp-security-user-login-menu.php:264 +msgid "Nonce check failed for delete all failed login records operation!" +msgstr "Tentativo non riuscito di eliminare tutti i record di login falliti!" + +# @ aiowpsecurity +#: admin/wp-security-user-login-menu.php:273 +msgid "User Login Feature - Delete all failed login records operation failed!" +msgstr "" +"Funzioni Login Utente - Operazione per eliminirare i record login falliti " +"non riuscita!" + +# @ aiowpsecurity +#: admin/wp-security-user-login-menu.php:277 +msgid "All records from the Failed Logins table were deleted successfully!" +msgstr "" +"Tutti i record della tabella accessi non riusciti sono stati cancellati con " +"successo!" + +# @ aiowpsecurity +#: admin/wp-security-user-login-menu.php:292 +msgid "This tab displays the failed login attempts for your site." +msgstr "" +"Questa scheda visualizza i tentativi di accesso non riusciti per il tuo sito." + +# @ aiowpsecurity +#: admin/wp-security-user-login-menu.php:293 +msgid "" +"The information below can be handy if you need to do security investigations " +"because it will show you the IP range, username and ID (if applicable) and " +"the time/date of the failed login attempt." +msgstr "" +"Le informazioni qui di seguito possono essere utili se hai bisogno di fare " +"indagini sulla sicurezza, perché mostreranno l'intervallo IP, nome utente e " +"ID (se applicabile) e la data/ora del tentativo di accesso non riuscito." + +# @ aiowpsecurity +#: admin/wp-security-user-login-menu.php:314 +#: admin/wp-security-user-login-menu.php:323 +msgid "Delete All Failed Login Records" +msgstr "Elimina tutti i record Login Falliti" + +# @ aiowpsecurity +#: admin/wp-security-user-login-menu.php:320 +msgid "" +"Click this button if you wish to delete all failed login records in one go." +msgstr "" +"Clicca su questo pulsante se vuoi eliminare tutti i record di accesso non " +"riusciti in un colpo solo." + +# @ aiowpsecurity +#: admin/wp-security-user-login-menu.php:348 +msgid "" +"You entered a non numeric value for the logout time period field. It has " +"been set to the default value." +msgstr "" +"È stato immesso un valore non numerico per il campo periodo di tempo " +"disconnessione. Reimpostato il valore di default." + +# @ aiowpsecurity +#: admin/wp-security-user-login-menu.php:376 +msgid "" +"Setting an expiry period for your WP administration session is a simple way " +"to protect against unauthorized access to your site from your computer." +msgstr "" +"Impostare un periodo di scadenza per la sessione di amministrazione WP è un " +"modo semplice per proteggere il sito dall'accesso non autorizzato da " +"computer." + +# @ aiowpsecurity +#: admin/wp-security-user-login-menu.php:377 +msgid "" +"This feature allows you to specify a time period in minutes after which the " +"admin session will expire and the user will be forced to log back in." +msgstr "" +"Questa funzione consente di specificare un periodo di tempo in minuti dopo " +"il quale la sessione di amministrazione scadrà e l'utente sarà costretto ad " +"accedere di nuovo." + +# @ aiowpsecurity +#: admin/wp-security-user-login-menu.php:382 +msgid "Force User Logout Options" +msgstr "Opzioni Forza Logout Utente" + +# @ aiowpsecurity +#: admin/wp-security-user-login-menu.php:394 +msgid "Enable Force WP User Logout" +msgstr "Attiva Logout WP Utente Forzato" + +# @ aiowpsecurity +#: admin/wp-security-user-login-menu.php:397 +msgid "" +"Check this if you want to force a wp user to be logged out after a " +"configured amount of time" +msgstr "" +"Seleziona questa casella se vuoi forzare un utente wp di ri-autenticarsi " +"dopo un periodo di tempo scelto" + +# @ aiowpsecurity +#: admin/wp-security-user-login-menu.php:401 +msgid "Logout the WP User After XX Minutes" +msgstr "Disconnetti l'Utente WP Dopo XX Minuti" + +# @ aiowpsecurity +#: admin/wp-security-user-login-menu.php:403 +msgid "" +"(Minutes) The user will be forced to log back in after this time period has " +"elapased." +msgstr "" +"(Minuti), l'utente sarà costretto a ricollegarsi dopo che è trascorso questo " +"periodo di tempo." + +# @ aiowpsecurity +#: admin/wp-security-user-login-menu.php:426 +msgid "" +"This tab displays the login activity for WordPress admin accounts registered " +"with your site." +msgstr "" +"Questa scheda visualizza l'attività di accesso per gli account WordPress di " +"amministrazione registrati nel tuo sito." + +# @ aiowpsecurity +#: admin/wp-security-user-login-menu.php:427 +msgid "" +"The information below can be handy if you need to do security investigations " +"because it will show you the last 50 recent login events by username, IP " +"address and time/date." +msgstr "" +"Le informazioni di seguito possono essere utili per fare indagini sulla " +"sicurezza, perché mostrano gli ultimi 50 eventi Recenti di Login per nome " +"utente, indirizzo IP e la data/ora." + +# @ aiowpsecurity +#: admin/wp-security-user-login-menu.php:464 +msgid "Nonce check failed for users logged in list!" +msgstr "Verifica fallita di utenti in lista connessi!" + +# @ aiowpsecurity +#: admin/wp-security-user-login-menu.php:477 +msgid "Refresh Logged In User Data" +msgstr "Riacricamento Dati Login Utente" + +# @ aiowpsecurity +#: admin/wp-security-user-login-menu.php:481 +msgid "Refresh Data" +msgstr "Ricarica Dati" + +# @ aiowpsecurity +#: admin/wp-security-user-login-menu.php:487 +msgid "This tab displays all users who are currently logged into your site." +msgstr "" +"Questa scheda consente di visualizzare tutti gli utenti che sono connessi " +"nel tuo sito." + +# @ aiowpsecurity +#: admin/wp-security-user-login-menu.php:488 +msgid "" +"If you suspect there is a user or users who are logged in which should not " +"be, you can block them by inspecting the IP addresses from the data below " +"and adding them to your blacklist." +msgstr "" +"Se si sospetta ci sia uno o più utenti registrati, che non dovrebbero " +"esserci, è possibile bloccarli ispezionando gli indirizzi IP dai dati qui " +"sotto e aggiungendoli alla tua lista nera." + +# @ aiowpsecurity +#: admin/wp-security-user-login-menu.php:493 +msgid "Currently Logged In Users" +msgstr "Utenti Connessi Ora" + +# @ aiowpsecurity +#: admin/wp-security-user-login-menu.php:558 +msgid "The selected records were deleted successfully!" +msgstr "I record selezionati sono stati cancellati con successo!" + +# @ aiowpsecurity +#: admin/wp-security-user-login-menu.php:567 +msgid "The selected record was deleted successfully!" +msgstr "Il record selezionato è stato cancellato con successo!" + +# @ aiowpsecurity +#: admin/wp-security-user-registration-menu.php:23 +msgid "Manual Approval" +msgstr "Approvazione manuale" + +# @ aiowpsecurity +#: admin/wp-security-user-registration-menu.php:24 +#: classes/grade-system/wp-security-feature-item-manager.php:56 +msgid "Registration Captcha" +msgstr "Impostazioni Captcha Registrazione" + +# @ aiowpsecurity +#: admin/wp-security-user-registration-menu.php:112 +msgid "User Registration Settings" +msgstr "Impostazioni Registrazione Utenti" + +# @ aiowpsecurity +#: admin/wp-security-user-registration-menu.php:116 +msgid "Manually Approve New Registrations" +msgstr "Approvazione Manuale Nuove Registrazioni" + +# @ aiowpsecurity +#: admin/wp-security-user-registration-menu.php:120 +msgid "" +"If your site allows people to create their own accounts via the WordPress " +"registration form, then you can minimize SPAM or bogus registrations by " +"manually approving each registration." +msgstr "" +"Se il sito consente agli utenti di creare i propri account tramite il modulo " +"di registrazione WordPress, allora è possibile ridurre SPAM o registrazioni " +"fasulle approvando manualmente ogni registrazione." + +# @ aiowpsecurity +#: admin/wp-security-user-registration-menu.php:121 +msgid "" +"This feature will automatically set a newly registered account to \"pending" +"\" until the administrator activates it. Therefore undesirable registrants " +"will be unable to log in without your express approval." +msgstr "" +"Questa funzione consente di impostare automaticamente un account appena " +"registrato \"in attesa\" fino a quando l'amministratore lo attiva. " +"Pertanto, gli iscritti indesiderati non saranno in grado di accedere senza " +"la vostra approvazione esplicita." + +# @ aiowpsecurity +#: admin/wp-security-user-registration-menu.php:122 +msgid "" +"You can view all accounts which have been newly registered via the handy " +"table below and you can also perform bulk activation/deactivation/deletion " +"tasks on each account." +msgstr "" +"È possibile visualizzare tutti gli account che sono stati recentemente " +"registrati tramite la tabella qui sotto e si possono anche effettuare " +"operazioni di attivazione/disattivazione/eliminazione di massa su ogni " +"account." + +# @ aiowpsecurity +#: admin/wp-security-user-registration-menu.php:138 +msgid "Enable manual approval of new registrations" +msgstr "Attiva approvazione manuale di nuove registrazioni" + +# @ aiowpsecurity +#: admin/wp-security-user-registration-menu.php:141 +msgid "" +"Check this if you want to automatically disable all newly registered " +"accounts so that you can approve them manually." +msgstr "" +"Seleziona questa casella se desideri disattivare automaticamente tutti gli " +"account di nuova registrazione in modo da approvarli manualmente." + +# @ aiowpsecurity +#: admin/wp-security-user-registration-menu.php:150 +msgid "Approve Registered Users" +msgstr "Approva Utenti registrati " + +# @ aiowpsecurity +#: admin/wp-security-user-registration-menu.php:195 +msgid "" +"This feature allows you to add a captcha form on the WordPress registration " +"page." +msgstr "" +"Questa funzione consente di aggiungere un modulo captcha nella pagina di " +"registrazione di WordPress." + +# @ aiowpsecurity +#: admin/wp-security-user-registration-menu.php:196 +msgid "" +"Users who attempt to register will also need to enter the answer to a simple " +"mathematical question - if they enter the wrong answer, the plugin will not " +"allow them to register." +msgstr "" +"Gli utenti che tentano di registrarsi devono inserire la risposta ad una " +"semplice domanda matematica - se inseriscono la risposta sbagliata il plugin " +"non permetterà loro di registrarsi." + +# @ aiowpsecurity +#: admin/wp-security-user-registration-menu.php:197 +msgid "" +"Therefore, adding a captcha form on the registration page is another " +"effective yet simple SPAM registration prevention technique." +msgstr "" +"Pertanto, l'aggiunta di un modulo captcha nella pagina di registrazione, è " +"un'altra tecnica semplice ma efficace per prevenire registrazioni SPAM." + +# @ aiowpsecurity +#: admin/wp-security-user-registration-menu.php:202 +msgid "Registration Page Captcha Settings" +msgstr "Impostazioni Captcha Pagina Registrazione" + +# @ aiowpsecurity +#: admin/wp-security-user-registration-menu.php:214 +msgid "Enable Captcha On Registration Page" +msgstr "Attiva Captcha nella Pagina di Registrazione" + +# @ aiowpsecurity +#: admin/wp-security-user-registration-menu.php:217 +msgid "" +"Check this if you want to insert a captcha form on the WordPress user " +"registration page (if you allow user registration)." +msgstr "" +"Seleziona questo se desideri inserire un modulo captcha nella pagina di " +"registrazione utente WordPress (se si consente la registrazione dell'utente)." + +# @ aiowpsecurity +#: admin/wp-security-whois-menu.php:22 +msgid "WhoIS Lookup" +msgstr "Ricerca WHOIS" + +# @ aiowpsecurity +#: admin/wp-security-whois-menu.php:74 +msgid "WHOIS Lookup Information" +msgstr "Cerca Informazioni WHOIS" + +# @ aiowpsecurity +#: admin/wp-security-whois-menu.php:77 +msgid "" +"This feature allows you to look up more detailed information about an IP " +"address or domain name by querying the WHOIS API." +msgstr "" +"Questa funzione consente di cercare informazioni più dettagliate su un " +"indirizzo IP o nome di dominio tramite l'API WHOIS." + +# @ aiowpsecurity +#: admin/wp-security-whois-menu.php:83 +msgid "Perform a WHOIS Lookup for an IP or Domain Name" +msgstr "Eseguire una ricerca con whois per un IP o nome di dominio" + +# @ aiowpsecurity +#: admin/wp-security-whois-menu.php:89 +msgid "Enter IP Address or Domain Name" +msgstr "Inserisci l'indirizzo IP o il Nome Dominio" + +# @ aiowpsecurity +#: admin/wp-security-whois-menu.php:91 +msgid "" +"Enter an IP address or domain name. Example: 111.11.12.13 OR some-domain-" +"name.com" +msgstr "" +"Inserire un indirizzo IP o il nome del dominio. Esempio: 111.11.12.13 O nome-" +"dominio-chevuoi.com" + +# @ aiowpsecurity +#: admin/wp-security-whois-menu.php:95 +msgid "Perform IP or Domain Lookup" +msgstr "Eseguire ricerca IP o di dominio" + +# @ aiowpsecurity +#: admin/wp-security-whois-menu.php:115 +msgid "WHOIS lookup successfully completed. Please see the results below:" +msgstr "" +"WHOIS completato con successo. Si prega di vedere i risultati di seguito:" + +# @ aiowpsecurity +#: admin/wp-security-whois-menu.php:127 +msgid "" +"You have entered an incorrectly formatted IP address or domain name. Please " +"try again." +msgstr "" +"È stato immesso un indirizzo IP, o il nome dominio, non correttamente " +"formattato. Riprova." + +# @ default +#: admin/general/wp-security-list-table.php:178 +msgid "No items found." +msgstr "Nessun articolo trovato." + +# @ default +#: admin/general/wp-security-list-table.php:281 +msgid "Bulk Actions" +msgstr "Azioni in blocco" + +# @ default +#: admin/general/wp-security-list-table.php:291 +msgid "Apply" +msgstr "Applica" + +# @ default +#: admin/general/wp-security-list-table.php:365 +msgid "Show all dates" +msgstr "Mostra tutte le date" + +# @ default +#. translators: 1: month name, 2: 4-digit year +#: admin/general/wp-security-list-table.php:378 +#, php-format +msgid "%1$s %2$d" +msgstr "%1$s %2$d" + +# @ default +#: admin/general/wp-security-list-table.php:394 +msgid "List View" +msgstr "Vedi Lista" + +# @ default +#: admin/general/wp-security-list-table.php:395 +msgid "Excerpt View" +msgstr "Vedi Estratto" + +# @ default +#: admin/general/wp-security-list-table.php:421 +#, php-format +msgid "%s pending" +msgstr "%s pendenti" + +# @ default +#: admin/general/wp-security-list-table.php:653 +msgid "Select All" +msgstr "Seleziona Tutti" + +# @ aiowpsecurity +#: classes/wp-security-backup.php:177 +msgid "All In One WP Security - Site Database Backup" +msgstr "All In One WP Security - Backup Database Sito" + +# @ aiowpsecurity +#: classes/wp-security-backup.php:179 +msgid "Attached is your latest DB backup file for site URL" +msgstr "In allegato è il file di backup DB più recente per l'URL del sito" + +# @ aiowpsecurity +#: classes/wp-security-backup.php:179 +msgid " generated on" +msgstr "generati su" + +# @ aiowpsecurity +#: classes/wp-security-captcha.php:12 +msgid "Please enter an answer in digits:" +msgstr "Inserisci una risposta in cifre:" + +# @ aiowpsecurity +#: classes/wp-security-captcha.php:91 +msgid "one" +msgstr "uno" + +# @ aiowpsecurity +#: classes/wp-security-captcha.php:92 +msgid "two" +msgstr "due" + +# @ aiowpsecurity +#: classes/wp-security-captcha.php:93 +msgid "three" +msgstr "tre" + +# @ aiowpsecurity +#: classes/wp-security-captcha.php:94 +msgid "four" +msgstr "quattro" + +# @ aiowpsecurity +#: classes/wp-security-captcha.php:95 +msgid "five" +msgstr "cinque" + +# @ aiowpsecurity +#: classes/wp-security-captcha.php:96 +msgid "six" +msgstr "sei" + +# @ aiowpsecurity +#: classes/wp-security-captcha.php:97 +msgid "seven" +msgstr "sette" + +# @ aiowpsecurity +#: classes/wp-security-captcha.php:98 +msgid "eight" +msgstr "otto" + +# @ aiowpsecurity +#: classes/wp-security-captcha.php:99 +msgid "nine" +msgstr "nove" + +# @ aiowpsecurity +#: classes/wp-security-captcha.php:100 +msgid "ten" +msgstr "dieci" + +# @ aiowpsecurity +#: classes/wp-security-captcha.php:101 +msgid "eleven" +msgstr "undici" + +# @ aiowpsecurity +#: classes/wp-security-captcha.php:102 +msgid "twelve" +msgstr "dodici" + +# @ aiowpsecurity +#: classes/wp-security-captcha.php:103 +msgid "thirteen" +msgstr "tredici" + +# @ aiowpsecurity +#: classes/wp-security-captcha.php:104 +msgid "fourteen" +msgstr "quattordici" + +# @ aiowpsecurity +#: classes/wp-security-captcha.php:105 +msgid "fifteen" +msgstr "quindici" + +# @ aiowpsecurity +#: classes/wp-security-captcha.php:106 +msgid "sixteen" +msgstr "sedici" + +# @ aiowpsecurity +#: classes/wp-security-captcha.php:107 +msgid "seventeen" +msgstr "diciassette" + +# @ aiowpsecurity +#: classes/wp-security-captcha.php:108 +msgid "eighteen" +msgstr "diciotto" + +# @ aiowpsecurity +#: classes/wp-security-captcha.php:109 +msgid "nineteen" +msgstr "diciannove" + +# @ aiowpsecurity +#: classes/wp-security-captcha.php:110 +msgid "twenty" +msgstr "venti" + +# @ aiowpsecurity +#: classes/wp-security-file-scan.php:62 +msgid "All In One WP Security - File change detected!" +msgstr "All In One WP Security - Rilevata Modifica File!" + +# @ aiowpsecurity +#: classes/wp-security-file-scan.php:64 +msgid "A file change was detected on your system for site URL" +msgstr "Un cambiamento file è stato rilevato sul sistema del sito con URL" + +# @ aiowpsecurity +#: classes/wp-security-file-scan.php:64 +msgid ". Scan was generated on" +msgstr ".Scansione è stata generata su" + +# @ aiowpsecurity +#: classes/wp-security-file-scan.php:65 +msgid "Login to your site to view the scan details." +msgstr "Accedi al sito per visualizzare i dettagli di scansione." + +# @ aiowpsecurity +#: classes/wp-security-general-init-tasks.php:203 +msgid "Please enter an answer in the CAPTCHA field." +msgstr "Inserisci una risposta nel campo CAPTCHA." + +# @ aiowpsecurity +#: classes/wp-security-general-init-tasks.php:213 +msgid "" +"Error: You entered an incorrect CAPTCHA answer. Please go back and try again." +msgstr "Errore: Hai inserito una risposta CAPTCHA sbagliata. Prova di nuovo." + +# @ aiowpsecurity +#: classes/wp-security-general-init-tasks.php:241 +#: classes/wp-security-user-login.php:70 classes/wp-security-user-login.php:73 +#: classes/wp-security-user-registration.php:59 +msgid "ERROR: Your answer was incorrect - please try again." +msgstr "" +"ERRORE: La risposta è sbagliata - si prega di riprovare." + +# @ aiowpsecurity +#: classes/wp-security-user-login.php:43 +msgid "" +"ERROR: Login failed because your IP address has been " +"blocked.\n" +" Please contact the administrator." +msgstr "" +"ERRORE: Accesso non riuscito perché il vostro indirizzo IP " +"è stato bloccato a causa di un numero eccessivo di tentativi di login " +"falliti.\n" +" Si prega di contattare l'amministratore." + +# @ aiowpsecurity +#: classes/wp-security-user-login.php:83 +msgid "ERROR: The username field is empty." +msgstr "ERRORE: Il campo Nome Utente è vuoto." + +# @ aiowpsecurity +#: classes/wp-security-user-login.php:87 +msgid "ERROR: The password field is empty." +msgstr "ERRORE: Il campo password è vuoto." + +# @ aiowpsecurity +#: classes/wp-security-user-login.php:107 +#: classes/wp-security-user-login.php:133 +msgid "ERROR: Invalid login credentials." +msgstr "ERRORE: credenziali login non valide." + +# @ aiowpsecurity +#: classes/wp-security-user-login.php:110 +msgid "ERROR: Invalid username." +msgstr "ERRORE: Nome Utente non valido." + +# @ aiowpsecurity +#: classes/wp-security-user-login.php:136 +#, php-format +msgid "" +"ERROR: Incorrect password. Lost your password?" +msgstr "" +"ERRORE: Password non corretta. Hai perso la tua password?" + +# @ aiowpsecurity +#: classes/wp-security-user-login.php:147 +msgid "" +"ACCOUNT PENDING: Your account is currently not active. An " +"administrator needs to activate your account before you can login." +msgstr "" +"ACCOUNT IN SOSPESO : Il tuo account non è attivo. Un " +"amministratore deve attivare il tuo account prima di poter accedere." + +# @ aiowpsecurity +#: classes/wp-security-user-login.php:270 +msgid "Site Lockout Notification" +msgstr "Avviso Blocco Sito" + +# @ aiowpsecurity +#: classes/wp-security-user-login.php:271 +msgid "" +"A lockdown event has occurred due to too many failed login attempts or " +"invalid username:" +msgstr "" +"Un'azione di blocco si è verificata a causa di un numero eccessivo di " +"tentativi di accesso non riusciti, con i seguenti dati utente" + +# @ aiowpsecurity +#: classes/wp-security-user-login.php:273 +msgid "IP Address: " +msgstr "Indirizzo IP:" + +# @ aiowpsecurity +#: classes/wp-security-user-login.php:275 +msgid "" +"Log into your site's WordPress administration panel to see the duration of " +"the lockout or to unlock the user." +msgstr "" +"Accedi al pannello di amministrazione di WordPress del tuo sito per vedere " +"la durata del blocco o per sbloccare l'utente." + +# @ aiowpsecurity +#: classes/wp-security-user-login.php:504 +#, php-format +msgid "" +"Your session has expired because it has been over %d minutes since your last " +"login." +msgstr "" +"La sessione è scaduta perché è passato più di %d minuti dal tuo ultimo " +"accesso." + +# @ aiowpsecurity +#: classes/wp-security-user-login.php:505 +#: classes/wp-security-user-login.php:509 +msgid "Please log back in to continue." +msgstr "Accedi nuovamente per continuare." + +# @ aiowpsecurity +#: classes/wp-security-user-login.php:508 +msgid "You were logged out because you just changed the \"admin\" username." +msgstr "" +"Sei stato disconnesso perché hai appena cambiato il nome utente \"admin\"." + +# @ aiowpsecurity +#: classes/wp-security-utility-ip-address.php:75 +#: classes/wp-security-utility-ip-address.php:94 +#: classes/wp-security-utility-ip-address.php:109 +#: classes/wp-security-utility-ip-address.php:124 +msgid " is not a valid ip address format." +msgstr "formato indirizzo ip non valido." + +# @ aiowpsecurity +#: classes/wp-security-utility-ip-address.php:132 +msgid "You cannot ban your own IP address: " +msgstr "Non spuoi vietare il tuo indirizzo IP:" + +# @ aiowpsecurity +#: classes/wp-security-utility.php:151 +msgid "" +"This feature can only be configured by the \"superadmin\" on the main site." +msgstr "" +"Questa funzione può essere configurata solo dal \"superadmin\" sul sito " +"principale." + +# @ aiowpsecurity +#: classes/grade-system/wp-security-feature-item-manager.php:29 +msgid "Remove WP Generatore Meta Tag" +msgstr "Rimuovi Generatore WP Meta Tag" + +# @ aiowpsecurity +#: classes/grade-system/wp-security-feature-item-manager.php:38 +msgid "Change Display Name" +msgstr "Cambia Nome Visualizzato" + +# @ aiowpsecurity +#: classes/grade-system/wp-security-feature-item-manager.php:46 +msgid "Lost Password Captcha" +msgstr "Password persa Captcha" + +# @ aiowpsecurity +#: classes/grade-system/wp-security-feature-item-manager.php:48 +msgid "Login IP Whitelisting" +msgstr "Lista Bianca IP Login" + +# @ aiowpsecurity +#: classes/grade-system/wp-security-feature-item-manager.php:54 +msgid "Registration Approval" +msgstr "Approvazione registrazione" + +# @ aiowpsecurity +#: classes/grade-system/wp-security-feature-item-manager.php:70 +msgid "WordPress Files Access" +msgstr "Accesso File WordPress" + +# @ aiowpsecurity +#: classes/grade-system/wp-security-feature-item-manager.php:74 +msgid "IP and User Agent Blacklisting" +msgstr "IP o User Agent Blacklist" + +# @ aiowpsecurity +#: classes/grade-system/wp-security-feature-item-manager.php:78 +msgid "Enable Basic Firewall" +msgstr "Attiva Firewall Base" + +# @ aiowpsecurity +#: classes/grade-system/wp-security-feature-item-manager.php:79 +msgid "Enable Pingback Vulnerability Protection" +msgstr "Attiva Protezione Vulnerabilità Pingback" + +# @ aiowpsecurity +#: classes/grade-system/wp-security-feature-item-manager.php:90 +msgid "Forbid Proxy Comments" +msgstr "Vieta commenti via Proxy" + +# @ aiowpsecurity +#: classes/grade-system/wp-security-feature-item-manager.php:91 +msgid "Deny Bad Queries" +msgstr "Nega Stringhe Dannose" + +# @ aiowpsecurity +#: classes/grade-system/wp-security-feature-item-manager.php:93 +msgid "5G Blacklist" +msgstr "Blacklist 5G" + +# @ aiowpsecurity +#: classes/grade-system/wp-security-feature-item-manager.php:96 +msgid "Block Spambots" +msgstr "Blocca Spambots" + +# @ aiowpsecurity +#: classes/grade-system/wp-security-feature-item-manager.php:98 +msgid "Comment Captcha" +msgstr "Captcha Commenti" + +# @ aiowpsecurity +#: classes/grade-system/wp-security-feature-item.php:28 +msgid "Basic" +msgstr "Base" + +# @ aiowpsecurity +#: classes/grade-system/wp-security-feature-item.php:31 +msgid "Intermediate" +msgstr "Intermedio" + +# @ aiowpsecurity +#: classes/grade-system/wp-security-feature-item.php:34 +msgid "Advanced" +msgstr "Avanzate" + +# @ default +#: admin/general/wp-security-list-table.php:477 +#: admin/general/wp-security-list-table.php:881 +#, php-format +msgid "1 item" +msgid_plural "%s items" +msgstr[0] "" +msgstr[1] "" + +# @ default +#: admin/general/wp-security-list-table.php:495 +msgid "Go to the first page" +msgstr "Vai alla prima pagina" + +# @ default +#: admin/general/wp-security-list-table.php:502 +msgid "Go to the previous page" +msgstr "Torna alla pagina precedente." + +# @ default +#: admin/general/wp-security-list-table.php:511 +msgid "Current page" +msgstr "Pagina corrente." + +# @ default +#: admin/general/wp-security-list-table.php:517 +#, php-format +msgctxt "paging" +msgid "%1$s of %2$s" +msgstr "" + +# @ default +#: admin/general/wp-security-list-table.php:521 +msgid "Go to the next page" +msgstr "Vai alla pagina successiva" + +# @ default +#: admin/general/wp-security-list-table.php:528 +msgid "Go to the last page" +msgstr "Vai all'ultima pagina" + +# @ aiowpsecurity +#: admin/wp-security-admin-init.php:184 +msgid "Brute Force" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-admin-init.php:193 +msgid "Miscellaneous" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-brute-force-menu.php:25 +#: admin/wp-security-dashboard-menu.php:365 +#: admin/wp-security-dashboard-menu.php:374 +msgid "Rename Login Page" +msgstr "Rinomina Pagina Login" + +# @ aiowpsecurity +#: admin/wp-security-brute-force-menu.php:26 +msgid "Cookie Based Brute Force Prevention" +msgstr "Prevenzione Brute Force basata su Cookie" + +# @ aiowpsecurity +#: admin/wp-security-brute-force-menu.php:99 +msgid "Please enter a value for your login page slug." +msgstr "Inserisci un valore per la tua pagina di login" + +# @ aiowpsecurity +#: admin/wp-security-brute-force-menu.php:103 +msgid "You cannot use the value \"wp-admin\" for your login page slug." +msgstr "" +"Non è possibile utilizzare il valore \"wp-admin \" per la tua pagina di " +"login." + +# @ aiowpsecurity +#: admin/wp-security-brute-force-menu.php:127 +msgid "" +"Could not delete the Cookie-based directives from the .htaccess file. Please " +"check the file permissions." +msgstr "" +"Impossibile eliminare le direttive basate su Cookie dal file htaccess.. Si " +"prega di controllare i permessi dei file." + +# @ aiowpsecurity +#: admin/wp-security-brute-force-menu.php:137 +msgid "" +"An effective Brute Force prevention technique is to change the default " +"WordPress login page URL." +msgstr "" +"Un efficace tecnica di prevenzione Brute Force è quella di cambiare " +"l'impostazione predefinita dell'URL della pagina di login di WordPress." + +# @ aiowpsecurity +#: admin/wp-security-brute-force-menu.php:138 +msgid "" +"Normally if you wanted to login to WordPress you would type your site's home " +"URL followed by wp-login.php." +msgstr "" +"Normalmente, se si vuole accedere a WordPress è necessario digitare l'URL " +"del tuo sito seguito da wp-login.php." + +# @ aiowpsecurity +#: admin/wp-security-brute-force-menu.php:139 +msgid "" +"This feature allows you to change the login URL by setting your own slug and " +"renaming the last portion of the login URL which contains the wp-" +"login.php to any string that you like." +msgstr "" +"Questa funzione consente di modificare l'URL di accesso impostando il " +"proprio slug e rinominare l'ultima parte dell'URL di accesso che contiene il " +" wp-login.php con qualsiasi stringa che ti piace." + +# @ aiowpsecurity +#: admin/wp-security-brute-force-menu.php:140 +msgid "" +"By doing this, malicious bots and hackers will not be able to access your " +"login page because they will not know the correct login page URL." +msgstr "" +"In questo modo, bot maligni e hacker non saranno in grado di accedere alla " +"pagina di login perché non conoscono il corretto URL della pagina di login." + +# @ aiowpsecurity +#: admin/wp-security-brute-force-menu.php:142 +msgid "" +"You may also be interested in the following alternative brute force " +"prevention features:" +msgstr "" +"Potresti anche essere interessato alle seguenti caratteristiche di " +"prevenzione brute force alternative:" + +# @ aiowpsecurity +#: admin/wp-security-brute-force-menu.php:153 +msgid "Your WordPress login page URL has been renamed." +msgstr "L'URL della tua pagina di login WordPress è stato rinominato." + +# @ aiowpsecurity +#: admin/wp-security-brute-force-menu.php:154 +msgid "Your current login URL is:" +msgstr "Il tuo attuale indirizzo di login (URL)" + +# @ aiowpsecurity +#: admin/wp-security-brute-force-menu.php:156 +msgid "" +"NOTE: If you already had the Cookie-Based Brute Force Prevention feature " +"active, the plugin has automatically deactivated it because only one of " +"these features can be active at any one time." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-brute-force-menu.php:163 +msgid "Rename Login Page Settings" +msgstr "Impostazioni Rinomina Pagina Login" + +# @ aiowpsecurity +#: admin/wp-security-brute-force-menu.php:175 +msgid "Enable Rename Login Page Feature" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-brute-force-menu.php:178 +msgid "Check this if you want to enable the rename login page feature" +msgstr "" +"Selezionare questa casella per attivare la funzione di rinmomina login e " +"applicare le seguenti impostazioni" + +# @ aiowpsecurity +#: admin/wp-security-brute-force-menu.php:182 +msgid "Login Page URL" +msgstr "Indirizzo di login (URL)" + +# @ aiowpsecurity +#: admin/wp-security-brute-force-menu.php:184 +msgid "" +"Enter a string which will represent your secure login page slug. You are " +"enouraged to choose something which is hard to guess and only you will " +"remember." +msgstr "" +"Immettere una stringa che rappresenterà lo slug della tua pagina di login " +"sicura (lo slug è la parte finale dell'indirizzo pagina). Oportuno scegliere " +"qualcosa che è difficile indovinare." + +# @ aiowpsecurity +#: admin/wp-security-brute-force-menu.php:306 +msgid "" +"If this feature is not used correctly, you can get locked out of your site. " +"A backed up .htaccess file will come in handy if that happens." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-brute-force-menu.php:320 +msgid "" +"NOTE: If you already had the Rename Login Page feature active, the plugin " +"has automatically deactivated it because only one of these features can be " +"active at any one time." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-dashboard-menu.php:25 +#: admin/wp-security-dashboard-menu.php:457 +msgid "Locked IP Addresses" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-dashboard-menu.php:76 +msgid "" +"Twitter, Google+ or via Email to stay up to date about the new security " +"features of this plugin." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-dashboard-menu.php:177 +msgid "" +"We are working hard to make your WordPress site more secure. Please support " +"us, here is how:" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-dashboard-menu.php:264 +msgid "Last 5 Logins" +msgstr "Ultimi 5 Login" + +# @ aiowpsecurity +#: admin/wp-security-dashboard-menu.php:278 +msgid "No data found!" +msgstr "Nessun dato|" + +# @ aiowpsecurity +#: admin/wp-security-dashboard-menu.php:282 +msgid "Last 5 logins summary:" +msgstr "Ultimi 5 accessi:" + +# @ aiowpsecurity +#: admin/wp-security-dashboard-menu.php:286 +msgid "User" +msgstr "Utente" + +# @ aiowpsecurity +#: admin/wp-security-dashboard-menu.php:287 +msgid "Date" +msgstr "Data" + +# @ aiowpsecurity +#: admin/wp-security-dashboard-menu.php:288 +msgid "IP" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-dashboard-menu.php:342 +msgid "Cookie Based Brute Prevention" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-dashboard-menu.php:345 +msgid "Cookie-Based Brute Force" +msgstr "Cookie Brute Force Base." + +# @ aiowpsecurity +#: admin/wp-security-dashboard-menu.php:349 +#: admin/wp-security-dashboard-menu.php:377 +#, php-format +msgid "The %s feature is currently active." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-dashboard-menu.php:350 +#: admin/wp-security-dashboard-menu.php:378 +msgid "Your new WordPress login URL is now:" +msgstr "Il tuo nuovo URL di logi WordPress:" + +# @ aiowpsecurity +#: admin/wp-security-dashboard-menu.php:442 +msgid "Number of users currently logged into your site (including you) is:" +msgstr "Il numero di utenti attualmente loggati nel sito (incluso tu) è:" + +# @ aiowpsecurity +#: admin/wp-security-dashboard-menu.php:465 +msgid "There are no IP addresses currently locked out." +msgstr "Non ci sono indirizzi IP attualmente bloccati" + +# @ aiowpsecurity +#: admin/wp-security-dashboard-menu.php:470 +msgid "Number of temporarily locked out IP addresses: " +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-dashboard-menu.php:530 +msgid "PHP Info" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-dashboard-menu.php:532 +msgid "PHP Version" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-dashboard-menu.php:533 +msgid "PHP Memory Usage" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-dashboard-menu.php:534 +msgid " MB" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-dashboard-menu.php:540 +#: admin/wp-security-dashboard-menu.php:548 +#: admin/wp-security-dashboard-menu.php:556 +#: admin/wp-security-dashboard-menu.php:598 +msgid "N/A" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-dashboard-menu.php:543 +msgid "PHP Memory Limit" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-dashboard-menu.php:551 +msgid "PHP Max Upload Size" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-dashboard-menu.php:559 +msgid "PHP Max Post Size" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-dashboard-menu.php:562 +#: admin/wp-security-dashboard-menu.php:570 +#: admin/wp-security-dashboard-menu.php:579 +#: admin/wp-security-dashboard-menu.php:587 +msgid "On" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-dashboard-menu.php:564 +#: admin/wp-security-dashboard-menu.php:572 +#: admin/wp-security-dashboard-menu.php:581 +#: admin/wp-security-dashboard-menu.php:589 +msgid "Off" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-dashboard-menu.php:567 +msgid "PHP Safe Mode" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-dashboard-menu.php:575 +msgid "PHP Allow URL fopen" +msgstr "" + +# @ default +#: admin/wp-security-dashboard-menu.php:584 +msgid "PHP Allow URL Include" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-dashboard-menu.php:592 +msgid "PHP Display Errors" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-dashboard-menu.php:601 +msgid "PHP Max Script Execution Time" +msgstr "" + +# @ default +#: admin/wp-security-dashboard-menu.php:601 +msgid "Seconds" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-dashboard-menu.php:653 +msgid "Currently Locked Out IP Addresses and Ranges" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-database-menu.php:383 +msgid "Error - Could not get tables or no tables found!" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-filescan-menu.php:24 +msgid "Malware Scan" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-filescan-menu.php:93 +msgid "There have been no file changes since the last scan." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-filescan-menu.php:112 +msgid "Scan Complete - There were no file changes detected!" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-filescan-menu.php:244 +msgid "View Last Saved File Change Results" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-filescan-menu.php:250 +msgid "" +"Click the button below to view the saved file change results from the last " +"scan." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-filescan-menu.php:253 +msgid "View Last File Change" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-filescan-menu.php:341 +msgid "What is Malware?" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-filescan-menu.php:342 +msgid "" +"The word Malware stands for Malicious Software. It can consist of things " +"like trojan horses, adware, worms, spyware and any other undesirable code " +"which a hacker will try to inject into your website." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-filescan-menu.php:343 +msgid "" +"Often when malware code has been inserted into your site you will normally " +"not notice anything out of the ordinary based on appearances, but it can " +"have a dramatic effect on your site’s search ranking." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-filescan-menu.php:344 +msgid "" +"This is because the bots and spiders from search engines such as Google have " +"the capability to detect malware when they are indexing the pages on your " +"site, and consequently they can blacklist your website which will in turn " +"affect your search rankings." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-filescan-menu.php:348 +msgid "Scanning For Malware" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-filescan-menu.php:349 +msgid "" +"Due to the constantly changing and complex nature of Malware, scanning for " +"such things using a standalone plugin will not work reliably. This is " +"something best done via an external scan of your site regularly." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-filescan-menu.php:350 +msgid "" +"This is why we have created an easy-to-use scanning service which is hosted " +"off our own server which will scan your site for malware once every day and " +"notify you if it finds anything." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-filescan-menu.php:351 +msgid "When you sign up for this service you will get the following:" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-filescan-menu.php:353 +msgid "Automatic Daily Scan of 1 Website" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-filescan-menu.php:354 +msgid "Automatic Malware & Blacklist Monitoring" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-filescan-menu.php:355 +msgid "Automatic Email Alerting" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-filescan-menu.php:356 +msgid "Site uptime monitoring" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-filescan-menu.php:357 +msgid "Site response time monitoring" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-filescan-menu.php:358 +msgid "Malware Cleanup" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-filescan-menu.php:359 +msgid "Blacklist Removal" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-filescan-menu.php:360 +msgid "No Contract (Cancel Anytime)" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-filescan-menu.php:362 +#, php-format +msgid "To learn more please %s." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:30 +msgid "Internet Bots" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:31 +msgid "Prevent Hotlinks" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:32 +msgid "404 Detection" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:143 +msgid "Attention:" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:144 +msgid "Currently the " +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:144 +msgid " is active." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:145 +msgid "" +"Please beware that if you are using the WordPress iOS App, then you will " +"need to deactivate this feature in order for the app to work properly." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:334 +msgid "" +"NOTE: In order for this feature to work \"AllowOverride\" of the Indexes " +"directive must be enabled in your httpd.conf file. Ask your hosting provider " +"to check this if you don't have access to httpd.conf" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:577 +msgid "The Internet bot settings were successfully saved" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:581 +msgid "Internet Bot Settings" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:588 +#, php-format +msgid "%s?" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:590 +msgid "" +"A bot is a piece of software which runs on the Internet and performs " +"automatic tasks. For example when Google indexes your pages it uses " +"automatic bots to achieve this task." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:591 +msgid "" +"A lot of bots are legitimate and non-malicous but not all bots are good and " +"often you will find some which try to impersonate legitimate bots such as " +"\"Googlebot\" but in reality they have nohing to do with Google at all." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:592 +msgid "" +"Although most of the bots out there are relatively harmless sometimes " +"website owners want to have more control over which bots they allow into " +"their site." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:593 +msgid "" +"This feature allows you to block bots which are impersonating as a Googlebot " +"but actually aren't. (In other words they are fake Google bots)" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:594 +msgid "" +"Googlebots have a unique indentity which cannot easily be forged and this " +"feature will indentify any fake Google bots and block them from reading your " +"site's pages." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:600 +msgid "" +"Attention: Sometimes non-malicious Internet organizations " +"might have bots which impersonate as a \"Googlebot\"." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:601 +msgid "" +"Just be aware that if you activate this feature the plugin will block all " +"bots which use the \"Googlebot\" string in their User Agent information but " +"are NOT officially from Google (irrespective whether they are malicious or " +"not)." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:602 +msgid "" +"All other bots from other organizations such as \"Yahoo\", \"Bing\" etc will " +"not be affected by this feature." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:608 +#: admin/wp-security-firewall-menu.php:618 +#: classes/grade-system/wp-security-feature-item-manager.php:94 +msgid "Block Fake Googlebots" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:621 +msgid "Check this if you want to block all fake Googlebots." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:625 +msgid "" +"This feature will check if the User Agent information of a bot contains the " +"string \"Googlebot\"." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:626 +msgid "" +"It will then perform a few tests to verify if the bot is legitimately from " +"Google and if so it will allow the bot to proceed." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:627 +msgid "" +"If the bot fails the checks then the plugin will mark it as being a fake " +"Googlebot and it will block it" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:634 +msgid "Save Internet Bot Settings" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:671 +#: admin/wp-security-firewall-menu.php:693 +#: classes/grade-system/wp-security-feature-item-manager.php:32 +msgid "Prevent Image Hotlinking" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:674 +msgid "" +"A Hotlink is where someone displays an image on their site which is actually " +"located on your site by using a direct link to the source of the image on " +"your server." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:675 +msgid "" +"Due to the fact that the image being displayed on the other person's site is " +"coming from your server, this can cause leaking of bandwidth and resources " +"for you because your server has to present this image for the people viewing " +"it on someone elses's site." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:676 +msgid "" +"This feature will prevent people from directly hotlinking images from your " +"site's pages by writing some directives in your .htaccess file." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:681 +msgid "Prevent Hotlinking" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:696 +msgid "Check this if you want to prevent hotlinking to images on your site." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:716 +msgid "Nonce check failed for delete all 404 event logs operation!" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:727 +msgid "404 Detection Feature - Delete all 404 event logs operation failed!" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:731 +msgid "All 404 event logs were deleted from the DB successfully!" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:763 +msgid "" +"You entered an incorrect format for the \"Redirect URL\" field. It has been " +"set to the default value." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:795 +msgid "404 Detection Configuration" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:798 +msgid "" +"A 404 or Not Found error occurs when somebody tries to access a non-existent " +"page on your website." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:799 +msgid "" +"Typically, most 404 errors happen quite innocently when people have mis-" +"typed a URL or used an old link to page which doesn't exist anymore." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:800 +msgid "" +"However, in some cases you may find many repeated 404 errors which occur in " +"a relatively short space of time and from the same IP address which are all " +"attempting to access a variety of non-existent page URLs." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:801 +msgid "" +"Such behaviour can mean that a hacker might be trying to find a particular " +"page or URL for sinister reasons." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:802 +msgid "" +"This feature allows you to monitor all 404 events which occur on your site, " +"and it also gives you the option of blocking IP addresses for a configured " +"length of time." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:803 +msgid "" +"If you want to temporarily block an IP address, simply click the \"Temp Block" +"\" link for the applicable IP entry in the \"404 Event Logs\" table below." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:808 +msgid "404 Detection Options" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:820 +msgid "Enable IP Lockout For 404 Events" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:823 +msgid "Check this if you want to enable the lockout of selected IP addresses." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:828 +msgid "" +"When you enable this checkbox, all 404 events on your site will be logged in " +"the table below. You can monitor these events and select some IP addresses " +"to be blocked in the table. All IP addresses you select to be blocked from " +"the \"404 Event Logs\" table section will be unable to access your site." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:836 +msgid "Enable 404 Event Logging" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:839 +msgid "Check this if you want to enable the logging of 404 events" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:844 +msgid "Time Length of 404 Lockout (min)" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:846 +msgid "" +"Set the length of time for which a blocked IP address will be prevented from " +"visiting your site" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:851 +msgid "" +"You can lock any IP address which is recorded in the \"404 Event Logs\" " +"table section below." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:853 +msgid "" +"To temporarily lock an IP address, hover over the ID column and click the " +"\"Temp Block\" link for the applicable IP entry." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:860 +msgid "404 Lockout Redirect URL" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:862 +msgid "A blocked visitor will be automatically redirected to this URL." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:871 +msgid "404 Event Logs" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:892 +#: admin/wp-security-firewall-menu.php:901 +msgid "Delete All 404 Event Logs" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:898 +msgid "Click this button if you wish to purge all 404 event logs from the DB." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-list-locked-ip.php:117 +#: admin/wp-security-user-login-menu.php:527 +msgid "The selected IP entries were unlocked successfully!" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-list-locked-ip.php:126 +#: admin/wp-security-user-login-menu.php:536 +msgid "The selected IP entry was unlocked successfully!" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-list-registered-users.php:127 +#: admin/wp-security-list-registered-users.php:151 +msgid "Your account is now active" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-list-registered-users.php:128 +msgid "Your account with username:" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-list-registered-users.php:139 +msgid "The following accounts failed to update successfully: " +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-list-registered-users.php:152 +msgid "Your account with username: " +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-misc-options-menu.php:22 +msgid "Copy Protection" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-misc-options-menu.php:86 +msgid "Copy Protection feature settings saved!" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-misc-options-menu.php:91 +msgid "Disable The Ability To Copy Text" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-misc-options-menu.php:97 +msgid "" +"This feature allows you to disable the ability to select and copy text from " +"your front end." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-misc-options-menu.php:102 +msgid "Enable Copy Protection" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-misc-options-menu.php:105 +msgid "" +"Check this if you want to disable the \"Right Click\", \"Text Selection\" " +"and \"Copy\" option on the front end of your site." +msgstr "" + +# @ default +#: admin/wp-security-misc-options-menu.php:112 +msgid "Save Copy Protection Settings" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-settings-menu.php:206 +msgid "" +"Your .htaccess file was successfully backed up! Using an FTP program go to " +"the \"/wp-content/aiowps_backups\" directory to save a copy of the file to " +"your computer." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-spam-menu.php:121 +msgid "" +"Adding a captcha field in the comment form is a simple way of greatly " +"reducing SPAM comments from bots without using .htaccess rules." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-spam-menu.php:146 +msgid "" +"In other words, if the comment was not submitted by a human who physically " +"submitted the comment on your site, the request will be blocked." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-user-login-menu.php:190 +msgid "Allow Unlock Requests" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-user-login-menu.php:193 +msgid "" +"Check this if you want to allow users to generate an automated unlock " +"request link which will unlock their account" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-user-login-menu.php:248 +#, php-format +msgid "" +"To see a list of all locked IP addresses and ranges go to the %s tab in the " +"dashboard menu." +msgstr "" + +# @ aiowpsecurity +#: classes/grade-system/wp-security-feature-item-manager.php:80 +msgid "Enable IP blocking for 404 detection" +msgstr "" + +# @ aiowpsecurity +#: classes/grade-system/wp-security-feature-item-manager.php:84 +msgid "Enable Rename Login Page" +msgstr "" + +# @ aiowpsecurity +#: classes/wp-security-process-renamed-login-page.php:68 +msgid "Please log in to access the WordPress admin area." +msgstr "" + +# @ aiowpsecurity +#: classes/wp-security-user-login.php:272 +msgid "Username: Unknown" +msgstr "" + +# @ aiowpsecurity +#: classes/wp-security-user-login.php:274 +msgid "IP Range: .*" +msgstr "" + +# @ aiowpsecurity +#: classes/wp-security-user-login.php:337 +msgid "Unlock Request Notification" +msgstr "" + +# @ aiowpsecurity +#: classes/wp-security-user-login.php:338 +msgid "" +"You have requested for the account with email address to be unlocked. " +"Please click the link below to unlock your account:" +msgstr "" + +# @ aiowpsecurity +#: classes/wp-security-user-login.php:339 +msgid "Unlock link: " +msgstr "" + +# @ aiowpsecurity +#: classes/wp-security-user-login.php:340 +msgid "" +"After clicking the above link you will be able to login to the WordPress " +"administration panel." +msgstr "" + +# @ aiowpsecurity +#: classes/wp-security-user-login.php:534 +msgid "Request Unlock" +msgstr "" + +# @ default +#: other-includes/wp-security-rename-login-feature.php:96 +msgid "https://wordpress.org/" +msgstr "" + +# @ default +#: other-includes/wp-security-rename-login-feature.php:97 +#: other-includes/wp-security-unlock-request.php:14 +msgid "Powered by WordPress" +msgstr "" + +# @ default +#: other-includes/wp-security-rename-login-feature.php:214 +msgid "Are you lost?" +msgstr "" + +# @ default +#: other-includes/wp-security-rename-login-feature.php:214 +#, php-format +msgid "← Back to %s" +msgstr "" + +# @ default +#: other-includes/wp-security-rename-login-feature.php:272 +msgid "ERROR: Enter a username or e-mail address." +msgstr "" + +# @ default +#: other-includes/wp-security-rename-login-feature.php:276 +msgid "" +"ERROR: There is no user registered with that email address." +msgstr "" + +# @ default +#: other-includes/wp-security-rename-login-feature.php:293 +msgid "ERROR: Invalid username or e-mail." +msgstr "" + +# @ default +#: other-includes/wp-security-rename-login-feature.php:330 +msgid "Password reset is not allowed for this user" +msgstr "" + +# @ default +#: other-includes/wp-security-rename-login-feature.php:355 +msgid "Someone requested that the password be reset for the following account:" +msgstr "" + +# @ default +#: other-includes/wp-security-rename-login-feature.php:357 +#, php-format +msgid "Username: %s" +msgstr "" + +# @ default +#: other-includes/wp-security-rename-login-feature.php:358 +msgid "If this was a mistake, just ignore this email and nothing will happen." +msgstr "" + +# @ default +#: other-includes/wp-security-rename-login-feature.php:359 +msgid "To reset your password, visit the following address:" +msgstr "" + +# @ default +#: other-includes/wp-security-rename-login-feature.php:369 +#, php-format +msgid "[%s] Password Reset" +msgstr "" + +# @ default +#: other-includes/wp-security-rename-login-feature.php:390 +msgid "The e-mail could not be sent." +msgstr "" + +# @ default +#: other-includes/wp-security-rename-login-feature.php:390 +msgid "Possible reason: your host may have disabled the mail() function." +msgstr "" + +# @ default +#: other-includes/wp-security-rename-login-feature.php:495 +msgid "Sorry, that key does not appear to be valid." +msgstr "" + +# @ default +#: other-includes/wp-security-rename-login-feature.php:497 +msgid "Sorry, that key has expired. Please try again." +msgstr "" + +# @ default +#: other-includes/wp-security-rename-login-feature.php:517 +msgid "Lost Password" +msgstr "" + +# @ default +#: other-includes/wp-security-rename-login-feature.php:517 +msgid "" +"Please enter your username or email address. You will receive a link to " +"create a new password via email." +msgstr "" + +# @ default +#: other-includes/wp-security-rename-login-feature.php:525 +msgid "Username or E-mail:" +msgstr "" + +# @ default +#: other-includes/wp-security-rename-login-feature.php:536 +msgid "Get New Password" +msgstr "" + +# @ default +#: other-includes/wp-security-rename-login-feature.php:540 +#: other-includes/wp-security-rename-login-feature.php:589 +#: other-includes/wp-security-rename-login-feature.php:631 +#: other-includes/wp-security-rename-login-feature.php:713 +msgid "Log in" +msgstr "" + +# @ default +#: other-includes/wp-security-rename-login-feature.php:543 +#: other-includes/wp-security-rename-login-feature.php:634 +#: other-includes/wp-security-rename-login-feature.php:709 +#: other-includes/wp-security-rename-login-feature.php:892 +msgid "Register" +msgstr "" + +# @ default +#: other-includes/wp-security-rename-login-feature.php:575 +msgid "The passwords do not match." +msgstr "" + +# @ default +#: other-includes/wp-security-rename-login-feature.php:589 +msgid "Password Reset" +msgstr "" + +# @ default +#: other-includes/wp-security-rename-login-feature.php:589 +msgid "Your password has been reset." +msgstr "" + +# @ default +#: other-includes/wp-security-rename-login-feature.php:597 +#: other-includes/wp-security-rename-login-feature.php:627 +msgid "Reset Password" +msgstr "" + +# @ default +#: other-includes/wp-security-rename-login-feature.php:597 +msgid "Enter your new password below." +msgstr "" + +# @ default +#: other-includes/wp-security-rename-login-feature.php:604 +msgid "New password" +msgstr "" + +# @ default +#: other-includes/wp-security-rename-login-feature.php:608 +msgid "Confirm new password" +msgstr "" + +# @ default +#: other-includes/wp-security-rename-login-feature.php:612 +msgid "Strength indicator" +msgstr "" + +# @ default +#: other-includes/wp-security-rename-login-feature.php:613 +msgid "" +"Hint: The password should be at least seven characters long. To make it " +"stronger, use upper and lower case letters, numbers, and symbols like ! \" ? " +"$ % ^ & )." +msgstr "" + +# @ default +#: other-includes/wp-security-rename-login-feature.php:686 +msgid "Registration Form" +msgstr "" + +# @ default +#: other-includes/wp-security-rename-login-feature.php:686 +msgid "Register For This Site" +msgstr "" + +# @ default +#: other-includes/wp-security-rename-login-feature.php:691 +#: other-includes/wp-security-rename-login-feature.php:858 +msgid "Username" +msgstr "" + +# @ default +#: other-includes/wp-security-rename-login-feature.php:695 +msgid "E-mail" +msgstr "" + +# @ default +#: other-includes/wp-security-rename-login-feature.php:706 +msgid "A password will be e-mailed to you." +msgstr "" + +# @ default +#: other-includes/wp-security-rename-login-feature.php:714 +#: other-includes/wp-security-rename-login-feature.php:897 +msgid "Password Lost and Found" +msgstr "" + +# @ default +#: other-includes/wp-security-rename-login-feature.php:714 +#: other-includes/wp-security-rename-login-feature.php:897 +msgid "Lost your password?" +msgstr "" + +# @ default +#: other-includes/wp-security-rename-login-feature.php:760 +#, php-format +msgid "" +"ERROR: Cookies are blocked due to unexpected output. For " +"help, please see this documentation or try the support forums." +msgstr "" + +# @ default +#: other-includes/wp-security-rename-login-feature.php:761 +#: other-includes/wp-security-rename-login-feature.php:765 +msgid "http://codex.wordpress.org/Cookies" +msgstr "" + +# @ default +#: other-includes/wp-security-rename-login-feature.php:761 +msgid "https://wordpress.org/support/" +msgstr "" + +# @ default +#: other-includes/wp-security-rename-login-feature.php:764 +#, php-format +msgid "" +"ERROR: Cookies are blocked or not supported by your " +"browser. You must enable cookies to use WordPress." +msgstr "" + +# @ default +#: other-includes/wp-security-rename-login-feature.php:783 +msgid "You have logged in successfully." +msgstr "" + +# @ default +#: other-includes/wp-security-rename-login-feature.php:817 +msgid "" +"Session expired. Please log in again. You will not move away from this page." +msgstr "" + +# @ default +#: other-includes/wp-security-rename-login-feature.php:821 +msgid "You are now logged out." +msgstr "" + +# @ default +#: other-includes/wp-security-rename-login-feature.php:823 +msgid "User registration is currently not allowed." +msgstr "" + +# @ default +#: other-includes/wp-security-rename-login-feature.php:825 +msgid "Check your e-mail for the confirmation link." +msgstr "" + +# @ default +#: other-includes/wp-security-rename-login-feature.php:827 +msgid "Check your e-mail for your new password." +msgstr "" + +# @ default +#: other-includes/wp-security-rename-login-feature.php:829 +msgid "Registration complete. Please check your e-mail." +msgstr "" + +# @ default +#: other-includes/wp-security-rename-login-feature.php:831 +msgid "" +"You have successfully updated WordPress! Please log back in " +"to experience the awesomeness." +msgstr "" + +# @ default +#: other-includes/wp-security-rename-login-feature.php:848 +#: other-includes/wp-security-rename-login-feature.php:875 +msgid "Log In" +msgstr "" + +# @ default +#: other-includes/wp-security-rename-login-feature.php:873 +msgid "Remember Me" +msgstr "" + +# @ default +#: other-includes/wp-security-unlock-request.php:13 +msgid "http://wordpress.org/" +msgstr "" + +# @ aiowpsecurity +#: other-includes/wp-security-unlock-request.php:48 +msgid "Please enter a valid email address" +msgstr "" + +# @ aiowpsecurity +#: other-includes/wp-security-unlock-request.php:59 +msgid "User account not found!" +msgstr "" + +# @ aiowpsecurity +#: other-includes/wp-security-unlock-request.php:70 +msgid "Error: No locked entry was found in the DB with your IP address range!" +msgstr "" + +# @ aiowpsecurity +#: other-includes/wp-security-unlock-request.php:98 +msgid "Email Address" +msgstr "" diff --git a/all-in-one-wp-security/languages/aiowpsecurity-pt_BR.mo b/all-in-one-wp-security/languages/aiowpsecurity-pt_BR.mo new file mode 100644 index 0000000000000000000000000000000000000000..349d3ce90a08368a99706d9b9aeeaba77eba3783 GIT binary patch literal 9011 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\n" +"Language-Team: Li9 \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 1.6.5\n" +"X-Poedit-KeywordsList: __;_e\n" +"X-Poedit-Basepath: .\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"Language: pt_BR\n" +"X-Poedit-SourceCharset: UTF-8\n" +"X-Poedit-SearchPath-0: .\n" + +#: all-in-one-wp-security/admin/wp-security-admin-init.php:156 +msgid "WP Security" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-admin-init.php:157 +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:22 +msgid "Dashboard" +msgstr "Painel" + +#: all-in-one-wp-security/admin/wp-security-admin-init.php:158 +msgid "Settings" +msgstr "Configurações" + +#: all-in-one-wp-security/admin/wp-security-admin-init.php:159 +msgid "User Accounts" +msgstr "Contas de Usuários" + +#: all-in-one-wp-security/admin/wp-security-admin-init.php:160 +msgid "User Login" +msgstr "Login de Usuário" + +#: all-in-one-wp-security/admin/wp-security-admin-init.php:161 +msgid "User Registration" +msgstr "Registro de Usuário" + +#: all-in-one-wp-security/admin/wp-security-admin-init.php:162 +msgid "Database Security" +msgstr "Segurança Base de Dados" + +#: all-in-one-wp-security/admin/wp-security-admin-init.php:166 +msgid "Filesystem Security" +msgstr "Segurança Sistema de Arquivos" + +#: all-in-one-wp-security/admin/wp-security-admin-init.php:168 +msgid "WHOIS Lookup" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-admin-init.php:172 +msgid "Blacklist Manager" +msgstr "Gerenciador Lista Negra" + +#: all-in-one-wp-security/admin/wp-security-admin-init.php:177 +msgid "Firewall" +msgstr "Firewall" + +#: all-in-one-wp-security/admin/wp-security-admin-init.php:179 +msgid "SPAM Prevention" +msgstr "Prevenção SPAM" + +#: all-in-one-wp-security/admin/wp-security-admin-init.php:183 +msgid "Scanner" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-admin-init.php:185 +msgid "Maintenance" +msgstr "Manutenção" + +#: all-in-one-wp-security/admin/wp-security-admin-menu.php:43 +msgid "Settings successfully updated." +msgstr "Configurações autalizadas com sucesso." + +#: all-in-one-wp-security/admin/wp-security-admin-menu.php:50 +msgid "The selected record(s) deleted successfully!" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-blacklist-menu.php:22 +msgid "Ban Users" +msgstr "Usuários Banidos" + +#: all-in-one-wp-security/admin/wp-security-blacklist-menu.php:80 +msgid "Nonce check failed for save blacklist settings!" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-blacklist-menu.php:132 +#: all-in-one-wp-security/admin/wp-security-list-comment-spammer-ip.php:147 +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:400 +msgid "" +"The plugin was unable to write to the .htaccess file. Please edit file " +"manually." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-blacklist-menu.php:139 +msgid "Ban IPs or User Agents" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-blacklist-menu.php:142 +msgid "" +"The All In One WP Security Blacklist feature gives you the option of banning " +"certain host IP addresses or ranges and also user agents." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-blacklist-menu.php:143 +msgid "" +"This feature will deny total site access for users which have IP addresses " +"or user agents matching those which you have configured in the settings " +"below." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-blacklist-menu.php:144 +msgid "" +"The plugin achieves this by making appropriate modifications to your ." +"htaccess file." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-blacklist-menu.php:145 +msgid "" +"By blocking people via the .htaccess file your are using the most secure " +"first line of defence which denies all access to blacklisted visitors as " +"soon as they hit your hosting server." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-blacklist-menu.php:151 +msgid "IP Hosts and User Agent Blacklist Settings" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-blacklist-menu.php:162 +msgid "Enable IP or User Agent Blacklisting" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-blacklist-menu.php:165 +msgid "" +"Check this if you want to enable the banning (or blacklisting) of selected " +"IP addresses and/or user agents specified in the settings below" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-blacklist-menu.php:169 +msgid "Enter IP Addresses:" +msgstr "Digite o endereço IP:" + +#: all-in-one-wp-security/admin/wp-security-blacklist-menu.php:173 +msgid "Enter one or more IP addresses or IP ranges." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-blacklist-menu.php:174 +#: all-in-one-wp-security/admin/wp-security-blacklist-menu.php:194 +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:271 +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:288 +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:147 +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:177 +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:308 +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:338 +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:369 +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:397 +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:426 +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:514 +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:669 +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:703 +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:726 +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:747 +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:174 +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:259 +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:456 +msgid "More Info" +msgstr "Mais Informação" + +#: all-in-one-wp-security/admin/wp-security-blacklist-menu.php:177 +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:459 +msgid "Each IP address must be on a new line." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-blacklist-menu.php:178 +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:460 +msgid "" +"To specify an IP range use a wildcard \"*\" character. Acceptable ways to " +"use wildcards is shown in the examples below:" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-blacklist-menu.php:179 +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:461 +msgid "Example 1: 195.47.89.*" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-blacklist-menu.php:180 +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:462 +msgid "Example 2: 195.47.*.*" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-blacklist-menu.php:181 +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:463 +msgid "Example 3: 195.*.*.*" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-blacklist-menu.php:188 +msgid "Enter User Agents:" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-blacklist-menu.php:193 +msgid "Enter one or more user agent strings." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-blacklist-menu.php:197 +msgid "Each user agent string must be on a new line." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-blacklist-menu.php:198 +msgid "Example 1 - A single user agent string to block:" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-blacklist-menu.php:200 +msgid "Example 2 - A list of more than 1 user agent strings to block" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-blacklist-menu.php:208 +#: all-in-one-wp-security/admin/wp-security-database-menu.php:347 +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:309 +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:231 +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:497 +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:189 +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:232 +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:336 +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:470 +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:628 +#: all-in-one-wp-security/admin/wp-security-user-registration-menu.php:146 +#: all-in-one-wp-security/admin/wp-security-user-registration-menu.php:221 +msgid "Save Settings" +msgstr "Salvar Configurações" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:23 +msgid "System Info" +msgstr "System Info" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:73 +msgid "For information, updates and documentation, please visit the" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:73 +msgid "AIO WP Security & Firewall Plugin" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:73 +msgid "Page" +msgstr "Página" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:74 +msgid "Follow us" +msgstr "Siga-nos" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:74 +msgid "" +"Twitter, Google+ or via Email to stay upto date about the new security " +"features of this plugin." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:88 +msgid "Security Strength Meter" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:117 +msgid "Total Achievable Points: " +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:119 +msgid "Current Score of Your Site: " +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:129 +msgid "Security Points Breakdown" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:170 +msgid "Critical Feature Status" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:174 +msgid "" +"Below is the current status of the critical features that you should " +"activate on your site to achieve a minimum level of recommended security" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:178 +msgid "Admin Username" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:193 +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:27 +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:39 +msgid "Login Lockdown" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:208 +msgid "File Permission" +msgstr "Permissão de Arquivo" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:223 +msgid "Basic Firewall" +msgstr "Firewall Básico" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:241 +msgid "Maintenance Mode Status" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:245 +msgid "" +"Maintenance mode is currently enabled. Remember to turn it off when you are " +"done" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:248 +msgid "Maintenance mode is currently off." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:252 +msgid "Maintenance Mode" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:291 +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:33 +msgid "Logged In Users" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:301 +msgid "Number of users currently logged in site-wide is:" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:302 +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:324 +#, php-format +msgid "Go to the %s menu to see more details" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:307 +msgid "There are no other site-wide users currently logged in." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:323 +msgid "Number of users currently logged into your site is:" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:329 +msgid "There are no other users currently logged in." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:340 +msgid "Spread the Word" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:343 +msgid "" +"We are working to make your WordPress site more secure. Please support us, " +"here is how:" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:367 +msgid "Site Info" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:369 +msgid "Plugin Version" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:370 +msgid "WP Version" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:372 +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:374 +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:395 +msgid "Version" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:373 +msgid "Table Prefix" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:375 +msgid "Session Save Path" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:377 +msgid "Server Name" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:378 +msgid "Cookie Domain" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:379 +msgid "Library Present" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:380 +msgid "Debug File Write Permissions" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:384 +msgid "Active Plugins" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:394 +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:130 +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:149 +msgid "Name" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:396 +msgid "Plugin URL" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:23 +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:57 +msgid "DB Prefix" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:24 +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:59 +msgid "DB Backup" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:84 +msgid "Nonce check failed for DB prefix change operation!" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:92 +msgid "" +"The plugin has detected that it cannot write to the wp-config.php file. This " +"feature can only be used if the plugin can successfully write to the wp-" +"config.php file." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:105 +msgid "Please enter a value for the DB prefix." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:114 +msgid "" +"ERROR: The table prefix can only contain numbers, letters, " +"and underscores." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:122 +msgid "Change Database Prefix" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:125 +msgid "" +"Your WordPress DB is the most important asset of your website because it " +"contains a lot of your site's precious information." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:126 +msgid "" +"The DB is also a target for hackers via methods such as SQL injections and " +"malicious and automated code which targets certain tables." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:127 +msgid "" +"One way to add a layer of protection for your DB is to change the default " +"WordPress table prefix from \"wp_\" to something else which will be " +"difficult for hackers to guess." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:128 +msgid "" +"This feature allows you to easily change the prefix to a value of your " +"choice or to a random value set by this plugin." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:134 +msgid "DB Prefix Options" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:145 +#, php-format +msgid "It is recommended that you perform a %s before using this feature" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:154 +msgid "Current DB Table Prefix" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:160 +msgid "" +"Your site is currently using the default WordPress DB prefix value of \"wp_" +"\". \n" +" To increase your site's security you should " +"consider changing the DB prefix value to another value." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:167 +msgid "Generate New DB Table Prefix" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:170 +msgid "" +"Check this if you want the plugin to generate a random 6 character string " +"for the table prefix" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:171 +msgid "OR" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:173 +msgid "" +"Choose your own DB prefix by specifying a string which contains letters and/" +"or numbers and/or underscores. Example: xyz_" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:177 +msgid "Change DB Prefix" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:198 +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:86 +msgid "Nonce check failed for manual DB backup operation!" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:215 +msgid "" +"DB Backup was successfully completed! You will receive the backup file via " +"email if you have enabled \"Send Backup File Via Email\", otherwise you can " +"retrieve it via FTP from the following directory:" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:217 +msgid "Your DB Backup File location: " +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:225 +msgid "DB Backup failed. Please check the permissions of the backup directory." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:242 +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:126 +msgid "" +"You entered a non numeric value for the \"backup time interval\" field. It " +"has been set to the default value." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:249 +msgid "" +"You entered a non numeric value for the \"number of backup files to keep\" " +"field. It has been set to the default value." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:256 +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:156 +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:121 +msgid "" +"You have entered an incorrect email address format. It has been set to your " +"WordPress admin email as default." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:262 +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:162 +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:219 +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:127 +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:581 +msgid "Attention!" +msgstr "Atenção!" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:289 +msgid "Manual Backup" +msgstr "Backup Manual" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:295 +msgid "To create a new DB backup just click on the button below." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:298 +msgid "Create DB Backup Now" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:302 +msgid "Automated Scheduled Backups" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:314 +msgid "Enable Automated Scheduled Backups" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:317 +msgid "" +"Check this if you want the system to automatically generate backups " +"periodically based on the settings below" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:321 +msgid "Backup Time Interval" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:324 +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:259 +msgid "Hours" +msgstr "Horas" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:325 +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:260 +msgid "Days" +msgstr "Dias" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:326 +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:261 +msgid "Weeks" +msgstr "Semanas" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:328 +msgid "Set the value for how often you would like an automated backup to occur" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:332 +msgid "Number of Backup Files To Keep" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:334 +msgid "" +"Thie field allows you to choose the number of backup files you would like to " +"keep in the backup directory" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:338 +msgid "Send Backup File Via Email" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:341 +msgid "" +"Check this if you want the system to email you the backup file after a DB " +"backup has been performed" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:343 +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:305 +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:228 +msgid "Enter an email address" +msgstr "Digite um endereço de email" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:373 +msgid "Starting DB prefix change operations....." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:375 +#, php-format +msgid "" +"Your WordPress system has a total of %s tables and your new DB prefix will " +"be: %s" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:381 +#: all-in-one-wp-security/classes/wp-security-utility.php:206 +msgid "" +"Failed to make a backup of the wp-config.php file. This operation will not " +"go ahead." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:385 +msgid "A backup copy of your wp-config.php file was created successfully!" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:408 +#, php-format +msgid "%s table name update failed" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:420 +#, php-format +msgid "Please change the prefix manually for the above tables to: %s" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:423 +#, php-format +msgid "%s tables had their prefix updated successfully!" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:438 +msgid "wp-config.php file was updated successfully!" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:441 +#, php-format +msgid "" +"The \"wp-config.php\" file was not able to be modified. Please modify this " +"file manually using your favourite editor and search \n" +" for variable \"$table_prefix\" and assign the following " +"value to that variable: %s" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:462 +msgid "There was an error when updating the options table." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:466 +msgid "" +"The options table records which had references to the old DB prefix were " +"updated successfully!" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:491 +#, php-format +msgid "" +"Error updating user_meta table where new meta_key = %s, old meta_key = %s " +"and user_id = %s." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:497 +msgid "" +"The usermeta table records which had references to the old DB prefix were " +"updated successfully!" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:499 +msgid "DB prefix change tasks have been completed." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:22 +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:94 +msgid "File Change Detection" +msgstr "Detecção de Substituição de Arquivo" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:93 +msgid "Nonce check failed for manual file change detection scan operation!" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:100 +msgid "" +"The plugin has detected that this is your first file change detection scan. " +"The file details from this scan will be used to detect file changes for " +"future scans!" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:194 +msgid "" +"NEW SCAN COMPLETED: The plugin has detected that you have made changes to " +"the \"File Types To Ignore\" or \"Files To Ignore\" fields.\n" +" In order to ensure that future scan results are " +"accurate, the old scan data has been refreshed." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:204 +msgid "" +"All In One WP Security & Firewall has detected that there was a change in " +"your host's files." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:206 +msgid "View Scan Details & Clear This Message" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:215 +msgid "" +"If given an opportunity hackers can insert their code or files into your " +"system which they can then use to carry out malicious acts on your site." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:216 +msgid "" +"Being informed of any changes in your files can be a good way to quickly " +"prevent a hacker from causing damage to your website." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:217 +msgid "" +"In general, WordPress core and plugin files and file types such as \".php\" " +"or \".js\" should not change often and when they do, it is important that " +"you are made aware when a change occurs and which file was affected." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:218 +msgid "" +"The \"File Change Detection Feature\" will notify you of any file change " +"which occurs on your system, including the addition and deletion of files by " +"performing a regular automated or manual scan of your system's files." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:219 +msgid "" +"This feature also allows you to exclude certain files or folders from the " +"scan in cases where you know that they change often as part of their normal " +"operation. (For example log files and certain caching plugin files may " +"change often and hence you may choose to exclude such files from the file " +"change detection scan)" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:224 +msgid "Manual File Change Detection Scan" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:230 +msgid "" +"To perform a manual file change detection scan click on the button below." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:233 +msgid "Perform Scan Now" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:237 +msgid "File Change Detection Settings" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:249 +msgid "Enable Automated File Change Detection Scan" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:252 +msgid "" +"Check this if you want the system to automatically/periodically scan your " +"files to check for file changes based on the settings below" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:256 +msgid "Scan Time Interval" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:263 +msgid "Set the value for how often you would like a scan to occur" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:267 +msgid "File Types To Ignore" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:270 +msgid "" +"Enter each file type or extension on a new line which you wish to exclude " +"from the file change detection scan." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:274 +msgid "" +"You can exclude file types from the scan which would not normally pose any " +"security threat if they were changed. These can include things such as image " +"files." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:275 +msgid "" +"Example: If you want the scanner to ignore files of type jpg, png, and bmp, " +"then you would enter the following:" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:276 +msgid "jpg" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:277 +msgid "png" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:278 +msgid "bmp" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:284 +msgid "Files/Directories To Ignore" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:287 +msgid "" +"Enter each file or directory on a new line which you wish to exclude from " +"the file change detection scan." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:291 +msgid "" +"You can exclude specific files/directories from the scan which would not " +"normally pose any security threat if they were changed. These can include " +"things such as log files." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:292 +msgid "" +"Example: If you want the scanner to ignore certain files in different " +"directories or whole directories, then you would enter the following:" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:293 +msgid "cache/config/master.php" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:294 +msgid "somedirectory" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:300 +msgid "Send Email When Change Detected" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:303 +msgid "" +"Check this if you want the system to email you if a file change was detected" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:335 +msgid "Latest File Change Scan Results" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:344 +msgid "The following files were added to your host." +msgstr "Os seguintes arquivos foram adicionados para o seu host." + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:347 +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:368 +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:392 +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:26 +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:27 +msgid "File" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:348 +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:369 +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:393 +msgid "File Size" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:349 +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:370 +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:394 +msgid "File Modified" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:365 +msgid "The following files were removed from your host." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:389 +msgid "The following files were changed on your host." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:26 +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:63 +msgid "File Permissions" +msgstr "Permissões Arquivos" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:27 +msgid "PHP File Editing" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:28 +msgid "WP File Access" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:29 +msgid "Host System Logs" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:96 +#, php-format +msgid "The permissions for %s were succesfully changed to %s" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:100 +#, php-format +msgid "Unable to change permissions for %s!" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:106 +msgid "File Permissions Scan" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:109 +msgid "" +"Your WordPress file and folder permission settings govern the accessability " +"and read/write privileges of the files and folders which make up your WP " +"installation." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:110 +msgid "" +"Your WP installation already comes with reasonably secure file permission " +"settings for the filesystem." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:111 +msgid "" +"However, sometimes people or other plugins modify the various permission " +"settings of certain core WP folders or files such that they end up making " +"their site less secure because they chose the wrong permission values." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:112 +msgid "" +"This feature will scan the critical WP core folders and files and will " +"highlight any permission settings which are insecure." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:118 +msgid "WP Directory and File Permissions Scan Results" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:131 +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:150 +msgid "File/Folder" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:132 +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:151 +msgid "Current Permissions" +msgstr "Permissões Atuais" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:133 +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:152 +msgid "Recommended Permissions" +msgstr "Permissões Recomendadas" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:134 +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:153 +msgid "Recommended Action" +msgstr "Ação Recomendada" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:191 +msgid "Your PHP file editing settings were saved successfully." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:195 +msgid "" +"Operation failed! Unable to modify or make a backup of wp-config.php file!" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:201 +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:65 +msgid "File Editing" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:204 +msgid "" +"The Wordpress Dashboard by default allows administrators to edit PHP files, " +"such as plugin and theme files." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:205 +msgid "" +"This is often the first tool an attacker will use if able to login, since it " +"allows code execution." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:206 +msgid "" +"This feature will disable the ability for people to edit PHP files via the " +"dashboard." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:212 +msgid "Disable PHP File Editing" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:224 +msgid "Disable Ability To Edit PHP Files" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:227 +msgid "" +"Check this if you want to remove the ability for people to edit PHP files " +"via the WP dashboard" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:271 +msgid "" +"You have successfully saved the Prevent Access to Default WP Files " +"configuration." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:275 +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:115 +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:269 +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:480 +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:619 +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:106 +msgid "" +"Could not write to the .htaccess file. Please check the file permissions." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:280 +msgid "WordPress Files" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:283 +#, php-format +msgid "" +"This feature allows you to prevent access to files such as %s, %s and %s " +"which are delivered with all WP installations." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:284 +msgid "" +"By preventing access to these files you are hiding some key pieces of " +"information (such as WordPress version info) from potential hackers." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:289 +msgid "Prevent Access to Default WP Files" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:300 +msgid "Prevent Access to WP Default Install Files" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:303 +msgid "" +"Check this if you want to prevent access to readme.html, license.txt and wp-" +"config-sample.php." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:307 +msgid "Save Setting" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:331 +msgid "System Logs" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:334 +msgid "" +"Sometimes your hosting platform will produce error or warning logs in a file " +"called \"error_log\"." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:335 +msgid "" +"Depending on the nature and cause of the error or warning, your hosting " +"server can create multiple instances of this file in numerous directory " +"locations of your WordPress installation." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:336 +msgid "" +"By occassionally viewing the contents of these logs files you can keep " +"informed of any underlying problems on your system which you might need to " +"address." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:342 +msgid "View System Logs" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:347 +msgid "Enter System Log File Name" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:349 +msgid "Enter your system log file name. (Defaults to error_log)" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:352 +msgid "View Latest System Logs" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:354 +msgid "Loading..." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:371 +msgid "No system logs were found!" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:424 +msgid "Set Recommended Permissions" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:430 +msgid "No Action Required" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:470 +#, php-format +msgid "Showing latest entries of error_log file: %s" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:25 +msgid "Basic Firewall Rules" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:26 +msgid "Additional Firewall Rules" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:27 +msgid "5G Blacklist Firewall Rules" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:28 +msgid "Brute Force Prevention" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:111 +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:102 +#: all-in-one-wp-security/admin/wp-security-user-registration-menu.php:96 +msgid "Settings were successfully saved" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:120 +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:485 +msgid "Firewall Settings" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:127 +#, php-format +msgid "" +"This should not have any impact on your site's general functionality but if " +"you wish you can take a %s of your .htaccess file before proceeding." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:128 +msgid "" +"The features in this tab allow you to activate some basic firewall security " +"protection rules for your site." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:129 +msgid "" +"The firewall functionality is achieved via the insertion of special code " +"into your currently active .htaccess file." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:135 +msgid "Basic Firewall Settings" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:143 +msgid "Enable Basic Firewall Protection" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:146 +msgid "Check this if you want to apply basic firewall protection to your site." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:150 +msgid "" +"This setting will implement the following basic firewall protection " +"mechanisms on your site:" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:151 +msgid "1) Protect your htaccess file by denying access to it." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:152 +msgid "2) Disable the server signature." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:153 +msgid "3) Limit file upload size (10MB)." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:154 +msgid "4) Protect your wp-config.php file by denying access to it." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:155 +msgid "" +"The above firewall features will be applied via your .htaccess file and " +"should not affect your site's overall functionality." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:156 +msgid "" +"You are still advised to take a backup of your active .htaccess file just in " +"case." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:165 +msgid "WordPress Pingback Vulnerability Protection" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:173 +msgid "Enable Pingback Protection" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:176 +msgid "" +"Check this if you are not using the WP XML-RPC functionality and you want to " +"enable protection against WordPress pingback vulnerabilities." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:180 +msgid "" +"This setting will add a directive in your .htaccess to disable access to the " +"WordPress xmlrpc.php file which is responsible for the XML-RPC functionality " +"such as pingbacks in WordPress." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:181 +msgid "" +"Hackers can exploit various pingback vulnerabilities in the WordPress XML-" +"RPC API in a number of ways such as:" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:182 +msgid "1) Denial of Service (DoS) attacks" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:183 +msgid "2) Hacking internal routers." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:184 +msgid "3) Scanning ports in internal networks to get info from various hosts." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:185 +msgid "" +"Apart from the security protection benefit, this feature may also help " +"reduce load on your server, particularly if your site currently has a lot of " +"unwanted traffic hitting the XML-RPC API on your installation." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:186 +msgid "" +"NOTE: You should only enable this feature if you are not currently using the " +"XML-RPC functionality on your WordPress installation." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:193 +msgid "Save Basic Firewall Settings" +msgstr "Salvar Configurações Básicas Firewall" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:265 +msgid "" +"You have successfully saved the Additional Firewall Protection configuration" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:279 +msgid "Additional Firewall Protection" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:283 +#, php-format +msgid "" +"Due to the nature of the code being inserted to the .htaccess file, this " +"feature may break some functionality for certain plugins and you are " +"therefore advised to take a %s of .htaccess before applying this " +"configuration." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:285 +msgid "" +"This feature allows you to activate more advanced firewall settings to your " +"site." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:286 +msgid "" +"The advanced firewall rules are applied via the insertion of special code to " +"your currently active .htaccess file." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:295 +msgid "Listing of Directory Contents" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:304 +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:80 +msgid "Disable Index Views" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:307 +msgid "Check this if you want to disable directory and file listing." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:312 +msgid "" +"By default, an Apache server will allow the listing of the contents of a " +"directory if it doesn't contain an index.php file." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:314 +msgid "This feature will prevent the listing of contents for all directories." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:316 +msgid "" +"NOTE: In order for this feature to work \"AllowOverride\" must be enabled in " +"your httpd.conf file. Ask your hosting provider to check this if you don't " +"have access to httpd.conf" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:325 +msgid "Trace and Track" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:334 +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:81 +msgid "Disable Trace and Track" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:337 +msgid "Check this if you want to disable trace and track." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:342 +msgid "" +"HTTP Trace attack (XST) can be used to return header requests and grab " +"cookies and other information." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:344 +msgid "" +"This hacking technique is usually used together with cross site scripting " +"attacks (XSS)." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:346 +msgid "" +"Disabling trace and track on your site will help prevent HTTP Trace attacks." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:355 +msgid "Proxy Comment Posting" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:365 +msgid "Forbid Proxy Comment Posting" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:368 +msgid "Check this if you want to forbid proxy comment posting." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:373 +msgid "" +"This setting will deny any requests that use a proxy server when posting " +"comments." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:374 +msgid "" +"By forbidding proxy comments you are in effect eliminating some SPAM and " +"other proxy requests." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:383 +msgid "Bad Query Strings" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:393 +msgid "Deny Bad Query Strings" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:396 +msgid "This will help protect you against malicious queries via XSS." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:401 +msgid "" +"This feature will write rules in your .htaccess file to prevent malicious " +"string attacks on your site using XSS." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:402 +msgid "" +"NOTE: Some of these strings might be used for plugins or themes and hence " +"this might break some functionality." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:403 +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:433 +msgid "" +"You are therefore strongly advised to take a backup of your active .htaccess " +"file before applying this feature." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:412 +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:84 +msgid "Advanced Character String Filter" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:422 +msgid "Enable Advanced Character String Filter" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:425 +msgid "This will block bad character matches from XSS." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:430 +msgid "" +"This is an advanced character string filter to prevent malicious string " +"attacks on your site coming from Cross Site Scripting (XSS)." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:431 +msgid "" +"This setting matches for common malicious string patterns and exploits and " +"will produce a 403 error for the hacker attempting the query." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:432 +msgid "NOTE: Some strings for this setting might break some functionality." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:441 +msgid "Save Additional Firewall Settings" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:476 +msgid "You have successfully saved the 5G Firewall Protection configuration" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:489 +#, php-format +msgid "" +"This feature allows you to activate the 5G firewall security protection " +"rules designed and produced by %s." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:490 +msgid "" +"The 5G Blacklist is a simple, flexible blacklist that helps reduce the " +"number of malicious URL requests that hit your website." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:491 +msgid "" +"The added advantage of applying the 5G firewall to your site is that it has " +"been tested and confirmed by the people at PerishablePress.com to be an " +"optimal and least disruptive set of .htaccess security rules for general WP " +"sites running on an Apache server or similar." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:492 +#, php-format +msgid "" +"Therefore the 5G firewall rules should not have any impact on your site's " +"general functionality but if you wish you can take a %s of your .htaccess " +"file before proceeding." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:498 +msgid "5G Blacklist/Firewall Settings" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:510 +msgid "Enable 5G Firewall Protection" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:513 +msgid "" +"Check this if you want to apply the 5G Blacklist firewall protection from " +"perishablepress.com to your site." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:517 +msgid "" +"This setting will implement the 5G security firewall protection mechanisms " +"on your site which include the following things:" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:518 +msgid "1) Block forbidden characters commonly used in exploitative attacks." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:519 +msgid "2) Block malicious encoded URL characters such as the \".css(\" string." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:520 +msgid "" +"3) Guard against the common patterns and specific exploits in the root " +"portion of targeted URLs." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:521 +msgid "" +"4) Stop attackers from manipulating query strings by disallowing illicit " +"characters." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:522 +msgid "....and much more." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:528 +msgid "Save 5G Firewall Settings" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:556 +msgid "" +"Settings have not been saved - your secret word must consist only of " +"alphanumeric characters, ie, letters and/or numbers only!" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:574 +msgid "" +"You have successfully enabled the cookie based brute force prevention feature" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:575 +msgid "" +"From now on you will need to log into your WP Admin using the following URL:" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:577 +msgid "" +"It is important that you save this URL value somewhere in case you forget " +"it, OR," +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:578 +#, php-format +msgid "simply remember to add a \"?%s=1\" to your current site URL address." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:584 +msgid "" +"You have successfully saved cookie based brute force prevention feature " +"settings." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:629 +msgid "Brute Force Prevention Firewall Settings" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:634 +msgid "" +"A Brute Force Attack is when a hacker tries many combinations of usernames " +"and passwords until they succeed in guessing the right combination." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:635 +msgid "" +"Due to the fact that at any one time there may be many concurrent login " +"attempts occurring on your site via malicious automated robots, this also " +"has a negative impact on your server's memory and performance." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:636 +msgid "" +"The features in this tab will stop the majority of Brute Force Login Attacks " +"at the .htaccess level thus providing even better protection for your WP " +"login page and also reducing the load on your server because the system does " +"not have to run PHP code to process the login attempts." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:643 +#, php-format +msgid "" +"Even though this feature should not have any impact on your site's general " +"functionality you are strongly encouraged to take a %s of your ." +"htaccess file before proceeding." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:644 +msgid "" +"If this feature is not used correctly, you can get locked out of your site. " +"A backup file will come in handy if that happens." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:645 +#, php-format +msgid "" +"To learn more about how to use this feature please watch the following %s." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:654 +msgid "Cookie Based Brute Force Login Prevention" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:665 +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:79 +msgid "Enable Brute Force Attack Prevention" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:668 +msgid "" +"Check this if you want to protect your login page from Brute Force Attack." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:673 +msgid "" +"This feature will deny access to your WordPress login page for all people " +"except those who have a special cookie in their browser." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:675 +msgid "To use this feature do the following:" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:677 +msgid "1) Enable the checkbox." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:679 +msgid "" +"2) Enter a secret word consisting of alphanumeric characters which will be " +"difficult to guess. This secret word will be useful whenever you need to " +"know the special URL which you will use to access the login page (see point " +"below)." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:681 +msgid "" +"3) You will then be provided with a special login URL. You will need to use " +"this URL to login to your WordPress site instead of the usual login URL. " +"NOTE: The system will deposit a special cookie in your browser which will " +"allow you access to the WordPress administration login page." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:683 +msgid "" +"Any person trying to access your login page who does not have the special " +"cookie in their browser will be automatically blocked." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:690 +msgid "Secret Word" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:692 +msgid "" +"Choose a secret word consisting of alphanumeric characters which you can use " +"to access your special URL. Your are highly encouraged to choose a word " +"which will be difficult to guess." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:696 +msgid "Re-direct URL" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:700 +msgid "" +"Specify a URL to redirect a hacker to when they try to access your WordPress " +"login page." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:707 +msgid "" +"The URL specified here can be any site's URL and does not have to be your " +"own. For example you can be as creative as you like and send hackers to the " +"CIA or NSA home page." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:709 +msgid "" +"This field will default to: http://127.0.0.1 if you do not enter a value." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:711 +msgid "Useful Tip:" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:713 +msgid "" +"It's a good idea to not redirect attempted brute force login attempts to " +"your site because it increases the load on your server." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:715 +msgid "" +"Redirecting a hacker or malicious bot back to \"http://127.0.0.1\" is ideal " +"because it deflects them back to their own local host and puts the load on " +"their server instead of yours." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:722 +msgid "My Site Has Posts Or Pages Which Are Password Protected" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:725 +msgid "" +"Check this if you are using the native WordPress password protection feature " +"for some or all of your blog posts or pages." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:730 +msgid "" +"In the cases where you are protecting some of your posts or pages using the " +"in-built WordPress password protection feature, a few extra lines of " +"directives and exceptions need to be added to your .htacces file so that " +"people trying to access pages are not automatically blocked." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:732 +msgid "" +"By enabling this checkbox the plugin will add the necessary rules and " +"exceptions to your .htacces file so that people trying to access these pages " +"are not automatically blocked." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:734 +msgid "Helpful Tip:" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:736 +msgid "" +"If you do not use the WordPress password protection feature for your posts " +"or pages then it is highly recommended that you leave this checkbox disabled." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:743 +msgid "My Site Has a Theme or Plugins Which Use AJAX" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:746 +msgid "Check this if your site uses AJAX functionality." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:751 +msgid "" +"In the cases where your WordPress installation has a theme or plugins which " +"use AJAX, a few extra lines of directives and exceptions need to be added to " +"your .htacces file to prevent AJAX requests from being automatically blocked " +"by the brute force prevention feature." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:753 +msgid "" +"By enabling this checkbox the plugin will add the necessary rules and " +"exceptions to your .htacces file so that AJAX operations will work as " +"expected." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:768 +msgid "The cookie test was successful. You can now enable this feature." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:771 +msgid "Save Feature Settings" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:778 +msgid "" +"The cookie test failed on this server. So this feature cannot be used on " +"this site." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:784 +msgid "" +"Before using this feature you are required to perform a cookie test first. " +"This is to make sure that your browser cookie is working correctly and that " +"you won't lock yourself out." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:786 +msgid "Perform Cookie Test" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-list-acct-activity.php:79 +#: all-in-one-wp-security/admin/wp-security-list-comment-spammer-ip.php:86 +#: all-in-one-wp-security/admin/wp-security-list-locked-ip.php:80 +#: all-in-one-wp-security/admin/wp-security-list-locked-ip.php:91 +#: all-in-one-wp-security/admin/wp-security-list-login-fails.php:78 +#: all-in-one-wp-security/admin/wp-security-list-registered-users.php:82 +#: all-in-one-wp-security/admin/wp-security-list-registered-users.php:93 +msgid "Please select some records using the checkboxes" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-list-acct-activity.php:107 +#: all-in-one-wp-security/admin/wp-security-list-login-fails.php:107 +msgid "The selected entries were deleted successfully!" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-list-acct-activity.php:120 +#: all-in-one-wp-security/admin/wp-security-list-login-fails.php:119 +msgid "The selected entry was deleted successfully!" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-list-comment-spammer-ip.php:139 +msgid "" +"The selected IP addresses were saved in the blacklist configuration settings." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-list-comment-spammer-ip.php:153 +msgid "" +"The .htaccess file was successfully modified to include the selected IP " +"addresses." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-list-comment-spammer-ip.php:159 +msgid "" +"NOTE: The .htaccess file was not modified because you have disabled the " +"\"Enable IP or User Agent Blacklisting\" check box." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-list-comment-spammer-ip.php:160 +#, php-format +msgid "" +"To block these IP addresses you will need to enable the above flag in the %s " +"menu" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-list-locked-ip.php:115 +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:748 +msgid "The selected IP ranges were unlocked successfully!" +msgstr "As faixas de IP selecionadas foram desbloqueadas com sucesso!" + +#: all-in-one-wp-security/admin/wp-security-list-locked-ip.php:124 +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:757 +msgid "The selected IP range was unlocked successfully!" +msgstr "As faixas de IP selecionadas foram desbloqueadas com sucesso!" + +#: all-in-one-wp-security/admin/wp-security-list-registered-users.php:118 +msgid "The selected accounts were approved successfully!" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-list-registered-users.php:125 +msgid "The selected account was approved successfully!" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-list-registered-users.php:146 +msgid "The selected accounts were deleted successfully!" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-list-registered-users.php:154 +msgid "The selected account was deleted successfully!" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-maintenance-menu.php:22 +msgid "Visitor Lockout" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-maintenance-menu.php:88 +msgid "Site lockout feature settings saved!" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-maintenance-menu.php:93 +msgid "General Visitor Lockout" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-maintenance-menu.php:99 +msgid "" +"This feature allows you to put your site into \"maintenance mode\" by " +"locking down the front-end to all visitors except logged in users with super " +"admin privileges." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-maintenance-menu.php:100 +msgid "" +"Locking your site down to general visitors can be useful if you are " +"investigating some issues on your site or perhaps you might be doing some " +"maintenance and wish to keep out all traffic for security reasons." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-maintenance-menu.php:105 +msgid "Enable Front-end Lockout" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-maintenance-menu.php:108 +msgid "" +"Check this if you want all visitors except those who are logged in as " +"administrator to be locked out of the front-end of your site." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-maintenance-menu.php:112 +msgid "Enter a Message:" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-maintenance-menu.php:124 +msgid "" +"Enter a message you wish to display to visitors when your site is in " +"maintenance mode." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-maintenance-menu.php:131 +msgid "Save Site Lockout Settings" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:25 +msgid "General Settings" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:28 +msgid "WP Meta Info" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:95 +msgid "All the security features have been disabled successfully!" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:99 +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:126 +msgid "" +"Could not write to the .htaccess file. Please restore your .htaccess file " +"manually using the restore functionality in the \".htaccess File\"." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:104 +msgid "" +"Could not write to the wp-config.php. Please restore your wp-config.php file " +"manually using the restore functionality in the \"wp-config.php File\"." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:122 +msgid "All firewall rules have been disabled successfully!" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:136 +msgid "WP Security Plugin" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:138 +msgid "" +"Thank you for using our WordPress security plugin. There are a lot of " +"security features in this plugin." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:139 +msgid "" +"Go through each menu items and enable the security options to add more " +"security to your site. Start by activating the basic features first." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:140 +msgid "" +"It is a good practice to take a backup of your .htaccess file, database and " +"wp-config.php file before activating the security features. This plugin has " +"options that you can use to backup those resources easily." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:143 +msgid "Backup your database" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:144 +msgid "Backup .htaccess file" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:145 +msgid "Backup wp-config.php file" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:151 +msgid "Disable Security Features" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:157 +msgid "" +"If you think that some plugin functionality on your site is broken due to a " +"security feature you enabled in this plugin, then use the following option " +"to turn off all the security features of this plugin." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:161 +msgid "Disable All Security Features" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:167 +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:177 +msgid "Disable All Firewall Rules" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:173 +msgid "" +"This feature will disable all firewall rules which are currently active in " +"this plugin and it will also delete these rules from your .htacess file. Use " +"it if you think one of the firewall rules is causing an issue on your site." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:206 +msgid "" +"Your .htaccess file was successfully backed up! Using an FTP program go to " +"the \"backups\" directory of this plugin to save a copy of the file to your " +"computer." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:216 +msgid "" +"htaccess file rename failed during backup. Please check your root directory " +"for the backup file using FTP." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:222 +msgid "htaccess backup failed." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:237 +msgid "Please choose a .htaccess to restore from." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:253 +msgid "" +"htaccess file restore failed. Please attempt to restore the .htaccess " +"manually using FTP." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:257 +msgid "Your .htaccess file has successfully been restored!" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:263 +msgid "" +"htaccess Restore operation failed! Please check the contents of the file you " +"are trying to restore from." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:269 +msgid ".htaccess File Operations" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:272 +msgid "" +"Your \".htaccess\" file is a key component of your website's security and it " +"can be modified to implement various levels of protection mechanisms." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:273 +msgid "" +"This feature allows you to backup and save your currently active .htaccess " +"file should you need to re-use the the backed up file in the future." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:274 +msgid "" +"You can also restore your site's .htaccess settings using a backed up ." +"htaccess file." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:288 +msgid "Save the current .htaccess file" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:292 +msgid "" +"Click the button below to backup and save the currently active .htaccess " +"file." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:293 +msgid "Backup .htaccess File" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:297 +msgid "Restore from a backed up .htaccess file" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:303 +msgid ".htaccess file to restore from" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:309 +msgid "" +"After selecting your file, click the button below to restore your site using " +"the backed up htaccess file (htaccess_backup.txt)." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:315 +msgid "Restore .htaccess File" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:319 +msgid "View Contents of the currently active .htaccess file" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:348 +msgid "Please choose a wp-config.php file to restore from." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:364 +msgid "" +"wp-config.php file restore failed. Please attempt to restore this file " +"manually using FTP." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:368 +msgid "Your wp-config.php file has successfully been restored!" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:374 +msgid "" +"wp-config.php Restore operation failed! Please check the contents of the " +"file you are trying to restore from." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:380 +msgid "wp-config.php File Operations" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:383 +msgid "" +"Your \"wp-config.php\" file is one of the most important in your WordPress " +"installation. It is a primary configuration file and contains crucial things " +"such as details of your database and other critical components." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:384 +msgid "" +"This feature allows you to backup and save your currently active wp-config." +"php file should you need to re-use the the backed up file in the future." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:385 +msgid "" +"You can also restore your site's wp-config.php settings using a backed up wp-" +"config.php file." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:399 +msgid "Save the current wp-config.php file" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:403 +msgid "" +"Click the button below to backup and download the contents of the currently " +"active wp-config.php file." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:404 +msgid "Backup wp-config.php File" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:409 +msgid "Restore from a backed up wp-config file" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:415 +msgid "wp-config file to restore from" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:421 +msgid "" +"After selecting your file click the button below to restore your site using " +"the backed up wp-config file (wp-config.php.backup.txt)." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:427 +msgid "Restore wp-config File" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:431 +msgid "View Contents of the currently active wp-config.php file" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:466 +msgid "WP Generator Meta Tag" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:469 +msgid "" +"Wordpress generator automatically adds some meta information inside the " +"\"head\" tags of every page on your site's front end. Below is an example of " +"this:" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:471 +msgid "" +"The above meta information shows which version of WordPress your site is " +"currently running and thus can help hackers or crawlers scan your site to " +"see if you have an older version of WordPress or one with a known exploit." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:472 +msgid "" +"This feature will allow you to remove the WP generator meta info from your " +"site's pages." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:478 +msgid "WP Generator Meta Info" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:490 +msgid "Remove WP Generator Meta Info" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:493 +msgid "" +"Check this if you want to remove the meta info produced by WP Generator from " +"all pages" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:23 +msgid "Comment SPAM" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:24 +msgid "Comment SPAM IP Monitoring" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:111 +msgid "Comment SPAM Settings" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:116 +msgid "Add Captcha To Comments Form" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:120 +msgid "" +"This feature will add a simple math captcha field in the WordPress comments " +"form." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:137 +msgid "Enable Captcha On Comment Forms" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:140 +msgid "Check this if you want to insert a captcha field on the comment forms" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:148 +msgid "Block Spambot Comments" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:152 +msgid "" +"A large portion of WordPress blog comment SPAM is mainly produced by " +"automated bots and not necessarily by humans. " +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:153 +msgid "" +"This feature will greatly minimize the useless and unecessary traffic and " +"load on your server resulting from SPAM comments by blocking all comment " +"requests which do not originate from your domain." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:170 +msgid "Block Spambots From Posting Comments" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:173 +msgid "" +"Check this if you want to apply a firewall rule which will block comments " +"originating from spambots." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:177 +msgid "" +"This feature will implement a firewall rule to block all comment attempts " +"which do not originate from your domain." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:178 +msgid "" +"A legitimate comment is one which is submitted by a human who physically " +"fills out the comment form and clicks the submit button. For such events, " +"the HTTP_REFERRER is always set to your own domain." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:179 +msgid "" +"A comment submitted by a spambot is done by directly calling the comments." +"php file, which usually means that the HTTP_REFERRER value is not your " +"domain and often times empty." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:180 +msgid "" +"This feature will check and block comment requests which are not referred by " +"your domain thus greatly reducing your overall blog SPAM and PHP requests " +"done by the server to process these comments." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:207 +msgid "Nonce check failed for list SPAM comment IPs!" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:213 +msgid "" +"You entered a non numeric value for the minimum SPAM comments per IP field. " +"It has been set to the default value." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:225 +#, php-format +msgid "" +"Displaying results for IP addresses which have posted a minimum of %s SPAM " +"comments" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:241 +msgid "" +"This tab displays a list of the IP addresses of the people or bots who have " +"left SPAM comments on your site." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:242 +msgid "" +"This information can be handy for identifying the most persistent IP " +"addresses or ranges used by spammers." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:243 +msgid "" +"By inspecting the IP address data coming from spammers you will be in a " +"better position to determine which addresses or address ranges you should " +"block by adding them to your blacklist." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:244 +msgid "" +"To add one or more of the IP addresses displayed in the table below to your " +"blacklist, simply click the \"Block\" link for the individual row or select " +"more than one address \n" +" using the checkboxes and then choose the \"block" +"\" option from the Bulk Actions dropdown list and click the \"Apply\" button." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:250 +msgid "List SPAMMER IP Addresses" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:256 +msgid "Minimum number of SPAM comments per IP" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:258 +msgid "" +"This field allows you to list only those IP addresses which have been used " +"to post X or more SPAM comments." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:262 +msgid "" +"Example 1: Setting this value to \"0\" or \"1\" will list ALL IP addresses " +"which were used to submit SPAM comments." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:263 +msgid "" +"Example 2: Setting this value to \"5\" will list only those IP addresses " +"which were used to submit 5 SPAM comments or more on your site." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:270 +msgid "Find IP Addresses" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:274 +msgid "SPAMMER IP Address Results" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:280 +#: all-in-one-wp-security/classes/wp-security-utility.php:150 +msgid "" +"The plugin has detected that you are using a Multi-Site WordPress " +"installation." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:281 +msgid "Only the \"superadmin\" can block IP addresses from the main site." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:282 +msgid "" +"Take note of the IP addresses you want blocked and ask the superadmin to add " +"these to the blacklist using the \"Blacklist Manager\" on the main site." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:29 +msgid "WP Username" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:30 +msgid "Display Name" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:31 +msgid "Password" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:85 +msgid "Admin User Security" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:88 +msgid "" +"By default, WordPress sets the administrator username to \"admin\" at " +"installation time." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:89 +msgid "" +"A lot of hackers try to take advantage of this information by attempting " +"\"Brute Force Login Attacks\" where they repeatedly try to guess the " +"password by using \"admin\" for username." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:90 +msgid "" +"From a security perspective, changing the default \"admin\" user name is one " +"of the first and smartest things you should do on your site." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:91 +msgid "" +"This feature will allow you to change your default \"admin\" user name to a " +"more secure name of your choosing." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:98 +msgid "List of Administrator Accounts" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:107 +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:33 +msgid "Change Admin Username" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:115 +msgid "" +"Your site currently has an account which uses the default \"admin\" " +"username. \n" +" It is highly recommended that you change this name to " +"something else. \n" +" Use the following field to change the admin username." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:123 +msgid "New Admin Username" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:125 +msgid "Choose a new username for admin." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:129 +msgid "Change Username" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:131 +msgid "" +"NOTE: If you are currently logged in as \"admin\" you will be automatically " +"logged out after changing your username and will be required to log back in." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:138 +msgid "No action required! " +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:140 +msgid "" +"Your site does not have any account which uses the default \"admin\" " +"username. " +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:141 +msgid "This is good security practice." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:153 +msgid "Display Name Security" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:156 +msgid "" +"When you submit a post or answer a comment, WordPress will usually display " +"your \"nickname\"." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:157 +msgid "" +"By default the nickname is set to the login (or user) name of your account." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:158 +msgid "" +"From a security perspective, leaving your nickname the same as your user " +"name is bad practice because it gives a hacker at least half of your " +"account's login credentials." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:159 +msgid "" +"Therefore to further tighten your site's security you are advised to change " +"your nickname and Display name to be " +"different from your Username." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:165 +msgid "Modify Accounts With Identical Login Name & Display Name" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:174 +msgid "" +"Your site currently has the following accounts which have an identical login " +"name and display name." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:175 +msgid "Click on the link to edit the settings of that particular user account" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:190 +msgid "No action required." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:191 +msgid "" +"Your site does not have a user account where the display name is identical " +"to the username." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:202 +msgid "Password Tool" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:205 +msgid "" +"Poor password selection is one of the most common weak points of many sites " +"and is usually the first thing a hacker will try to exploit when attempting " +"to break into your site." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:206 +msgid "" +"Many people fall into the trap of using a simple word or series of numbers " +"as their password. Such a predictable and simple password would take a " +"competent hacker merely minutes to guess your password by using a simple " +"script which cycles through the easy and most common combinations." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:207 +msgid "" +"The longer and more complex your password is the harder it is for hackers to " +"\"crack\" because more complex passwords require much greater computing " +"power and time." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:208 +msgid "" +"This section contains a useful password strength tool which you can use to " +"check whether your password is sufficiently strong enough." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:213 +msgid "Password Strength Tool" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:218 +msgid "Start typing a password." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:221 +msgid "It would take a desktop PC approximately" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:222 +msgid "1 sec" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:222 +msgid "to crack your password!" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:227 +msgid "Password Strength" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:243 +msgid "Nonce check failed on admin username change operation!" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:250 +msgid "Username " +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:250 +msgid " already exists. Please enter another value. " +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:266 +msgid "The database update operation of the user account failed!" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:293 +msgid "You entered an invalid username. Please enter another value. " +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:297 +msgid "Please enter a value for your username. " +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:304 +msgid "Username Successfully Changed!" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:324 +msgid "Account Login Name" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:28 +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:41 +msgid "Login Captcha" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:29 +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:407 +msgid "Login Whitelist" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:30 +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:519 +msgid "Failed Login Records" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:31 +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:47 +msgid "Force Logout" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:32 +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:653 +msgid "Account Activity Logs" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:100 +msgid "" +"You entered a non numeric value for the max login attempts field. It has " +"been set to the default value." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:107 +msgid "" +"You entered a non numeric value for the login retry time period field. It " +"has been set to the default value." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:114 +msgid "" +"You entered a non numeric value for the lockout time length field. It has " +"been set to the default value." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:159 +msgid "Login Lockdown Configuration" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:163 +msgid "One of the ways hackers try to compromise sites is via a " +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:163 +msgid "Brute Force Login Attack" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:164 +msgid "" +"This is where attackers use repeated login attempts until they guess the " +"password." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:165 +msgid "" +"Apart from choosing strong passwords, monitoring and blocking IP addresses " +"which are involved in repeated login failures in a short period of time is a " +"very effective way to stop these types of attacks." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:166 +#, php-format +msgid "" +"You may also want to checkout our %s feature for another secure way to " +"protect against these types of attacks." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:171 +msgid "Login Lockdown Options" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:183 +msgid "Enable Login Lockdown Feature" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:186 +msgid "" +"Check this if you want to enable the login lockdown feature and apply the " +"settings below" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:190 +msgid "Max Login Attempts" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:192 +msgid "" +"Set the value for the maximum login retries before IP address is locked out" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:196 +msgid "Login Retry Time Period (min)" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:198 +msgid "" +"If the maximum number of failed login attempts for a particular IP address " +"occur within this time period the plugin will lock out that address" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:202 +msgid "Time Length of Lockout (min)" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:204 +msgid "" +"Set the length of time for which a particular IP address will be prevented " +"from logging in" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:208 +msgid "Display Generic Error Message" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:211 +msgid "" +"Check this if you want to show a generic error message when a login attempt " +"fails" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:215 +msgid "Instantly Lockout Invalid Usernames" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:218 +msgid "" +"Check this if you want to instantly lockout login attempts with usernames " +"which do not exist on your system" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:223 +msgid "Notify By Email" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:226 +msgid "" +"Check this if you want to receive an email when someone has been locked out " +"due to maximum failed login attempts" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:236 +msgid "Currently Locked Out IP Address Ranges" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:290 +msgid "" +"This feature allows you to add a captcha form on the WordPress login page." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:291 +msgid "" +"Users who attempt to login will also need to enter the answer to a simple " +"mathematical question - if they enter the wrong answer, the plugin will not " +"allow them login even if they entered the correct username and password." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:292 +msgid "" +"Therefore, adding a captcha form on the login page is another effective yet " +"simple \"Brute Force\" prevention technique." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:298 +msgid "Login Form Captcha Settings" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:309 +msgid "Enable Captcha On Login Page" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:312 +msgid "Check this if you want to insert a captcha form on the login page" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:318 +msgid "Lost Password Form Captcha Settings" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:328 +msgid "Enable Captcha On Lost Password Page" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:331 +msgid "" +"Check this if you want to insert a captcha form on the lost password page" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:353 +msgid "Nonce check failed for save whitelist settings!" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:410 +msgid "" +"The All In One WP Security Whitelist feature gives you the option of only " +"allowing certain IP addresses or ranges to have access to your WordPress " +"login page." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:411 +msgid "" +"This feature will deny login access for all IP addresses which are not in " +"your whitelist as configured in the settings below." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:412 +msgid "" +"The plugin achieves this by writing the appropriate directives to your ." +"htaccess file." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:413 +msgid "" +"By allowing/blocking IP addresses via the .htaccess file your are using the " +"most secure first line of defence because login access will only be granted " +"to whitelisted IP addresses and other addresses will be blocked as soon as " +"they try to access your login page." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:420 +#, php-format +msgid "" +"Attention: If in addition to enabling the white list feature, you also have " +"the %s feature enabled, you will still need to use your secret word " +"in the URL when trying to access your WordPress login page." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:421 +msgid "" +"These features are NOT functionally related. Having both of them enabled on " +"your site means you are creating 2 layers of security." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:426 +msgid "Login IP Whitelist Settings" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:437 +msgid "Enable IP Whitelisting" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:440 +msgid "" +"Check this if you want to enable the whitelisting of selected IP addresses " +"specified in the settings below" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:444 +msgid "Your Current IP Address" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:447 +msgid "" +"You can copy and paste this address in the text box below if you want to " +"include it in your login whitelist." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:451 +msgid "Enter Whitelisted IP Addresses:" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:455 +msgid "" +"Enter one or more IP addresses or IP ranges you wish to include in your " +"whitelist. Only the addresses specified here will have access to the " +"WordPress login page." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:485 +msgid "Nonce check failed for delete all failed login records operation!" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:494 +msgid "User Login Feature - Delete all failed login records operation failed!" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:498 +msgid "All records from the Failed Logins table were deleted successfully!" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:513 +msgid "This tab displays the failed login attempts for your site." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:514 +msgid "" +"The information below can be handy if you need to do security investigations " +"because it will show you the IP range, username and ID (if applicable) and " +"the time/date of the failed login attempt." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:535 +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:544 +msgid "Delete All Failed Login Records" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:541 +msgid "" +"Click this button if you wish to delete all failed login records in one go." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:569 +msgid "" +"You entered a non numeric value for the logout time period field. It has " +"been set to the default value." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:597 +msgid "" +"Setting an expiry period for your WP administration session is a simple way " +"to protect against unauthorized access to your site from your computer." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:598 +msgid "" +"This feature allows you to specify a time period in minutes after which the " +"admin session will expire and the user will be forced to log back in." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:603 +msgid "Force User Logout Options" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:615 +msgid "Enable Force WP User Logout" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:618 +msgid "" +"Check this if you want to force a wp user to be logged out after a " +"configured amount of time" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:622 +msgid "Logout the WP User After XX Minutes" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:624 +msgid "" +"(Minutes) The user will be forced to log back in after this time period has " +"elapased." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:647 +msgid "" +"This tab displays the login activity for WordPress admin accounts registered " +"with your site." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:648 +msgid "" +"The information below can be handy if you need to do security investigations " +"because it will show you the last 50 recent login events by username, IP " +"address and time/date." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:685 +msgid "Nonce check failed for users logged in list!" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:698 +msgid "Refresh Logged In User Data" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:702 +msgid "Refresh Data" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:708 +msgid "This tab displays all users who are currently logged into your site." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:709 +msgid "" +"If you suspect there is a user or users who are logged in which should not " +"be, you can block them by inspecting the IP addresses from the data below " +"and adding them to your blacklist." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:714 +msgid "Currently Logged In Users" +msgstr "Usuários Atualmente Logados" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:779 +msgid "The selected records were deleted successfully!" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:788 +msgid "The selected record was deleted successfully!" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-registration-menu.php:23 +msgid "Manual Approval" +msgstr "Aprovação Manual" + +#: all-in-one-wp-security/admin/wp-security-user-registration-menu.php:24 +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:53 +msgid "Registration Captcha" +msgstr "Captcha ao Registrar" + +#: all-in-one-wp-security/admin/wp-security-user-registration-menu.php:112 +msgid "User Registration Settings" +msgstr "Configurações Registro Usuários" + +#: all-in-one-wp-security/admin/wp-security-user-registration-menu.php:116 +msgid "Manually Approve New Registrations" +msgstr "Aprovar Manualmente os Novos Registros" + +#: all-in-one-wp-security/admin/wp-security-user-registration-menu.php:120 +msgid "" +"If your site allows people to create their own accounts via the WordPress " +"registration form, then you can minimize SPAM or bogus registrations by " +"manually approving each registration." +msgstr "" +"Se o seu site permite que as pessoas criem suas próprias contas, através do " +"formulário de inscrição WordPress, então você pode minimizar SPAM ou " +"registros falsos, aprovando manualmente cada registro." + +#: all-in-one-wp-security/admin/wp-security-user-registration-menu.php:121 +msgid "" +"This feature will automatically set a newly registered account to \"pending" +"\" until the administrator activates it. Therefore undesirable registrants " +"will be unable to log in without your express approval." +msgstr "" +"Este recurso irá definir automaticamente uma conta recém-registrada para " +"\"pendente\" até que o administrador a ative. Portanto inscritos " +"indesejáveis ​​não serão capazes de entrar sem a sua autorização expressa." + +#: all-in-one-wp-security/admin/wp-security-user-registration-menu.php:122 +msgid "" +"You can view all accounts which have been newly registered via the handy " +"table below and you can also perform bulk activation/deactivation/deletion " +"tasks on each account." +msgstr "" +"Você pode ver todas as contas que foram recentemente registados através da " +"tabela prática abaixo e você também pode executar tarefas de ativação em " +"massa / desativação / exclusão em cada conta." + +#: all-in-one-wp-security/admin/wp-security-user-registration-menu.php:138 +msgid "Enable manual approval of new registrations" +msgstr "Permitir Aprovação Manual para Novos Registros" + +#: all-in-one-wp-security/admin/wp-security-user-registration-menu.php:141 +msgid "" +"Check this if you want to automatically disable all newly registered " +"accounts so that you can approve them manually." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-registration-menu.php:150 +msgid "Approve Registered Users" +msgstr "Aprovar Usuários Registrados" + +#: all-in-one-wp-security/admin/wp-security-user-registration-menu.php:195 +msgid "" +"This feature allows you to add a captcha form on the WordPress registration " +"page." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-registration-menu.php:196 +msgid "" +"Users who attempt to register will also need to enter the answer to a simple " +"mathematical question - if they enter the wrong answer, the plugin will not " +"allow them to register." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-registration-menu.php:197 +msgid "" +"Therefore, adding a captcha form on the registration page is another " +"effective yet simple SPAM registration prevention technique." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-registration-menu.php:202 +msgid "Registration Page Captcha Settings" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-registration-menu.php:214 +msgid "Enable Captcha On Registration Page" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-registration-menu.php:217 +msgid "" +"Check this if you want to insert a captcha form on the WordPress user " +"registration page (if you allow user registration)." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-whois-menu.php:22 +msgid "WhoIS Lookup" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-whois-menu.php:74 +msgid "WHOIS Lookup Information" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-whois-menu.php:77 +msgid "" +"This feature allows you to look up more detailed information about an IP " +"address or domain name by querying the WHOIS API." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-whois-menu.php:83 +msgid "Perform a WHOIS Lookup for an IP or Domain Name" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-whois-menu.php:89 +msgid "Enter IP Address or Domain Name" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-whois-menu.php:91 +msgid "" +"Enter an IP address or domain name. Example: 111.11.12.13 OR some-domain-" +"name.com" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-whois-menu.php:95 +msgid "Perform IP or Domain Lookup" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-whois-menu.php:115 +msgid "WHOIS lookup successfully completed. Please see the results below:" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-whois-menu.php:127 +msgid "" +"You have entered an incorrectly formatted IP address or domain name. Please " +"try again." +msgstr "" + +#: all-in-one-wp-security/admin/general/wp-security-list-table.php:178 +msgid "No items found." +msgstr "" + +#: all-in-one-wp-security/admin/general/wp-security-list-table.php:281 +msgid "Bulk Actions" +msgstr "" + +#: all-in-one-wp-security/admin/general/wp-security-list-table.php:291 +msgid "Apply" +msgstr "" + +#: all-in-one-wp-security/admin/general/wp-security-list-table.php:365 +msgid "Show all dates" +msgstr "" + +#: all-in-one-wp-security/admin/general/wp-security-list-table.php:378 +#, php-format +msgid "%1$s %2$d" +msgstr "" + +#: all-in-one-wp-security/admin/general/wp-security-list-table.php:394 +msgid "List View" +msgstr "" + +#: all-in-one-wp-security/admin/general/wp-security-list-table.php:395 +msgid "Excerpt View" +msgstr "" + +#: all-in-one-wp-security/admin/general/wp-security-list-table.php:421 +#, php-format +msgid "%s pending" +msgstr "" + +#: all-in-one-wp-security/admin/general/wp-security-list-table.php:653 +msgid "Select All" +msgstr "" + +#: all-in-one-wp-security/classes/wp-security-backup.php:177 +msgid "All In One WP Security - Site Database Backup" +msgstr "" + +#: all-in-one-wp-security/classes/wp-security-backup.php:179 +msgid "Attached is your latest DB backup file for site URL" +msgstr "" + +#: all-in-one-wp-security/classes/wp-security-backup.php:179 +msgid " generated on" +msgstr "gerado em" + +#: all-in-one-wp-security/classes/wp-security-captcha.php:12 +msgid "Please enter an answer in digits:" +msgstr "Favor inserir a resposta em dígitos:" + +#: all-in-one-wp-security/classes/wp-security-captcha.php:91 +msgid "one" +msgstr "um" + +#: all-in-one-wp-security/classes/wp-security-captcha.php:92 +msgid "two" +msgstr "dois" + +#: all-in-one-wp-security/classes/wp-security-captcha.php:93 +msgid "three" +msgstr "três" + +#: all-in-one-wp-security/classes/wp-security-captcha.php:94 +msgid "four" +msgstr "quatro" + +#: all-in-one-wp-security/classes/wp-security-captcha.php:95 +msgid "five" +msgstr "cinco" + +#: all-in-one-wp-security/classes/wp-security-captcha.php:96 +msgid "six" +msgstr "seis" + +#: all-in-one-wp-security/classes/wp-security-captcha.php:97 +msgid "seven" +msgstr "sete" + +#: all-in-one-wp-security/classes/wp-security-captcha.php:98 +msgid "eight" +msgstr "oito" + +#: all-in-one-wp-security/classes/wp-security-captcha.php:99 +msgid "nine" +msgstr "nove" + +#: all-in-one-wp-security/classes/wp-security-captcha.php:100 +msgid "ten" +msgstr "dez" + +#: all-in-one-wp-security/classes/wp-security-captcha.php:101 +msgid "eleven" +msgstr "onze" + +#: all-in-one-wp-security/classes/wp-security-captcha.php:102 +msgid "twelve" +msgstr "doze" + +#: all-in-one-wp-security/classes/wp-security-captcha.php:103 +msgid "thirteen" +msgstr "treze" + +#: all-in-one-wp-security/classes/wp-security-captcha.php:104 +msgid "fourteen" +msgstr "catorze" + +#: all-in-one-wp-security/classes/wp-security-captcha.php:105 +msgid "fifteen" +msgstr "quinze" + +#: all-in-one-wp-security/classes/wp-security-captcha.php:106 +msgid "sixteen" +msgstr "dezesseis" + +#: all-in-one-wp-security/classes/wp-security-captcha.php:107 +msgid "seventeen" +msgstr "dezessete" + +#: all-in-one-wp-security/classes/wp-security-captcha.php:108 +msgid "eighteen" +msgstr "dezoito" + +#: all-in-one-wp-security/classes/wp-security-captcha.php:109 +msgid "nineteen" +msgstr "dezenove" + +#: all-in-one-wp-security/classes/wp-security-captcha.php:110 +msgid "twenty" +msgstr "vinte" + +#: all-in-one-wp-security/classes/wp-security-file-scan.php:58 +msgid "All In One WP Security - File change detected!" +msgstr "All In One WP Security - Alteração de Arquivo detectada!" + +#: all-in-one-wp-security/classes/wp-security-file-scan.php:60 +msgid "A file change was detected on your system for site URL" +msgstr "Um arquivo substituido foi detectado em seu sistema do website URL " + +#: all-in-one-wp-security/classes/wp-security-file-scan.php:60 +msgid ". Scan was generated on" +msgstr ".Scan foi gerado em" + +#: all-in-one-wp-security/classes/wp-security-file-scan.php:61 +msgid "Login to your site to view the scan details." +msgstr "" + +#: all-in-one-wp-security/classes/wp-security-general-init-tasks.php:158 +msgid "Please enter an answer in the CAPTCHA field." +msgstr "Por favor, digite uma resposta no campo CAPTCHA." + +#: all-in-one-wp-security/classes/wp-security-general-init-tasks.php:168 +msgid "" +"Error: You entered an incorrect CAPTCHA answer. Please go back and try again." +msgstr "" +"Erro: Você digitou a resposta CAPTCHA, de forma incorreta. Por favor, volte " +"e tente NOVAMENTE." + +#: all-in-one-wp-security/classes/wp-security-general-init-tasks.php:196 +#: all-in-one-wp-security/classes/wp-security-user-login.php:63 +#: all-in-one-wp-security/classes/wp-security-user-login.php:66 +#: all-in-one-wp-security/classes/wp-security-user-registration.php:59 +msgid "ERROR: Your answer was incorrect - please try again." +msgstr "" +"ERRO: A sua resposta está INCORRETA - por favor, tente " +"novamente." + +#: all-in-one-wp-security/classes/wp-security-user-login.php:39 +msgid "" +"ERROR: Login failed because your IP address has been " +"blocked.\n" +" Please contact the administrator." +msgstr "" +"ERRO: O seu LOGIN falhou porque o seu endereço IP foi " +"bloqueado.\n" +" Por favor, contate o administrador do " +"Website." + +#: all-in-one-wp-security/classes/wp-security-user-login.php:76 +msgid "ERROR: The username field is empty." +msgstr "ERRO: O campo nome de USUÃRIO está vazio." + +#: all-in-one-wp-security/classes/wp-security-user-login.php:80 +msgid "ERROR: The password field is empty." +msgstr "ERRO: O campo da SENHA está vazio." + +#: all-in-one-wp-security/classes/wp-security-user-login.php:100 +#: all-in-one-wp-security/classes/wp-security-user-login.php:126 +msgid "ERROR: Invalid login credentials." +msgstr "ERRO: As suas informações de login são INVÃLIDAS." + +#: all-in-one-wp-security/classes/wp-security-user-login.php:103 +msgid "ERROR: Invalid username." +msgstr "ERRO: NOME DE USUÃRIO Inválido." + +#: all-in-one-wp-security/classes/wp-security-user-login.php:129 +#, php-format +msgid "" +"ERROR: Incorrect password. Lost your password?" +msgstr "" +"ERRO: SENHA INCORRETA. Perdeu a sua SENHA?" + +#: all-in-one-wp-security/classes/wp-security-user-login.php:140 +msgid "" +"ACCOUNT PENDING: Your account is currently not active. An " +"administrator needs to activate your account before you can login." +msgstr "" +"CONTA PENDENTE: A sua CONTA não está ativa. Um " +"Administrador precisa ativar a sua conta ante e você efetuar o LOGIN." + +#: all-in-one-wp-security/classes/wp-security-user-login.php:263 +msgid "Site Lockout Notification" +msgstr "Notificação de Bloqueio do Website" + +#: all-in-one-wp-security/classes/wp-security-user-login.php:264 +msgid "" +"A lockdown event has occurred due to too many failed login attempts or " +"invalid username:" +msgstr "" +"Um evento de bloqueio ocorreu devido a muitas tentativas de login ou nome de " +"usuário inválido:" + +#: all-in-one-wp-security/classes/wp-security-user-login.php:265 +msgid "Username: " +msgstr "Usuário:" + +#: all-in-one-wp-security/classes/wp-security-user-login.php:266 +msgid "IP Address: " +msgstr "Endereço IP:" + +#: all-in-one-wp-security/classes/wp-security-user-login.php:267 +msgid "IP Range: " +msgstr "Faixa IP:" + +#: all-in-one-wp-security/classes/wp-security-user-login.php:268 +msgid "" +"Log into your site's WordPress administration panel to see the duration of " +"the lockout or to unlock the user." +msgstr "" + +#: all-in-one-wp-security/classes/wp-security-user-login.php:425 +#, php-format +msgid "" +"Your session has expired because it has been over %d minutes since your last " +"login." +msgstr "" +"A sua sessão foi encerrada porque já se passaram %d minutos do seu último " +"login." + +#: all-in-one-wp-security/classes/wp-security-user-login.php:426 +#: all-in-one-wp-security/classes/wp-security-user-login.php:430 +msgid "Please log back in to continue." +msgstr "" + +#: all-in-one-wp-security/classes/wp-security-user-login.php:429 +msgid "You were logged out because you just changed the \"admin\" username." +msgstr "" + +#: all-in-one-wp-security/classes/wp-security-utility-ip-address.php:79 +#: all-in-one-wp-security/classes/wp-security-utility-ip-address.php:98 +#: all-in-one-wp-security/classes/wp-security-utility-ip-address.php:113 +#: all-in-one-wp-security/classes/wp-security-utility-ip-address.php:128 +msgid " is not a valid ip address format." +msgstr "esse formato de endereço de IP não é válido." + +#: all-in-one-wp-security/classes/wp-security-utility-ip-address.php:136 +msgid "You cannot ban your own IP address: " +msgstr "Você não pode banir o seu próprio endereço IP" + +#: all-in-one-wp-security/classes/wp-security-utility.php:151 +msgid "" +"This feature can only be configured by the \"superadmin\" on the main site." +msgstr "" + +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:29 +msgid "Remove WP Generatore Meta Tag" +msgstr "" + +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:35 +msgid "Change Display Name" +msgstr "Troca do Nome Exibido" + +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:43 +msgid "Lost Password Captcha" +msgstr "Captcha Senha Perdida" + +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:45 +msgid "Login IP Whitelisting" +msgstr "" + +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:51 +msgid "Registration Approval" +msgstr "Aprovação do Registro" + +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:67 +msgid "WordPress Files Access" +msgstr "" + +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:71 +msgid "IP and User Agent Blacklisting" +msgstr "" + +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:75 +msgid "Enable Basic Firewall" +msgstr "Ativar Firewall Básico" + +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:76 +msgid "Enable Pingback Vulnerability Protection" +msgstr "" + +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:82 +msgid "Forbid Proxy Comments" +msgstr "" + +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:83 +msgid "Deny Bad Queries" +msgstr "Impedir Consultas Duvidosas" + +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:85 +msgid "5G Blacklist" +msgstr "" + +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:88 +msgid "Block Spambots" +msgstr "Bloquear Spambots" + +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:90 +msgid "Comment Captcha" +msgstr "Captcha Comentário" + +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item.php:28 +msgid "Basic" +msgstr "Basico" + +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item.php:31 +msgid "Intermediate" +msgstr "Intermediario" + +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item.php:34 +msgid "Advanced" +msgstr "Avançado" diff --git a/all-in-one-wp-security/languages/aiowpsecurity-ru_RU.mo b/all-in-one-wp-security/languages/aiowpsecurity-ru_RU.mo new file mode 100644 index 0000000000000000000000000000000000000000..6f8bd58445bcf66d86cb2c0ba329af7789ee6302 GIT binary patch literal 108014 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\n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 1.5.7\n" +"X-Poedit-KeywordsList: __;_e\n" +"X-Poedit-Basepath: .\n" +"X-Poedit-SearchPath-0: ..\n" + +#: ../admin/wp-security-admin-init.php:140 +msgid "WP Security" +msgstr "WP Security" + +#: ../admin/wp-security-admin-init.php:141 +msgid "Dashboard" +msgstr "Панель управлениÑ" + +#: ../admin/wp-security-admin-init.php:142 +msgid "Settings" +msgstr "ÐаÑтройки" + +#: ../admin/wp-security-admin-init.php:143 +msgid "User Accounts" +msgstr "ÐдминиÑтраторы" + +#: ../admin/wp-security-admin-init.php:144 +msgid "User Login" +msgstr "ÐвторизациÑ" + +#: ../admin/wp-security-admin-init.php:145 +msgid "Database Security" +msgstr "База данных" + +#: ../admin/wp-security-admin-init.php:146 +msgid "Filesystem Security" +msgstr "Ð¤Ð°Ð¹Ð»Ð¾Ð²Ð°Ñ ÑиÑтема" + +#: ../admin/wp-security-admin-init.php:147 +msgid "WHOIS Lookup" +msgstr "WHOIS-поиÑк" + +#: ../admin/wp-security-admin-init.php:148 +msgid "Blacklist Manager" +msgstr "Черный ÑпиÑок" + +#: ../admin/wp-security-admin-init.php:149 +msgid "Firewall" +msgstr "Файерволл" + +#: ../admin/wp-security-admin-init.php:150 +msgid "Maintenance" +msgstr "Режим обÑлуживаниÑ" + +#: ../admin/wp-security-admin-menu.php:43 +msgid "Settings successfully updated." +msgstr "ÐаÑтройки уÑпешно Ñохранены!" + +#: ../admin/wp-security-admin-menu.php:50 +msgid "The selected record(s) deleted successfully!" +msgstr "Выбранные запиÑи удалены!" + +#: ../admin/wp-security-blacklist-menu.php:77 +msgid "Nonce check failed for save blacklist settings!" +msgstr "ÐаÑтройки черного ÑпиÑка Ñохранить не удалоÑÑŒ!" + +#: ../admin/wp-security-blacklist-menu.php:129 +#: ../admin/wp-security-list-comment-spammer-ip.php:137 +msgid "" +"The plugin was unable to write to the .htaccess file. Please edit file " +"manually." +msgstr "" +"Ðе удалоÑÑŒ Ñделать запиÑи в файле .htaccess file. ПожалуйÑта, отредактируйте " +"файл вручную." + +#: ../admin/wp-security-blacklist-menu.php:136 +msgid "Ban IPs or User Agents" +msgstr "Бан по IP-адреÑам или юзер-агентам" + +#: ../admin/wp-security-blacklist-menu.php:139 +msgid "" +"The All In One WP Security Blacklist feature gives you the option of banning " +"certain host IP addresses or ranges and also user agents." +msgstr "" +"Ð¤ÑƒÐ½ÐºÑ†Ð¸Ñ Â«Ð§ÐµÑ€Ð½Ñ‹Ð¹ ÑпиÑок» позволÑет блокировать определенные IP-адреÑа, " +"диапазоны и юзер-агенты," + +#: ../admin/wp-security-blacklist-menu.php:140 +msgid "" +"This feature will deny total site access for users which have IP addresses " +"or user agents matching those which you have configured in the settings " +"below." +msgstr "" +"Ð¾Ñ‚ÐºÐ°Ð·Ñ‹Ð²Ð°Ñ Ð² доÑтупе к Ñайту тем пользователÑм и ботам, которые иÑпользовали " +"Ñти IP-адреÑа Ð´Ð»Ñ Ñпама или по другим причинам." + +#: ../admin/wp-security-blacklist-menu.php:141 +msgid "" +"The plugin achieves this by making appropriate modifications to your ." +"htaccess file." +msgstr "" +"Ð”Ð°Ð½Ð½Ð°Ñ Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ Ñ€ÐµÐ°Ð»Ð¸Ð·ÑƒÐµÑ‚ÑÑ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸ÐµÐ¼ в файл .htaccess определенных правил." + +#: ../admin/wp-security-blacklist-menu.php:142 +msgid "" +"By blocking people via the .htaccess file your are using the most secure " +"first line of defence which denies all access to blacklisted visitors as " +"soon as they hit your hosting server." +msgstr "" +"Ð‘Ð»Ð¾ÐºÐ¸Ñ€ÑƒÑ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»ÐµÐ¹ Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ директив файла .htaccess Ð’Ñ‹ получаете " +"первую линию обороны, ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ Ð¾Ñ‚Ð±Ñ€Ð¾Ñит нежелательных поÑетителей Ñразу же, " +"как только они попытаютÑÑ Ñоздать Ð·Ð°Ð¿Ñ€Ð¾Ñ Ðº Вашему Ñерверу." + +#: ../admin/wp-security-blacklist-menu.php:148 +msgid "IP Hosts and User Agent Blacklist Settings" +msgstr "ÐаÑтройки черного ÑпиÑка Ð´Ð»Ñ Ð±Ð»Ð¾ÐºÐ¸Ñ€Ð¾Ð²ÐºÐ¸ IP-адреÑов и юзер-агентов" + +#: ../admin/wp-security-blacklist-menu.php:159 +msgid "Enable IP or User Agent Blacklisting" +msgstr "ВеÑти Черный ÑпиÑок" + +#: ../admin/wp-security-blacklist-menu.php:162 +msgid "" +"Check this if you want to enable the banning (or blacklisting) of selected " +"IP addresses and/or user agents specified in the settings below" +msgstr "" +"Отметьте Ñтот чекбокÑ, еÑли Ð’Ñ‹ хотите иметь возможноÑÑŒ банить указанные IP-" +"адреÑа или юзер-агенты" + +#: ../admin/wp-security-blacklist-menu.php:166 +msgid "Enter IP Addresses:" +msgstr "Введите IP-адреÑа:" + +#: ../admin/wp-security-blacklist-menu.php:170 +msgid "Enter one or more IP addresses or IP ranges." +msgstr "Введите один или более IP-Ð°Ð´Ñ€ÐµÑ Ð¸Ð»Ð¸ диапазон адреÑов." + +#: ../admin/wp-security-blacklist-menu.php:171 +#: ../admin/wp-security-blacklist-menu.php:191 +#: ../admin/wp-security-blacklist-menu.php:276 +#: ../admin/wp-security-firewall-menu.php:148 +#: ../admin/wp-security-firewall-menu.php:178 +#: ../admin/wp-security-firewall-menu.php:309 +#: ../admin/wp-security-firewall-menu.php:339 +#: ../admin/wp-security-firewall-menu.php:370 +#: ../admin/wp-security-firewall-menu.php:398 +#: ../admin/wp-security-firewall-menu.php:427 +#: ../admin/wp-security-firewall-menu.php:515 +#: ../admin/wp-security-firewall-menu.php:651 +#: ../admin/wp-security-firewall-menu.php:685 +#: ../admin/wp-security-firewall-menu.php:708 +msgid "More Info" +msgstr "Подробнее" + +#: ../admin/wp-security-blacklist-menu.php:174 +msgid "Each IP address must be on a new line." +msgstr "Каждый IP-Ð°Ð´Ñ€ÐµÑ Ð´Ð¾Ð»Ð¶ÐµÐ½ находитьÑÑ Ð² отдельной Ñтроке." + +#: ../admin/wp-security-blacklist-menu.php:175 +msgid "" +"To specify an IP range use a wildcard \"*\" character. Acceptable ways to " +"use wildcards is shown in the examples below:" +msgstr "" +"Чтобы указать диапазон IP-адреÑов, иÑпользуйте маÑку «*». Примеры приведены " +"ниже:" + +#: ../admin/wp-security-blacklist-menu.php:176 +msgid "Example 1: 195.47.89.*" +msgstr "Пример 1: 195.47.89.*" + +#: ../admin/wp-security-blacklist-menu.php:177 +msgid "Example 2: 195.47.*.*" +msgstr "Пример 2: 195.47.*.*" + +#: ../admin/wp-security-blacklist-menu.php:178 +msgid "Example 3: 195.*.*.*" +msgstr "Пример 3: 195.*.*.*" + +#: ../admin/wp-security-blacklist-menu.php:185 +msgid "Enter User Agents:" +msgstr "Введите Ð½Ð°Ð·Ð²Ð°Ð½Ð¸Ñ ÑŽÐ·ÐµÑ€-агентов:" + +#: ../admin/wp-security-blacklist-menu.php:190 +msgid "Enter one or more user agent strings." +msgstr "Введите одну или более Ñтрок Ñ Ð½Ð°Ð·Ð²Ð°Ð½Ð¸Ñми юзер-агентов." + +#: ../admin/wp-security-blacklist-menu.php:194 +msgid "Each user agent string must be on a new line." +msgstr "Каждый юзер-агент пропиÑывайте в отдельной Ñтроке." + +#: ../admin/wp-security-blacklist-menu.php:195 +msgid "Example 1 - A single user agent string to block:" +msgstr "Пример 1: ÐžÐ´Ð¸Ð½Ð¾Ñ‡Ð½Ð°Ñ Ñтрока Ñ Ð½Ð°Ð·Ð²Ð°Ð½Ð¸ÐµÐ¼ юзер-агента Ð´Ð»Ñ Ð±Ð»Ð¾ÐºÐ¸Ñ€Ð¾Ð²ÐºÐ¸:" + +#: ../admin/wp-security-blacklist-menu.php:197 +msgid "Example 2 - A list of more than 1 user agent strings to block" +msgstr "Пример 2: СпиÑок неÑкольких юзер-агентов Ð´Ð»Ñ Ð±Ð»Ð¾ÐºÐ¸Ñ€Ð¾Ð²ÐºÐ¸" + +#: ../admin/wp-security-blacklist-menu.php:205 +#: ../admin/wp-security-database-menu.php:333 +#: ../admin/wp-security-filesystem-menu.php:220 +#: ../admin/wp-security-settings-menu.php:452 +#: ../admin/wp-security-user-login-menu.php:211 +#: ../admin/wp-security-user-login-menu.php:379 +msgid "Save Settings" +msgstr "Сохранить наÑтройки" + +#: ../admin/wp-security-blacklist-menu.php:224 +msgid "Nonce check failed for list SPAM comment IPs!" +msgstr "Ðе удалоÑÑŒ уÑтановить параметры Ð´Ð»Ñ Ð¾Ñ‚Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ ÑпиÑка IP-адреÑов!" + +#: ../admin/wp-security-blacklist-menu.php:230 +msgid "" +"You entered a non numeric value for the minimum SPAM comments per IP field. " +"It has been set to the default value." +msgstr "" +"Ð’Ñ‹ ввели нечиÑловое значение Ð´Ð»Ñ ÑƒÐºÐ°Ð·Ð°Ð½Ð¸Ñ Ð¼Ð¸Ð½Ð¸Ð¼Ð°Ð»ÑŒÐ½Ð¾Ð³Ð¾ количеÑтва Ñпам-" +"комментариев. ПринÑто значение по умолчанию." + +#: ../admin/wp-security-blacklist-menu.php:236 +#: ../admin/wp-security-database-menu.php:248 +#: ../admin/wp-security-user-login-menu.php:115 +#: ../admin/wp-security-user-login-menu.php:332 +msgid "Attention!" +msgstr "Внимание!" + +#: ../admin/wp-security-blacklist-menu.php:242 +#, php-format +msgid "" +"Displaying results for IP addresses which have posted a minimum of %s SPAM " +"comments" +msgstr "" +"СпиÑок IP-адреÑов, Ñ ÐºÐ¾Ñ‚Ð¾Ñ€Ñ‹Ñ… было отправлено минимум %s Ñпам-комментариев" + +#: ../admin/wp-security-blacklist-menu.php:258 +msgid "" +"This tab displays a list of the IP addresses of the people or bots who have " +"left SPAM comments on your site." +msgstr "" +"Ð’ Ñтой вкладке отображаетÑÑ ÑпиÑок IP-адреÑов тех пользователей или ботов, " +"которые оÑтавили Ñпам-комментарии на Вашем Ñайте." + +#: ../admin/wp-security-blacklist-menu.php:259 +msgid "" +"This information can be handy for identifying the most persistent IP " +"addresses or ranges used by spammers." +msgstr "" +"Эта Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¼Ð¾Ð¶ÐµÑ‚ быть полезна Ð´Ð»Ñ Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ð½Ð°Ð¸Ð±Ð¾Ð»ÐµÐµ Ñтабильно " +"иÑпользующихÑÑ Ñпаммерами IP-адреÑов или их диапазонов. " + +#: ../admin/wp-security-blacklist-menu.php:260 +msgid "" +"By inspecting the IP address data coming from spammers you will be in a " +"better position to determine which addresses or address ranges you should " +"block by adding them to your blacklist." +msgstr "" +"Ðнализ Ñтой информации позволит Вам быÑтро определить, какие адреÑа или " +"диапазоны Ñледует заблокировать, добавив их в черный ÑпиÑок." + +#: ../admin/wp-security-blacklist-menu.php:261 +msgid "" +"To add one or more of the IP addresses displayed in the table below to your " +"blacklist, simply click the \"Block\" link for the individual row or select " +"more than one address \n" +" using the checkboxes and then choose the \"block" +"\" option from the Bulk Actions dropdown list and click the \"Apply\" button." +msgstr "" +"Ð”Ð»Ñ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¾Ð´Ð½Ð¾Ð³Ð¾ или Ñразу неÑкольких адреÑов в черный ÑпиÑок, кликните " +"по ÑÑылке «Block» в Ñтроке Ñ Ð²Ñ‹Ð±Ñ€Ð°Ð½Ð½Ñ‹Ð¼ адреÑом, или выберите неÑколько " +"адреÑов, иÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÑ Ñ‡ÐµÐºÐ±Ð¾ÐºÑÑ‹ и уÑтановите вариант «Block» в выпадающем ÑпиÑке " +"«ДейÑтвиÑ», поÑле чего нажмите кнопку «Применить»." + +#: ../admin/wp-security-blacklist-menu.php:267 +msgid "List SPAMMER IP Addresses" +msgstr "СпиÑок IP-адреÑов Ñпаммеров" + +#: ../admin/wp-security-blacklist-menu.php:273 +msgid "Minimum number of SPAM comments per IP" +msgstr "Минимальное количеÑтво Ñпам-комментариев на каждый IP" + +#: ../admin/wp-security-blacklist-menu.php:275 +msgid "" +"This field allows you to list only those IP addresses which have been used " +"to post X or more SPAM comments." +msgstr "" +"Это поле позволÑет фикÑировать только те IP-адреÑа, Ñ ÐºÐ¾Ñ‚Ð¾Ñ€Ñ‹Ñ… было загружено " +"Ð¥ или более Ñпам-комментариев." + +#: ../admin/wp-security-blacklist-menu.php:279 +msgid "" +"Example 1: Setting this value to \"0\" or \"1\" will list ALL IP addresses " +"which were used to submit SPAM comments." +msgstr "" +"Пример 1: УÑтановка Ñтого Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð² «0» или «1» выведет ÑпиÑок вÑех IP-" +"адреÑов, уличенных в Ñпаме Ñ…Ð¾Ñ‚Ñ Ð±Ñ‹ 1 раз." + +#: ../admin/wp-security-blacklist-menu.php:280 +msgid "" +"Example 2: Setting this value to \"5\" will list only those IP addresses " +"which were used to submit 5 SPAM comments or more on your site." +msgstr "" +"Пример 2: УÑтановка Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð² «5» выведет ÑпиÑок IP-адреÑов, которые " +"размеÑтили на Вашем Ñайте 5 и более Ñпам-комментариев." + +#: ../admin/wp-security-blacklist-menu.php:287 +msgid "Find IP Addresses" +msgstr "Ðайти IP-адреÑа" + +#: ../admin/wp-security-blacklist-menu.php:291 +msgid "SPAMMER IP Address Results" +msgstr "IP-адреÑа Ñпаммеров" + +#: ../admin/wp-security-dashboard-menu.php:111 +msgid "Total Achievable Points: " +msgstr "МакÑимально возможный балл:" + +#: ../admin/wp-security-dashboard-menu.php:113 +msgid "Current Score of Your Site: " +msgstr "Текущий балл Вашего Ñайта:" + +#: ../admin/wp-security-dashboard-menu.php:168 +msgid "" +"Below is the current status of the critical features that you should " +"activate on your site to achieve a minimum level of recommended security" +msgstr "" +"ЗдеÑÑŒ показан текущий ÑÑ‚Ð°Ñ‚ÑƒÑ ÐºÑ€Ð¸Ñ‚Ð¸Ñ‡ÐµÑки важных параметров, которые должны " +"быть активированы Ð´Ð»Ñ Ð´Ð¾ÑÑ‚Ð¸Ð¶ÐµÐ½Ð¸Ñ Ð¼Ð¸Ð½Ð¸Ð¼Ð°Ð»ÑŒÐ½Ð¾Ð³Ð¾ ÑƒÑ€Ð¾Ð²Ð½Ñ Ñ€ÐµÐºÐ¾Ð¼ÐµÐ½Ð´ÑƒÐµÐ¼Ð¾Ð¹ " +"безопаÑноÑти:" + +#: ../admin/wp-security-dashboard-menu.php:172 +msgid "Admin Username" +msgstr "Логин ÐдминиÑтратора" + +#: ../admin/wp-security-dashboard-menu.php:187 +msgid "Login Lockdown" +msgstr "Блокировка авторизаций" + +#: ../admin/wp-security-dashboard-menu.php:202 +msgid "File Permission" +msgstr "Права на файлы" + +#: ../admin/wp-security-dashboard-menu.php:217 +msgid "Basic Firewall" +msgstr "Базовый файерволл" + +#: ../admin/wp-security-dashboard-menu.php:239 +msgid "" +"Maintenance mode is currently enabled. Remember to turn it off when you are " +"done" +msgstr "" +"Режим обÑÐ»ÑƒÐ¶Ð¸Ð²Ð°Ð½Ð¸Ñ Ð²ÐºÐ»ÑŽÑ‡ÐµÐ½. Ðе забудьте отключить его, когда захотите " +"открыть его Ð´Ð»Ñ Ð¿Ð¾Ñетителей." + +#: ../admin/wp-security-dashboard-menu.php:242 +msgid "Maintenance mode is currently off." +msgstr "Режим обÑÐ»ÑƒÐ¶Ð¸Ð²Ð°Ð½Ð¸Ñ Ð¾Ñ‚ÐºÐ»ÑŽÑ‡ÐµÐ½." + +#: ../admin/wp-security-dashboard-menu.php:246 +msgid "Maintenance Mode" +msgstr "Режим обÑлуживаниÑ" + +#: ../admin/wp-security-dashboard-menu.php:316 +#: ../admin/wp-security-filesystem-menu.php:124 +#: ../admin/wp-security-filesystem-menu.php:143 +msgid "Name" +msgstr "Ðазвание" + +#: ../admin/wp-security-dashboard-menu.php:317 +msgid "Version" +msgstr "ВерÑиÑ" + +#: ../admin/wp-security-dashboard-menu.php:318 +msgid "Plugin URL" +msgstr "URL плагина" + +#: ../admin/wp-security-database-menu.php:78 +msgid "Nonce check failed for DB prefix change operation!" +msgstr "Ðе удалоÑÑŒ изменить Ð¿Ñ€ÐµÑ„Ð¸ÐºÑ Ñ‚Ð°Ð±Ð»Ð¸Ñ† БД." + +#: ../admin/wp-security-database-menu.php:86 +msgid "" +"The plugin has detected that it cannot write to the wp-config.php file. This " +"feature can only be used if the plugin can successfully write to the wp-" +"config.php file." +msgstr "" +"Плагину не удалоÑÑŒ внеÑти Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð² файл wp-config.php. Эта Ð¾Ð¿Ñ†Ð¸Ñ Ð¼Ð¾Ð¶ÐµÑ‚ " +"быть иÑпользована только еÑли на файл wp-config будут уÑтановлены права на " +"запиÑÑŒ." + +#: ../admin/wp-security-database-menu.php:99 +msgid "Please enter a value for the DB prefix." +msgstr "ПожалуйÑта, введите значение Ð´Ð»Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾ префикÑа." + +#: ../admin/wp-security-database-menu.php:108 +msgid "" +"ERROR: The table prefix can only contain numbers, letters, " +"and underscores." +msgstr "" +"ОШИБКÐ: ÐŸÑ€ÐµÑ„Ð¸ÐºÑ Ð¼Ð¾Ð¶ÐµÑ‚ Ñодержать только латинÑкие буквы, " +"цифры и Ñимвол подчеркиваниÑ." + +#: ../admin/wp-security-database-menu.php:116 +msgid "Change Database Prefix" +msgstr "Изменение префикÑа таблиц базы данных" + +#: ../admin/wp-security-database-menu.php:119 +msgid "" +"Your WordPress DB is the most important asset of your website because it " +"contains a lot of your site's precious information." +msgstr "" +"Ваша база данных - Ñто наиболее ценный актив, так как в ней находитÑÑ Ð²ÐµÑÑŒ " +"контент и наÑтройки." + +#: ../admin/wp-security-database-menu.php:120 +msgid "" +"The DB is also a target for hackers via methods such as SQL injections and " +"malicious and automated code which targets certain tables." +msgstr "" +"База данных также ÑвлÑетÑÑ Ð¼Ð¸ÑˆÐµÐ½ÑŒÑŽ Ð´Ð»Ñ Ñ…Ð°ÐºÐµÑ€Ð¾Ð², пытающихÑÑ Ð¿Ð¾Ð»ÑƒÑ‡Ð¸Ñ‚ÑŒ контроль " +"над определенными таблицами методом SQL-инъекций и внедрением другого " +"вредоноÑного кода." + +#: ../admin/wp-security-database-menu.php:121 +msgid "" +"One way to add a layer of protection for your DB is to change the default " +"WordPress table prefix from \"wp_\" to something else which will be " +"difficult for hackers to guess." +msgstr "" +"Одним из ÑпоÑобов уÑилить защиту от таких атак ÑвлÑетÑÑ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ðµ префикÑа " +"таблиц базы данных Ñ ÑƒÑтанавливаемого по умолчанию («wp_») на какой-нибудь " +"другой, который было бы Ñ‚Ñжело угадать." + +#: ../admin/wp-security-database-menu.php:122 +msgid "" +"This feature allows you to easily change the prefix to a value of your " +"choice or to a random value set by this plugin." +msgstr "" +"Эти опции позволÑÑŽÑ‚ легко изменить Ð¿Ñ€ÐµÑ„Ð¸ÐºÑ Ð‘Ð” на любое введенное Вами " +"значение или на Ñгенерированное плагином." + +#: ../admin/wp-security-database-menu.php:128 +msgid "DB Prefix Options" +msgstr "Опции Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¿Ñ€ÐµÑ„Ð¸ÐºÑа таблиц БД" + +#: ../admin/wp-security-database-menu.php:139 +#, php-format +msgid "It is recommended that you perform a %s before using this feature" +msgstr "РекомендуетÑÑ Ð¿ÐµÑ€ÐµÐ´ изменением префикÑа Ñоздать %s базы данных" + +#: ../admin/wp-security-database-menu.php:148 +msgid "Current DB Table Prefix" +msgstr "Текущий Ð¿Ñ€ÐµÑ„Ð¸ÐºÑ Ñ‚Ð°Ð±Ð»Ð¸Ñ† БД" + +#: ../admin/wp-security-database-menu.php:154 +msgid "" +"Your site is currently using the default WordPress DB prefix value of \"wp_" +"\". \n" +" To increase your site's security you should " +"consider changing the DB prefix value to another value." +msgstr "" +"Ðа Вашем Ñайте иÑпользуетÑÑ Ð¿Ñ€ÐµÑ„Ð¸ÐºÑ Ñ‚Ð°Ð±Ð»Ð¸Ñ† базы данных по умолчанию: «wp_».\n" +"Ð”Ð»Ñ ÑƒÑÐ¸Ð»ÐµÐ½Ð¸Ñ Ð±ÐµÐ·Ð¾Ð¿Ð°ÑноÑти, измените его на любое другое значение." + +#: ../admin/wp-security-database-menu.php:161 +msgid "Generate New DB Table Prefix" +msgstr "Сгенерировать новый Ð¿Ñ€ÐµÑ„Ð¸ÐºÑ Ñ‚Ð°Ð±Ð»Ð¸Ñ† БД" + +#: ../admin/wp-security-database-menu.php:164 +msgid "" +"Check this if you want the plugin to generate a random 6 character string " +"for the table prefix" +msgstr "" +"Отметьте, чтобы плагин Ñам Ñгенерировал Ð¿Ñ€ÐµÑ„Ð¸ÐºÑ Ð´Ð»Ð¸Ð½Ð¾Ð¹ в 6 Ñлучайных Ñимволов" + +#: ../admin/wp-security-database-menu.php:165 +msgid "OR" +msgstr "ИЛИ" + +#: ../admin/wp-security-database-menu.php:167 +msgid "" +"Choose your own DB prefix by specifying a string which contains letters and/" +"or numbers and/or underscores. Example: xyz_" +msgstr "" +"Введите ÑобÑтвенный вариант префикÑа, иÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÑ Ð»Ð°Ñ‚Ð¸Ð½Ñкие буквы, цифры и " +"Ñимвол подчеркиваниÑ. Ðапример: xyz_" + +#: ../admin/wp-security-database-menu.php:171 +msgid "Change DB Prefix" +msgstr "Изменить Ð¿Ñ€ÐµÑ„Ð¸ÐºÑ Ñ‚Ð°Ð±Ð»Ð¸Ñ†" + +#: ../admin/wp-security-database-menu.php:192 +#: ../admin/wp-security-filesystem-menu.php:80 +msgid "Nonce check failed for manual DB backup operation!" +msgstr "Создать бÑкап базы данных не удалоÑÑŒ!" + +#: ../admin/wp-security-database-menu.php:201 +msgid "" +"DB Backup was successfully completed! Right click on the following file name " +"and save the backup to your computer." +msgstr "" +"Ð ÐµÐ·ÐµÑ€Ð²Ð½Ð°Ñ ÐºÐ¾Ð¿Ð¸Ñ Ð‘Ð” уÑпешно Ñоздана! Кликните правой кнопкой мыши по имени " +"файла, чтобы Ñкачать его на компьютер." + +#: ../admin/wp-security-database-menu.php:203 +msgid "Your DB Backup File: " +msgstr "Ð ÐµÐ·ÐµÑ€Ð²Ð½Ð°Ñ ÐºÐ¾Ð¿Ð¸Ñ Ð±Ð°Ð·Ñ‹ данных:" + +#: ../admin/wp-security-database-menu.php:211 +msgid "DB Backup failed. Please check the permissions of the backup directory." +msgstr "" +"Создать резервную копию БД не удалоÑÑŒ. Проверьте права на запиÑÑŒ Ð´Ð»Ñ Ð±Ñкап-" +"директории плагина." + +#: ../admin/wp-security-database-menu.php:228 +msgid "" +"You entered a non numeric value for the \"backup time interval\" field. It " +"has been set to the default value." +msgstr "" +"Ð’Ñ‹ ввели нечиÑловое значение в поле «ЧаÑтота ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð±Ñкапов». Сохранено " +"значение по умолчанию." + +#: ../admin/wp-security-database-menu.php:235 +msgid "" +"You entered a non numeric value for the \"number of backup files to keep\" " +"field. It has been set to the default value." +msgstr "" +"Ð’Ñ‹ ввели нечиÑловое значение в поле «КоличеÑтво бÑкапов Ð´Ð»Ñ Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ». " +"Сохранено значение по умолчанию." + +#: ../admin/wp-security-database-menu.php:242 +#: ../admin/wp-security-user-login-menu.php:109 +msgid "" +"You have entered an incorrect email address format. It has been set to your " +"WordPress admin email as default." +msgstr "" +"Email-Ð°Ð´Ñ€ÐµÑ Ð²Ð²ÐµÐ´ÐµÐ½ неправильно. По умолчанию уÑтановлен Email админиÑтратора " +"блога." + +#: ../admin/wp-security-database-menu.php:275 +msgid "Manual Backup" +msgstr "Создание резервной копии базы данных вручную" + +#: ../admin/wp-security-database-menu.php:281 +msgid "To create a new DB backup just click on the button below." +msgstr "Ð”Ð»Ñ Ð½ÐµÐ¼ÐµÐ´Ð»ÐµÐ½Ð½Ð¾Ð³Ð¾ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ñ€ÐµÐ·ÐµÑ€Ð²Ð½Ð¾Ð¹ копии нажмите Ñту кнопку:" + +#: ../admin/wp-security-database-menu.php:284 +msgid "Create DB Backup Now" +msgstr "Создать бÑкап базы данных ÑейчаÑ" + +#: ../admin/wp-security-database-menu.php:288 +msgid "Automated Scheduled Backups" +msgstr "ÐвтоматичеÑкое Ñоздание резервных копий" + +#: ../admin/wp-security-database-menu.php:300 +msgid "Enable Automated Scheduled Backups" +msgstr "Включить автоматичеÑкое Ñоздание бÑкапов" + +#: ../admin/wp-security-database-menu.php:303 +msgid "" +"Check this if you want the system to automatically generate backups " +"periodically based on the settings below" +msgstr "" +"Включите Ñтот чекбокÑ, чтобы ÑиÑтема автоматичеÑки Ñоздавала резервные копии " +"базы данных по раÑпиÑанию" + +#: ../admin/wp-security-database-menu.php:307 +msgid "Backup Time Interval" +msgstr "ЧаÑтота ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð±Ñкапов" + +#: ../admin/wp-security-database-menu.php:310 +msgid "Hours" +msgstr "ЧаÑов" + +#: ../admin/wp-security-database-menu.php:311 +msgid "Days" +msgstr "Дней" + +#: ../admin/wp-security-database-menu.php:312 +msgid "Weeks" +msgstr "Ðедель" + +#: ../admin/wp-security-database-menu.php:314 +msgid "Set the value for how often you would like an automated backup to occur" +msgstr "Укажите периодичноÑÑ‚ÑŒ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ñ€ÐµÐ·ÐµÑ€Ð²Ð½Ñ‹Ñ… копий" + +#: ../admin/wp-security-database-menu.php:318 +msgid "Number of Backup Files To Keep" +msgstr "КоличеÑтво бÑкапов Ð´Ð»Ñ Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ" + +#: ../admin/wp-security-database-menu.php:320 +msgid "" +"Thie field allows you to choose the number of backup files you would like to " +"keep in the backup directory" +msgstr "" +"Укажите в Ñтом поле количеÑтво резервных копий, которые должны хранитьÑÑ Ð² " +"бÑкап-директории плагина" + +#: ../admin/wp-security-database-menu.php:324 +msgid "Send Backup File Via Email" +msgstr "ПереÑылать бÑкап на Email" + +#: ../admin/wp-security-database-menu.php:327 +msgid "" +"Check this if you want the system to email you the backup file after a DB " +"backup has been performed" +msgstr "" +"Включите Ñтот чекбокÑ, еÑли хотите получать бÑкап базы данных на Ñвой email" + +#: ../admin/wp-security-database-menu.php:329 +#: ../admin/wp-security-user-login-menu.php:207 +msgid "Enter an email address" +msgstr "Введите Email-адреÑ" + +#: ../admin/wp-security-database-menu.php:359 +msgid "Starting DB prefix change operations....." +msgstr "Ðачинаю процеÑÑ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¿Ñ€ÐµÑ„Ð¸ÐºÑа таблиц базы данных..." + +#: ../admin/wp-security-database-menu.php:361 +#, php-format +msgid "" +"Your WordPress system has a total of %s tables and your new DB prefix will " +"be: %s" +msgstr "" +"Общее количеÑтво таблиц в базе данных WordPress %s и новый Ð¿Ñ€ÐµÑ„Ð¸ÐºÑ Ñ‚Ð°Ð±Ð»Ð¸Ñ† " +"будет уÑтановлен как: %s" + +#: ../admin/wp-security-database-menu.php:367 +#: ../admin/wp-security-filesystem-menu.php:458 +msgid "" +"Failed to make a backup of the wp-config.php file. This operation will not " +"go ahead." +msgstr "" +"Ðе удалоÑÑŒ Ñоздать резервную копию файла wp-config.php. ÐžÐ¿ÐµÑ€Ð°Ñ†Ð¸Ñ Ð¿Ñ€ÐµÑ€Ð²Ð°Ð½Ð°." + +#: ../admin/wp-security-database-menu.php:371 +msgid "A backup copy of your wp-config.php file was created successfully!" +msgstr "Ð ÐµÐ·ÐµÑ€Ð²Ð½Ð°Ñ ÐºÐ¾Ð¿Ð¸Ñ Ð’Ð°ÑˆÐµÐ³Ð¾ файла wp-config.php уÑпешно Ñоздана!" + +#: ../admin/wp-security-database-menu.php:394 +#, php-format +msgid "%s table name update failed" +msgstr "Ðе удалоÑÑŒ переименовать таблицу %s" + +#: ../admin/wp-security-database-menu.php:406 +#, php-format +msgid "Please change the prefix manually for the above tables to: %s" +msgstr "" +"ПожалуйÑта, измените Ð¿Ñ€ÐµÑ„Ð¸ÐºÑ Ð´Ð»Ñ Ð²Ñ‹ÑˆÐµÐ¿ÐµÑ€ÐµÑ‡Ð¸Ñленных таблиц на «%s» вручную" + +#: ../admin/wp-security-database-menu.php:409 +#, php-format +msgid "%s tables had their prefix updated successfully!" +msgstr "ÐŸÑ€ÐµÑ„Ð¸ÐºÑ Ñ‚Ð°Ð±Ð»Ð¸Ñ† %s уÑпешно изменен!" + +#: ../admin/wp-security-database-menu.php:424 +msgid "wp-config.php file was updated successfully!" +msgstr "Файл wp-config.php уÑпешно обновлен!" + +#: ../admin/wp-security-database-menu.php:427 +#, php-format +msgid "" +"The \"wp-config.php\" file was not able to be modified. Please modify this " +"file manually using your favourite editor and search \n" +" for variable \"$table_prefix\" and assign the following " +"value to that variable: %s" +msgstr "" +"Ðе удалоÑÑŒ внеÑти корректировки в файл wp-config.php. ПожалуйÑта, " +"отредактируйте его вручную, заменив значение переменной «$table_prefix» на " +"значение %s" + +#: ../admin/wp-security-database-menu.php:448 +msgid "There was an error when updating the options table." +msgstr "Ðе удалоÑÑŒ Ñкорректировать запиÑи в таблице опций." + +#: ../admin/wp-security-database-menu.php:452 +msgid "" +"The options table records which had references to the old DB prefix were " +"updated successfully!" +msgstr "" +"ЗапиÑи в таблице опций блога, имеющие ÑÑылки на Ñтарый Ð¿Ñ€ÐµÑ„Ð¸ÐºÑ Ñ‚Ð°Ð±Ð»Ð¸Ñ† базы " +"данных уÑпешно Ñкорректированы!" + +#: ../admin/wp-security-database-menu.php:477 +#, php-format +msgid "" +"Error updating user_meta table where new meta_key = %s, old meta_key = %s " +"and user_id = %s." +msgstr "" +"Ðе удалоÑÑŒ Ñкорректировать запиÑи в таблице «user_meta», где новый meta_key " +"= %s, old meta_key = %s и user_id = %s." + +#: ../admin/wp-security-database-menu.php:483 +msgid "" +"The usermeta table records which had references to the old DB prefix were " +"updated successfully!" +msgstr "" +"ЗапиÑи в таблице «user_meta», имеющие ÑÑылки на Ñтарый Ð¿Ñ€ÐµÑ„Ð¸ÐºÑ Ñ‚Ð°Ð±Ð»Ð¸Ñ† базы " +"данных уÑпешно Ñкорректированы!" + +#: ../admin/wp-security-database-menu.php:485 +msgid "DB prefix change tasks have been completed." +msgstr "ÐŸÑ€ÐµÑ„Ð¸ÐºÑ Ñ‚Ð°Ð±Ð»Ð¸Ñ† базы данных уÑпешно изменен." + +#: ../admin/wp-security-filesystem-menu.php:90 +#, php-format +msgid "The permissions for %s were succesfully changed to %s" +msgstr "Ð Ð°Ð·Ñ€ÐµÑˆÐµÐ½Ð¸Ñ Ð´Ð»Ñ %s уÑпешно изменены на %s" + +#: ../admin/wp-security-filesystem-menu.php:94 +#, php-format +msgid "Unable to change permissions for %s!" +msgstr "Ðевозможно изменить Ñ€Ð°Ð·Ñ€ÐµÑˆÐµÐ½Ð¸Ñ Ð´Ð»Ñ %s!" + +#: ../admin/wp-security-filesystem-menu.php:100 +msgid "File Permissions Scan" +msgstr "Сканирование разрешений на файлы и директории WordPress" + +#: ../admin/wp-security-filesystem-menu.php:103 +msgid "" +"Your WordPress file and folder permission settings govern the accessability " +"and read/write privileges of the files and folders which make up your WP " +"installation." +msgstr "" +"УÑтановки разрешений на файлы и папки WordPress, позволÑющие управлÑÑ‚ÑŒ " +"доÑтупом к Ñтим файлам." + +#: ../admin/wp-security-filesystem-menu.php:104 +msgid "" +"Your WP installation already comes with reasonably secure file permission " +"settings for the filesystem." +msgstr "" +"При первоначальной уÑтановке WordPress автоматичеÑки приÑваивает разумные " +"права доÑтупа к Ñвоей файловой ÑиÑтеме." + +#: ../admin/wp-security-filesystem-menu.php:105 +msgid "" +"However, sometimes people or other plugins modify the various permission " +"settings of certain core WP folders or files such that they end up making " +"their site less secure because they chose the wrong permission values." +msgstr "" +"Однако, иногда люди или плагины изменÑÑŽÑ‚ Ñ€Ð°Ð·Ñ€ÐµÑˆÐµÐ½Ð¸Ñ Ð½Ð° определенные " +"директории и файлы, ÑÐ½Ð¸Ð¶Ð°Ñ Ñ‚Ð°ÐºÐ¸Ð¼ образом уровень безопаÑноÑти Ñвоего Ñайта, " +"уÑтановив неверные права доÑтупа." + +#: ../admin/wp-security-filesystem-menu.php:106 +msgid "" +"This feature will scan the critical WP core folders and files and will " +"highlight any permission settings which are insecure." +msgstr "" +"Эта Ð¾Ð¿Ñ†Ð¸Ñ Ñканирует вÑе важные директории и файлы Ñдра WordPress и " +"подÑвечивает вÑе небезопаÑные наÑтройки." + +#: ../admin/wp-security-filesystem-menu.php:112 +msgid "WP Directory and File Permissions Scan Results" +msgstr "Результат ÑÐºÐ°Ð½Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ñ€Ð°Ð·Ñ€ÐµÑˆÐµÐ½Ð¸Ð¹ на директории и файлы WordPress" + +#: ../admin/wp-security-filesystem-menu.php:125 +#: ../admin/wp-security-filesystem-menu.php:144 +msgid "File/Folder" +msgstr "Файл/Папка" + +#: ../admin/wp-security-filesystem-menu.php:126 +#: ../admin/wp-security-filesystem-menu.php:145 +msgid "Current Permissions" +msgstr "Текущие разрешениÑ" + +#: ../admin/wp-security-filesystem-menu.php:127 +#: ../admin/wp-security-filesystem-menu.php:146 +msgid "Recommended Permissions" +msgstr "Рекомендуемые разрешениÑ" + +#: ../admin/wp-security-filesystem-menu.php:128 +#: ../admin/wp-security-filesystem-menu.php:147 +msgid "Recommended Action" +msgstr "Рекомендуемое дейÑтвие" + +#: ../admin/wp-security-filesystem-menu.php:190 +msgid "File Editing" +msgstr "Редактирование файлов" + +#: ../admin/wp-security-filesystem-menu.php:193 +msgid "" +"The Wordpress Dashboard by default allows administrators to edit PHP files, " +"such as plugin and theme files." +msgstr "" +"По умолчанию из панели админиÑÑ‚Ñ€Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ WordPress позволÑетÑÑ Ñ€ÐµÐ´Ð°ÐºÑ‚Ð¸Ñ€Ð¾Ð²Ð°Ñ‚ÑŒ " +"PHP-файлы плагинов и тем." + +#: ../admin/wp-security-filesystem-menu.php:194 +msgid "" +"This is often the first tool an attacker will use if able to login, since it " +"allows code execution." +msgstr "" +"Это первейшее подÑпорье хакеру, получившему доÑтуп в конÑоль админиÑтратора, " +"предоÑтавлÑющее ему возможноÑÑ‚ÑŒ выполнить любой код на Вашем Ñервере." + +#: ../admin/wp-security-filesystem-menu.php:195 +msgid "" +"This feature will disable the ability for people to edit PHP files via the " +"dashboard." +msgstr "" +"Ð”Ð°Ð½Ð½Ð°Ñ Ð¾Ð¿Ñ†Ð¸Ñ Ð¾Ñ‚ÐºÐ»ÑŽÑ‡Ð°ÐµÑ‚ возможноÑÑ‚ÑŒ Ñ€ÐµÐ´Ð°ÐºÑ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ñ„Ð°Ð¹Ð»Ð¾Ð² из панели " +"админиÑтратора." + +#: ../admin/wp-security-filesystem-menu.php:201 +msgid "Disable PHP File Editing" +msgstr "Отключение Ñ€ÐµÐ´Ð°ÐºÑ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ PHP-файлов" + +#: ../admin/wp-security-filesystem-menu.php:213 +msgid "Disable Ability To Edit PHP Files" +msgstr "Отключить возможноÑÑ‚ÑŒ Ñ€ÐµÐ´Ð°ÐºÑ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ PHP-файлов" + +#: ../admin/wp-security-filesystem-menu.php:216 +msgid "" +"Check this if you want to remove the ability for people to edit PHP files " +"via the WP dashboard" +msgstr "" +"Отметьте Ñтот чекбокÑ, чтобы запретить редактирование PHP-файлов из админ-" +"панели WordPress" + +#: ../admin/wp-security-filesystem-menu.php:260 +msgid "" +"You have successfully saved the Prevent Access to Default WP Files " +"configuration." +msgstr "Запрет к информационным файлам WordPress уÑтановлен." + +#: ../admin/wp-security-filesystem-menu.php:264 +#: ../admin/wp-security-firewall-menu.php:116 +#: ../admin/wp-security-firewall-menu.php:270 +#: ../admin/wp-security-firewall-menu.php:481 +#: ../admin/wp-security-firewall-menu.php:611 +msgid "" +"Could not write to the .htaccess file. Please check the file permissions." +msgstr "" +"Файл .htaccess недоÑтупен Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñи. ПожалуйÑта, проверьте Ñ€Ð°Ð·Ñ€ÐµÑˆÐµÐ½Ð¸Ñ Ð½Ð° " +"запиÑÑŒ Ð´Ð»Ñ Ñтого файла. " + +#: ../admin/wp-security-filesystem-menu.php:269 +msgid "WordPress Files" +msgstr "Информационные файлы WordPress" + +#: ../admin/wp-security-filesystem-menu.php:272 +#, php-format +msgid "" +"This feature allows you to prevent access to files such as %s, %s and %s " +"which are delivered with all WP installations." +msgstr "" +"Ð”Ð°Ð½Ð½Ð°Ñ Ð¾Ð¿Ñ†Ð¸Ñ Ð·Ð°Ð¿Ñ€ÐµÑ‚Ð¸Ñ‚ доÑтуп к таким файлам как %s, %s и %s, которые " +"ÑоздаютÑÑ Ð²Ð¾ Ð²Ñ€ÐµÐ¼Ñ ÑƒÑтановки WordPress и не неÑут в Ñебе ÑиÑтемной нагрузки," + +#: ../admin/wp-security-filesystem-menu.php:273 +msgid "" +"By preventing access to these files you are hiding some key pieces of " +"information (such as WordPress version info) from potential hackers." +msgstr "" +"но ограничение доÑтупа к Ñтим файлам позволит Вам Ñкрыть от хакеров важную " +"информацию (такую как верÑÐ¸Ñ WordPress)." + +#: ../admin/wp-security-filesystem-menu.php:278 +msgid "Prevent Access to Default WP Files" +msgstr "Запрет доÑтупа к информационным файлам WordPress" + +#: ../admin/wp-security-filesystem-menu.php:289 +msgid "Prevent Access to WP Default Install Files" +msgstr "" +"Запретить доÑтуп к информационным файлам, Ñоздаваемых по умолчанию при " +"уÑтановке WordPress." + +#: ../admin/wp-security-filesystem-menu.php:292 +msgid "" +"Check this if you want to prevent access to readme.html, license.txt and wp-" +"config-sample.php." +msgstr "" +"Отметьте Ñтот чекбокÑ, чтобы запретить доÑтуп к файлам readme.html, license." +"txt и wp-config-sample.php." + +#: ../admin/wp-security-filesystem-menu.php:296 +msgid "Save Setting" +msgstr "Сохранить наÑтройки" + +#: ../admin/wp-security-filesystem-menu.php:307 +msgid "System Logs" +msgstr "СиÑтемные журналы" + +#: ../admin/wp-security-filesystem-menu.php:310 +msgid "" +"Sometimes your hosting platform will produce error or warning logs in a file " +"called \"error_log\"." +msgstr "" +"ПериодичеÑки Ваш Ñервер может публиковать отчеты об ошибках в Ñпециальных " +"файлах, которые называютÑÑ Â«error_log»." + +#: ../admin/wp-security-filesystem-menu.php:311 +msgid "" +"Depending on the nature and cause of the error or warning, your hosting " +"server can create multiple instances of this file in numerous directory " +"locations of your WordPress installation." +msgstr "" +"Ð’ завиÑимоÑти от характера и причин ошибки, Ваш Ñервер может Ñоздать " +"неÑколько файлов журналов в различных каталогах Вашей уÑтановки WordPress." + +#: ../admin/wp-security-filesystem-menu.php:312 +msgid "" +"By occassionally viewing the contents of these logs files you can keep " +"informed of any underlying problems on your system which you might need to " +"address." +msgstr "" +"ПроÑÐ¼Ð°Ñ‚Ñ€Ð¸Ð²Ð°Ñ Ð²Ñ€ÐµÐ¼Ñ Ð¾Ñ‚ времени Ñти журналы Ð’Ñ‹ будете в курÑе любых оÑновных " +"проблем на Вашем Ñайте и Ñможете воÑпользоватьÑÑ Ñтой информацией Ð´Ð»Ñ Ð¸Ñ… " +"решениÑ." + +#: ../admin/wp-security-filesystem-menu.php:318 +msgid "View System Logs" +msgstr "ПроÑмотр ÑиÑтемных журналов" + +#: ../admin/wp-security-filesystem-menu.php:323 +msgid "View Latest System Logs" +msgstr "ПроÑмотр поÑледних запиÑей в ÑиÑтемных журналах" + +#: ../admin/wp-security-filesystem-menu.php:325 +msgid "Loading..." +msgstr "Загрузка..." + +#: ../admin/wp-security-filesystem-menu.php:342 +msgid "No system logs were found!" +msgstr "ЗапиÑей в ÑиÑтемных журналах не найдено!" + +#: ../admin/wp-security-filesystem-menu.php:395 +msgid "Set Recommended Permissions" +msgstr "УÑтановить рекомендуемые разрешениÑ" + +#: ../admin/wp-security-filesystem-menu.php:401 +msgid "No Action Required" +msgstr "ДейÑтвие не требуетÑÑ" + +#: ../admin/wp-security-filesystem-menu.php:434 +msgid "" +"Your system config file is already configured to disallow PHP file editing." +msgstr "" +"Ваша ÑиÑтема уже Ñконфигурирована Ñ Ð·Ð°Ð¿Ñ€ÐµÑ‚Ð¾Ð¼ на редактирование PHP-файлов." + +#: ../admin/wp-security-filesystem-menu.php:445 +#: ../admin/wp-security-filesystem-menu.php:472 +msgid "" +"Settings Saved - Your system is now configured to not allow PHP file editing." +msgstr "" +"ÐаÑтройки Ñохранены - Ваша ÑиÑтема Ñконфигурирована Ñ Ð·Ð°Ð¿Ñ€ÐµÑ‚Ð¾Ð¼ на " +"редактирование PHP-файлов." + +#: ../admin/wp-security-filesystem-menu.php:449 +#: ../admin/wp-security-filesystem-menu.php:475 +#: ../admin/wp-security-filesystem-menu.php:525 +msgid "Operation failed! Unable to modify wp-config.php file!" +msgstr "ÐžÐ¿ÐµÑ€Ð°Ñ†Ð¸Ñ Ð½Ðµ удалаÑÑŒ! Ðевозможно изменить файл wp-config.php!" + +#: ../admin/wp-security-filesystem-menu.php:463 +msgid "A backup copy of your wp-config.php file was created successfully...." +msgstr "Ð ÐµÐ·ÐµÑ€Ð²Ð½Ð°Ñ ÐºÐ¾Ð¿Ð¸Ñ Ð’Ð°ÑˆÐµÐ³Ð¾ файла wp-config.php уÑпешно Ñоздана..." + +#: ../admin/wp-security-filesystem-menu.php:506 +#: ../admin/wp-security-filesystem-menu.php:514 +msgid "" +"Your system config file is already configured to allow PHP file editing." +msgstr "" +"Ð’ Вашем файле wp-config.php уже пропиÑана конÑтанта, Ñ€Ð°Ð·Ñ€ÐµÑˆÐ°ÑŽÑ‰Ð°Ñ " +"редактирование PHP-файлов." + +#: ../admin/wp-security-filesystem-menu.php:521 +msgid "" +"Settings Saved - Your system is now configured to allow PHP file editing." +msgstr "" +"ÐаÑтройки Ñохранены - Ваша ÑиÑтема Ñконфигурирована Ñ Ñ€Ð°Ð·Ñ€ÐµÑˆÐµÐ½Ð¸ÐµÐ¼ " +"редактировать PHP-файлы." + +#: ../admin/wp-security-filesystem-menu.php:565 +#, php-format +msgid "Showing latest entries of error_log file: %s" +msgstr "ПоÑледние запиÑи об ошибках в журнале: %s" + +#: ../admin/wp-security-firewall-menu.php:112 +msgid "Settings were successfully saved" +msgstr "ÐаÑтройки уÑпешно Ñохранены" + +#: ../admin/wp-security-firewall-menu.php:121 +#: ../admin/wp-security-firewall-menu.php:486 +msgid "Firewall Settings" +msgstr "ÐаÑтройки файерволл (брандмауÑра)" + +#: ../admin/wp-security-firewall-menu.php:128 +#: ../admin/wp-security-firewall-menu.php:627 +#, php-format +msgid "" +"This should not have any impact on your site's general functionality but if " +"you wish you can take a %s of your .htaccess file before proceeding." +msgstr "" +"ÐÐºÑ‚Ð¸Ð²Ð°Ñ†Ð¸Ñ Ñтих опций не должна иметь никакого влиÑÐ½Ð¸Ñ Ð½Ð° общую " +"функциональноÑÑ‚ÑŒ Вашего Ñайта, но при желании Ð’Ñ‹ можете Ñоздать %s Вашего ." +"htaccess-файла, перед тем, как включите Ñти наÑтройки." + +#: ../admin/wp-security-firewall-menu.php:129 +msgid "" +"The features in this tab allow you to activate some basic firewall security " +"protection rules for your site." +msgstr "" +"Опции в Ñтой вкладке позволÑÑŽÑ‚ применить некоторые базовые правила защиты " +"Ð´Ð»Ñ Ð’Ð°ÑˆÐµÐ³Ð¾ Ñайта." + +#: ../admin/wp-security-firewall-menu.php:130 +msgid "" +"The firewall functionality is achieved via the insertion of special code " +"into your currently active .htaccess file." +msgstr "" +"Ð”Ð°Ð½Ð½Ð°Ñ Ñ„ÑƒÐ½ÐºÑ†Ð¸Ð¾Ð½Ð°Ð»ÑŒÐ½Ð¾ÑÑ‚ÑŒ брандмауÑра доÑтигаетÑÑ Ð¼ÐµÑ‚Ð¾Ð´Ð¾Ð¼ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð² Ваш " +"файл .htaccess некоторых Ñпециальных директив." + +#: ../admin/wp-security-firewall-menu.php:136 +msgid "Basic Firewall Settings" +msgstr "ОÑновные функции брандмауÑра" + +#: ../admin/wp-security-firewall-menu.php:144 +msgid "Enable Basic Firewall Protection" +msgstr "Ðктивировать оÑновные функции брандмауÑра" + +#: ../admin/wp-security-firewall-menu.php:147 +msgid "Check this if you want to apply basic firewall protection to your site." +msgstr "" +"Отметьте Ñтот чекбокÑ, чтобы активировать оÑновные функции файерволл на " +"Вашем Ñайте." + +#: ../admin/wp-security-firewall-menu.php:151 +msgid "" +"This setting will implement the following basic firewall protection " +"mechanisms on your site:" +msgstr "Эта Ð¾Ð¿Ñ†Ð¸Ñ Ð·Ð°Ð¿ÑƒÑтит Ñледующий базовый механизм защиты на Вашем Ñайте:" + +#: ../admin/wp-security-firewall-menu.php:152 +msgid "1) Protect your htaccess file by denying access to it." +msgstr "1) Защитит файл htaccess от неÑанкционированного доÑтупа." + +#: ../admin/wp-security-firewall-menu.php:153 +msgid "2) Disable the server signature." +msgstr "2) Отключит Ñигнатуру Ñервера в ответах на запроÑÑ‹." + +#: ../admin/wp-security-firewall-menu.php:154 +msgid "3) Limit file upload size (10MB)." +msgstr "3) Ограничит лимит на размер загружаемых файлов до 10Мб." + +#: ../admin/wp-security-firewall-menu.php:155 +msgid "4) Protect your wp-config.php file by denying access to it." +msgstr "4) Защитит Ваш файл wp-config.php от неÑанкционированного доÑтупа." + +#: ../admin/wp-security-firewall-menu.php:156 +msgid "" +"The above firewall features will be applied via your .htaccess file and " +"should not affect your site's overall functionality." +msgstr "" +"ВышеперечиÑÐ»ÐµÐ½Ð½Ð°Ñ Ñ„ÑƒÐ½ÐºÑ†Ð¸Ð¾Ð½Ð°Ð»ÑŒÐ½Ð¾ÑÑ‚ÑŒ будет доÑтигнута методом Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð² " +"файл .htaccess определенных директив и не должна повлиÑÑ‚ÑŒ на общую " +"работоÑпоÑобноÑÑ‚ÑŒ Вашего Ñайта." + +#: ../admin/wp-security-firewall-menu.php:157 +msgid "" +"You are still advised to take a backup of your active .htaccess file just in " +"case." +msgstr "" +"Однако, проÑто на вÑÑкий Ñлучай, рекомендуетÑÑ Ð¿Ñ€ÐµÐ´Ð²Ð°Ñ€Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ð¾ Ñделать " +"резервную копию файла .htaccess." + +#: ../admin/wp-security-firewall-menu.php:166 +msgid "WordPress Pingback Vulnerability Protection" +msgstr "Защита от ПингбÑк-уÑзвимоÑтей" + +#: ../admin/wp-security-firewall-menu.php:174 +msgid "Enable Pingback Protection" +msgstr "Ðктивировать ПингбÑк-защиту" + +#: ../admin/wp-security-firewall-menu.php:177 +msgid "" +"Check this if you are not using the WP XML-RPC functionality and you want to " +"enable protection against WordPress pingback vulnerabilities." +msgstr "" +"Включите Ñтот чекбокÑ, еÑли Ð’Ñ‹ хотите активировать защиту от пингбÑк-" +"уÑзвимоÑтей и не иÑпользуете в Ñвоем WordPress функциональноÑÑ‚ÑŒ XML-RPC." + +#: ../admin/wp-security-firewall-menu.php:181 +msgid "" +"This setting will add a directive in your .htaccess to disable access to the " +"WordPress xmlrpc.php file which is responsible for the XML-RPC functionality " +"such as pingbacks in WordPress." +msgstr "" +"Эта наÑтройка добавит в файл .htaccess директиву, запрещающую доÑтуп к файлу " +"xmlrpc.php, который отвечает за функциональноÑÑ‚ÑŒ XML-RPC и за пингбÑки в " +"Вашем WordPress." + +#: ../admin/wp-security-firewall-menu.php:182 +msgid "" +"Hackers can exploit various pingback vulnerabilities in the WordPress XML-" +"RPC API in a number of ways such as:" +msgstr "" +"Хакеры чаÑто пользуютÑÑ ÑƒÑзвимоÑÑ‚Ñми в Ñтой функциональноÑти, чтобы доÑтичь " +"Ñледующих целей:" + +#: ../admin/wp-security-firewall-menu.php:183 +msgid "1) Denial of Service (DoS) attacks" +msgstr "" +"1) Перегрузить Ñервер запроÑами и вывеÑти тем Ñамым его из ÑÑ‚Ñ€Ð¾Ñ (DoS-атака)" + +#: ../admin/wp-security-firewall-menu.php:184 +msgid "2) Hacking internal routers." +msgstr "2) Взломать внутренние маршрутизаторы" + +#: ../admin/wp-security-firewall-menu.php:185 +msgid "3) Scanning ports in internal networks to get info from various hosts." +msgstr "" +"3) ПроÑканировать порты внутренней Ñети, чтобы получить информацию от " +"различных хоÑтов на Ñервере." + +#: ../admin/wp-security-firewall-menu.php:186 +msgid "" +"Apart from the security protection benefit, this feature may also help " +"reduce load on your server, particularly if your site currently has a lot of " +"unwanted traffic hitting the XML-RPC API on your installation." +msgstr "" +"Помимо уÑÐ¸Ð»ÐµÐ½Ð¸Ñ Ð·Ð°Ñ‰Ð¸Ñ‚Ñ‹ Ñайта, Ñта Ð¾Ð¿Ñ†Ð¸Ñ Ð¿Ð¾Ð¼Ð¾Ð¶ÐµÑ‚ значительно Ñнизить нагрузку " +"на Ваш Ñервер, оÑобенно еÑли Ваш Ñайт получает много нежелательного трафика, " +"нацеленного на XML-RPC API." + +#: ../admin/wp-security-firewall-menu.php:187 +msgid "" +"NOTE: You should only enable this feature if you are not currently using the " +"XML-RPC functionality on your WordPress installation." +msgstr "" +"Ð’ÐИМÐÐИЕ: Эту опцию можно активировать только в том Ñлучае, еÑли Ð’Ñ‹ в Ñвоей " +"WordPress-уÑтановке не иÑпользуете функциональноÑÑ‚ÑŒ XML-RPC." + +#: ../admin/wp-security-firewall-menu.php:194 +msgid "Save Basic Firewall Settings" +msgstr "Сохранить оÑновные наÑтройки брандмауÑра" + +#: ../admin/wp-security-firewall-menu.php:266 +msgid "" +"You have successfully saved the Additional Firewall Protection configuration" +msgstr "Дополнительные наÑтройки конфигурации брандмауÑра уÑпешно Ñохранены!" + +#: ../admin/wp-security-firewall-menu.php:280 +msgid "Additional Firewall Protection" +msgstr "Дополнительные функции брандмауÑра" + +#: ../admin/wp-security-firewall-menu.php:284 +#, php-format +msgid "" +"Due to the nature of the code being inserted to the .htaccess file, this " +"feature may break some functionality for certain plugins and you are " +"therefore advised to take a %s of .htaccess before applying this " +"configuration." +msgstr "" +"Ð’ Ñилу определенных оÑобенноÑтей, Ñти правила могут нарушить " +"функциональноÑÑ‚ÑŒ некоторых плагинов, поÑтому рекомендуетÑÑ Ð´Ð¾ их Ð²ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ " +"Ñделать %s файла .htaccess." + +#: ../admin/wp-security-firewall-menu.php:286 +msgid "" +"This feature allows you to activate more advanced firewall settings to your " +"site." +msgstr "" +"Ð’ Ñтой вкладке Ð’Ñ‹ можете активировать дополнительные наÑтройки файерволл Ð´Ð»Ñ " +"защиты Вашего Ñайта." + +#: ../admin/wp-security-firewall-menu.php:287 +msgid "" +"The advanced firewall rules are applied via the insertion of special code to " +"your currently active .htaccess file." +msgstr "" +"Эти опции реализуютÑÑ Ð¼ÐµÑ‚Ð¾Ð´Ð¾Ð¼ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð½Ñ‹Ñ… правил в Ваш файл ." +"htaccess." + +#: ../admin/wp-security-firewall-menu.php:296 +msgid "Listing of Directory Contents" +msgstr "ПроÑмотр Ñодержимого директорий" + +#: ../admin/wp-security-firewall-menu.php:305 +msgid "Disable Index Views" +msgstr "Отключить возможноÑÑ‚ÑŒ проÑмотра директорий" + +#: ../admin/wp-security-firewall-menu.php:308 +msgid "Check this if you want to disable directory and file listing." +msgstr "" +"Включите Ñтот чекбокÑ, чтобы предотвратить Ñвободный проÑмотр директорий на " +"Вашем Ñайте" + +#: ../admin/wp-security-firewall-menu.php:313 +msgid "" +"By default, an Apache server will allow the listing of the contents of a " +"directory if it doesn't contain an index.php file." +msgstr "" +"По умолчанию Ñервер Apache позволÑет видет Ñодержимое директорий, еÑли в них " +"нет файла index.php или index.html." + +#: ../admin/wp-security-firewall-menu.php:315 +msgid "This feature will prevent the listing of contents for all directories." +msgstr "Эта Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ Ð·Ð°Ð¿Ñ€ÐµÑ‰Ð°ÐµÑ‚ такую возможноÑÑ‚ÑŒ." + +#: ../admin/wp-security-firewall-menu.php:317 +msgid "" +"NOTE: In order for this feature to work \"AllowOverride\" must be enabled in " +"your httpd.conf file. Ask your hosting provider to check this if you don't " +"have access to httpd.conf" +msgstr "" +"Ð’ÐИМÐÐИЕ: Ð”Ð»Ñ Ñ‚Ð¾Ð³Ð¾, чтобы Ñта Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ð°Ð»Ð°, в Вашем файле httpd.conf " +"должна быть включена директива «AllowOverride». ЕÑли у Ð’Ð°Ñ Ð½ÐµÑ‚ доÑтупа к " +"файлу httpd.conf, обратитеÑÑŒ к Ñвоему хоÑтинг-провайдеру." + +#: ../admin/wp-security-firewall-menu.php:326 +msgid "Trace and Track" +msgstr "HTTP-траÑÑировка" + +#: ../admin/wp-security-firewall-menu.php:335 +msgid "Disable Trace and Track" +msgstr "Отключить http-траÑÑировку" + +#: ../admin/wp-security-firewall-menu.php:338 +msgid "Check this if you want to disable trace and track." +msgstr "Отметьте Ñтот чекбокÑ, чтобы защититьÑÑ Ð¾Ñ‚ http-траÑÑировки." + +#: ../admin/wp-security-firewall-menu.php:343 +msgid "" +"HTTP Trace attack (XST) can be used to return header requests and grab " +"cookies and other information." +msgstr "" +"Ðтаки на оÑнове HTTP-траÑÑировки (межÑайтовой траÑÑировки, или XST), " +"применÑÑŽÑ‚ÑÑ, чтобы получить информацию из возвращаемых Ñервером http-" +"заголовков и похитить куки и другую информацию." + +#: ../admin/wp-security-firewall-menu.php:345 +msgid "" +"This hacking technique is usually used together with cross site scripting " +"attacks (XSS)." +msgstr "" +"Эта хакерÑÐºÐ°Ñ Ñ‚ÐµÑ…Ð½Ð¾Ð»Ð¾Ð³Ð¸Ñ Ð¾Ð±Ñ‹Ñ‡Ð½Ð¾ применÑетÑÑ Ð² Ñочетании Ñ Ð¼ÐµÐ¶Ñайтовым " +"Ñкриптингом (XSS)." + +#: ../admin/wp-security-firewall-menu.php:347 +msgid "" +"Disabling trace and track on your site will help prevent HTTP Trace attacks." +msgstr "Ð”Ð°Ð½Ð½Ð°Ñ Ð¾Ð¿Ñ†Ð¸Ñ Ð¿Ñ€ÐµÐ´Ð½Ð°Ð·Ð½Ð°Ñ‡ÐµÐ½Ð° как раз Ð´Ð»Ñ Ð·Ð°Ñ‰Ð¸Ñ‚Ñ‹ от Ñтого типа атак." + +#: ../admin/wp-security-firewall-menu.php:356 +msgid "Proxy Comment Posting" +msgstr "Комментарии через ПрокÑи-Ñерверы" + +#: ../admin/wp-security-firewall-menu.php:366 +msgid "Forbid Proxy Comment Posting" +msgstr "Запретить комментарии через прокÑи" + +#: ../admin/wp-security-firewall-menu.php:369 +msgid "Check this if you want to forbid proxy comment posting." +msgstr "Отметьте Ñтот чекбокÑ, чтобы запретить комментирование через прокÑи." + +#: ../admin/wp-security-firewall-menu.php:374 +msgid "" +"This setting will deny any requests that use a proxy server when posting " +"comments." +msgstr "" +"Эта Ð¾Ð¿Ñ†Ð¸Ñ Ð¾Ñ‚ÐºÐ»Ð¾Ð½Ð¸Ñ‚ любые запроÑÑ‹, иÑпользующие прокÑи-Ñервер при отправке " +"комментариев." + +#: ../admin/wp-security-firewall-menu.php:375 +msgid "" +"By forbidding proxy comments you are in effect eliminating some SPAM and " +"other proxy requests." +msgstr "" +"Это уÑилит защиту от Ñпама в комментариÑÑ… и от других нежелательных прокÑи-" +"запроÑов." + +#: ../admin/wp-security-firewall-menu.php:384 +msgid "Bad Query Strings" +msgstr "Ðежелательные Ñтроки в запроÑах" + +#: ../admin/wp-security-firewall-menu.php:394 +msgid "Deny Bad Query Strings" +msgstr "Запретить вредоноÑные Ñтроки в запроÑах" + +#: ../admin/wp-security-firewall-menu.php:397 +msgid "This will help protect you against malicious queries via XSS." +msgstr "Включите Ñтот чекбокÑ, чтобы активировать защиту от XSS-атак." + +#: ../admin/wp-security-firewall-menu.php:402 +msgid "" +"This feature will write rules in your .htaccess file to prevent malicious " +"string attacks on your site using XSS." +msgstr "" +"Эта Ð¾Ð¿Ñ†Ð¸Ñ Ð¿Ñ€ÐµÐ´Ð½Ð°Ð·Ð½Ð°Ñ‡ÐµÐ½Ð° Ð´Ð»Ñ Ð·Ð°Ñ‰Ð¸Ñ‚Ñ‹ от ввода вредоноÑного кода при XSS-атаках." + +#: ../admin/wp-security-firewall-menu.php:403 +msgid "" +"NOTE: Some of these strings might be used for plugins or themes and hence " +"this might break some functionality." +msgstr "" +"Ð’ÐИМÐÐИЕ: Ðекоторые из блокируемых Ñтрок могут иÑпользоватьÑÑ Ð² каких-то " +"плагинах или Вашей теме, и, Ñледовательно, Ð´Ð°Ð½Ð½Ð°Ñ Ð¾Ð¿Ñ†Ð¸Ñ Ð¼Ð¾Ð¶ÐµÑ‚ нарушить их " +"функциональноÑÑ‚ÑŒ." + +#: ../admin/wp-security-firewall-menu.php:404 +#: ../admin/wp-security-firewall-menu.php:434 +msgid "" +"You are therefore strongly advised to take a backup of your active .htaccess " +"file before applying this feature." +msgstr "" +"ОБЯЗÐТЕЛЬÐО СДЕЛÐЙТЕ РЕЗЕРВÐУЮ КОПИЮ Ð’ÐШЕГО .HTACCESS-ФÐЙЛÐ, ДО ТОГО, КÐК ВЫ " +"ÐКТИВИРУЕТЕ ЭТУ ФУÐКЦИЮ! " + +#: ../admin/wp-security-firewall-menu.php:413 +msgid "Advanced Character String Filter" +msgstr "Ð”Ð¾Ð¿Ð¾Ð»Ð½Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ð°Ñ Ñ„Ð¸Ð»ÑŒÑ‚Ñ€Ð°Ñ†Ð¸Ñ Ñимволов" + +#: ../admin/wp-security-firewall-menu.php:423 +msgid "Enable Advanced Character String Filter" +msgstr "Ðктивировать дополнительную фильтрацию Ñимволов" + +#: ../admin/wp-security-firewall-menu.php:426 +msgid "This will block bad character matches from XSS." +msgstr "Включите Ñтот чекбокÑ, чтобы защитить Ñайт от XSS-атак." + +#: ../admin/wp-security-firewall-menu.php:431 +msgid "" +"This is an advanced character string filter to prevent malicious string " +"attacks on your site coming from Cross Site Scripting (XSS)." +msgstr "" +"Это Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ð°Ñ Ñ„Ð¸Ð»ÑŒÑ‚Ñ€Ð°Ñ†Ð¸Ñ Ñимволов Ð´Ð»Ñ Ð±Ð»Ð¾ÐºÐ¸Ñ€Ð¾Ð²ÐºÐ¸ вредоноÑных команд, " +"иÑпользуемых в XSS-атаках (межÑайтовый Ñкриптинг)." + +#: ../admin/wp-security-firewall-menu.php:432 +msgid "" +"This setting matches for common malicious string patterns and exploits and " +"will produce a 403 error for the hacker attempting the query." +msgstr "" +"Ð”Ð°Ð½Ð½Ð°Ñ Ð¾Ð¿Ñ†Ð¸Ñ Ñ„Ð¸ÐºÑирует раÑпроÑтраненные образцы вредоноÑного кода и " +"ÑкÑплойты и вернет хакеру Ñообщение об ошибке 403 (доÑтуп запрещен)." + +#: ../admin/wp-security-firewall-menu.php:433 +msgid "NOTE: Some strings for this setting might break some functionality." +msgstr "" +"Ð’ÐИМÐÐИЕ: Ðекоторые директивы в Ñтих уÑтановках могут нарушить " +"функциональноÑÑ‚ÑŒ Ñайта (Ñто завиÑит от хоÑтинг-провайдера)." + +#: ../admin/wp-security-firewall-menu.php:442 +msgid "Save Additional Firewall Settings" +msgstr "Сохранить дополнительные наÑтройки брандмауÑра" + +#: ../admin/wp-security-firewall-menu.php:477 +msgid "You have successfully saved the 5G Firewall Protection configuration" +msgstr "Ð’Ñ‹ уÑпешно Ñохранили наÑтройки 5G-защиты" + +#: ../admin/wp-security-firewall-menu.php:490 +#, php-format +msgid "" +"This feature allows you to activate the 5G firewall security protection " +"rules designed and produced by %s." +msgstr "" +"Эта Ð¾Ð¿Ñ†Ð¸Ñ Ð¿Ð¾Ð·Ð²Ð¾Ð»Ñет включить функции защиты «5G», разработанные и " +"произведенные %s." + +#: ../admin/wp-security-firewall-menu.php:491 +msgid "" +"The 5G Blacklist is a simple, flexible blacklist that helps reduce the " +"number of malicious URL requests that hit your website." +msgstr "" +"5G-брандмауÑÑ€ (файерволл) - Ñто проÑÑ‚Ð°Ñ Ð¸ Ð³Ð¸Ð±ÐºÐ°Ñ Ð·Ð°Ñ‰Ð¸Ñ‚Ð°, Ð¿Ð¾Ð¼Ð¾Ð³Ð°ÑŽÑ‰Ð°Ñ " +"уменьшить количеÑтво вредоноÑных запроÑов, добавлÑемых в URL Вашего Ñайта." + +#: ../admin/wp-security-firewall-menu.php:492 +msgid "" +"The added advantage of applying the 5G firewall to your site is that it has " +"been tested and confirmed by the people at PerishablePress.com to be an " +"optimal and least disruptive set of .htaccess security rules for general WP " +"sites running on an Apache server or similar." +msgstr "" +"Дополнительным преимущеÑтвом 5G-защиты ÑвлÑетÑÑ Ñ‚Ð¾Ñ‚ факт, что она была " +"тщательно протеÑтирована и подтверждена профеÑÑионалами из PerishablePress." +"com, как наименее разрушительный набор директив безопаÑноÑти Ð´Ð»Ñ Ñ„Ð°Ð¹Ð»Ð° ." +"htaccess, на Ñайтах, работающих на Ñервере Apache или аналогичных." + +#: ../admin/wp-security-firewall-menu.php:493 +#, php-format +msgid "" +"Therefore the 5G firewall rules should not have any impact on your site's " +"general functionality but if you wish you can take a %s of your .htaccess " +"file before proceeding." +msgstr "" +"Следовательно, Ð´Ð°Ð½Ð½Ð°Ñ Ð·Ð°Ñ‰Ð¸Ñ‚Ð° не должна иметь никакого влиÑÐ½Ð¸Ñ Ð½Ð° общую " +"функциональноÑÑ‚ÑŒ Вашего Ñайта, но, тем не менее, при желании Ð’Ñ‹ можете " +"Ñоздать %s Вашего .htaccess-файла, до того, как активируете Ñту защиту." + +#: ../admin/wp-security-firewall-menu.php:499 +msgid "5G Blacklist/Firewall Settings" +msgstr "ÐаÑтройки 5G Файерволл" + +#: ../admin/wp-security-firewall-menu.php:511 +msgid "Enable 5G Firewall Protection" +msgstr "Включить 5G Файерволл" + +#: ../admin/wp-security-firewall-menu.php:514 +msgid "" +"Check this if you want to apply the 5G Blacklist firewall protection from " +"perishablepress.com to your site." +msgstr "Включите Ñтот чекбокÑ, чтобы активировать 5G-защиту на Вашем Ñайте." + +#: ../admin/wp-security-firewall-menu.php:518 +msgid "" +"This setting will implement the 5G security firewall protection mechanisms " +"on your site which include the following things:" +msgstr "" +"Эта Ð¾Ð¿Ñ†Ð¸Ñ Ð°ÐºÑ‚Ð¸Ð²Ð¸Ñ€ÑƒÐµÑ‚ 5G-защиту на Вашем Ñайте, ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ Ð²ÐºÐ»ÑŽÑ‡Ð°ÐµÑ‚ Ñледующее:" + +#: ../admin/wp-security-firewall-menu.php:519 +msgid "1) Block forbidden characters commonly used in exploitative attacks." +msgstr "" +"1) Блокировку запрещенных Ñимволов, обычно иÑпользуемых в хакерÑких атаках." + +#: ../admin/wp-security-firewall-menu.php:520 +msgid "2) Block malicious encoded URL characters such as the \".css(\" string." +msgstr "" +"2) Блокировку вредоноÑных закодированных Ñтрок в URL, таких как «.css(» и Ñ‚." +"п." + +#: ../admin/wp-security-firewall-menu.php:521 +msgid "" +"3) Guard against the common patterns and specific exploits in the root " +"portion of targeted URLs." +msgstr "" +"3) Защиту от раÑпроÑтраненных шаблонов вредоноÑного кода и ÑпецифичеÑких " +"ÑкÑплойтов (поÑледовательноÑтей команд, иÑпользующих извеÑтные уÑзвимоÑти) в " +"URL." + +#: ../admin/wp-security-firewall-menu.php:522 +msgid "" +"4) Stop attackers from manipulating query strings by disallowing illicit " +"characters." +msgstr "4) Блокировку запрещенных Ñимволов в параметрах запроÑов." + +#: ../admin/wp-security-firewall-menu.php:523 +msgid "....and much more." +msgstr "...и многое другое." + +#: ../admin/wp-security-firewall-menu.php:529 +msgid "Save 5G Firewall Settings" +msgstr "Сохранить наÑтройки 5G Файерволл" + +#: ../admin/wp-security-firewall-menu.php:557 +msgid "" +"Settings have not been saved - your secret word must consist only of " +"alphanumeric characters, ie, letters and/or numbers only!" +msgstr "" +"ÐаÑтройки не ÑохранилиÑÑŒ - Ñекретное Ñлово должно ÑоÑтоÑÑ‚ÑŒ только из " +"латинÑких букв и/или цифр!" + +#: ../admin/wp-security-firewall-menu.php:575 +msgid "" +"You have successfully enabled the cookie based brute force prevention feature" +msgstr "Ð’Ñ‹ уÑпешно активировали защиту от брутфорÑ-атак" + +#: ../admin/wp-security-firewall-menu.php:576 +msgid "" +"From now on you will need to log into your WP Admin using the following URL:" +msgstr "С Ñтого момента заходите на Вашу Ñтраницу авторизации по Ñтому адреÑу:" + +#: ../admin/wp-security-firewall-menu.php:578 +msgid "" +"It is important that you save this URL value somewhere in case you forget " +"it, OR," +msgstr "" +"Очень важно, чтобы Ð’Ñ‹ Ñохранили Ñтот URL где-нибудь в надежном меÑте, на " +"Ñлучай, еÑли Ð’Ñ‹ его забудете, или" + +#: ../admin/wp-security-firewall-menu.php:579 +#, php-format +msgid "simply remember to add a \"?%s=1\" to your current site URL address." +msgstr "проÑто запомните, что к адреÑу Вашего Ñайта надо добавить «?%s=1»." + +#: ../admin/wp-security-firewall-menu.php:585 +msgid "" +"You have successfully saved cookie based brute force prevention feature " +"settings." +msgstr "ÐаÑтройки Ñохранены!" + +#: ../admin/wp-security-firewall-menu.php:621 +msgid "Brute Force Prevention Firewall Settings" +msgstr "ÐаÑтройки Файерволла Ð´Ð»Ñ Ð·Ð°Ñ‰Ð¸Ñ‚Ñ‹ от БрутфорÑ-атак" + +#: ../admin/wp-security-firewall-menu.php:628 +msgid "" +"A Brute Force Attack is when a hacker tries many combinations of usernames " +"and passwords until they succeed in guessing the right combination." +msgstr "" +"БрутфорÑ-атакой называетÑÑ Ð¼Ð½Ð¾Ð³Ð¾ÐºÑ€Ð°Ñ‚Ð½Ñ‹Ð¹ перебор различных Ñочетаний имен " +"пользователей и паролей, до тех пор, пока не будет найдена их Ð¿Ñ€Ð°Ð²Ð¸Ð»ÑŒÐ½Ð°Ñ " +"комбинациÑ." + +#: ../admin/wp-security-firewall-menu.php:629 +msgid "" +"Due to the fact that at any one time there may be many concurrent login " +"attempts occurring on your site via malicious automated robots, this also " +"has a negative impact on your server's memory and performance." +msgstr "" +"Ð’ ÑвÑзи Ñ Ñ‚ÐµÐ¼, что в любой момент времени может проиÑходить большое " +"количеÑтво попыток входа на Ваш Ñайт, оÑущеÑтвлÑемых Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ вредоноÑных " +"программ-роботов, Ñто также оказывает негативное влиÑние на Ваш Ñервер, так " +"как отнимает реÑурÑÑ‹ памÑти и Ñнижает его производительноÑÑ‚ÑŒ." + +#: ../admin/wp-security-firewall-menu.php:630 +msgid "" +"The features in this tab will stop the majority of Brute Force Login Attacks " +"at the .htaccess level thus providing even better protection for your WP " +"login page and also reducing the load on your server because the system does " +"not have to run PHP code to process the login attempts." +msgstr "" +"Функции в Ñтой вкладке оÑтановÑÑ‚ большинÑтво брутфорÑ-атак на уровне файла ." +"htaccess, обеÑÐ¿ÐµÑ‡Ð¸Ð²Ð°Ñ Ñ‚ÐµÐ¼ Ñамым уÑиленную защиту Вашей Ñтраницы авторизации " +"и ÑÐ½Ð¸Ð¶Ð°Ñ Ð½Ð°Ð³Ñ€ÑƒÐ·ÐºÑƒ на Ñервер, так как ÑиÑтема при Ñтом не запуÑкает PHP код " +"Ð´Ð»Ñ Ð¾Ð±Ñ€Ð°Ð±Ð¾Ñ‚ÐºÐ¸ попыток входа в ÑиÑтему." + +#: ../admin/wp-security-firewall-menu.php:636 +msgid "Cookie Based Brute Force Login Prevention" +msgstr "Защита от брутфорÑ-атак, оÑÐ½Ð¾Ð²Ð°Ð½Ð½Ð°Ñ Ð½Ð° иÑпользовании куки" + +#: ../admin/wp-security-firewall-menu.php:647 +msgid "Enable Brute Force Attack Prevention" +msgstr "Ðктивировать защиту от брутфорÑ-атак" + +#: ../admin/wp-security-firewall-menu.php:650 +msgid "" +"Check this if you want to protect your login page from Brute Force Attack." +msgstr "" +"Отметьте, еÑли Ð’Ñ‹ хотите защитить Вашу форму авторизации от брутфорÑ-атак." + +#: ../admin/wp-security-firewall-menu.php:655 +msgid "" +"This feature will deny access to your WordPress login page for all people " +"except those who have a special cookie in their browser." +msgstr "" +"Эта Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ Ð·Ð°Ð¿Ñ€ÐµÑ‚Ð¸Ñ‚ доÑтуп к Вашей Ñтранице авторизации любому " +"пользователю, у которого в браузере нет Ñпециального куки-файла." + +#: ../admin/wp-security-firewall-menu.php:657 +msgid "To use this feature do the following:" +msgstr "Ð”Ð»Ñ Ð°ÐºÑ‚Ð¸Ð²Ð°Ñ†Ð¸Ð¸ Ñтой опции Ñделайте Ñледующее:" + +#: ../admin/wp-security-firewall-menu.php:659 +msgid "1) Enable the checkbox." +msgstr "1) Включите Ñтот чекбокÑ." + +#: ../admin/wp-security-firewall-menu.php:661 +msgid "" +"2) Enter a secret word consisting of alphanumeric characters which will be " +"difficult to guess. This secret word will be useful whenever you need to " +"know the special URL which you will use to access the login page (see point " +"below)." +msgstr "" +"2) Введите Ñекретное Ñлово, ÑоÑтоÑщее из буквенно-цифровых Ñимволов (буквы " +"латинÑкие), которое будет трудно разгадать. Это Ñлово будет иÑпользовано, " +"чтобы Ñоздать Ð´Ð»Ñ Ð’Ð°Ñ Ñпециальный URL Ð´Ð»Ñ Ð´Ð¾Ñтупа к Ñтранице авторизации " +"(Ñмотрите Ñледующий пункт)." + +#: ../admin/wp-security-firewall-menu.php:663 +msgid "" +"3) You will then be provided with a special login URL. You will need to use " +"this URL to login to your WordPress site instead of the usual login URL. " +"NOTE: The system will deposit a special cookie in your browser which will " +"allow you access to the WordPress administration login page." +msgstr "" +"3) ПоÑле ÑÐ¾Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ Ñтих наÑтроек Ð’Ñ‹ получите Ñпециальный URL Ð´Ð»Ñ " +"авторизации, о котором больше никто не будет знать. Этот URL Ð’Ñ‹ должны " +"будете иÑпользовать вмеÑто Ñтандартного URL к Ñтранице авторизации. " +"Ð’ÐИМÐÐИЕ: Плагин помеÑтит в Ваш браузер Ñпециальный куки-файл, который будет " +"Ñлужить Вашим перÑональным пропуÑком в админ-панель блога." + +#: ../admin/wp-security-firewall-menu.php:665 +msgid "" +"Any person trying to access your login page who does not have the special " +"cookie in their browser will be automatically blocked." +msgstr "" +"Любой, кто попытаетÑÑ Ð¿Ð¾Ð¿Ð°ÑÑ‚ÑŒ на Вашу Ñтраницу авторизации, не Ð¸Ð¼ÐµÑ " +"Ñпециального куки-файла в Ñвоем браузере, будет автоматичеÑки заблокирован." + +#: ../admin/wp-security-firewall-menu.php:672 +msgid "Secret Word" +msgstr "Секретное Ñлово" + +#: ../admin/wp-security-firewall-menu.php:674 +msgid "" +"Choose a secret word consisting of alphanumeric characters which you can use " +"to access your special URL. Your are highly encouraged to choose a word " +"which will be difficult to guess." +msgstr "" +"Введите Ñекретное Ñлово (только латинÑкие буквы и цифры). Подберите такое " +"Ñлово, чтобы его было трудно угадать." + +#: ../admin/wp-security-firewall-menu.php:678 +msgid "Re-direct URL" +msgstr "URL перенаправлениÑ" + +#: ../admin/wp-security-firewall-menu.php:682 +msgid "" +"Specify a URL to redirect a hacker to when they try to access your WordPress " +"login page." +msgstr "" +"Введите URL, на который будет перенаправлÑÑ‚ÑŒÑÑ Ñ…Ð°ÐºÐµÑ€ при попытках получить " +"доÑтуп к Вашей форме авторизации." + +#: ../admin/wp-security-firewall-menu.php:689 +msgid "" +"The URL specified here can be any site's URL and does not have to be your " +"own. For example you can be as creative as you like and send hackers to the " +"CIA or NSA home page." +msgstr "" +"URL, который должен быть в Ñтом поле, может быть адреÑом любого Ñайта или " +"Ñтраницы - не обÑзательно Вашего. Ð’Ñ‹ можете проÑвить фантазию и " +"перенаправлÑÑ‚ÑŒ хакеров, например, на Ñайт ЦРУ или ФСБ." + +#: ../admin/wp-security-firewall-menu.php:691 +msgid "" +"This field will default to: http://127.0.0.1 if you do not enter a value." +msgstr "" +"ЕÑли Ð’Ñ‹ ничего не будете вводить в Ñто поле, будет иÑпользовано значение по " +"умолчанию, Ñ‚.е. «http://127.0.0.1»." + +#: ../admin/wp-security-firewall-menu.php:693 +msgid "Useful Tip:" +msgstr "ÐŸÐ¾Ð»ÐµÐ·Ð½Ð°Ñ Ð¿Ð¾Ð´Ñказка:" + +#: ../admin/wp-security-firewall-menu.php:695 +msgid "" +"It's a good idea to not redirect attempted brute force login attempts to " +"your site because it increases the load on your server." +msgstr "" +"Правильно будет не перенаправлÑÑ‚ÑŒ хакера при неудачных попытках брутфорÑ-" +"атак на другие Ñтраницы Вашего Ñайта, так как Ñто только увеличит нагрузку " +"на Ваш Ñервер." + +#: ../admin/wp-security-firewall-menu.php:697 +msgid "" +"Redirecting a hacker or malicious bot back to \"http://127.0.0.1\" is ideal " +"because it deflects them back to their own local host and puts the load on " +"their server instead of yours." +msgstr "" +"ПереадреÑÐ°Ñ†Ð¸Ñ Ñ…Ð°ÐºÐµÑ€Ð° или вредоноÑного бота на «http://127.0.0.1» - идеальный " +"вариант, Ñ‚.к. возвращает его обратно на его ÑобÑтвенный локальный хоÑÑ‚ и " +"нагружает его Ñервер вмеÑто Вашего." + +#: ../admin/wp-security-firewall-menu.php:704 +msgid "My Site Has Posts Or Pages Which Are Password Protected" +msgstr "" +"Ðа моем Ñайте еÑÑ‚ÑŒ поÑÑ‚Ñ‹ или Ñтраницы, закрытые вÑтроенной функцией " +"Wordpress Ð´Ð»Ñ Ð·Ð°Ñ‰Ð¸Ñ‚Ñ‹ контента паролем " + +#: ../admin/wp-security-firewall-menu.php:707 +msgid "" +"Check this if you are using the native WordPress password protection feature " +"for some or all of your blog posts or pages." +msgstr "" +"Включите Ñту опцию, еÑли Ð’Ñ‹ иÑпользуете вÑтроенную функцию WordPress Ð´Ð»Ñ " +"защиты поÑтов или Ñтраниц паролÑми." + +#: ../admin/wp-security-firewall-menu.php:712 +msgid "" +"In the cases where you are protecting some of your posts or pages using the " +"in-built WordPress password protection feature, a few extra lines of " +"directives and exceptions need to be added to your .htacces file so that " +"people trying to access pages are not automatically blocked." +msgstr "" +"Ð’ Ñлучае, еÑли Ð’Ñ‹ защищаете Ñвои поÑÑ‚Ñ‹ и Ñтраницы паролÑми, иÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÑ " +"ÑоответÑтвующую вÑтроенную функцию WordPress, в файл .htacces необходимо " +"добавить некоторые дополнительные директивы." + +#: ../admin/wp-security-firewall-menu.php:714 +msgid "" +"By enabling this checkbox the plugin will add the necessary rules and " +"exceptions to your .htacces file so that people trying to access these pages " +"are not automatically blocked." +msgstr "" +"Включение Ñтой опции добавит в файл .htacces необходимые правила, чтобы " +"люди, пытающиеÑÑ Ð¿Ð¾Ð»ÑƒÑ‡Ð¸Ñ‚ÑŒ доÑтуп к Ñтим Ñтраницам, не были автоматичеÑки " +"заблокированы. " + +#: ../admin/wp-security-firewall-menu.php:716 +msgid "Helpful Tip:" +msgstr "ÐŸÐ¾Ð»ÐµÐ·Ð½Ð°Ñ Ð¿Ð¾Ð´Ñказка:" + +#: ../admin/wp-security-firewall-menu.php:718 +msgid "" +"If you do not use the WordPress password protection feature for your posts " +"or pages then it is highly recommended that you leave this checkbox disabled." +msgstr "" +"ЕÑли Ð’Ñ‹ не иÑпользуете вÑтроенную функцию WordPress Ð´Ð»Ñ Ð·Ð°Ñ‰Ð¸Ñ‚Ñ‹ поÑтов или " +"Ñтраниц паролÑми, крайне рекомендуетÑÑ Ð¾Ñтавить Ñтот Ñ‡ÐµÐºÐ±Ð¾ÐºÑ Ð½ÐµÐ¾Ñ‚Ð¼ÐµÑ‡ÐµÐ½Ð½Ñ‹Ð¼." + +#: ../admin/wp-security-firewall-menu.php:733 +msgid "The cookie test was successful. You can now enable this feature." +msgstr "Куки-теÑÑ‚ прошел уÑпешно - можете активировать Ñту опцию." + +#: ../admin/wp-security-firewall-menu.php:736 +msgid "Save Feature Settings" +msgstr "Сохранить наÑтройки" + +#: ../admin/wp-security-firewall-menu.php:743 +msgid "" +"The cookie test failed on this server. So this feature cannot be used on " +"this site." +msgstr "Куки-теÑÑ‚ негативный - иÑпользование Ñтой функции невозможно." + +#: ../admin/wp-security-firewall-menu.php:749 +msgid "" +"Before using this feature you are required to perform a cookie test first. " +"This is to make sure that your browser cookie is working correctly and that " +"you won't lock yourself out." +msgstr "" +"Перед включением Ñтой опции необходимо протеÑтировать куки, чтобы убедитьÑÑ " +"в корректной обработке куки-файлов Вашим браузером и, тем Ñамым, избежать " +"блокировки Вашего ÑобÑтвенного аккаунта." + +#: ../admin/wp-security-firewall-menu.php:751 +msgid "Perform Cookie Test" +msgstr "ПротеÑтировать Куки" + +#: ../admin/wp-security-list-acct-activity.php:79 +#: ../admin/wp-security-list-comment-spammer-ip.php:76 +#: ../admin/wp-security-list-locked-ip.php:80 +#: ../admin/wp-security-list-locked-ip.php:91 +#: ../admin/wp-security-list-login-fails.php:78 +msgid "Please select some records using the checkboxes" +msgstr "ПожалуйÑта, выберите запиÑи, отметив ÑоответÑтвующие чекбокÑÑ‹" + +#: ../admin/wp-security-list-acct-activity.php:107 +#: ../admin/wp-security-list-login-fails.php:107 +msgid "The selected entries were deleted successfully!" +msgstr "Выбранные запиÑи удалены!" + +#: ../admin/wp-security-list-acct-activity.php:120 +#: ../admin/wp-security-list-login-fails.php:119 +msgid "The selected entry was deleted successfully!" +msgstr "Ð’Ñ‹Ð±Ñ€Ð°Ð½Ð½Ð°Ñ Ð·Ð°Ð¿Ð¸ÑÑŒ удалена!" + +#: ../admin/wp-security-list-comment-spammer-ip.php:129 +msgid "" +"The selected IP addresses were saved in the blacklist configuration settings." +msgstr "Указанные IP-адреÑа внеÑены в черный ÑпиÑок." + +#: ../admin/wp-security-list-comment-spammer-ip.php:143 +msgid "" +"The .htaccess file was successfully modified to include the selected IP " +"addresses." +msgstr "Файл .htaccess уÑпешно изменен - в него внеÑены указанные IP-адреÑа." + +#: ../admin/wp-security-list-comment-spammer-ip.php:149 +msgid "" +"NOTE: The .htaccess file was not modified because you have disabled the " +"\"Enable IP or User Agent Blacklisting\" check box." +msgstr "" +"Ð’ÐИМÐÐИЕ: файл .htaccess не был изменен, так как Ð¾Ð¿Ñ†Ð¸Ñ Â«Ð’ÐµÑти Черный ÑпиÑок» " +"неактивна." + +#: ../admin/wp-security-list-comment-spammer-ip.php:150 +#, php-format +msgid "" +"To block these IP addresses you will need to enable the above flag in the %s " +"menu" +msgstr "" +"Чтобы заблокировать Ñти IP-адреÑа, необходимо уÑтановить ÑоответÑтвующий " +"флаг в %s меню" + +#: ../admin/wp-security-list-locked-ip.php:115 +#: ../admin/wp-security-user-login-menu.php:439 +msgid "The selected IP ranges were unlocked successfully!" +msgstr "Указанный диапазон IP-адреÑов разблокирован!" + +#: ../admin/wp-security-list-locked-ip.php:124 +#: ../admin/wp-security-user-login-menu.php:448 +msgid "The selected IP range was unlocked successfully!" +msgstr "Указанный диапазон IP-адреÑов разблокирован!" + +#: ../admin/wp-security-maintenance-menu.php:82 +msgid "Site lockout feature settings saved!" +msgstr "Сайт переведен в режим обÑлуживаниÑ!" + +#: ../admin/wp-security-maintenance-menu.php:87 +msgid "General Visitor Lockout" +msgstr "Блокирование доÑтупа поÑетителей к Ñайту" + +#: ../admin/wp-security-maintenance-menu.php:93 +msgid "" +"This feature allows you to put your site into \"maintenance mode\" by " +"locking down the front-end to all visitors except logged in users with super " +"admin privileges." +msgstr "" +"Эта Ð¾Ð¿Ñ†Ð¸Ñ Ð¿Ð¾Ð·Ð²Ð¾Ð»Ñет перевеÑти Ваш Ñайт в режим обÑлуживаниÑ, Ñделав " +"невозможным проÑмотр Ñайта поÑетителÑми, за иÑключением админиÑтраторов." + +#: ../admin/wp-security-maintenance-menu.php:94 +msgid "" +"Locking your site down to general visitors can be useful if you are " +"investigating some issues on your site or perhaps you might be doing some " +"maintenance and wish to keep out all traffic for security reasons." +msgstr "" +"Это может быть очень полезным, еÑли Ð’Ñ‹ что-то наÑтраиваете, менÑете дизайн, " +"проверÑете работу плагинов и Ñ‚.д. и Ñ‚.п." + +#: ../admin/wp-security-maintenance-menu.php:99 +msgid "Enable Front-end Lockout" +msgstr "Включить режим обÑлуживаниÑ" + +#: ../admin/wp-security-maintenance-menu.php:102 +msgid "" +"Check this if you want all visitors except those who are logged in as " +"administrator to be locked out of the front-end of your site." +msgstr "" +"Включите Ñту опцию, еÑли Ð’Ñ‹ хотите, чтобы обычные поÑетители не могли " +"проÑматривать Ваш Ñайт - Ñто Ñмогут делать только админиÑтраторы." + +#: ../admin/wp-security-maintenance-menu.php:106 +msgid "Enter a Message:" +msgstr "Введите Ñообщение:" + +#: ../admin/wp-security-maintenance-menu.php:118 +msgid "" +"Enter a message you wish to display to visitors when your site is in " +"maintenance mode." +msgstr "Введите Ñообщение" + +#: ../admin/wp-security-maintenance-menu.php:125 +msgid "Save Site Lockout Settings" +msgstr "Сохранить наÑтройки блокировки Ñайта" + +#: ../admin/wp-security-settings-menu.php:81 +msgid "All the security features have been disabled successfully!" +msgstr "Ð’Ñе функции безопаÑноÑти уÑпешно деактивированы!" + +#: ../admin/wp-security-settings-menu.php:90 +msgid "WP Security Plugin" +msgstr "Плагин WP Security" + +#: ../admin/wp-security-settings-menu.php:92 +msgid "" +"Thank you for using our WordPress security plugin. There are a lot of " +"security features in this plugin." +msgstr "СпаÑибо, что иÑпользуете плагин WordPress security!" + +#: ../admin/wp-security-settings-menu.php:93 +msgid "" +"Go through each menu items and enable the security options to add more " +"security to your site." +msgstr "" +"ВоÑпользуйтеÑÑŒ меню плагина, чтобы активировать функции безопаÑноÑти и " +"защитить Ñвой Ñайт." + +#: ../admin/wp-security-settings-menu.php:94 +msgid "" +"It is a good practice to take a backup of your .htaccess file, database and " +"wp-config.php file before activating the security features. This plugin has " +"options that you can use to backup those resources easily." +msgstr "" +"Перед тем, как Ð’Ñ‹ активируете функции безопаÑноÑти, будет разумно Ñоздать " +"резервные копии важных файлов и базы данных. Ð’Ñ‹ легко можете Ñто Ñделать, " +"воÑпользовавшиÑÑŒ ÑоответÑтвующими опциÑми данного плагина." + +#: ../admin/wp-security-settings-menu.php:97 +msgid "Backup your database" +msgstr "Создать резервную копию базы данных" + +#: ../admin/wp-security-settings-menu.php:98 +msgid "Backup .htaccess file" +msgstr "Создать резервную копию файла .htaccess" + +#: ../admin/wp-security-settings-menu.php:99 +msgid "Backup wp-config.php file" +msgstr "Создать резервную копию файла wp-config.php" + +#: ../admin/wp-security-settings-menu.php:105 +msgid "Disable Security Features" +msgstr "Отключение функции безопаÑноÑти" + +#: ../admin/wp-security-settings-menu.php:111 +msgid "" +"If you think that some plugin functionality on your site is broken due to a " +"security feature you enabled in this plugin, then use the following option " +"to turn off all the security features of this plugin." +msgstr "" +"ЕÑли Ð’Ñ‹ думаете, что какие-либо плагины переÑтали работать из-за " +"Ð°ÐºÑ‚Ð¸Ð²Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ñ„ÑƒÐ½ÐºÑ†Ð¸Ð¹ безопаÑноÑти, воÑпользуйтеÑÑŒ Ñтой кнопкой, чтобы вÑе " +"Ñти функции отключить." + +#: ../admin/wp-security-settings-menu.php:115 +msgid "Disable All Security Features" +msgstr "Отключить вÑе функции безопаÑноÑти" + +#: ../admin/wp-security-settings-menu.php:143 +msgid "" +"Your .htaccess file was successfully backed up! Right click on the following " +"file name and save the backup to your computer." +msgstr "Ð ÐµÐ·ÐµÑ€Ð²Ð½Ð°Ñ ÐºÐ¾Ð¿Ð¸Ñ Ñ„Ð°Ð¹Ð»Ð° .htaccess уÑпшно Ñоздана!" + +#: ../admin/wp-security-settings-menu.php:145 +msgid "Your .htaccess File: " +msgstr "Ваш файл .htaccess:" + +#: ../admin/wp-security-settings-menu.php:153 +msgid "" +"htaccess file rename failed during backup. Please check your root directory " +"for the backup file using FTP." +msgstr "" +"Ðе удалоÑÑŒ переименовать файл .htaccess Ð´Ð»Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ñ€ÐµÐ·ÐµÑ€Ð²Ð½Ð¾Ð¹ копии. " +"ВоÑпользуйтеÑÑŒ FTP, чтобы вручную проÑмотреть корневую директорию Ñайта на " +"предмет Ð½Ð°Ð»Ð¸Ñ‡Ð¸Ñ Ñозданной резервной копии." + +#: ../admin/wp-security-settings-menu.php:159 +msgid "htaccess backup failed." +msgstr "Создать резервную копию файла .htaccess не удалоÑÑŒ." + +#: ../admin/wp-security-settings-menu.php:174 +msgid "Please choose a .htaccess to restore from." +msgstr "Выберите резервную копию файла .htaccess" + +#: ../admin/wp-security-settings-menu.php:190 +msgid "" +"htaccess file restore failed. Please attempt to restore the .htaccess " +"manually using FTP." +msgstr "" +"ВоÑÑтановить файл .htaccess не удалоÑÑŒ. Попробуйте Ñделать Ñто вручную, " +"иÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÑ FTP." + +#: ../admin/wp-security-settings-menu.php:194 +msgid "Your .htaccess file has successfully been restored!" +msgstr "Файл .htaccess уÑпешно воÑÑтановлен!" + +#: ../admin/wp-security-settings-menu.php:200 +msgid "" +"htaccess Restore operation failed! Please check the contents of the file you " +"are trying to restore from." +msgstr "" +"ÐžÐ¿ÐµÑ€Ð°Ñ†Ð¸Ñ Ð²Ð¾ÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ñ„Ð°Ð¹Ð»Ð° .htaccess не удалаÑÑŒ. УбедитеÑÑŒ, что Ñ " +"Ñодержимым резервной копии вÑе в порÑдке." + +#: ../admin/wp-security-settings-menu.php:206 +msgid ".htaccess File Operations" +msgstr "Операции Ñ Ñ„Ð°Ð¹Ð»Ð¾Ð¼ .htaccess" + +#: ../admin/wp-security-settings-menu.php:209 +msgid "" +"Your \".htaccess\" file is a key component of your website's security and it " +"can be modified to implement various levels of protection mechanisms." +msgstr "" +"Файл «.htaccess» - Ñто ключевой компонент обеÑÐ¿ÐµÑ‡ÐµÐ½Ð¸Ñ Ð±ÐµÐ·Ð¾Ð¿Ð°ÑноÑти Ñайта, " +"который позволÑет в значительной Ñтепени варьировать механизмы его защиты." + +#: ../admin/wp-security-settings-menu.php:210 +msgid "" +"This feature allows you to backup and save your currently active .htaccess " +"file should you need to re-use the the backed up file in the future." +msgstr "" +"Ð’ Ñтом разделе Ð’Ñ‹ можете Ñоздать резервную копию файла .htaccess и, при " +"необходимоÑти," + +#: ../admin/wp-security-settings-menu.php:211 +msgid "" +"You can also restore your site's .htaccess settings using a backed up ." +"htaccess file." +msgstr "воÑÑтановить его из резервной копии в будущем." + +#: ../admin/wp-security-settings-menu.php:217 +msgid "Save the current .htaccess file" +msgstr "Создание резервной копии файла .htaccess" + +#: ../admin/wp-security-settings-menu.php:221 +msgid "" +"Click the button below to backup and save the currently active .htaccess " +"file." +msgstr "Ð”Ð»Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ñ€ÐµÐ·ÐµÑ€Ð²Ð½Ð¾Ð¹ копии файла .htaccess нажмите Ñту кнопку:" + +#: ../admin/wp-security-settings-menu.php:222 +msgid "Backup .htaccess File" +msgstr "Создать и Ñкачать резервную копию файла .htaccess" + +#: ../admin/wp-security-settings-menu.php:226 +msgid "Restore from a backed up .htaccess file" +msgstr "ВоÑÑтановление файл .htaccess из резервной копии" + +#: ../admin/wp-security-settings-menu.php:232 +msgid ".htaccess file to restore from" +msgstr "Выберите файл резервной копии" + +#: ../admin/wp-security-settings-menu.php:238 +msgid "" +"After selecting your file, click the button below to restore your site using " +"the backed up htaccess file (htaccess_backup.txt)." +msgstr "" +"ПоÑле того, как Ð’Ñ‹ выберите файл резервной копии (Ñ Ð¸Ð¼ÐµÐ½ÐµÐ¼ htaccess_backup." +"txt) на Ñвоем компьютере, чтобы заменить им текущий активный файл .htaccess, " +"нажмите Ñту кнопку:" + +#: ../admin/wp-security-settings-menu.php:244 +msgid "Restore .htaccess File" +msgstr "ВоÑÑтановить файл .htaccess" + +#: ../admin/wp-security-settings-menu.php:248 +msgid "View Contents of the currently active .htaccess file" +msgstr "ПроÑмотр Ñодержимого активного файла .htaccess" + +#: ../admin/wp-security-settings-menu.php:282 +msgid "" +"Your wp-config.php file was successfully backed up! Right click on the " +"following file name and save the backup to your computer." +msgstr "Ð ÐµÐ·ÐµÑ€Ð²Ð½Ð°Ñ ÐºÐ¾Ð¿Ð¸Ñ Ñ„Ð°Ð¹Ð»Ð° wp-config.php уÑпешно Ñоздана!" + +#: ../admin/wp-security-settings-menu.php:284 +msgid "Your wp-config.php File: " +msgstr "Ваш файл wp-config.php:" + +#: ../admin/wp-security-settings-menu.php:292 +msgid "" +"wp-config.php file rename failed during backup. Please check your root " +"directory for the backup file using FTP." +msgstr "" +"Во Ð²Ñ€ÐµÐ¼Ñ Ñ€ÐµÐ·ÐµÑ€Ð²Ð½Ð¾Ð³Ð¾ ÐºÐ¾Ð¿Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ñ„Ð°Ð¹Ð»Ð° wp-config.php не удалоÑÑŒ его " +"переименовать. ВоÑпользуйтеÑÑŒ FTP, чтобы проверить наличие Ñозданной " +"резервной копии в корневой директории Вашего Ñайта." + +#: ../admin/wp-security-settings-menu.php:298 +msgid "wp-config.php backup failed." +msgstr "Создать резервную копию файла wp-config.php не удалоÑÑŒ." + +#: ../admin/wp-security-settings-menu.php:313 +msgid "Please choose a wp-config.php file to restore from." +msgstr "Выберите файл резервной копии." + +#: ../admin/wp-security-settings-menu.php:329 +msgid "" +"wp-config.php file restore failed. Please attempt to restore this file " +"manually using FTP." +msgstr "" +"ÐžÐ¿ÐµÑ€Ð°Ñ†Ð¸Ñ Ð¿Ð¾ воÑÑтановлению файла wp-config.php не удалаÑÑŒ! ПопытайтеÑÑŒ " +"Ñделать Ñто вручную, иÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÑ FTP." + +#: ../admin/wp-security-settings-menu.php:333 +msgid "Your wp-config.php file has successfully been restored!" +msgstr "Файл wp-config.php уÑпешно воÑÑтановлен!" + +#: ../admin/wp-security-settings-menu.php:339 +msgid "" +"wp-config.php Restore operation failed! Please check the contents of the " +"file you are trying to restore from." +msgstr "" +"ÐžÐ¿ÐµÑ€Ð°Ñ†Ð¸Ñ Ð¿Ð¾ воÑÑтановлению файла wp-config.php не удалаÑÑŒ! Проверьте " +"Ñодержимое файла резервной копии." + +#: ../admin/wp-security-settings-menu.php:345 +msgid "wp-config.php File Operations" +msgstr "Операции Ñ Ñ„Ð°Ð¹Ð»Ð¾Ð¼ wp-config.php" + +#: ../admin/wp-security-settings-menu.php:348 +msgid "" +"Your \"wp-config.php\" file is one of the most important in your WordPress " +"installation. It is a primary configuration file and contains crucial things " +"such as details of your database and other critical components." +msgstr "" +"Файл wp-config.php - Ñто один из наиболее важных файлов WordPress, " +"Ñодержащий данные доÑтупа к Вашей базе данных и другие очень ценные " +"наÑтройки." + +#: ../admin/wp-security-settings-menu.php:349 +msgid "" +"This feature allows you to backup and save your currently active wp-config." +"php file should you need to re-use the the backed up file in the future." +msgstr "" +"Ð’ Ñтом разделе Ð’Ñ‹ можете Ñоздать резервную копию Ñтого файла и, при " +"необходимоÑти," + +#: ../admin/wp-security-settings-menu.php:350 +msgid "" +"You can also restore your site's wp-config.php settings using a backed up wp-" +"config.php file." +msgstr "воÑÑтановить его в будущем, иÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÑ Ñту резервную копию." + +#: ../admin/wp-security-settings-menu.php:356 +msgid "Save the current wp-config.php file" +msgstr "Создание резервной копии файла wp-config.php" + +#: ../admin/wp-security-settings-menu.php:360 +msgid "" +"Click the button below to backup and save the currently active wp-config.php " +"file." +msgstr "Ð”Ð»Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ñ€ÐµÐ·ÐµÑ€Ð²Ð½Ð¾Ð¹ копии файла wp-config.php нажмите Ñту кнопку:" + +#: ../admin/wp-security-settings-menu.php:361 +msgid "Backup wp-config.php File" +msgstr "Создать и Ñкачать резервную копию файла wp-config" + +#: ../admin/wp-security-settings-menu.php:365 +msgid "Restore from a backed up wp-config file" +msgstr "ВоÑÑтановление файла wp-config из резервной копии" + +#: ../admin/wp-security-settings-menu.php:371 +msgid "wp-config file to restore from" +msgstr "Выберите резервную копию файла wp-config" + +#: ../admin/wp-security-settings-menu.php:377 +msgid "" +"After selecting your file click the button below to restore your site using " +"the backed up wp-config file (wp-config.php.backup.txt)." +msgstr "" +"ПоÑле того, как Ð’Ñ‹ выберите файл резервной копии (Ñ Ð¸Ð¼ÐµÐ½ÐµÐ¼ wp-config.php." +"backup.txt) на Ñвоем компьютере, чтобы заменить им текущий активный файл wp-" +"config, нажмите Ñту кнопку:" + +#: ../admin/wp-security-settings-menu.php:383 +msgid "Restore wp-config File" +msgstr "ВоÑÑтановить файл wp-config" + +#: ../admin/wp-security-settings-menu.php:387 +msgid "View Contents of the currently active wp-config.php file" +msgstr "ПроÑмотр Ñодержимого файла wp-config.php" + +#: ../admin/wp-security-settings-menu.php:421 +msgid "WP Generator Meta Tag" +msgstr "Мета-тег WP Generator" + +#: ../admin/wp-security-settings-menu.php:424 +msgid "" +"Wordpress generator automatically adds some meta information inside the " +"\"head\" tags of every page on your site's front end. Below is an example of " +"this:" +msgstr "" +"WP Generator автоматичеÑки выводит информацию о текущей веÑии Wordpress в " +"Ñпециальном мета-теге в Ñекции «head» на вÑех Ñтраницах Ñайта. Вот пример " +"такого вывода:" + +#: ../admin/wp-security-settings-menu.php:426 +msgid "" +"The above meta information shows which version of WordPress your site is " +"currently running and thus can help hackers or crawlers scan your site to " +"see if you have an older version of WordPress or one with a known exploit." +msgstr "" +"Эта Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ ÑущеÑтвенно помогает хакерам и их роботам-паукам определÑÑ‚ÑŒ, " +"не иÑпользуете ли Ð’Ñ‹ какую-нибудь уÑтаревшую верÑию WordPress Ñ ÑƒÐ¶Ðµ " +"извеÑтными уÑзвимоÑÑ‚Ñми." + +#: ../admin/wp-security-settings-menu.php:427 +msgid "" +"This feature will allow you to remove the WP generator meta info from your " +"site's pages." +msgstr "" +"Ð”Ð°Ð½Ð½Ð°Ñ Ð¾Ð¿Ñ†Ð¸Ñ Ð¿Ð¾Ð·Ð²Ð¾Ð»Ð¸Ñ‚ Вам удалить Ñтот мета-тег Ñо вÑех Ñтраниц Вашего Ñайта." + +#: ../admin/wp-security-settings-menu.php:433 +msgid "WP Generator Meta Info" +msgstr "Мета-данные WP Generator" + +#: ../admin/wp-security-settings-menu.php:445 +msgid "Remove WP Generator Meta Info" +msgstr "Удаление мета-данных WP Generator" + +#: ../admin/wp-security-settings-menu.php:448 +msgid "" +"Check this if you want to remove the meta info produced by WP Generator from " +"all pages" +msgstr "Включите Ñту опцию, чтобы удалить мета-тег WP Generator" + +#: ../admin/wp-security-user-accounts-menu.php:79 +msgid "Admin User Security" +msgstr "БезопаÑноÑÑ‚ÑŒ аккаунта ÐдминиÑтратора" + +#: ../admin/wp-security-user-accounts-menu.php:82 +msgid "" +"By default, WordPress sets the administrator username to \"admin\" at " +"installation time." +msgstr "" +"При уÑтановке WordPress автоматичеÑки приÑваивает админиÑтратору Ð¸Ð¼Ñ " +"Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Â«admin» (еÑли Ð’Ñ‹ вручную не измените его)." + +#: ../admin/wp-security-user-accounts-menu.php:83 +msgid "" +"A lot of hackers try to take advantage of this information by attempting " +"\"Brute Force Login Attacks\" where they repeatedly try to guess the " +"password by using \"admin\" for username." +msgstr "" +"Многие хакеры пытаютÑÑ Ð²Ð¾ÑпользоватьÑÑ Ñтой информацией, применÑÑ Ð´Ð»Ñ " +"Ð½Ð°Ð¿Ð°Ð´ÐµÐ½Ð¸Ñ Â«Ð‘Ñ€ÑƒÑ‚Ñ„Ð¾Ñ€Ñ-атаку», когда они ÑиÑтематично подбирают пароль, " +"иÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÑ Ñлово «admin» в качеÑтве имени пользователÑ." + +#: ../admin/wp-security-user-accounts-menu.php:84 +msgid "" +"From a security perspective, changing the default \"admin\" user name is one " +"of the first and smartest things you should do on your site." +msgstr "" +"По ÑоображениÑм безопаÑноÑти, одна из первых и наиболее разумных вещей, " +"которую Ð’Ñ‹ должны Ñделать на Ñвоем Ñайте, Ñто изменить Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð¿Ð¾ " +"умолчанию, Ñ‚.е. «admin»." + +#: ../admin/wp-security-user-accounts-menu.php:85 +msgid "" +"This feature will allow you to change your default \"admin\" user name to a " +"more secure name of your choosing." +msgstr "" +"Этот раздел как раз и предназначен Ð´Ð»Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¸Ð¼ÐµÐ½Ð¸ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Â«admin» " +"на более безопаÑное, по Вашему выбору." + +#: ../admin/wp-security-user-accounts-menu.php:92 +msgid "List of Administrator Accounts" +msgstr "СпиÑок ÐдминиÑтраторов" + +#: ../admin/wp-security-user-accounts-menu.php:102 +msgid "Change Admin Username" +msgstr "Изменение имени Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ ÐдминÑтратора" + +#: ../admin/wp-security-user-accounts-menu.php:110 +msgid "" +"Your site currently has an account which uses the default \"admin\" " +"username. \n" +" It is highly recommended that you change this name to " +"something else. \n" +" Use the following field to change the admin username." +msgstr "" +"Ðа Вашем Ñайте имеетÑÑ Ð°ÐºÐºÐ°ÑƒÐ½Ñ‚, в котором в качеÑтве имени Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ " +"иÑпользуетÑÑ Ñлово «admin».\n" +"Крайне рекомендуетÑÑ Ð¸Ð·Ð¼ÐµÐ½Ð¸Ñ‚ÑŒ его на какое-нибудь другое.\n" +"Ð”Ð»Ñ Ñтого воÑпользуйтеÑÑŒ Ñледующим полем." + +#: ../admin/wp-security-user-accounts-menu.php:118 +msgid "New Admin Username" +msgstr "Ðовое Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð´Ð»Ñ Ð°Ð´Ð¼Ð¸Ð½Ð¸Ñтратора" + +#: ../admin/wp-security-user-accounts-menu.php:120 +msgid "Choose a new username for admin." +msgstr "Выберите новое Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð´Ð»Ñ Ð°Ð´Ð¼Ð¸Ð½Ð¸Ñтратора." + +#: ../admin/wp-security-user-accounts-menu.php:124 +msgid "Change Username" +msgstr "Изменить Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ" + +#: ../admin/wp-security-user-accounts-menu.php:126 +msgid "" +"NOTE: If you are currently logged in as \"admin\" you will be automatically " +"logged out after changing your username and will be required to log back in." +msgstr "" +"Ð’ÐИМÐÐИЕ: еÑли ÑÐµÐ¹Ñ‡Ð°Ñ Ð’Ñ‹ авторизованы как «admin», Ваша Ð°Ð²Ñ‚Ð¾Ñ€Ð¸Ð·Ð°Ñ†Ð¸Ð¾Ð½Ð½Ð°Ñ " +"ÑеÑÑÐ¸Ñ Ð±ÑƒÐ´ÐµÑ‚ автоматичеÑки прекращена, поÑле того, как Ð’Ñ‹ измените Ð¸Ð¼Ñ " +"Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ - надо будет Ñнова авторизоватьÑÑ, иÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÑ ÑƒÐ¶Ðµ новый логин." + +#: ../admin/wp-security-user-accounts-menu.php:133 +msgid "No action required! " +msgstr "ДейÑтвие не требуетÑÑ!" + +#: ../admin/wp-security-user-accounts-menu.php:135 +msgid "" +"Your site does not have any account which uses the default \"admin\" " +"username. " +msgstr "" +"Ðа Вашем Ñайте нет аккаунтов, иÑпользующих в качеÑтве имени Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð¸Ð¼Ñ " +"Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð¿Ð¾ умолчанию, Ñ‚.е. «admin» - " + +#: ../admin/wp-security-user-accounts-menu.php:136 +msgid "This is good security practice." +msgstr "и Ñто очень хорошо." + +#: ../admin/wp-security-user-accounts-menu.php:148 +msgid "Display Name Security" +msgstr "Защита отображаемого имени" + +#: ../admin/wp-security-user-accounts-menu.php:151 +msgid "" +"When you submit a post or answer a comment, WordPress will usually display " +"your \"nickname\"." +msgstr "" +"Когда Ð’Ñ‹ публикуете поÑÑ‚ или отвечаете на комментарий, WordPress обычно " +"отображает Ваш «никнейм»." + +#: ../admin/wp-security-user-accounts-menu.php:152 +msgid "" +"By default the nickname is set to the login (or user) name of your account." +msgstr "По умолчанию отображаемое Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð¸Ð´ÐµÐ½Ñ‚Ð¸Ñ‡Ð½Ð¾ логину аккаунта." + +#: ../admin/wp-security-user-accounts-menu.php:153 +msgid "" +"From a security perspective, leaving your nickname the same as your user " +"name is bad practice because it gives a hacker at least half of your " +"account's login credentials." +msgstr "" +"Из Ñоображений безопаÑноÑти, Ñтого допуÑкать нельзÑ, так как Ñто уже на " +"половину облегчает хакеру работу - фактичеÑки, Ð’Ñ‹ Ñами Ñообщаете ему логин " +"Ñвоего аккаунта." + +#: ../admin/wp-security-user-accounts-menu.php:154 +msgid "" +"Therefore to further tighten your site's security you are advised to change " +"your nickname and Display name to be " +"different from your Username." +msgstr "" +"ПоÑтому, чтобы ужеÑточить безопаÑноÑÑ‚ÑŒ Ñайта, мы рекомендуем вам изменить " +"Ñвой никнейм и отображаемое имÑ, чтобы они " +"отличалиÑÑŒ от Вашего имени пользователÑ." + +#: ../admin/wp-security-user-accounts-menu.php:160 +msgid "Modify Accounts With Identical Login Name & Display Name" +msgstr "" +"Редактирование аккаунтов Ñ Ñовпадающими именем Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð¸ отображаемым " +"именем." + +#: ../admin/wp-security-user-accounts-menu.php:169 +msgid "" +"Your site currently has the following accounts which have an identical login " +"name and display name." +msgstr "" +"Следующие аккаунты на Вашем Ñайте имеют Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ, Ñовпадающее Ñ " +"отображаемым именем." + +#: ../admin/wp-security-user-accounts-menu.php:170 +msgid "Click on the link to edit the settings of that particular user account" +msgstr "Перейдите по ÑÑылке, чтобы внеÑти Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð² ÑоответÑтвующий аккаунт" + +#: ../admin/wp-security-user-accounts-menu.php:185 +msgid "No action required." +msgstr "ДейÑтвие не требуетÑÑ." + +#: ../admin/wp-security-user-accounts-menu.php:186 +msgid "" +"Your site does not have a user account where the display name is identical " +"to the username." +msgstr "" +"Ðа Вашем Ñайте нет аккаунтов, в которых Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ñовпадает Ñ " +"отображаемым именем." + +#: ../admin/wp-security-user-accounts-menu.php:197 +msgid "Password Tool" +msgstr "Проверка паролÑ" + +#: ../admin/wp-security-user-accounts-menu.php:200 +msgid "" +"Poor password selection is one of the most common weak points of many sites " +"and is usually the first thing a hacker will try to exploit when attempting " +"to break into your site." +msgstr "" +"Плохой пароль - Ñто наиболее раÑпроÑÑ‚Ñ€Ð°Ð½ÐµÐ½Ð½Ð°Ñ ÑƒÑзвимоÑÑ‚ÑŒ на большинÑтве " +"Ñайтов, и, как правило, первое, что будет делать хакер, чтобы проникнуть на " +"Ñайт - попытаетÑÑ Ð¿Ð¾Ð´Ð¾Ð±Ñ€Ð°Ñ‚ÑŒ пароль." + +#: ../admin/wp-security-user-accounts-menu.php:201 +msgid "" +"Many people fall into the trap of using a simple word or series of numbers " +"as their password. Such a predictable and simple password would take a " +"competent hacker merely minutes to guess your password by using a simple " +"script which cycles through the easy and most common combinations." +msgstr "" +"Многие люди Ñами Ñебе ÑтавÑÑ‚ ловушку, иÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÑ Ð² качеÑтве Ð¿Ð°Ñ€Ð¾Ð»Ñ Ð¿Ñ€Ð¾Ñтое " +"Ñлово или Ñ€Ñд цифр. Ðа подбор такого предÑказуемого Ð¿Ð°Ñ€Ð¾Ð»Ñ Ñƒ опытного хакера " +"уйдет вÑего неÑколько минут, так как Ð´Ð»Ñ Ñтого иÑпользуютÑÑ Ñпециальные " +"программы Ñ Ð±Ð¾Ð»ÑŒÑˆÐ¸Ð¼Ð¸ базами наиболее раÑпроÑтраненных Ñочетаний букв, Ñлов и " +"цифр." + +#: ../admin/wp-security-user-accounts-menu.php:202 +msgid "" +"The longer and more complex your password is the harder it is for hackers to " +"\"crack\" because more complex passwords require much greater computing " +"power and time." +msgstr "" +"Чем длиннее и Ñложнее пароль, тем Ñ‚Ñжелее будет хакеру его подобрать, потому " +"что Ñто требует гораздо больше вычиÑлительных мощноÑтей и времени." + +#: ../admin/wp-security-user-accounts-menu.php:203 +msgid "" +"This section contains a useful password strength tool which you can use to " +"check whether your password is sufficiently strong enough." +msgstr "ЗдеÑÑŒ Ð’Ñ‹ можете проверить Ñвой пароль на надежноÑÑ‚ÑŒ." + +#: ../admin/wp-security-user-accounts-menu.php:208 +msgid "Password Strength Tool" +msgstr "Проверка надежноÑти паролÑ" + +#: ../admin/wp-security-user-accounts-menu.php:213 +msgid "Start typing a password." +msgstr "Введите пароль." + +#: ../admin/wp-security-user-accounts-menu.php:238 +msgid "Nonce check failed on admin username change operation!" +msgstr "Ðе удалоÑÑŒ изменить Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ!" + +#: ../admin/wp-security-user-accounts-menu.php:245 +msgid "Username " +msgstr "Такое Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ" + +#: ../admin/wp-security-user-accounts-menu.php:245 +msgid " already exists. Please enter another value. " +msgstr "уже ÑущеÑтвует. ПожалуйÑта, введите другое значение." + +#: ../admin/wp-security-user-accounts-menu.php:261 +msgid "The database update operation of the user account failed!" +msgstr "Обновление учетной запиÑи не удалоÑÑŒ!" + +#: ../admin/wp-security-user-accounts-menu.php:288 +msgid "You entered an invalid username. Please enter another value. " +msgstr "" +"Ð’Ñ‹ ввели неверное Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ. ПожалуйÑта, введите другое значение." + +#: ../admin/wp-security-user-accounts-menu.php:292 +msgid "Please enter a value for your username. " +msgstr "ПожалуйÑта, введите Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ." + +#: ../admin/wp-security-user-accounts-menu.php:299 +msgid "Username Successfully Changed!" +msgstr "Ð˜Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¾!" + +#: ../admin/wp-security-user-accounts-menu.php:319 +msgid "Account Login Name" +msgstr "Ð˜Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ" + +#: ../admin/wp-security-user-login-menu.php:88 +msgid "" +"You entered a non numeric value for the max login attempts field. It has " +"been set to the default value." +msgstr "" +"Ð’Ñ‹ ввели нечиÑловое значение Ð´Ð»Ñ Ð¼Ð°ÐºÑимального количеÑтва попыток " +"авторизации. УÑтановлено значение по умолчанию." + +#: ../admin/wp-security-user-login-menu.php:95 +msgid "" +"You entered a non numeric value for the login retry time period field. It " +"has been set to the default value." +msgstr "" +"Ð’Ñ‹ ввели нечиÑловое значение Ð´Ð»Ñ Ð¾Ð³Ñ€Ð°Ð½Ð¸Ñ‡ÐµÐ½Ð¸Ñ Ð²Ñ€ÐµÐ¼ÐµÐ½Ð¸ попыток авторизации. " +"УÑтановлено значение по умолчанию." + +#: ../admin/wp-security-user-login-menu.php:102 +msgid "" +"You entered a non numeric value for the lockout time length field. It has " +"been set to the default value." +msgstr "" +"Ð’Ñ‹ ввели нечиÑловое значение Ð´Ð»Ñ Ð¿ÐµÑ€Ð¸Ð¾Ð´Ð° блокированиÑ. УÑтановлено значение " +"по умолчанию." + +#: ../admin/wp-security-user-login-menu.php:146 +msgid "Login Lockdown Configuration" +msgstr "ÐаÑтройки опций блокировки процеÑÑа авторизации" + +#: ../admin/wp-security-user-login-menu.php:150 +msgid "One of the ways hackers try to compromise sites is via a " +msgstr "" +"Один из раÑпроÑтраненных ÑпоÑобов, иÑпользуемых хакерами Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð½Ð¸ÐºÐ½Ð¾Ð²ÐµÐ½Ð¸Ñ " +"на Ñайт, ÑвлÑетÑÑ " + +#: ../admin/wp-security-user-login-menu.php:150 +msgid "Brute Force Login Attack" +msgstr "БрутфорÑ-атака" + +#: ../admin/wp-security-user-login-menu.php:151 +msgid "" +"This is where attackers use repeated login attempts until they guess the " +"password." +msgstr "Так называютÑÑ Ð¼Ð½Ð¾Ð³Ð¾ÐºÑ€Ð°Ñ‚Ð½Ñ‹Ðµ попытки входа методом подбора паролей." + +#: ../admin/wp-security-user-login-menu.php:152 +msgid "" +"Apart from choosing strong passwords, monitoring and blocking IP addresses " +"which are involved in repeated login failures in a short period of time is a " +"very effective way to stop these types of attacks." +msgstr "" +"Помимо выбора надежных паролей, мониторинга и Ð±Ð»Ð¾ÐºÐ¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ IP-адреÑов, " +"учаÑтвующих в повторных неудачных попытках входа в течение короткого периода " +"времени, блокировка количеÑтва попыток авторизации и ограничение периода " +"времени Ð´Ð»Ñ Ñ‚Ð°ÐºÐ¸Ñ… попыток, ÑвлÑетÑÑ Ð¾Ñ‡ÐµÐ½ÑŒ Ñффективным ÑпоÑобом " +"противодейÑÑ‚Ð²Ð¸Ñ Ñтим типам атак." + +#: ../admin/wp-security-user-login-menu.php:153 +#, php-format +msgid "" +"You may also want to checkout our %s feature for another secure way to " +"protect against these types of attacks." +msgstr "" +"Ð’Ñ‹ также можете ознакомитьÑÑ Ñ Ð´Ñ€ÑƒÐ³Ð¸Ð¼Ð¸ %s опциÑми безопаÑноÑти Ð´Ð»Ñ Ð·Ð°Ñ‰Ð¸Ñ‚Ñ‹ от " +"такого типа атак." + +#: ../admin/wp-security-user-login-menu.php:158 +msgid "Login Lockdown Options" +msgstr "Опции блокировки авторизации" + +#: ../admin/wp-security-user-login-menu.php:170 +msgid "Enable Login Lockdown Feature" +msgstr "Включить опции блокировки попыток авторизации" + +#: ../admin/wp-security-user-login-menu.php:173 +msgid "" +"Check this if you want to enable the login lockdown feature and apply the " +"settings below" +msgstr "" +"Отметьте Ñту опцию, еÑли Ð’Ñ‹ хотите включить функции ÐºÐ¾Ð½Ñ‚Ñ€Ð¾Ð»Ñ Ð·Ð° процеÑÑом " +"авторизации, уÑтановите необходимые параметры и Ñохраните наÑтройки" + +#: ../admin/wp-security-user-login-menu.php:177 +msgid "Max Login Attempts" +msgstr "МакÑимальное количеÑтво попыток входа" + +#: ../admin/wp-security-user-login-menu.php:179 +msgid "" +"Set the value for the maximum login retries before IP address is locked out" +msgstr "" +"УÑтановите значение Ð´Ð»Ñ Ð¼Ð°ÐºÑимального количеÑтва попыток входа, поÑле чего " +"IP-Ð°Ð´Ñ€ÐµÑ Ð±ÑƒÐ´ÐµÑ‚ заблокирован" + +#: ../admin/wp-security-user-login-menu.php:183 +msgid "Login Retry Time Period (min)" +msgstr "Ограничение времени попыток авторизации (минуты)" + +#: ../admin/wp-security-user-login-menu.php:185 +msgid "" +"If the maximum number of failed login attempts for a particular IP address " +"occur within this time period the plugin will lock out that address" +msgstr "" +"ЕÑли макÑимальное чиÑло неудачных попыток входа в ÑиÑтему Ð´Ð»Ñ ÐºÐ¾Ð½ÐºÑ€ÐµÑ‚Ð½Ð¾Ð³Ð¾ " +"адреÑа IP произойдет в течение Ñтого периода времени, плагин заблокирует " +"Ñтот адреÑ" + +#: ../admin/wp-security-user-login-menu.php:189 +msgid "Time Length of Lockout (min)" +msgstr "Период Ð±Ð»Ð¾ÐºÐ¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ (минуты)" + +#: ../admin/wp-security-user-login-menu.php:191 +msgid "" +"Set the length of time for which a particular IP address will be prevented " +"from logging in" +msgstr "Укажите период времени, на который будут блокироватьÑÑ IP-адреÑа" + +#: ../admin/wp-security-user-login-menu.php:195 +msgid "Display Generic Error Message" +msgstr "Выводить ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð¾Ð± ошибках авторизации" + +#: ../admin/wp-security-user-login-menu.php:198 +msgid "" +"Check this if you want to show a generic error message when a login attempt " +"fails" +msgstr "" +"Отметьте Ñту опцию, еÑли Ð’Ñ‹ хотите, чтобы при неудачных попытках авторизации " +"отображалоÑÑŒ Ñообщение об ошибке" + +#: ../admin/wp-security-user-login-menu.php:202 +msgid "Notify By Email" +msgstr "УведомлÑÑ‚ÑŒ по Email" + +#: ../admin/wp-security-user-login-menu.php:205 +msgid "" +"Check this if you want to receive an email when someone has been locked out " +"due to maximum failed login attempts" +msgstr "" +"Отметьте Ñту опцию, еÑли Ð’Ñ‹ хотите получать отчет о неудачных попытках " +"авторизации на Ñвой почтовый Ñщик" + +#: ../admin/wp-security-user-login-menu.php:215 +msgid "Currently Locked Out IP Address Ranges" +msgstr "Диапазон временно заблокированных IP-адреÑов" + +#: ../admin/wp-security-user-login-menu.php:242 +msgid "Nonce check failed for delete all failed login records operation!" +msgstr "ЗапиÑи об ошибочных попытках авторизации удалить не удалоÑÑŒ!" + +#: ../admin/wp-security-user-login-menu.php:251 +msgid "User Login Feature - Delete all failed login records operation failed!" +msgstr "ЗапиÑи об ошибочных попытках авторизации удалить не удалоÑÑŒ!" + +#: ../admin/wp-security-user-login-menu.php:255 +msgid "All records from the Failed Logins table were deleted successfully!" +msgstr "Ð’Ñе запиÑи об ошибочных попытках авторизации удалены!" + +#: ../admin/wp-security-user-login-menu.php:270 +msgid "This tab displays the failed login attempts for your site." +msgstr "ЗдеÑÑŒ отображаютÑÑ Ð·Ð°Ð¿Ð¸Ñи о безуÑпешных попытках входа на Ваш Ñайт." + +#: ../admin/wp-security-user-login-menu.php:271 +msgid "" +"The information below can be handy if you need to do security investigations " +"because it will show you the IP range, username and ID (if applicable) and " +"the time/date of the failed login attempt." +msgstr "" +"ÐŸÑ€Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ð°Ñ Ð½Ð¸Ð¶Ðµ Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¼Ð¾Ð¶ÐµÑ‚ пригодитьÑÑ, еÑли вам нужно провеÑти " +"иÑÑледование попыток авторизации - здеÑÑŒ отображаетÑÑ Ð´Ð¸Ð°Ð¿Ð°Ð·Ð¾Ð½ IP, Ð¸Ð¼Ñ " +"Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð¸ ID (еÑли возможно) и Ð²Ñ€ÐµÐ¼Ñ / дата неуÑпешной попытки входа на " +"Ñайт." + +#: ../admin/wp-security-user-login-menu.php:276 +msgid "Failed Login Records" +msgstr "Ошибочные попытки авторизации" + +#: ../admin/wp-security-user-login-menu.php:292 +#: ../admin/wp-security-user-login-menu.php:301 +msgid "Delete All Failed Login Records" +msgstr "Удалить запиÑи" + +#: ../admin/wp-security-user-login-menu.php:298 +msgid "" +"Click this button if you wish to delete all failed login records in one go." +msgstr "" +"Ðажмите Ñту кнопку, еÑли Ð’Ñ‹ хотите удалить вÑе запиÑи об ошибочных попытках " +"авторизации." + +#: ../admin/wp-security-user-login-menu.php:326 +msgid "" +"You entered a non numeric value for the logout time period field. It has " +"been set to the default value." +msgstr "" +"Ð’Ñ‹ ввели нечиÑловое значение периода времени. УÑтановка Ñброшена к значению " +"по умолчанию." + +#: ../admin/wp-security-user-login-menu.php:348 +msgid "" +"Setting an expiry period for your WP administration session is a simple way " +"to protect against unauthorized access to your site from your computer." +msgstr "" +"УÑтановка Ð¾Ð³Ñ€Ð°Ð½Ð¸Ñ‡ÐµÐ½Ð¸Ñ Ñрока дейÑÑ‚Ð²Ð¸Ñ ÑеÑÑии админиÑÑ‚Ñ€Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ - Ñто проÑтой " +"ÑпоÑоб защиты от неÑанкционированного доÑтупа к вашему Ñайту Ñ Ð²Ð°ÑˆÐµÐ³Ð¾ " +"компьютера." + +#: ../admin/wp-security-user-login-menu.php:349 +msgid "" +"This feature allows you to specify a time period in minutes after which the " +"admin session will expire and the user will be forced to log back in." +msgstr "" +"Эта Ð¾Ð¿Ñ†Ð¸Ñ Ð¿Ð¾Ð·Ð²Ð¾Ð»Ñет уÑтановить временной период, поÑле иÑÑ‚ÐµÑ‡ÐµÐ½Ð¸Ñ ÐºÐ¾Ñ‚Ð¾Ñ€Ð¾Ð³Ð¾ " +"ÑеÑÑÐ¸Ñ Ð°Ð´Ð¼Ð¸Ð½Ð¸Ñтратора иÑтекает и пользователю надо будет авторизоватьÑÑ " +"заново." + +#: ../admin/wp-security-user-login-menu.php:354 +msgid "Force User Logout Options" +msgstr "Опции автоматичеÑкого Ñ€Ð°Ð·Ð»Ð¾Ð³Ð¸Ð½Ð¸Ð²Ð°Ð½Ð¸Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»ÐµÐ¹" + +#: ../admin/wp-security-user-login-menu.php:366 +msgid "Enable Force WP User Logout" +msgstr "Включить авторазлогинивание" + +#: ../admin/wp-security-user-login-menu.php:369 +msgid "" +"Check this if you want to force a wp user to be logged out after a " +"configured amount of time" +msgstr "" +"Отметьте Ñту опцию, чтобы автоматичеÑки прекращать авторизационную ÑеÑÑию " +"пользователей по иÑтечении определенного периода времени" + +#: ../admin/wp-security-user-login-menu.php:373 +msgid "Logout the WP User After XX Minutes" +msgstr "Разлогинить Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ñ‡ÐµÑ€ÐµÐ·" + +#: ../admin/wp-security-user-login-menu.php:375 +msgid "" +"(Minutes) The user will be forced to log back in after this time period has " +"elapased." +msgstr "" +"(Минуты) Пользователь автоматичеÑки будет разлогинен по иÑтечении Ñтого " +"периода времени." + +#: ../admin/wp-security-user-login-menu.php:399 +msgid "" +"This tab displays the login activity for WordPress admin accounts registered " +"with your site." +msgstr "ЗдеÑÑŒ отображаетÑÑ Ð°ÐºÑ‚Ð¸Ð²Ð½Ð¾ÑÑ‚ÑŒ админиÑтраторов на Вашем Ñайте." + +#: ../admin/wp-security-user-login-menu.php:400 +msgid "" +"The information below can be handy if you need to do security investigations " +"because it will show you the last 50 recent login events by username, IP " +"address and time/date." +msgstr "" +"ÐŸÑ€Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ð°Ñ Ð½Ð¸Ð¶Ðµ Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¼Ð¾Ð¶ÐµÑ‚ пригодитьÑÑ, еÑли Ð’Ñ‹ будете проводить " +"иÑÑледование пользовательÑкой активноÑти, так как здеÑÑŒ будут показаны " +"поÑледние 50 Ñобытий авторизации Ñ Ð´Ð°Ð½Ð½Ñ‹Ð¼Ð¸ имени пользователÑ, IP-адреÑом и " +"временем входа." + +#: ../admin/wp-security-user-login-menu.php:405 +msgid "Account Activity Logs" +msgstr "Журнал активноÑти аккаунта" + +#: ../admin/wp-security-user-login-menu.php:470 +msgid "The selected records were deleted successfully!" +msgstr "Выбранные запиÑи уÑпешно удалены!" + +#: ../admin/wp-security-user-login-menu.php:479 +msgid "The selected record was deleted successfully!" +msgstr "Ð’Ñ‹Ð±Ñ€Ð°Ð½Ð½Ð°Ñ Ð·Ð°Ð¿Ð¸ÑÑŒ уÑпешно удалена!" + +#: ../admin/wp-security-whois-menu.php:68 +msgid "WHOIS Lookup Information" +msgstr "Результаты WHOIS-поиÑка" + +#: ../admin/wp-security-whois-menu.php:71 +msgid "" +"This feature allows you to look up more detailed information about an IP " +"address or domain name by querying the WHOIS API." +msgstr "" +"Эта Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ Ð¿Ð¾Ð·Ð²Ð¾Ð»Ñет получить детальную информацию об IP-адреÑе или домену." + +#: ../admin/wp-security-whois-menu.php:77 +msgid "Perform a WHOIS Lookup for an IP or Domain Name" +msgstr "Выполнить WHOIS-поиÑк по IP или домену" + +#: ../admin/wp-security-whois-menu.php:84 +msgid "Enter IP Address or Domain Name" +msgstr "Введите IP-Ð°Ð´Ñ€ÐµÑ Ð¸Ð»Ð¸ доменное имÑ" + +#: ../admin/wp-security-whois-menu.php:86 +msgid "" +"Enter an IP address or domain name. Example: 111.11.12.13 OR some-domain-" +"name.com" +msgstr "" +"Введите IP-Ð°Ð´Ñ€ÐµÑ Ð¸Ð»Ð¸ доменное имÑ. Пример: 111.11.12.13 или some-domain-name." +"com" + +#: ../admin/wp-security-whois-menu.php:90 +msgid "Perform IP or Domain Lookup" +msgstr "Выполнить поиÑк по IP или домену" + +#: ../admin/wp-security-whois-menu.php:110 +msgid "WHOIS lookup successfully completed. Please see the results below:" +msgstr "WHOIS-поиÑк закончен. Результаты Ð’Ñ‹ можете видеть ниже:" + +#: ../admin/wp-security-whois-menu.php:122 +msgid "" +"You have entered an incorrectly formatted IP address or domain name. Please " +"try again." +msgstr "" +"Ð’Ñ‹ ввели некорректный IP-Ð°Ð´Ñ€ÐµÑ Ð¸Ð»Ð¸ доменное имÑ. ПожалуйÑта, попробуйте еще " +"раз." + +#: ../admin/general/wp-security-list-table.php:178 +msgid "No items found." +msgstr "Ðичего не найдено." + +#: ../admin/general/wp-security-list-table.php:281 +msgid "Bulk Actions" +msgstr "КомплекÑные дейÑтвиÑ" + +#: ../admin/general/wp-security-list-table.php:291 +msgid "Apply" +msgstr "Применить" + +#: ../admin/general/wp-security-list-table.php:365 +msgid "Show all dates" +msgstr "Отобразить вÑе даты" + +#: ../admin/general/wp-security-list-table.php:378 +#, php-format +msgid "%1$s %2$d" +msgstr "%1$s %2$d" + +#: ../admin/general/wp-security-list-table.php:394 +msgid "List View" +msgstr "СпиÑок" + +#: ../admin/general/wp-security-list-table.php:395 +msgid "Excerpt View" +msgstr "Краткий обзор" + +#: ../admin/general/wp-security-list-table.php:421 +#, php-format +msgid "%s pending" +msgstr "%s в ожидании" + +#: ../admin/general/wp-security-list-table.php:653 +msgid "Select All" +msgstr "Выбрать вÑе" + +#: ../classes/wp-security-backup.php:110 +msgid "All In One WP Security - Site Database Backup" +msgstr "BAll In One WP Security - Резервное копирование базы данных" + +#: ../classes/wp-security-backup.php:112 +msgid "Attached is your latest DB backup file for site URL" +msgstr "Прикреплена поÑледнÑÑ Ñ€ÐµÐ·ÐµÑ€Ð²Ð½Ð°Ñ ÐºÐ¾Ð¿Ð¸Ñ Ð±Ð°Ð·Ñ‹ данных Вашего Ñайта" + +#: ../classes/wp-security-backup.php:112 +msgid " generated on" +msgstr "Ñоздано по" + +#: ../classes/wp-security-user-login.php:39 +msgid "" +"ERROR: Login failed because your IP address has been " +"blocked due to too many failed login attempts.\n" +" Please contact the administrator." +msgstr "" +"ОШИБКÐ: ÐÐ²Ñ‚Ð¾Ñ€Ð¸Ð·Ð°Ñ†Ð¸Ñ Ð½Ðµ удалаÑÑŒ, так как Ваш IP-Ð°Ð´Ñ€ÐµÑ Ð±Ñ‹Ð» " +"заблокирован по причине Ñлишком большого количеÑтва попыток авторизации.\n" +"ПожалуйÑта, ÑвÑжитеÑÑŒ Ñ Ð°Ð´Ð¼Ð¸Ð½Ð¸Ñтратором." + +#: ../classes/wp-security-user-login.php:48 +msgid "ERROR: The username field is empty." +msgstr "" +"ОШИБКÐ: Поле Ð´Ð»Ñ ÑƒÐºÐ°Ð·Ð°Ð½Ð¸Ñ Ð¸Ð¼ÐµÐ½Ð¸ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð½ÐµÐ·Ð°Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¾." + +#: ../classes/wp-security-user-login.php:52 +msgid "ERROR: The password field is empty." +msgstr "ERROR: Поле Ð´Ð»Ñ ÑƒÐºÐ°Ð·Ð°Ð½Ð¸Ñ Ð¿Ð°Ñ€Ð¾Ð»Ñ Ð½ÐµÐ·Ð°Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¾." + +#: ../classes/wp-security-user-login.php:64 +msgid "unknown" +msgstr "неизвеÑтно" + +#: ../classes/wp-security-user-login.php:69 +#: ../classes/wp-security-user-login.php:92 +msgid "ERROR: Invalid login credentials." +msgstr "ОШИБКÐ: Ðеверные логин или пароль" + +#: ../classes/wp-security-user-login.php:72 +msgid "ERROR: Invalid username." +msgstr "ОШИБКÐ: Ðеверное Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ." + +#: ../classes/wp-security-user-login.php:95 +#, php-format +msgid "" +"ERROR: Incorrect password. Lost your password?" +msgstr "" +"ОШИБКÐ: Ðеверный пароль. Забыли Ñвой пароль?" + +#: ../classes/wp-security-user-login.php:217 +msgid "Site Lockout Notification" +msgstr "Ð£Ð²ÐµÐ´Ð¾Ð¼Ð»ÐµÐ½Ð¸Ñ Ð±Ð»Ð¾ÐºÐ¸Ñ€Ð¾Ð²ÐºÐ¸" + +#: ../classes/wp-security-user-login.php:218 +msgid "" +"A lockdown event has occurred due to too many failed login attempts with the " +"following user details" +msgstr "" +"Пользователь был заблокирован из-за Ñлишком большого количеÑтва попыток " +"неудачного входа Ñо Ñледующими данными" + +#: ../classes/wp-security-user-login.php:219 +msgid "Username: " +msgstr "Ð˜Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ:" + +#: ../classes/wp-security-user-login.php:220 +msgid "IP Range: " +msgstr "Диапазон IP-адреÑов:" + +#: ../classes/wp-security-user-login.php:221 +msgid "" +"Log into your site's WordPress administration panel to see the duration of " +"the lockout or to unlock the user." +msgstr "" +"ÐвторизуйтеÑÑŒ в админ-панели блога, чтобы видеть продолжительноÑÑ‚ÑŒ " +"блокировки или чтобы разблокировать пользователÑ." + +#: ../classes/wp-security-user-login.php:336 +#, php-format +msgid "" +"Your session has expired because it has been over %d minutes since your last " +"login." +msgstr "" +"Ваша ÑеÑÑÐ¸Ñ Ð±Ñ‹Ð»Ð° прекращена, поÑкольку прошло уже более %d минут Ñ Ñ‚ÐµÑ… пор, " +"как Ð’Ñ‹ авторизовалиÑÑŒ поÑледний раз." + +#: ../classes/wp-security-user-login.php:337 +#: ../classes/wp-security-user-login.php:341 +msgid "Please log back in to continue." +msgstr "Ð”Ð»Ñ Ð¿Ñ€Ð¾Ð´Ð¾Ð»Ð¶ÐµÐ½Ð¸Ñ Ð°Ð²Ñ‚Ð¾Ñ€Ð¸Ð·ÑƒÐ¹Ñ‚ÐµÑÑŒ Ñнова." + +#: ../classes/wp-security-user-login.php:340 +msgid "You were logged out because you just changed the \"admin\" username." +msgstr "" +"Ваша Ð°Ð²Ñ‚Ð¾Ñ€Ð¸Ð·Ð°Ñ†Ð¸Ð¾Ð½Ð½Ð°Ñ ÑеÑÑÐ¸Ñ Ð±Ñ‹Ð»Ð° прекращена, так как Ð’Ñ‹ только что изменили " +"Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Â«admin»." + +#: ../classes/wp-security-utility-ip-address.php:79 +#: ../classes/wp-security-utility-ip-address.php:98 +#: ../classes/wp-security-utility-ip-address.php:113 +#: ../classes/wp-security-utility-ip-address.php:128 +msgid " is not a valid ip address format." +msgstr "не ÑвлÑетÑÑ Ð¿Ñ€Ð°Ð²Ð¸Ð»ÑŒÐ½Ñ‹Ð¼ форматом IP-адреÑа." + +#: ../classes/wp-security-utility-ip-address.php:136 +msgid "You cannot ban your own IP address: " +msgstr "Свой ÑобÑтвенный IP-Ð°Ð´Ñ€ÐµÑ Ð·Ð°Ð±Ð°Ð½Ð¸Ñ‚ÑŒ нельзÑ:" diff --git a/all-in-one-wp-security/languages/aiowpsecurity-zh_CN.mo b/all-in-one-wp-security/languages/aiowpsecurity-zh_CN.mo new file mode 100644 index 0000000000000000000000000000000000000000..305378ee7d71df2a7d44e6f222c83db7226955f1 GIT binary patch literal 1373 zcmYk5&2Jk;6u_rYXfXvuE5wDv2)L1PY?lgmO%O?Fz#>+x+NHq7nye@G()ElrJDb>W zNfk;{B=S`^?sdG3#9K0v^fyn zpB8;TE&BfY&ia06!lvdK+j11nQBEsNqF1O>ofTA;VWsFSbr>!%)0LKLqAAN}PSa7W zw$~@w0<~?FqZU_;Q*JU;$dBi6Ub1<{l_fYTn3Qu!USLXDyyBo!4wHD?G=0##)>(wYvy|hea3vNC9B1>Gmdlbkj)75Lig%c)NVZJg zVA6ro1|GL1x{!+GoQhQ@6K=&JMPcArex^t!C8N4|0&`$} zA34e9EuA!Sr4q@bBypUiQaG6~j;5bWq!WqQG<6gyO3EFZDj^Nr+gS8k%R6@#cb6{W z7i+bb8*VCY@j3Al?Bx{~#!iZi)}Tf%n>#V=JQ+{KCWRgo;x9lXG)V!*ZnDX+w1HhU2ek*$*I9Ex$g(pHe<%Z&N|_SNluEn; zuMUkH$&pm1#6t|cB`!og3hh~&BPDJc&zmFtLk+#bgmnKecw-Rbjqq5wci7AXby%IM zs)6J2QE(Tbg|eu@>`1|_>t{D`lR1MoFz~z8;pqaS(yZp;JV`)?7~1Vz@h-Q#)=JR+ zBDnm4x4MD+i(h-oxBMGFBY$PfZ?(Oju6peY-Z_YTbbhCEEBLV!bZ$nj-A{f9&Te{Z zt0?GR2{u=Q&bI&Im&p5U$-90Rg4*yeZ2Ffj>D0aU-Jsh>!L<#4`F3x69eyJtSnYV- zmFPS1Z+_MLZcTqDQI(zU=R0>=y`^rje%AkXt#|$#@Amh>r|;{}#Jj%b-B>ixf0nkV Ag#Z8m literal 0 HcmV?d00001 diff --git a/all-in-one-wp-security/languages/aiowpsecurity-zh_CN.po b/all-in-one-wp-security/languages/aiowpsecurity-zh_CN.po new file mode 100644 index 0000000..9c82e08 --- /dev/null +++ b/all-in-one-wp-security/languages/aiowpsecurity-zh_CN.po @@ -0,0 +1,3424 @@ +msgid "" +msgstr "" +"Project-Id-Version: All In One WP Security vv2.5\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: \n" +"PO-Revision-Date: 2013-09-22 10:38+0800\n" +"Last-Translator: 言åˆä¸€éƒŽ \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=1;\n" +"X-Generator: Poedit 1.5.7\n" +"X-Poedit-SourceCharset: utf-8\n" +"X-Poedit-KeywordsList: __;_e;__ngettext:1,2;_n:1,2;__ngettext_noop:1,2;" +"_n_noop:1,2;_c,_nc:4c,1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2\n" +"X-Poedit-Basepath: ../\n" +"X-Textdomain-Support: yes\n" +"Language: zh\n" +"X-Poedit-SearchPath-0: .\n" + +# @ default +#: admin/general/wp-security-list-table.php:178 +msgid "No items found." +msgstr "" + +# @ default +#: admin/general/wp-security-list-table.php:281 +msgid "Bulk Actions" +msgstr "" + +# @ default +#: admin/general/wp-security-list-table.php:291 +msgid "Apply" +msgstr "" + +# @ default +#: admin/general/wp-security-list-table.php:365 +msgid "Show all dates" +msgstr "" + +# @ default +#. translators: 1: month name, 2: 4-digit year +#: admin/general/wp-security-list-table.php:378 +#, php-format +msgid "%1$s %2$d" +msgstr "" + +# @ default +#: admin/general/wp-security-list-table.php:394 +msgid "List View" +msgstr "" + +# @ default +#: admin/general/wp-security-list-table.php:395 +msgid "Excerpt View" +msgstr "" + +# @ default +#: admin/general/wp-security-list-table.php:421 +#, php-format +msgid "%s pending" +msgstr "" + +# @ default +#: admin/general/wp-security-list-table.php:477 +#: admin/general/wp-security-list-table.php:881 +#, php-format +msgid "1 item" +msgid_plural "%s items" +msgstr[0] "" +msgstr[1] "" + +# @ default +#: admin/general/wp-security-list-table.php:495 +msgid "Go to the first page" +msgstr "" + +# @ default +#: admin/general/wp-security-list-table.php:502 +msgid "Go to the previous page" +msgstr "" + +# @ default +#: admin/general/wp-security-list-table.php:511 +msgid "Current page" +msgstr "" + +# @ default +#: admin/general/wp-security-list-table.php:517 +#, php-format +msgctxt "paging" +msgid "%1$s of %2$s" +msgstr "" + +# @ default +#: admin/general/wp-security-list-table.php:521 +msgid "Go to the next page" +msgstr "" + +# @ default +#: admin/general/wp-security-list-table.php:528 +msgid "Go to the last page" +msgstr "" + +# @ default +#: admin/general/wp-security-list-table.php:653 +msgid "Select All" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-admin-init.php:155 +msgid "WP Security" +msgstr "WP 安全" + +# @ aiowpsecurity +#: admin/wp-security-admin-init.php:156 +msgid "Dashboard" +msgstr "控制æ¿" + +# @ aiowpsecurity +#: admin/wp-security-admin-init.php:157 +msgid "Settings" +msgstr "设置" + +# @ aiowpsecurity +#: admin/wp-security-admin-init.php:158 +msgid "User Accounts" +msgstr "用户账户" + +# @ aiowpsecurity +#: admin/wp-security-admin-init.php:159 +msgid "User Login" +msgstr "用户登录" + +# @ aiowpsecurity +#: admin/wp-security-admin-init.php:160 +msgid "Database Security" +msgstr "æ•°æ®åº“安全" + +# @ aiowpsecurity +#: admin/wp-security-admin-init.php:164 +msgid "Filesystem Security" +msgstr "文件系统安全" + +# @ aiowpsecurity +#: admin/wp-security-admin-init.php:166 +msgid "WHOIS Lookup" +msgstr "WHOIS 查询" + +# @ aiowpsecurity +#: admin/wp-security-admin-init.php:170 +msgid "Blacklist Manager" +msgstr "黑åå•ç®¡ç†å™¨" + +# @ aiowpsecurity +#: admin/wp-security-admin-init.php:175 +msgid "Firewall" +msgstr "防ç«å¢™" + +# @ aiowpsecurity +#: admin/wp-security-admin-init.php:177 +msgid "SPAM Prevention" +msgstr "垃圾防护" + +# @ aiowpsecurity +#: admin/wp-security-admin-init.php:181 +msgid "Scanner" +msgstr "扫æ器" + +# @ aiowpsecurity +#: admin/wp-security-admin-init.php:183 +msgid "Maintenance" +msgstr "网站维护" + +# @ aiowpsecurity +#: admin/wp-security-admin-menu.php:43 +msgid "Settings successfully updated." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-admin-menu.php:50 +msgid "The selected record(s) deleted successfully!" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-blacklist-menu.php:74 +msgid "Nonce check failed for save blacklist settings!" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-blacklist-menu.php:126 +#: admin/wp-security-list-comment-spammer-ip.php:147 +msgid "" +"The plugin was unable to write to the .htaccess file. Please edit file " +"manually." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-blacklist-menu.php:133 +msgid "Ban IPs or User Agents" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-blacklist-menu.php:136 +msgid "" +"The All In One WP Security Blacklist feature gives you the option of banning " +"certain host IP addresses or ranges and also user agents." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-blacklist-menu.php:137 +msgid "" +"This feature will deny total site access for users which have IP addresses " +"or user agents matching those which you have configured in the settings " +"below." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-blacklist-menu.php:138 +msgid "" +"The plugin achieves this by making appropriate modifications to your ." +"htaccess file." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-blacklist-menu.php:139 +msgid "" +"By blocking people via the .htaccess file your are using the most secure " +"first line of defence which denies all access to blacklisted visitors as " +"soon as they hit your hosting server." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-blacklist-menu.php:145 +msgid "IP Hosts and User Agent Blacklist Settings" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-blacklist-menu.php:156 +msgid "Enable IP or User Agent Blacklisting" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-blacklist-menu.php:159 +msgid "" +"Check this if you want to enable the banning (or blacklisting) of selected " +"IP addresses and/or user agents specified in the settings below" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-blacklist-menu.php:163 +msgid "Enter IP Addresses:" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-blacklist-menu.php:167 +msgid "Enter one or more IP addresses or IP ranges." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-blacklist-menu.php:168 +#: admin/wp-security-blacklist-menu.php:188 +#: admin/wp-security-filescan-menu.php:265 +#: admin/wp-security-filescan-menu.php:282 +#: admin/wp-security-firewall-menu.php:141 +#: admin/wp-security-firewall-menu.php:171 +#: admin/wp-security-firewall-menu.php:302 +#: admin/wp-security-firewall-menu.php:332 +#: admin/wp-security-firewall-menu.php:363 +#: admin/wp-security-firewall-menu.php:391 +#: admin/wp-security-firewall-menu.php:420 +#: admin/wp-security-firewall-menu.php:508 +#: admin/wp-security-firewall-menu.php:653 +#: admin/wp-security-firewall-menu.php:687 +#: admin/wp-security-firewall-menu.php:710 +#: admin/wp-security-firewall-menu.php:731 admin/wp-security-spam-menu.php:133 +#: admin/wp-security-spam-menu.php:218 +msgid "More Info" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-blacklist-menu.php:171 +msgid "Each IP address must be on a new line." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-blacklist-menu.php:172 +msgid "" +"To specify an IP range use a wildcard \"*\" character. Acceptable ways to " +"use wildcards is shown in the examples below:" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-blacklist-menu.php:173 +msgid "Example 1: 195.47.89.*" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-blacklist-menu.php:174 +msgid "Example 2: 195.47.*.*" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-blacklist-menu.php:175 +msgid "Example 3: 195.*.*.*" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-blacklist-menu.php:182 +msgid "Enter User Agents:" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-blacklist-menu.php:187 +msgid "Enter one or more user agent strings." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-blacklist-menu.php:191 +msgid "Each user agent string must be on a new line." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-blacklist-menu.php:192 +msgid "Example 1 - A single user agent string to block:" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-blacklist-menu.php:194 +msgid "Example 2 - A list of more than 1 user agent strings to block" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-blacklist-menu.php:202 +#: admin/wp-security-database-menu.php:342 +#: admin/wp-security-filescan-menu.php:303 +#: admin/wp-security-filesystem-menu.php:225 +#: admin/wp-security-settings-menu.php:491 admin/wp-security-spam-menu.php:148 +#: admin/wp-security-user-login-menu.php:223 +#: admin/wp-security-user-login-menu.php:391 +msgid "Save Settings" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-dashboard-menu.php:111 +msgid "Total Achievable Points: " +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-dashboard-menu.php:113 +msgid "Current Score of Your Site: " +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-dashboard-menu.php:168 +msgid "" +"Below is the current status of the critical features that you should " +"activate on your site to achieve a minimum level of recommended security" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-dashboard-menu.php:172 +msgid "Admin Username" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-dashboard-menu.php:187 +msgid "Login Lockdown" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-dashboard-menu.php:202 +msgid "File Permission" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-dashboard-menu.php:217 +msgid "Basic Firewall" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-dashboard-menu.php:239 +msgid "" +"Maintenance mode is currently enabled. Remember to turn it off when you are " +"done" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-dashboard-menu.php:242 +msgid "Maintenance mode is currently off." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-dashboard-menu.php:246 +msgid "Maintenance Mode" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-dashboard-menu.php:295 +msgid "Number of users currently logged in site-wide is:" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-dashboard-menu.php:296 +#: admin/wp-security-dashboard-menu.php:318 +#, php-format +msgid "Go to the %s menu to see more details" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-dashboard-menu.php:301 +msgid "There are no other site-wide users currently logged in." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-dashboard-menu.php:317 +msgid "Number of users currently logged into your site is:" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-dashboard-menu.php:323 +msgid "There are no other users currently logged in." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-dashboard-menu.php:388 +#: admin/wp-security-filesystem-menu.php:124 +#: admin/wp-security-filesystem-menu.php:143 +msgid "Name" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-dashboard-menu.php:389 +msgid "Version" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-dashboard-menu.php:390 +msgid "Plugin URL" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-database-menu.php:78 +msgid "Nonce check failed for DB prefix change operation!" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-database-menu.php:86 +msgid "" +"The plugin has detected that it cannot write to the wp-config.php file. This " +"feature can only be used if the plugin can successfully write to the wp-" +"config.php file." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-database-menu.php:99 +msgid "Please enter a value for the DB prefix." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-database-menu.php:108 +msgid "" +"ERROR: The table prefix can only contain numbers, letters, " +"and underscores." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-database-menu.php:116 +msgid "Change Database Prefix" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-database-menu.php:119 +msgid "" +"Your WordPress DB is the most important asset of your website because it " +"contains a lot of your site's precious information." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-database-menu.php:120 +msgid "" +"The DB is also a target for hackers via methods such as SQL injections and " +"malicious and automated code which targets certain tables." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-database-menu.php:121 +msgid "" +"One way to add a layer of protection for your DB is to change the default " +"WordPress table prefix from \"wp_\" to something else which will be " +"difficult for hackers to guess." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-database-menu.php:122 +msgid "" +"This feature allows you to easily change the prefix to a value of your " +"choice or to a random value set by this plugin." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-database-menu.php:128 +msgid "DB Prefix Options" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-database-menu.php:139 +#, php-format +msgid "It is recommended that you perform a %s before using this feature" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-database-menu.php:148 +msgid "Current DB Table Prefix" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-database-menu.php:154 +msgid "" +"Your site is currently using the default WordPress DB prefix value of \"wp_" +"\". \n" +" To increase your site's security you should " +"consider changing the DB prefix value to another value." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-database-menu.php:161 +msgid "Generate New DB Table Prefix" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-database-menu.php:164 +msgid "" +"Check this if you want the plugin to generate a random 6 character string " +"for the table prefix" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-database-menu.php:165 +msgid "OR" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-database-menu.php:167 +msgid "" +"Choose your own DB prefix by specifying a string which contains letters and/" +"or numbers and/or underscores. Example: xyz_" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-database-menu.php:171 +msgid "Change DB Prefix" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-database-menu.php:192 +#: admin/wp-security-filesystem-menu.php:80 +msgid "Nonce check failed for manual DB backup operation!" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-database-menu.php:210 +msgid "" +"DB Backup was successfully completed! Right click on the following file name " +"and save the backup to your computer." +msgstr "" + +# @ default +#: admin/wp-security-database-menu.php:212 +msgid "Your DB Backup File: " +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-database-menu.php:220 +msgid "DB Backup failed. Please check the permissions of the backup directory." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-database-menu.php:237 +#: admin/wp-security-filescan-menu.php:120 +msgid "" +"You entered a non numeric value for the \"backup time interval\" field. It " +"has been set to the default value." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-database-menu.php:244 +msgid "" +"You entered a non numeric value for the \"number of backup files to keep\" " +"field. It has been set to the default value." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-database-menu.php:251 +#: admin/wp-security-filescan-menu.php:150 +#: admin/wp-security-user-login-menu.php:112 +msgid "" +"You have entered an incorrect email address format. It has been set to your " +"WordPress admin email as default." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-database-menu.php:257 +#: admin/wp-security-filescan-menu.php:156 admin/wp-security-spam-menu.php:178 +#: admin/wp-security-user-login-menu.php:118 +#: admin/wp-security-user-login-menu.php:344 +msgid "Attention!" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-database-menu.php:284 +msgid "Manual Backup" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-database-menu.php:290 +msgid "To create a new DB backup just click on the button below." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-database-menu.php:293 +msgid "Create DB Backup Now" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-database-menu.php:297 +msgid "Automated Scheduled Backups" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-database-menu.php:309 +msgid "Enable Automated Scheduled Backups" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-database-menu.php:312 +msgid "" +"Check this if you want the system to automatically generate backups " +"periodically based on the settings below" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-database-menu.php:316 +msgid "Backup Time Interval" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-database-menu.php:319 +#: admin/wp-security-filescan-menu.php:253 +msgid "Hours" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-database-menu.php:320 +#: admin/wp-security-filescan-menu.php:254 +msgid "Days" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-database-menu.php:321 +#: admin/wp-security-filescan-menu.php:255 +msgid "Weeks" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-database-menu.php:323 +msgid "Set the value for how often you would like an automated backup to occur" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-database-menu.php:327 +msgid "Number of Backup Files To Keep" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-database-menu.php:329 +msgid "" +"Thie field allows you to choose the number of backup files you would like to " +"keep in the backup directory" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-database-menu.php:333 +msgid "Send Backup File Via Email" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-database-menu.php:336 +msgid "" +"Check this if you want the system to email you the backup file after a DB " +"backup has been performed" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-database-menu.php:338 +#: admin/wp-security-filescan-menu.php:299 +#: admin/wp-security-user-login-menu.php:219 +msgid "Enter an email address" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-database-menu.php:368 +msgid "Starting DB prefix change operations....." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-database-menu.php:370 +#, php-format +msgid "" +"Your WordPress system has a total of %s tables and your new DB prefix will " +"be: %s" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-database-menu.php:376 classes/wp-security-utility.php:206 +msgid "" +"Failed to make a backup of the wp-config.php file. This operation will not " +"go ahead." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-database-menu.php:380 +msgid "A backup copy of your wp-config.php file was created successfully!" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-database-menu.php:403 +#, php-format +msgid "%s table name update failed" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-database-menu.php:415 +#, php-format +msgid "Please change the prefix manually for the above tables to: %s" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-database-menu.php:418 +#, php-format +msgid "%s tables had their prefix updated successfully!" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-database-menu.php:433 +msgid "wp-config.php file was updated successfully!" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-database-menu.php:436 +#, php-format +msgid "" +"The \"wp-config.php\" file was not able to be modified. Please modify this " +"file manually using your favourite editor and search \n" +" for variable \"$table_prefix\" and assign the following " +"value to that variable: %s" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-database-menu.php:457 +msgid "There was an error when updating the options table." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-database-menu.php:461 +msgid "" +"The options table records which had references to the old DB prefix were " +"updated successfully!" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-database-menu.php:486 +#, php-format +msgid "" +"Error updating user_meta table where new meta_key = %s, old meta_key = %s " +"and user_id = %s." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-database-menu.php:492 +msgid "" +"The usermeta table records which had references to the old DB prefix were " +"updated successfully!" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-database-menu.php:494 +msgid "DB prefix change tasks have been completed." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-filescan-menu.php:87 +msgid "Nonce check failed for manual file change detection scan operation!" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-filescan-menu.php:94 +msgid "" +"The plugin has detected that this is your first file change detection scan. " +"The file details from this scan will be used to detect file changes for " +"future scans!" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-filescan-menu.php:188 +msgid "" +"NEW SCAN COMPLETED: The plugin has detected that you have made changes to " +"the \"File Types To Ignore\" or \"Files To Ignore\" fields.\n" +" In order to ensure that future scan results are " +"accurate, the old scan data has been refreshed." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-filescan-menu.php:198 +msgid "" +"All In One WP Security & Firewall has detected that there was a change in " +"your host's files." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-filescan-menu.php:200 +msgid "View Scan Details & Clear This Message" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-filescan-menu.php:209 +msgid "" +"If given an opportunity hackers can insert their code or files into your " +"system which they can then use to carry out malicious acts on your site." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-filescan-menu.php:210 +msgid "" +"Being informed of any changes in your files can be a good way to quickly " +"prevent a hacker from causing damage to your website." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-filescan-menu.php:211 +msgid "" +"In general, WordPress core and plugin files and file types such as \".php\" " +"or \".js\" should not change often and when they do, it is important that " +"you are made aware when a change occurs and which file was affected." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-filescan-menu.php:212 +msgid "" +"The \"File Change Detection Feature\" will notify you of any file change " +"which occurs on your system, including the addition and deletion of files by " +"performing a regular automated or manual scan of your system's files." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-filescan-menu.php:213 +msgid "" +"This feature also allows you to exclude certain files or folders from the " +"scan in cases where you know that they change often as part of their normal " +"operation. (For example log files and certain caching plugin files may " +"change often and hence you may choose to exclude such files from the file " +"change detection scan)" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-filescan-menu.php:218 +msgid "Manual File Change Detection Scan" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-filescan-menu.php:224 +msgid "" +"To perform a manual file change detection scan click on the button below." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-filescan-menu.php:227 +msgid "Perform Scan Now" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-filescan-menu.php:231 +msgid "Automated File Change Detection" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-filescan-menu.php:243 +msgid "Enable Automated File Change Detection Scan" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-filescan-menu.php:246 +msgid "" +"Check this if you want the system to automatically/periodically scan your " +"files to check for file changes based on the settings below" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-filescan-menu.php:250 +msgid "Scan Time Interval" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-filescan-menu.php:257 +msgid "Set the value for how often you would like a scan to occur" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-filescan-menu.php:261 +msgid "File Types To Ignore" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-filescan-menu.php:264 +msgid "" +"Enter each file type or extension on a new line which you wish to exclude " +"from the file change detection scan." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-filescan-menu.php:268 +msgid "" +"You can exclude file types from the scan which would not normally pose any " +"security threat if they were changed. These can include things such as image " +"files." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-filescan-menu.php:269 +msgid "" +"Example: If you want the scanner to ignore files of type jpg, png, and bmp, " +"then you would enter the following:" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-filescan-menu.php:270 +msgid "jpg" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-filescan-menu.php:271 +msgid "png" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-filescan-menu.php:272 +msgid "bmp" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-filescan-menu.php:278 +msgid "Files/Directories To Ignore" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-filescan-menu.php:281 +msgid "" +"Enter each file or directory on a new line which you wish to exclude from " +"the file change detection scan." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-filescan-menu.php:285 +msgid "" +"You can exclude specific files/directories from the scan which would not " +"normally pose any security threat if they were changed. These can include " +"things such as log files." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-filescan-menu.php:286 +msgid "" +"Example: If you want the scanner to ignore certain files in different " +"directories or whole directories, then you would enter the following:" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-filescan-menu.php:287 +msgid "cache/config/master.php" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-filescan-menu.php:288 +msgid "somedirectory" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-filescan-menu.php:294 +msgid "Send Email When Change Detected" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-filescan-menu.php:297 +msgid "" +"Check this if you want the system to email you if a file change was detected" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-filescan-menu.php:328 +msgid "Latest File Change Scan Results" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-filescan-menu.php:337 +msgid "The following files were added to your host." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-filescan-menu.php:340 +#: admin/wp-security-filescan-menu.php:361 +#: admin/wp-security-filescan-menu.php:385 +msgid "File" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-filescan-menu.php:341 +#: admin/wp-security-filescan-menu.php:362 +#: admin/wp-security-filescan-menu.php:386 +msgid "File Size" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-filescan-menu.php:342 +#: admin/wp-security-filescan-menu.php:363 +#: admin/wp-security-filescan-menu.php:387 +msgid "File Modified" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-filescan-menu.php:358 +msgid "The following files were removed from your host." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-filescan-menu.php:382 +msgid "The following files were changed on your host." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-filesystem-menu.php:90 +#, php-format +msgid "The permissions for %s were succesfully changed to %s" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-filesystem-menu.php:94 +#, php-format +msgid "Unable to change permissions for %s!" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-filesystem-menu.php:100 +msgid "File Permissions Scan" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-filesystem-menu.php:103 +msgid "" +"Your WordPress file and folder permission settings govern the accessability " +"and read/write privileges of the files and folders which make up your WP " +"installation." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-filesystem-menu.php:104 +msgid "" +"Your WP installation already comes with reasonably secure file permission " +"settings for the filesystem." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-filesystem-menu.php:105 +msgid "" +"However, sometimes people or other plugins modify the various permission " +"settings of certain core WP folders or files such that they end up making " +"their site less secure because they chose the wrong permission values." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-filesystem-menu.php:106 +msgid "" +"This feature will scan the critical WP core folders and files and will " +"highlight any permission settings which are insecure." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-filesystem-menu.php:112 +msgid "WP Directory and File Permissions Scan Results" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-filesystem-menu.php:125 +#: admin/wp-security-filesystem-menu.php:144 +msgid "File/Folder" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-filesystem-menu.php:126 +#: admin/wp-security-filesystem-menu.php:145 +msgid "Current Permissions" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-filesystem-menu.php:127 +#: admin/wp-security-filesystem-menu.php:146 +msgid "Recommended Permissions" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-filesystem-menu.php:128 +#: admin/wp-security-filesystem-menu.php:147 +msgid "Recommended Action" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-filesystem-menu.php:185 +msgid "Your PHP file editing settings were saved successfully." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-filesystem-menu.php:189 +msgid "" +"Operation failed! Unable to modify or make a backup of wp-config.php file!" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-filesystem-menu.php:195 +msgid "File Editing" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-filesystem-menu.php:198 +msgid "" +"The Wordpress Dashboard by default allows administrators to edit PHP files, " +"such as plugin and theme files." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-filesystem-menu.php:199 +msgid "" +"This is often the first tool an attacker will use if able to login, since it " +"allows code execution." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-filesystem-menu.php:200 +msgid "" +"This feature will disable the ability for people to edit PHP files via the " +"dashboard." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-filesystem-menu.php:206 +msgid "Disable PHP File Editing" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-filesystem-menu.php:218 +msgid "Disable Ability To Edit PHP Files" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-filesystem-menu.php:221 +msgid "" +"Check this if you want to remove the ability for people to edit PHP files " +"via the WP dashboard" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-filesystem-menu.php:265 +msgid "" +"You have successfully saved the Prevent Access to Default WP Files " +"configuration." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-filesystem-menu.php:269 +#: admin/wp-security-firewall-menu.php:109 +#: admin/wp-security-firewall-menu.php:263 +#: admin/wp-security-firewall-menu.php:474 +#: admin/wp-security-firewall-menu.php:613 admin/wp-security-spam-menu.php:96 +msgid "" +"Could not write to the .htaccess file. Please check the file permissions." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-filesystem-menu.php:274 +msgid "WordPress Files" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-filesystem-menu.php:277 +#, php-format +msgid "" +"This feature allows you to prevent access to files such as %s, %s and %s " +"which are delivered with all WP installations." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-filesystem-menu.php:278 +msgid "" +"By preventing access to these files you are hiding some key pieces of " +"information (such as WordPress version info) from potential hackers." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-filesystem-menu.php:283 +msgid "Prevent Access to Default WP Files" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-filesystem-menu.php:294 +msgid "Prevent Access to WP Default Install Files" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-filesystem-menu.php:297 +msgid "" +"Check this if you want to prevent access to readme.html, license.txt and wp-" +"config-sample.php." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-filesystem-menu.php:301 +msgid "Save Setting" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-filesystem-menu.php:312 +msgid "System Logs" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-filesystem-menu.php:315 +msgid "" +"Sometimes your hosting platform will produce error or warning logs in a file " +"called \"error_log\"." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-filesystem-menu.php:316 +msgid "" +"Depending on the nature and cause of the error or warning, your hosting " +"server can create multiple instances of this file in numerous directory " +"locations of your WordPress installation." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-filesystem-menu.php:317 +msgid "" +"By occassionally viewing the contents of these logs files you can keep " +"informed of any underlying problems on your system which you might need to " +"address." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-filesystem-menu.php:323 +msgid "View System Logs" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-filesystem-menu.php:328 +msgid "View Latest System Logs" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-filesystem-menu.php:330 +msgid "Loading..." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-filesystem-menu.php:347 +msgid "No system logs were found!" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-filesystem-menu.php:400 +msgid "Set Recommended Permissions" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-filesystem-menu.php:406 +msgid "No Action Required" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-filesystem-menu.php:446 +#, php-format +msgid "Showing latest entries of error_log file: %s" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:105 admin/wp-security-spam-menu.php:92 +msgid "Settings were successfully saved" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:114 +#: admin/wp-security-firewall-menu.php:479 +msgid "Firewall Settings" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:121 +#: admin/wp-security-firewall-menu.php:629 +#, php-format +msgid "" +"This should not have any impact on your site's general functionality but if " +"you wish you can take a %s of your .htaccess file before proceeding." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:122 +msgid "" +"The features in this tab allow you to activate some basic firewall security " +"protection rules for your site." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:123 +msgid "" +"The firewall functionality is achieved via the insertion of special code " +"into your currently active .htaccess file." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:129 +msgid "Basic Firewall Settings" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:137 +msgid "Enable Basic Firewall Protection" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:140 +msgid "Check this if you want to apply basic firewall protection to your site." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:144 +msgid "" +"This setting will implement the following basic firewall protection " +"mechanisms on your site:" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:145 +msgid "1) Protect your htaccess file by denying access to it." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:146 +msgid "2) Disable the server signature." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:147 +msgid "3) Limit file upload size (10MB)." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:148 +msgid "4) Protect your wp-config.php file by denying access to it." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:149 +msgid "" +"The above firewall features will be applied via your .htaccess file and " +"should not affect your site's overall functionality." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:150 +msgid "" +"You are still advised to take a backup of your active .htaccess file just in " +"case." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:159 +msgid "WordPress Pingback Vulnerability Protection" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:167 +msgid "Enable Pingback Protection" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:170 +msgid "" +"Check this if you are not using the WP XML-RPC functionality and you want to " +"enable protection against WordPress pingback vulnerabilities." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:174 +msgid "" +"This setting will add a directive in your .htaccess to disable access to the " +"WordPress xmlrpc.php file which is responsible for the XML-RPC functionality " +"such as pingbacks in WordPress." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:175 +msgid "" +"Hackers can exploit various pingback vulnerabilities in the WordPress XML-" +"RPC API in a number of ways such as:" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:176 +msgid "1) Denial of Service (DoS) attacks" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:177 +msgid "2) Hacking internal routers." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:178 +msgid "3) Scanning ports in internal networks to get info from various hosts." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:179 +msgid "" +"Apart from the security protection benefit, this feature may also help " +"reduce load on your server, particularly if your site currently has a lot of " +"unwanted traffic hitting the XML-RPC API on your installation." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:180 +msgid "" +"NOTE: You should only enable this feature if you are not currently using the " +"XML-RPC functionality on your WordPress installation." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:187 +msgid "Save Basic Firewall Settings" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:259 +msgid "" +"You have successfully saved the Additional Firewall Protection configuration" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:273 +msgid "Additional Firewall Protection" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:277 +#, php-format +msgid "" +"Due to the nature of the code being inserted to the .htaccess file, this " +"feature may break some functionality for certain plugins and you are " +"therefore advised to take a %s of .htaccess before applying this " +"configuration." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:279 +msgid "" +"This feature allows you to activate more advanced firewall settings to your " +"site." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:280 +msgid "" +"The advanced firewall rules are applied via the insertion of special code to " +"your currently active .htaccess file." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:289 +msgid "Listing of Directory Contents" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:298 +msgid "Disable Index Views" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:301 +msgid "Check this if you want to disable directory and file listing." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:306 +msgid "" +"By default, an Apache server will allow the listing of the contents of a " +"directory if it doesn't contain an index.php file." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:308 +msgid "This feature will prevent the listing of contents for all directories." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:310 +msgid "" +"NOTE: In order for this feature to work \"AllowOverride\" must be enabled in " +"your httpd.conf file. Ask your hosting provider to check this if you don't " +"have access to httpd.conf" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:319 +msgid "Trace and Track" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:328 +msgid "Disable Trace and Track" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:331 +msgid "Check this if you want to disable trace and track." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:336 +msgid "" +"HTTP Trace attack (XST) can be used to return header requests and grab " +"cookies and other information." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:338 +msgid "" +"This hacking technique is usually used together with cross site scripting " +"attacks (XSS)." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:340 +msgid "" +"Disabling trace and track on your site will help prevent HTTP Trace attacks." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:349 +msgid "Proxy Comment Posting" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:359 +msgid "Forbid Proxy Comment Posting" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:362 +msgid "Check this if you want to forbid proxy comment posting." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:367 +msgid "" +"This setting will deny any requests that use a proxy server when posting " +"comments." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:368 +msgid "" +"By forbidding proxy comments you are in effect eliminating some SPAM and " +"other proxy requests." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:377 +msgid "Bad Query Strings" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:387 +msgid "Deny Bad Query Strings" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:390 +msgid "This will help protect you against malicious queries via XSS." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:395 +msgid "" +"This feature will write rules in your .htaccess file to prevent malicious " +"string attacks on your site using XSS." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:396 +msgid "" +"NOTE: Some of these strings might be used for plugins or themes and hence " +"this might break some functionality." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:397 +#: admin/wp-security-firewall-menu.php:427 +msgid "" +"You are therefore strongly advised to take a backup of your active .htaccess " +"file before applying this feature." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:406 +msgid "Advanced Character String Filter" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:416 +msgid "Enable Advanced Character String Filter" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:419 +msgid "This will block bad character matches from XSS." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:424 +msgid "" +"This is an advanced character string filter to prevent malicious string " +"attacks on your site coming from Cross Site Scripting (XSS)." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:425 +msgid "" +"This setting matches for common malicious string patterns and exploits and " +"will produce a 403 error for the hacker attempting the query." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:426 +msgid "NOTE: Some strings for this setting might break some functionality." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:435 +msgid "Save Additional Firewall Settings" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:470 +msgid "You have successfully saved the 5G Firewall Protection configuration" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:483 +#, php-format +msgid "" +"This feature allows you to activate the 5G firewall security protection " +"rules designed and produced by %s." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:484 +msgid "" +"The 5G Blacklist is a simple, flexible blacklist that helps reduce the " +"number of malicious URL requests that hit your website." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:485 +msgid "" +"The added advantage of applying the 5G firewall to your site is that it has " +"been tested and confirmed by the people at PerishablePress.com to be an " +"optimal and least disruptive set of .htaccess security rules for general WP " +"sites running on an Apache server or similar." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:486 +#, php-format +msgid "" +"Therefore the 5G firewall rules should not have any impact on your site's " +"general functionality but if you wish you can take a %s of your .htaccess " +"file before proceeding." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:492 +msgid "5G Blacklist/Firewall Settings" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:504 +msgid "Enable 5G Firewall Protection" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:507 +msgid "" +"Check this if you want to apply the 5G Blacklist firewall protection from " +"perishablepress.com to your site." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:511 +msgid "" +"This setting will implement the 5G security firewall protection mechanisms " +"on your site which include the following things:" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:512 +msgid "1) Block forbidden characters commonly used in exploitative attacks." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:513 +msgid "2) Block malicious encoded URL characters such as the \".css(\" string." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:514 +msgid "" +"3) Guard against the common patterns and specific exploits in the root " +"portion of targeted URLs." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:515 +msgid "" +"4) Stop attackers from manipulating query strings by disallowing illicit " +"characters." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:516 +msgid "....and much more." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:522 +msgid "Save 5G Firewall Settings" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:550 +msgid "" +"Settings have not been saved - your secret word must consist only of " +"alphanumeric characters, ie, letters and/or numbers only!" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:568 +msgid "" +"You have successfully enabled the cookie based brute force prevention feature" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:569 +msgid "" +"From now on you will need to log into your WP Admin using the following URL:" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:571 +msgid "" +"It is important that you save this URL value somewhere in case you forget " +"it, OR," +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:572 +#, php-format +msgid "simply remember to add a \"?%s=1\" to your current site URL address." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:578 +msgid "" +"You have successfully saved cookie based brute force prevention feature " +"settings." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:623 +msgid "Brute Force Prevention Firewall Settings" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:630 +msgid "" +"A Brute Force Attack is when a hacker tries many combinations of usernames " +"and passwords until they succeed in guessing the right combination." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:631 +msgid "" +"Due to the fact that at any one time there may be many concurrent login " +"attempts occurring on your site via malicious automated robots, this also " +"has a negative impact on your server's memory and performance." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:632 +msgid "" +"The features in this tab will stop the majority of Brute Force Login Attacks " +"at the .htaccess level thus providing even better protection for your WP " +"login page and also reducing the load on your server because the system does " +"not have to run PHP code to process the login attempts." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:638 +msgid "Cookie Based Brute Force Login Prevention" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:649 +msgid "Enable Brute Force Attack Prevention" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:652 +msgid "" +"Check this if you want to protect your login page from Brute Force Attack." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:657 +msgid "" +"This feature will deny access to your WordPress login page for all people " +"except those who have a special cookie in their browser." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:659 +msgid "To use this feature do the following:" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:661 +msgid "1) Enable the checkbox." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:663 +msgid "" +"2) Enter a secret word consisting of alphanumeric characters which will be " +"difficult to guess. This secret word will be useful whenever you need to " +"know the special URL which you will use to access the login page (see point " +"below)." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:665 +msgid "" +"3) You will then be provided with a special login URL. You will need to use " +"this URL to login to your WordPress site instead of the usual login URL. " +"NOTE: The system will deposit a special cookie in your browser which will " +"allow you access to the WordPress administration login page." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:667 +msgid "" +"Any person trying to access your login page who does not have the special " +"cookie in their browser will be automatically blocked." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:674 +msgid "Secret Word" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:676 +msgid "" +"Choose a secret word consisting of alphanumeric characters which you can use " +"to access your special URL. Your are highly encouraged to choose a word " +"which will be difficult to guess." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:680 +msgid "Re-direct URL" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:684 +msgid "" +"Specify a URL to redirect a hacker to when they try to access your WordPress " +"login page." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:691 +msgid "" +"The URL specified here can be any site's URL and does not have to be your " +"own. For example you can be as creative as you like and send hackers to the " +"CIA or NSA home page." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:693 +msgid "" +"This field will default to: http://127.0.0.1 if you do not enter a value." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:695 +msgid "Useful Tip:" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:697 +msgid "" +"It's a good idea to not redirect attempted brute force login attempts to " +"your site because it increases the load on your server." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:699 +msgid "" +"Redirecting a hacker or malicious bot back to \"http://127.0.0.1\" is ideal " +"because it deflects them back to their own local host and puts the load on " +"their server instead of yours." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:706 +msgid "My Site Has Posts Or Pages Which Are Password Protected" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:709 +msgid "" +"Check this if you are using the native WordPress password protection feature " +"for some or all of your blog posts or pages." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:714 +msgid "" +"In the cases where you are protecting some of your posts or pages using the " +"in-built WordPress password protection feature, a few extra lines of " +"directives and exceptions need to be added to your .htacces file so that " +"people trying to access pages are not automatically blocked." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:716 +msgid "" +"By enabling this checkbox the plugin will add the necessary rules and " +"exceptions to your .htacces file so that people trying to access these pages " +"are not automatically blocked." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:718 +msgid "Helpful Tip:" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:720 +msgid "" +"If you do not use the WordPress password protection feature for your posts " +"or pages then it is highly recommended that you leave this checkbox disabled." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:727 +msgid "My Site Has a Theme or Plugins Which Use AJAX" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:730 +msgid "Check this if your site uses AJAX functionality." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:735 +msgid "" +"In the cases where your WordPress installation has a theme or plugins which " +"use AJAX, a few extra lines of directives and exceptions need to be added to " +"your .htacces file to prevent AJAX requests from being automatically blocked " +"by the brute force prevention feature." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:737 +msgid "" +"By enabling this checkbox the plugin will add the necessary rules and " +"exceptions to your .htacces file so that AJAX operations will work as " +"expected." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:752 +msgid "The cookie test was successful. You can now enable this feature." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:755 +msgid "Save Feature Settings" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:762 +msgid "" +"The cookie test failed on this server. So this feature cannot be used on " +"this site." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:768 +msgid "" +"Before using this feature you are required to perform a cookie test first. " +"This is to make sure that your browser cookie is working correctly and that " +"you won't lock yourself out." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-firewall-menu.php:770 +msgid "Perform Cookie Test" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-list-acct-activity.php:79 +#: admin/wp-security-list-comment-spammer-ip.php:86 +#: admin/wp-security-list-locked-ip.php:80 +#: admin/wp-security-list-locked-ip.php:91 +#: admin/wp-security-list-login-fails.php:78 +msgid "Please select some records using the checkboxes" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-list-acct-activity.php:107 +#: admin/wp-security-list-login-fails.php:107 +msgid "The selected entries were deleted successfully!" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-list-acct-activity.php:120 +#: admin/wp-security-list-login-fails.php:119 +msgid "The selected entry was deleted successfully!" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-list-comment-spammer-ip.php:139 +msgid "" +"The selected IP addresses were saved in the blacklist configuration settings." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-list-comment-spammer-ip.php:153 +msgid "" +"The .htaccess file was successfully modified to include the selected IP " +"addresses." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-list-comment-spammer-ip.php:159 +msgid "" +"NOTE: The .htaccess file was not modified because you have disabled the " +"\"Enable IP or User Agent Blacklisting\" check box." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-list-comment-spammer-ip.php:160 +#, php-format +msgid "" +"To block these IP addresses you will need to enable the above flag in the %s " +"menu" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-list-locked-ip.php:115 +#: admin/wp-security-user-login-menu.php:511 +msgid "The selected IP ranges were unlocked successfully!" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-list-locked-ip.php:124 +#: admin/wp-security-user-login-menu.php:520 +msgid "The selected IP range was unlocked successfully!" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-maintenance-menu.php:82 +msgid "Site lockout feature settings saved!" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-maintenance-menu.php:87 +msgid "General Visitor Lockout" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-maintenance-menu.php:93 +msgid "" +"This feature allows you to put your site into \"maintenance mode\" by " +"locking down the front-end to all visitors except logged in users with super " +"admin privileges." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-maintenance-menu.php:94 +msgid "" +"Locking your site down to general visitors can be useful if you are " +"investigating some issues on your site or perhaps you might be doing some " +"maintenance and wish to keep out all traffic for security reasons." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-maintenance-menu.php:99 +msgid "Enable Front-end Lockout" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-maintenance-menu.php:102 +msgid "" +"Check this if you want all visitors except those who are logged in as " +"administrator to be locked out of the front-end of your site." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-maintenance-menu.php:106 +msgid "Enter a Message:" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-maintenance-menu.php:118 +msgid "" +"Enter a message you wish to display to visitors when your site is in " +"maintenance mode." +msgstr "" + +# @ default +#: admin/wp-security-maintenance-menu.php:125 +msgid "Save Site Lockout Settings" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-settings-menu.php:89 +msgid "All the security features have been disabled successfully!" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-settings-menu.php:93 +#: admin/wp-security-settings-menu.php:120 +msgid "" +"Could not write to the .htaccess file. Please restore your .htaccess file " +"manually using the restore functionality in the \".htaccess File\"." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-settings-menu.php:98 +msgid "" +"Could not write to the wp-config.php. Please restore your wp-config.php file " +"manually using the restore functionality in the \"wp-config.php File\"." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-settings-menu.php:116 +msgid "All firewall rules have been disabled successfully!" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-settings-menu.php:130 +msgid "WP Security Plugin" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-settings-menu.php:132 +msgid "" +"Thank you for using our WordPress security plugin. There are a lot of " +"security features in this plugin." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-settings-menu.php:133 +msgid "" +"Go through each menu items and enable the security options to add more " +"security to your site. Start by activating the basic features first." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-settings-menu.php:134 +msgid "" +"It is a good practice to take a backup of your .htaccess file, database and " +"wp-config.php file before activating the security features. This plugin has " +"options that you can use to backup those resources easily." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-settings-menu.php:137 +msgid "Backup your database" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-settings-menu.php:138 +msgid "Backup .htaccess file" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-settings-menu.php:139 +msgid "Backup wp-config.php file" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-settings-menu.php:145 +msgid "Disable Security Features" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-settings-menu.php:151 +msgid "" +"If you think that some plugin functionality on your site is broken due to a " +"security feature you enabled in this plugin, then use the following option " +"to turn off all the security features of this plugin." +msgstr "" + +# @ default +#: admin/wp-security-settings-menu.php:155 +msgid "Disable All Security Features" +msgstr "" + +# @ aiowpsecurity +# @ default +#: admin/wp-security-settings-menu.php:161 +#: admin/wp-security-settings-menu.php:171 +msgid "Disable All Firewall Rules" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-settings-menu.php:167 +msgid "" +"This feature will disable all firewall rules which are currently active in " +"this plugin and it will also delete these rules from your .htacess file. Use " +"it if you think one of the firewall rules is causing an issue on your site." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-settings-menu.php:200 +msgid "" +"Your .htaccess file was successfully backed up! Using an FTP program go to " +"the \"backups\" directory of this plugin to save a copy of the file to your " +"computer." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-settings-menu.php:210 +msgid "" +"htaccess file rename failed during backup. Please check your root directory " +"for the backup file using FTP." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-settings-menu.php:216 +msgid "htaccess backup failed." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-settings-menu.php:231 +msgid "Please choose a .htaccess to restore from." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-settings-menu.php:247 +msgid "" +"htaccess file restore failed. Please attempt to restore the .htaccess " +"manually using FTP." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-settings-menu.php:251 +msgid "Your .htaccess file has successfully been restored!" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-settings-menu.php:257 +msgid "" +"htaccess Restore operation failed! Please check the contents of the file you " +"are trying to restore from." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-settings-menu.php:263 +msgid ".htaccess File Operations" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-settings-menu.php:266 +msgid "" +"Your \".htaccess\" file is a key component of your website's security and it " +"can be modified to implement various levels of protection mechanisms." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-settings-menu.php:267 +msgid "" +"This feature allows you to backup and save your currently active .htaccess " +"file should you need to re-use the the backed up file in the future." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-settings-menu.php:268 +msgid "" +"You can also restore your site's .htaccess settings using a backed up ." +"htaccess file." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-settings-menu.php:282 +msgid "Save the current .htaccess file" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-settings-menu.php:286 +msgid "" +"Click the button below to backup and save the currently active .htaccess " +"file." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-settings-menu.php:287 +msgid "Backup .htaccess File" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-settings-menu.php:291 +msgid "Restore from a backed up .htaccess file" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-settings-menu.php:297 +msgid ".htaccess file to restore from" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-settings-menu.php:303 +msgid "" +"After selecting your file, click the button below to restore your site using " +"the backed up htaccess file (htaccess_backup.txt)." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-settings-menu.php:309 +msgid "Restore .htaccess File" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-settings-menu.php:313 +msgid "View Contents of the currently active .htaccess file" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-settings-menu.php:342 +msgid "Please choose a wp-config.php file to restore from." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-settings-menu.php:358 +msgid "" +"wp-config.php file restore failed. Please attempt to restore this file " +"manually using FTP." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-settings-menu.php:362 +msgid "Your wp-config.php file has successfully been restored!" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-settings-menu.php:368 +msgid "" +"wp-config.php Restore operation failed! Please check the contents of the " +"file you are trying to restore from." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-settings-menu.php:374 +msgid "wp-config.php File Operations" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-settings-menu.php:377 +msgid "" +"Your \"wp-config.php\" file is one of the most important in your WordPress " +"installation. It is a primary configuration file and contains crucial things " +"such as details of your database and other critical components." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-settings-menu.php:378 +msgid "" +"This feature allows you to backup and save your currently active wp-config." +"php file should you need to re-use the the backed up file in the future." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-settings-menu.php:379 +msgid "" +"You can also restore your site's wp-config.php settings using a backed up wp-" +"config.php file." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-settings-menu.php:393 +msgid "Save the current wp-config.php file" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-settings-menu.php:397 +msgid "" +"Click the button below to backup and download the contents of the currently " +"active wp-config.php file." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-settings-menu.php:398 +msgid "Backup wp-config.php File" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-settings-menu.php:403 +msgid "Restore from a backed up wp-config file" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-settings-menu.php:409 +msgid "wp-config file to restore from" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-settings-menu.php:415 +msgid "" +"After selecting your file click the button below to restore your site using " +"the backed up wp-config file (wp-config.php.backup.txt)." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-settings-menu.php:421 +msgid "Restore wp-config File" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-settings-menu.php:425 +msgid "View Contents of the currently active wp-config.php file" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-settings-menu.php:460 +msgid "WP Generator Meta Tag" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-settings-menu.php:463 +msgid "" +"Wordpress generator automatically adds some meta information inside the " +"\"head\" tags of every page on your site's front end. Below is an example of " +"this:" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-settings-menu.php:465 +msgid "" +"The above meta information shows which version of WordPress your site is " +"currently running and thus can help hackers or crawlers scan your site to " +"see if you have an older version of WordPress or one with a known exploit." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-settings-menu.php:466 +msgid "" +"This feature will allow you to remove the WP generator meta info from your " +"site's pages." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-settings-menu.php:472 +msgid "WP Generator Meta Info" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-settings-menu.php:484 +msgid "Remove WP Generator Meta Info" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-settings-menu.php:487 +msgid "" +"Check this if you want to remove the meta info produced by WP Generator from " +"all pages" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-spam-menu.php:101 +msgid "Comment SPAM Settings" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-spam-menu.php:107 +msgid "" +"A large portion of WordPress blog comment SPAM is mainly produced by " +"automated bots and not necessarily by humans. " +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-spam-menu.php:108 +msgid "" +"This feature will greatly minimize the useless and unecessary traffic and " +"load on your server resulting from SPAM comments by blocking all comment " +"requests which do not originate from your domain." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-spam-menu.php:114 +msgid "Block Spambot Comments" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-spam-menu.php:129 +msgid "Block Spambots From Posting Comments" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-spam-menu.php:132 +msgid "" +"Check this if you want to apply a firewall rule which will block comments " +"originating from spambots." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-spam-menu.php:136 +msgid "" +"This feature will implement a firewall rule to block all comment attempts " +"which do not originate from your domain." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-spam-menu.php:137 +msgid "" +"A legitimate comment is one which is submitted by a human who physically " +"fills out the comment form and clicks the submit button. For such events, " +"the HTTP_REFERRER is always set to your own domain." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-spam-menu.php:138 +msgid "" +"A comment submitted by a spambot is done by directly calling the comments." +"php file, which usually means that the HTTP_REFERRER value is not your " +"domain and often times empty." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-spam-menu.php:139 +msgid "" +"This feature will check and block comment requests which are not referred by " +"your domain thus greatly reducing your overall blog SPAM and PHP requests " +"done by the server to process these comments." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-spam-menu.php:166 +msgid "Nonce check failed for list SPAM comment IPs!" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-spam-menu.php:172 +msgid "" +"You entered a non numeric value for the minimum SPAM comments per IP field. " +"It has been set to the default value." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-spam-menu.php:184 +#, php-format +msgid "" +"Displaying results for IP addresses which have posted a minimum of %s SPAM " +"comments" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-spam-menu.php:200 +msgid "" +"This tab displays a list of the IP addresses of the people or bots who have " +"left SPAM comments on your site." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-spam-menu.php:201 +msgid "" +"This information can be handy for identifying the most persistent IP " +"addresses or ranges used by spammers." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-spam-menu.php:202 +msgid "" +"By inspecting the IP address data coming from spammers you will be in a " +"better position to determine which addresses or address ranges you should " +"block by adding them to your blacklist." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-spam-menu.php:203 +msgid "" +"To add one or more of the IP addresses displayed in the table below to your " +"blacklist, simply click the \"Block\" link for the individual row or select " +"more than one address \n" +" using the checkboxes and then choose the \"block" +"\" option from the Bulk Actions dropdown list and click the \"Apply\" button." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-spam-menu.php:209 +msgid "List SPAMMER IP Addresses" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-spam-menu.php:215 +msgid "Minimum number of SPAM comments per IP" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-spam-menu.php:217 +msgid "" +"This field allows you to list only those IP addresses which have been used " +"to post X or more SPAM comments." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-spam-menu.php:221 +msgid "" +"Example 1: Setting this value to \"0\" or \"1\" will list ALL IP addresses " +"which were used to submit SPAM comments." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-spam-menu.php:222 +msgid "" +"Example 2: Setting this value to \"5\" will list only those IP addresses " +"which were used to submit 5 SPAM comments or more on your site." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-spam-menu.php:229 +msgid "Find IP Addresses" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-spam-menu.php:233 +msgid "SPAMMER IP Address Results" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-spam-menu.php:239 classes/wp-security-utility.php:150 +msgid "" +"The plugin has detected that you are using a Multi-Site WordPress " +"installation." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-spam-menu.php:240 +msgid "Only the \"superadmin\" can block IP addresses from the main site." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-spam-menu.php:241 +msgid "" +"Take note of the IP addresses you want blocked and ask the superadmin to add " +"these to the blacklist using the \"Blacklist Manager\" on the main site." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-user-accounts-menu.php:79 +msgid "Admin User Security" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-user-accounts-menu.php:82 +msgid "" +"By default, WordPress sets the administrator username to \"admin\" at " +"installation time." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-user-accounts-menu.php:83 +msgid "" +"A lot of hackers try to take advantage of this information by attempting " +"\"Brute Force Login Attacks\" where they repeatedly try to guess the " +"password by using \"admin\" for username." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-user-accounts-menu.php:84 +msgid "" +"From a security perspective, changing the default \"admin\" user name is one " +"of the first and smartest things you should do on your site." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-user-accounts-menu.php:85 +msgid "" +"This feature will allow you to change your default \"admin\" user name to a " +"more secure name of your choosing." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-user-accounts-menu.php:92 +msgid "List of Administrator Accounts" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-user-accounts-menu.php:101 +msgid "Change Admin Username" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-user-accounts-menu.php:109 +msgid "" +"Your site currently has an account which uses the default \"admin\" " +"username. \n" +" It is highly recommended that you change this name to " +"something else. \n" +" Use the following field to change the admin username." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-user-accounts-menu.php:117 +msgid "New Admin Username" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-user-accounts-menu.php:119 +msgid "Choose a new username for admin." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-user-accounts-menu.php:123 +msgid "Change Username" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-user-accounts-menu.php:125 +msgid "" +"NOTE: If you are currently logged in as \"admin\" you will be automatically " +"logged out after changing your username and will be required to log back in." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-user-accounts-menu.php:132 +msgid "No action required! " +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-user-accounts-menu.php:134 +msgid "" +"Your site does not have any account which uses the default \"admin\" " +"username. " +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-user-accounts-menu.php:135 +msgid "This is good security practice." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-user-accounts-menu.php:147 +msgid "Display Name Security" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-user-accounts-menu.php:150 +msgid "" +"When you submit a post or answer a comment, WordPress will usually display " +"your \"nickname\"." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-user-accounts-menu.php:151 +msgid "" +"By default the nickname is set to the login (or user) name of your account." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-user-accounts-menu.php:152 +msgid "" +"From a security perspective, leaving your nickname the same as your user " +"name is bad practice because it gives a hacker at least half of your " +"account's login credentials." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-user-accounts-menu.php:153 +msgid "" +"Therefore to further tighten your site's security you are advised to change " +"your nickname and Display name to be " +"different from your Username." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-user-accounts-menu.php:159 +msgid "Modify Accounts With Identical Login Name & Display Name" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-user-accounts-menu.php:168 +msgid "" +"Your site currently has the following accounts which have an identical login " +"name and display name." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-user-accounts-menu.php:169 +msgid "Click on the link to edit the settings of that particular user account" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-user-accounts-menu.php:184 +msgid "No action required." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-user-accounts-menu.php:185 +msgid "" +"Your site does not have a user account where the display name is identical " +"to the username." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-user-accounts-menu.php:196 +msgid "Password Tool" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-user-accounts-menu.php:199 +msgid "" +"Poor password selection is one of the most common weak points of many sites " +"and is usually the first thing a hacker will try to exploit when attempting " +"to break into your site." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-user-accounts-menu.php:200 +msgid "" +"Many people fall into the trap of using a simple word or series of numbers " +"as their password. Such a predictable and simple password would take a " +"competent hacker merely minutes to guess your password by using a simple " +"script which cycles through the easy and most common combinations." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-user-accounts-menu.php:201 +msgid "" +"The longer and more complex your password is the harder it is for hackers to " +"\"crack\" because more complex passwords require much greater computing " +"power and time." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-user-accounts-menu.php:202 +msgid "" +"This section contains a useful password strength tool which you can use to " +"check whether your password is sufficiently strong enough." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-user-accounts-menu.php:207 +msgid "Password Strength Tool" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-user-accounts-menu.php:212 +msgid "Start typing a password." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-user-accounts-menu.php:237 +msgid "Nonce check failed on admin username change operation!" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-user-accounts-menu.php:244 +msgid "Username " +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-user-accounts-menu.php:244 +msgid " already exists. Please enter another value. " +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-user-accounts-menu.php:260 +msgid "The database update operation of the user account failed!" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-user-accounts-menu.php:287 +msgid "You entered an invalid username. Please enter another value. " +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-user-accounts-menu.php:291 +msgid "Please enter a value for your username. " +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-user-accounts-menu.php:298 +msgid "Username Successfully Changed!" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-user-accounts-menu.php:318 +msgid "Account Login Name" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-user-login-menu.php:91 +msgid "" +"You entered a non numeric value for the max login attempts field. It has " +"been set to the default value." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-user-login-menu.php:98 +msgid "" +"You entered a non numeric value for the login retry time period field. It " +"has been set to the default value." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-user-login-menu.php:105 +msgid "" +"You entered a non numeric value for the lockout time length field. It has " +"been set to the default value." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-user-login-menu.php:150 +msgid "Login Lockdown Configuration" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-user-login-menu.php:154 +msgid "One of the ways hackers try to compromise sites is via a " +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-user-login-menu.php:154 +msgid "Brute Force Login Attack" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-user-login-menu.php:155 +msgid "" +"This is where attackers use repeated login attempts until they guess the " +"password." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-user-login-menu.php:156 +msgid "" +"Apart from choosing strong passwords, monitoring and blocking IP addresses " +"which are involved in repeated login failures in a short period of time is a " +"very effective way to stop these types of attacks." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-user-login-menu.php:157 +#, php-format +msgid "" +"You may also want to checkout our %s feature for another secure way to " +"protect against these types of attacks." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-user-login-menu.php:162 +msgid "Login Lockdown Options" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-user-login-menu.php:174 +msgid "Enable Login Lockdown Feature" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-user-login-menu.php:177 +msgid "" +"Check this if you want to enable the login lockdown feature and apply the " +"settings below" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-user-login-menu.php:181 +msgid "Max Login Attempts" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-user-login-menu.php:183 +msgid "" +"Set the value for the maximum login retries before IP address is locked out" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-user-login-menu.php:187 +msgid "Login Retry Time Period (min)" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-user-login-menu.php:189 +msgid "" +"If the maximum number of failed login attempts for a particular IP address " +"occur within this time period the plugin will lock out that address" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-user-login-menu.php:193 +msgid "Time Length of Lockout (min)" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-user-login-menu.php:195 +msgid "" +"Set the length of time for which a particular IP address will be prevented " +"from logging in" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-user-login-menu.php:199 +msgid "Display Generic Error Message" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-user-login-menu.php:202 +msgid "" +"Check this if you want to show a generic error message when a login attempt " +"fails" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-user-login-menu.php:206 +msgid "Instantly Lockout Invalid Usernames" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-user-login-menu.php:209 +msgid "" +"Check this if you want to instantly lockout login attempts with usernames " +"which do not exist on your system" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-user-login-menu.php:214 +msgid "Notify By Email" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-user-login-menu.php:217 +msgid "" +"Check this if you want to receive an email when someone has been locked out " +"due to maximum failed login attempts" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-user-login-menu.php:227 +msgid "Currently Locked Out IP Address Ranges" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-user-login-menu.php:254 +msgid "Nonce check failed for delete all failed login records operation!" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-user-login-menu.php:263 +msgid "User Login Feature - Delete all failed login records operation failed!" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-user-login-menu.php:267 +msgid "All records from the Failed Logins table were deleted successfully!" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-user-login-menu.php:282 +msgid "This tab displays the failed login attempts for your site." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-user-login-menu.php:283 +msgid "" +"The information below can be handy if you need to do security investigations " +"because it will show you the IP range, username and ID (if applicable) and " +"the time/date of the failed login attempt." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-user-login-menu.php:288 +msgid "Failed Login Records" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-user-login-menu.php:304 +#: admin/wp-security-user-login-menu.php:313 +msgid "Delete All Failed Login Records" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-user-login-menu.php:310 +msgid "" +"Click this button if you wish to delete all failed login records in one go." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-user-login-menu.php:338 +msgid "" +"You entered a non numeric value for the logout time period field. It has " +"been set to the default value." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-user-login-menu.php:360 +msgid "" +"Setting an expiry period for your WP administration session is a simple way " +"to protect against unauthorized access to your site from your computer." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-user-login-menu.php:361 +msgid "" +"This feature allows you to specify a time period in minutes after which the " +"admin session will expire and the user will be forced to log back in." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-user-login-menu.php:366 +msgid "Force User Logout Options" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-user-login-menu.php:378 +msgid "Enable Force WP User Logout" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-user-login-menu.php:381 +msgid "" +"Check this if you want to force a wp user to be logged out after a " +"configured amount of time" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-user-login-menu.php:385 +msgid "Logout the WP User After XX Minutes" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-user-login-menu.php:387 +msgid "" +"(Minutes) The user will be forced to log back in after this time period has " +"elapased." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-user-login-menu.php:410 +msgid "" +"This tab displays the login activity for WordPress admin accounts registered " +"with your site." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-user-login-menu.php:411 +msgid "" +"The information below can be handy if you need to do security investigations " +"because it will show you the last 50 recent login events by username, IP " +"address and time/date." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-user-login-menu.php:416 +msgid "Account Activity Logs" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-user-login-menu.php:448 +msgid "Nonce check failed for users logged in list!" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-user-login-menu.php:461 +msgid "Refresh Logged In User Data" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-user-login-menu.php:465 +msgid "Refresh Data" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-user-login-menu.php:471 +msgid "This tab displays all users who are currently logged into your site." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-user-login-menu.php:472 +msgid "" +"If you suspect there is a user or users who are logged in which should not " +"be, you can block them by inspecting the IP addresses from the data below " +"and adding them to your blacklist." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-user-login-menu.php:477 +msgid "Currently Logged In Users" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-user-login-menu.php:542 +msgid "The selected records were deleted successfully!" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-user-login-menu.php:551 +msgid "The selected record was deleted successfully!" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-whois-menu.php:68 +msgid "WHOIS Lookup Information" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-whois-menu.php:71 +msgid "" +"This feature allows you to look up more detailed information about an IP " +"address or domain name by querying the WHOIS API." +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-whois-menu.php:77 +msgid "Perform a WHOIS Lookup for an IP or Domain Name" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-whois-menu.php:84 +msgid "Enter IP Address or Domain Name" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-whois-menu.php:86 +msgid "" +"Enter an IP address or domain name. Example: 111.11.12.13 OR some-domain-" +"name.com" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-whois-menu.php:90 +msgid "Perform IP or Domain Lookup" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-whois-menu.php:110 +msgid "WHOIS lookup successfully completed. Please see the results below:" +msgstr "" + +# @ aiowpsecurity +#: admin/wp-security-whois-menu.php:122 +msgid "" +"You have entered an incorrectly formatted IP address or domain name. Please " +"try again." +msgstr "" + +# @ aiowpsecurity +#: classes/wp-security-backup.php:177 +msgid "All In One WP Security - Site Database Backup" +msgstr "" + +# @ aiowpsecurity +#: classes/wp-security-backup.php:179 +msgid "Attached is your latest DB backup file for site URL" +msgstr "" + +# @ aiowpsecurity +#: classes/wp-security-backup.php:179 +msgid " generated on" +msgstr "" + +# @ aiowpsecurity +#: classes/wp-security-file-scan.php:58 +msgid "All In One WP Security - File change detected!" +msgstr "" + +# @ aiowpsecurity +#: classes/wp-security-file-scan.php:60 +msgid "A file change was detected on your system for site URL" +msgstr "" + +# @ aiowpsecurity +#: classes/wp-security-file-scan.php:60 +msgid ". Scan was generated on" +msgstr "" + +# @ aiowpsecurity +#: classes/wp-security-file-scan.php:61 +msgid "Login to your site to view the scan details." +msgstr "" + +# @ aiowpsecurity +#: classes/wp-security-user-login.php:39 +msgid "" +"ERROR: Login failed because your IP address has been " +"blocked.\n" +" Please contact the administrator." +msgstr "" + +# @ aiowpsecurity +#: classes/wp-security-user-login.php:48 +msgid "ERROR: The username field is empty." +msgstr "" + +# @ aiowpsecurity +#: classes/wp-security-user-login.php:52 +msgid "ERROR: The password field is empty." +msgstr "" + +# @ aiowpsecurity +#: classes/wp-security-user-login.php:72 classes/wp-security-user-login.php:98 +msgid "ERROR: Invalid login credentials." +msgstr "" + +# @ aiowpsecurity +#: classes/wp-security-user-login.php:75 +msgid "ERROR: Invalid username." +msgstr "" + +# @ aiowpsecurity +#: classes/wp-security-user-login.php:101 +#, php-format +msgid "" +"ERROR: Incorrect password. Lost your password?" +msgstr "" + +# @ aiowpsecurity +#: classes/wp-security-user-login.php:224 +msgid "Site Lockout Notification" +msgstr "" + +# @ aiowpsecurity +#: classes/wp-security-user-login.php:225 +msgid "" +"A lockdown event has occurred due to too many failed login attempts or " +"invalid username:" +msgstr "" + +# @ aiowpsecurity +#: classes/wp-security-user-login.php:226 +msgid "Username: Unknown" +msgstr "" + +# @ aiowpsecurity +#: classes/wp-security-user-login.php:227 +msgid "IP Range: .*" +msgstr "" + +# @ aiowpsecurity +#: classes/wp-security-user-login.php:228 +msgid "" +"Log into your site's WordPress administration panel to see the duration of " +"the lockout or to unlock the user." +msgstr "" + +# @ aiowpsecurity +#: classes/wp-security-user-login.php:385 +#, php-format +msgid "" +"Your session has expired because it has been over %d minutes since your last " +"login." +msgstr "" + +# @ aiowpsecurity +#: classes/wp-security-user-login.php:386 +#: classes/wp-security-user-login.php:390 +msgid "Please log back in to continue." +msgstr "" + +# @ aiowpsecurity +#: classes/wp-security-user-login.php:389 +msgid "You were logged out because you just changed the \"admin\" username." +msgstr "" + +# @ aiowpsecurity +#: classes/wp-security-utility-ip-address.php:79 +#: classes/wp-security-utility-ip-address.php:98 +#: classes/wp-security-utility-ip-address.php:113 +#: classes/wp-security-utility-ip-address.php:128 +msgid " is not a valid ip address format." +msgstr "" + +# @ aiowpsecurity +#: classes/wp-security-utility-ip-address.php:136 +msgid "You cannot ban your own IP address: " +msgstr "ä½ ä¸èƒ½ç¦æ­¢è‡ªå·±çš„ IP 地å€:" + +# @ aiowpsecurity +#: classes/wp-security-utility.php:151 +msgid "" +"This feature can only be configured by the \"superadmin\" on the main site." +msgstr "" diff --git a/all-in-one-wp-security/languages/aiowpsecurity.pot b/all-in-one-wp-security/languages/aiowpsecurity.pot new file mode 100644 index 0000000..e21054e --- /dev/null +++ b/all-in-one-wp-security/languages/aiowpsecurity.pot @@ -0,0 +1,3531 @@ +msgid "" +msgstr "" +"Project-Id-Version: AIOWPS\n" +"POT-Creation-Date: 2013-12-03 12:53+1000\n" +"PO-Revision-Date: 2013-12-03 12:54+1000\n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 1.5.7\n" +"X-Poedit-KeywordsList: __;_e\n" +"X-Poedit-Basepath: .\n" +"X-Poedit-SearchPath-0: .\n" + +#: all-in-one-wp-security/admin/wp-security-admin-init.php:156 +msgid "WP Security" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-admin-init.php:157 +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:22 +msgid "Dashboard" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-admin-init.php:158 +msgid "Settings" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-admin-init.php:159 +msgid "User Accounts" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-admin-init.php:160 +msgid "User Login" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-admin-init.php:161 +msgid "User Registration" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-admin-init.php:162 +msgid "Database Security" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-admin-init.php:166 +msgid "Filesystem Security" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-admin-init.php:168 +msgid "WHOIS Lookup" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-admin-init.php:172 +msgid "Blacklist Manager" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-admin-init.php:177 +msgid "Firewall" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-admin-init.php:179 +msgid "SPAM Prevention" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-admin-init.php:183 +msgid "Scanner" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-admin-init.php:185 +msgid "Maintenance" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-admin-menu.php:43 +msgid "Settings successfully updated." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-admin-menu.php:50 +msgid "The selected record(s) deleted successfully!" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-blacklist-menu.php:22 +msgid "Ban Users" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-blacklist-menu.php:80 +msgid "Nonce check failed for save blacklist settings!" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-blacklist-menu.php:132 +#: all-in-one-wp-security/admin/wp-security-list-comment-spammer-ip.php:147 +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:400 +msgid "" +"The plugin was unable to write to the .htaccess file. Please edit file " +"manually." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-blacklist-menu.php:139 +msgid "Ban IPs or User Agents" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-blacklist-menu.php:142 +msgid "" +"The All In One WP Security Blacklist feature gives you the option of banning " +"certain host IP addresses or ranges and also user agents." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-blacklist-menu.php:143 +msgid "" +"This feature will deny total site access for users which have IP addresses " +"or user agents matching those which you have configured in the settings " +"below." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-blacklist-menu.php:144 +msgid "" +"The plugin achieves this by making appropriate modifications to your ." +"htaccess file." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-blacklist-menu.php:145 +msgid "" +"By blocking people via the .htaccess file your are using the most secure " +"first line of defence which denies all access to blacklisted visitors as " +"soon as they hit your hosting server." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-blacklist-menu.php:151 +msgid "IP Hosts and User Agent Blacklist Settings" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-blacklist-menu.php:162 +msgid "Enable IP or User Agent Blacklisting" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-blacklist-menu.php:165 +msgid "" +"Check this if you want to enable the banning (or blacklisting) of selected " +"IP addresses and/or user agents specified in the settings below" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-blacklist-menu.php:169 +msgid "Enter IP Addresses:" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-blacklist-menu.php:173 +msgid "Enter one or more IP addresses or IP ranges." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-blacklist-menu.php:174 +#: all-in-one-wp-security/admin/wp-security-blacklist-menu.php:194 +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:271 +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:288 +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:147 +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:177 +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:308 +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:338 +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:369 +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:397 +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:426 +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:514 +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:669 +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:703 +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:726 +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:747 +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:174 +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:259 +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:456 +msgid "More Info" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-blacklist-menu.php:177 +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:459 +msgid "Each IP address must be on a new line." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-blacklist-menu.php:178 +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:460 +msgid "" +"To specify an IP range use a wildcard \"*\" character. Acceptable ways to " +"use wildcards is shown in the examples below:" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-blacklist-menu.php:179 +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:461 +msgid "Example 1: 195.47.89.*" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-blacklist-menu.php:180 +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:462 +msgid "Example 2: 195.47.*.*" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-blacklist-menu.php:181 +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:463 +msgid "Example 3: 195.*.*.*" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-blacklist-menu.php:188 +msgid "Enter User Agents:" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-blacklist-menu.php:193 +msgid "Enter one or more user agent strings." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-blacklist-menu.php:197 +msgid "Each user agent string must be on a new line." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-blacklist-menu.php:198 +msgid "Example 1 - A single user agent string to block:" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-blacklist-menu.php:200 +msgid "Example 2 - A list of more than 1 user agent strings to block" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-blacklist-menu.php:208 +#: all-in-one-wp-security/admin/wp-security-database-menu.php:347 +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:309 +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:231 +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:497 +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:189 +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:232 +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:336 +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:470 +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:628 +#: all-in-one-wp-security/admin/wp-security-user-registration-menu.php:146 +#: all-in-one-wp-security/admin/wp-security-user-registration-menu.php:221 +msgid "Save Settings" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:23 +msgid "System Info" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:73 +msgid "For information, updates and documentation, please visit the" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:73 +msgid "AIO WP Security & Firewall Plugin" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:73 +msgid "Page" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:74 +msgid "Follow us" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:74 +msgid "" +"Twitter, Google+ or via Email to stay upto date about the new security " +"features of this plugin." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:88 +msgid "Security Strength Meter" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:117 +msgid "Total Achievable Points: " +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:119 +msgid "Current Score of Your Site: " +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:129 +msgid "Security Points Breakdown" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:170 +msgid "Critical Feature Status" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:174 +msgid "" +"Below is the current status of the critical features that you should " +"activate on your site to achieve a minimum level of recommended security" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:178 +msgid "Admin Username" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:193 +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:27 +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:39 +msgid "Login Lockdown" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:208 +msgid "File Permission" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:223 +msgid "Basic Firewall" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:241 +msgid "Maintenance Mode Status" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:245 +msgid "" +"Maintenance mode is currently enabled. Remember to turn it off when you are " +"done" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:248 +msgid "Maintenance mode is currently off." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:252 +msgid "Maintenance Mode" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:291 +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:33 +msgid "Logged In Users" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:301 +msgid "Number of users currently logged in site-wide is:" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:302 +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:324 +#, php-format +msgid "Go to the %s menu to see more details" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:307 +msgid "There are no other site-wide users currently logged in." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:323 +msgid "Number of users currently logged into your site is:" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:329 +msgid "There are no other users currently logged in." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:340 +msgid "Spread the Word" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:343 +msgid "" +"We are working to make your WordPress site more secure. Please support us, " +"here is how:" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:367 +msgid "Site Info" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:369 +msgid "Plugin Version" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:370 +msgid "WP Version" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:372 +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:374 +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:395 +msgid "Version" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:373 +msgid "Table Prefix" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:375 +msgid "Session Save Path" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:377 +msgid "Server Name" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:378 +msgid "Cookie Domain" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:379 +msgid "Library Present" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:380 +msgid "Debug File Write Permissions" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:384 +msgid "Active Plugins" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:394 +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:130 +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:149 +msgid "Name" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-dashboard-menu.php:396 +msgid "Plugin URL" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:23 +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:57 +msgid "DB Prefix" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:24 +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:59 +msgid "DB Backup" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:84 +msgid "Nonce check failed for DB prefix change operation!" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:92 +msgid "" +"The plugin has detected that it cannot write to the wp-config.php file. This " +"feature can only be used if the plugin can successfully write to the wp-" +"config.php file." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:105 +msgid "Please enter a value for the DB prefix." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:114 +msgid "" +"ERROR: The table prefix can only contain numbers, letters, " +"and underscores." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:122 +msgid "Change Database Prefix" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:125 +msgid "" +"Your WordPress DB is the most important asset of your website because it " +"contains a lot of your site's precious information." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:126 +msgid "" +"The DB is also a target for hackers via methods such as SQL injections and " +"malicious and automated code which targets certain tables." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:127 +msgid "" +"One way to add a layer of protection for your DB is to change the default " +"WordPress table prefix from \"wp_\" to something else which will be " +"difficult for hackers to guess." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:128 +msgid "" +"This feature allows you to easily change the prefix to a value of your " +"choice or to a random value set by this plugin." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:134 +msgid "DB Prefix Options" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:145 +#, php-format +msgid "It is recommended that you perform a %s before using this feature" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:154 +msgid "Current DB Table Prefix" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:160 +msgid "" +"Your site is currently using the default WordPress DB prefix value of \"wp_" +"\". \n" +" To increase your site's security you should " +"consider changing the DB prefix value to another value." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:167 +msgid "Generate New DB Table Prefix" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:170 +msgid "" +"Check this if you want the plugin to generate a random 6 character string " +"for the table prefix" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:171 +msgid "OR" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:173 +msgid "" +"Choose your own DB prefix by specifying a string which contains letters and/" +"or numbers and/or underscores. Example: xyz_" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:177 +msgid "Change DB Prefix" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:198 +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:86 +msgid "Nonce check failed for manual DB backup operation!" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:215 +msgid "" +"DB Backup was successfully completed! You will receive the backup file via " +"email if you have enabled \"Send Backup File Via Email\", otherwise you can " +"retrieve it via FTP from the following directory:" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:217 +msgid "Your DB Backup File location: " +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:225 +msgid "DB Backup failed. Please check the permissions of the backup directory." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:242 +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:126 +msgid "" +"You entered a non numeric value for the \"backup time interval\" field. It " +"has been set to the default value." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:249 +msgid "" +"You entered a non numeric value for the \"number of backup files to keep\" " +"field. It has been set to the default value." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:256 +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:156 +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:121 +msgid "" +"You have entered an incorrect email address format. It has been set to your " +"WordPress admin email as default." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:262 +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:162 +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:219 +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:127 +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:581 +msgid "Attention!" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:289 +msgid "Manual Backup" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:295 +msgid "To create a new DB backup just click on the button below." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:298 +msgid "Create DB Backup Now" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:302 +msgid "Automated Scheduled Backups" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:314 +msgid "Enable Automated Scheduled Backups" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:317 +msgid "" +"Check this if you want the system to automatically generate backups " +"periodically based on the settings below" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:321 +msgid "Backup Time Interval" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:324 +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:259 +msgid "Hours" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:325 +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:260 +msgid "Days" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:326 +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:261 +msgid "Weeks" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:328 +msgid "Set the value for how often you would like an automated backup to occur" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:332 +msgid "Number of Backup Files To Keep" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:334 +msgid "" +"Thie field allows you to choose the number of backup files you would like to " +"keep in the backup directory" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:338 +msgid "Send Backup File Via Email" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:341 +msgid "" +"Check this if you want the system to email you the backup file after a DB " +"backup has been performed" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:343 +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:305 +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:228 +msgid "Enter an email address" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:373 +msgid "Starting DB prefix change operations....." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:375 +#, php-format +msgid "" +"Your WordPress system has a total of %s tables and your new DB prefix will " +"be: %s" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:381 +#: all-in-one-wp-security/classes/wp-security-utility.php:206 +msgid "" +"Failed to make a backup of the wp-config.php file. This operation will not " +"go ahead." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:385 +msgid "A backup copy of your wp-config.php file was created successfully!" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:408 +#, php-format +msgid "%s table name update failed" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:420 +#, php-format +msgid "Please change the prefix manually for the above tables to: %s" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:423 +#, php-format +msgid "%s tables had their prefix updated successfully!" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:438 +msgid "wp-config.php file was updated successfully!" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:441 +#, php-format +msgid "" +"The \"wp-config.php\" file was not able to be modified. Please modify this " +"file manually using your favourite editor and search \n" +" for variable \"$table_prefix\" and assign the following " +"value to that variable: %s" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:462 +msgid "There was an error when updating the options table." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:466 +msgid "" +"The options table records which had references to the old DB prefix were " +"updated successfully!" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:491 +#, php-format +msgid "" +"Error updating user_meta table where new meta_key = %s, old meta_key = %s " +"and user_id = %s." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:497 +msgid "" +"The usermeta table records which had references to the old DB prefix were " +"updated successfully!" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-database-menu.php:499 +msgid "DB prefix change tasks have been completed." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:22 +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:94 +msgid "File Change Detection" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:93 +msgid "Nonce check failed for manual file change detection scan operation!" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:100 +msgid "" +"The plugin has detected that this is your first file change detection scan. " +"The file details from this scan will be used to detect file changes for " +"future scans!" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:194 +msgid "" +"NEW SCAN COMPLETED: The plugin has detected that you have made changes to " +"the \"File Types To Ignore\" or \"Files To Ignore\" fields.\n" +" In order to ensure that future scan results are " +"accurate, the old scan data has been refreshed." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:204 +msgid "" +"All In One WP Security & Firewall has detected that there was a change in " +"your host's files." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:206 +msgid "View Scan Details & Clear This Message" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:215 +msgid "" +"If given an opportunity hackers can insert their code or files into your " +"system which they can then use to carry out malicious acts on your site." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:216 +msgid "" +"Being informed of any changes in your files can be a good way to quickly " +"prevent a hacker from causing damage to your website." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:217 +msgid "" +"In general, WordPress core and plugin files and file types such as \".php\" " +"or \".js\" should not change often and when they do, it is important that " +"you are made aware when a change occurs and which file was affected." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:218 +msgid "" +"The \"File Change Detection Feature\" will notify you of any file change " +"which occurs on your system, including the addition and deletion of files by " +"performing a regular automated or manual scan of your system's files." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:219 +msgid "" +"This feature also allows you to exclude certain files or folders from the " +"scan in cases where you know that they change often as part of their normal " +"operation. (For example log files and certain caching plugin files may " +"change often and hence you may choose to exclude such files from the file " +"change detection scan)" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:224 +msgid "Manual File Change Detection Scan" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:230 +msgid "" +"To perform a manual file change detection scan click on the button below." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:233 +msgid "Perform Scan Now" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:237 +msgid "File Change Detection Settings" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:249 +msgid "Enable Automated File Change Detection Scan" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:252 +msgid "" +"Check this if you want the system to automatically/periodically scan your " +"files to check for file changes based on the settings below" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:256 +msgid "Scan Time Interval" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:263 +msgid "Set the value for how often you would like a scan to occur" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:267 +msgid "File Types To Ignore" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:270 +msgid "" +"Enter each file type or extension on a new line which you wish to exclude " +"from the file change detection scan." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:274 +msgid "" +"You can exclude file types from the scan which would not normally pose any " +"security threat if they were changed. These can include things such as image " +"files." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:275 +msgid "" +"Example: If you want the scanner to ignore files of type jpg, png, and bmp, " +"then you would enter the following:" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:276 +msgid "jpg" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:277 +msgid "png" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:278 +msgid "bmp" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:284 +msgid "Files/Directories To Ignore" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:287 +msgid "" +"Enter each file or directory on a new line which you wish to exclude from " +"the file change detection scan." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:291 +msgid "" +"You can exclude specific files/directories from the scan which would not " +"normally pose any security threat if they were changed. These can include " +"things such as log files." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:292 +msgid "" +"Example: If you want the scanner to ignore certain files in different " +"directories or whole directories, then you would enter the following:" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:293 +msgid "cache/config/master.php" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:294 +msgid "somedirectory" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:300 +msgid "Send Email When Change Detected" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:303 +msgid "" +"Check this if you want the system to email you if a file change was detected" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:335 +msgid "Latest File Change Scan Results" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:344 +msgid "The following files were added to your host." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:347 +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:368 +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:392 +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:26 +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:27 +msgid "File" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:348 +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:369 +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:393 +msgid "File Size" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:349 +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:370 +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:394 +msgid "File Modified" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:365 +msgid "The following files were removed from your host." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filescan-menu.php:389 +msgid "The following files were changed on your host." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:26 +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:63 +msgid "File Permissions" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:27 +msgid "PHP File Editing" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:28 +msgid "WP File Access" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:29 +msgid "Host System Logs" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:96 +#, php-format +msgid "The permissions for %s were succesfully changed to %s" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:100 +#, php-format +msgid "Unable to change permissions for %s!" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:106 +msgid "File Permissions Scan" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:109 +msgid "" +"Your WordPress file and folder permission settings govern the accessability " +"and read/write privileges of the files and folders which make up your WP " +"installation." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:110 +msgid "" +"Your WP installation already comes with reasonably secure file permission " +"settings for the filesystem." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:111 +msgid "" +"However, sometimes people or other plugins modify the various permission " +"settings of certain core WP folders or files such that they end up making " +"their site less secure because they chose the wrong permission values." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:112 +msgid "" +"This feature will scan the critical WP core folders and files and will " +"highlight any permission settings which are insecure." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:118 +msgid "WP Directory and File Permissions Scan Results" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:131 +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:150 +msgid "File/Folder" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:132 +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:151 +msgid "Current Permissions" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:133 +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:152 +msgid "Recommended Permissions" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:134 +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:153 +msgid "Recommended Action" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:191 +msgid "Your PHP file editing settings were saved successfully." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:195 +msgid "" +"Operation failed! Unable to modify or make a backup of wp-config.php file!" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:201 +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:65 +msgid "File Editing" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:204 +msgid "" +"The Wordpress Dashboard by default allows administrators to edit PHP files, " +"such as plugin and theme files." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:205 +msgid "" +"This is often the first tool an attacker will use if able to login, since it " +"allows code execution." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:206 +msgid "" +"This feature will disable the ability for people to edit PHP files via the " +"dashboard." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:212 +msgid "Disable PHP File Editing" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:224 +msgid "Disable Ability To Edit PHP Files" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:227 +msgid "" +"Check this if you want to remove the ability for people to edit PHP files " +"via the WP dashboard" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:271 +msgid "" +"You have successfully saved the Prevent Access to Default WP Files " +"configuration." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:275 +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:115 +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:269 +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:480 +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:619 +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:106 +msgid "" +"Could not write to the .htaccess file. Please check the file permissions." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:280 +msgid "WordPress Files" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:283 +#, php-format +msgid "" +"This feature allows you to prevent access to files such as %s, %s and %s " +"which are delivered with all WP installations." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:284 +msgid "" +"By preventing access to these files you are hiding some key pieces of " +"information (such as WordPress version info) from potential hackers." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:289 +msgid "Prevent Access to Default WP Files" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:300 +msgid "Prevent Access to WP Default Install Files" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:303 +msgid "" +"Check this if you want to prevent access to readme.html, license.txt and wp-" +"config-sample.php." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:307 +msgid "Save Setting" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:331 +msgid "System Logs" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:334 +msgid "" +"Sometimes your hosting platform will produce error or warning logs in a file " +"called \"error_log\"." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:335 +msgid "" +"Depending on the nature and cause of the error or warning, your hosting " +"server can create multiple instances of this file in numerous directory " +"locations of your WordPress installation." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:336 +msgid "" +"By occassionally viewing the contents of these logs files you can keep " +"informed of any underlying problems on your system which you might need to " +"address." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:342 +msgid "View System Logs" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:347 +msgid "Enter System Log File Name" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:349 +msgid "Enter your system log file name. (Defaults to error_log)" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:352 +msgid "View Latest System Logs" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:354 +msgid "Loading..." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:371 +msgid "No system logs were found!" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:424 +msgid "Set Recommended Permissions" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:430 +msgid "No Action Required" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-filesystem-menu.php:470 +#, php-format +msgid "Showing latest entries of error_log file: %s" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:25 +msgid "Basic Firewall Rules" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:26 +msgid "Additional Firewall Rules" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:27 +msgid "5G Blacklist Firewall Rules" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:28 +msgid "Brute Force Prevention" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:111 +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:102 +#: all-in-one-wp-security/admin/wp-security-user-registration-menu.php:96 +msgid "Settings were successfully saved" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:120 +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:485 +msgid "Firewall Settings" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:127 +#, php-format +msgid "" +"This should not have any impact on your site's general functionality but if " +"you wish you can take a %s of your .htaccess file before proceeding." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:128 +msgid "" +"The features in this tab allow you to activate some basic firewall security " +"protection rules for your site." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:129 +msgid "" +"The firewall functionality is achieved via the insertion of special code " +"into your currently active .htaccess file." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:135 +msgid "Basic Firewall Settings" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:143 +msgid "Enable Basic Firewall Protection" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:146 +msgid "Check this if you want to apply basic firewall protection to your site." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:150 +msgid "" +"This setting will implement the following basic firewall protection " +"mechanisms on your site:" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:151 +msgid "1) Protect your htaccess file by denying access to it." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:152 +msgid "2) Disable the server signature." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:153 +msgid "3) Limit file upload size (10MB)." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:154 +msgid "4) Protect your wp-config.php file by denying access to it." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:155 +msgid "" +"The above firewall features will be applied via your .htaccess file and " +"should not affect your site's overall functionality." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:156 +msgid "" +"You are still advised to take a backup of your active .htaccess file just in " +"case." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:165 +msgid "WordPress Pingback Vulnerability Protection" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:173 +msgid "Enable Pingback Protection" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:176 +msgid "" +"Check this if you are not using the WP XML-RPC functionality and you want to " +"enable protection against WordPress pingback vulnerabilities." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:180 +msgid "" +"This setting will add a directive in your .htaccess to disable access to the " +"WordPress xmlrpc.php file which is responsible for the XML-RPC functionality " +"such as pingbacks in WordPress." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:181 +msgid "" +"Hackers can exploit various pingback vulnerabilities in the WordPress XML-" +"RPC API in a number of ways such as:" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:182 +msgid "1) Denial of Service (DoS) attacks" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:183 +msgid "2) Hacking internal routers." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:184 +msgid "3) Scanning ports in internal networks to get info from various hosts." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:185 +msgid "" +"Apart from the security protection benefit, this feature may also help " +"reduce load on your server, particularly if your site currently has a lot of " +"unwanted traffic hitting the XML-RPC API on your installation." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:186 +msgid "" +"NOTE: You should only enable this feature if you are not currently using the " +"XML-RPC functionality on your WordPress installation." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:193 +msgid "Save Basic Firewall Settings" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:265 +msgid "" +"You have successfully saved the Additional Firewall Protection configuration" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:279 +msgid "Additional Firewall Protection" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:283 +#, php-format +msgid "" +"Due to the nature of the code being inserted to the .htaccess file, this " +"feature may break some functionality for certain plugins and you are " +"therefore advised to take a %s of .htaccess before applying this " +"configuration." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:285 +msgid "" +"This feature allows you to activate more advanced firewall settings to your " +"site." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:286 +msgid "" +"The advanced firewall rules are applied via the insertion of special code to " +"your currently active .htaccess file." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:295 +msgid "Listing of Directory Contents" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:304 +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:80 +msgid "Disable Index Views" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:307 +msgid "Check this if you want to disable directory and file listing." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:312 +msgid "" +"By default, an Apache server will allow the listing of the contents of a " +"directory if it doesn't contain an index.php file." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:314 +msgid "This feature will prevent the listing of contents for all directories." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:316 +msgid "" +"NOTE: In order for this feature to work \"AllowOverride\" must be enabled in " +"your httpd.conf file. Ask your hosting provider to check this if you don't " +"have access to httpd.conf" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:325 +msgid "Trace and Track" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:334 +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:81 +msgid "Disable Trace and Track" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:337 +msgid "Check this if you want to disable trace and track." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:342 +msgid "" +"HTTP Trace attack (XST) can be used to return header requests and grab " +"cookies and other information." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:344 +msgid "" +"This hacking technique is usually used together with cross site scripting " +"attacks (XSS)." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:346 +msgid "" +"Disabling trace and track on your site will help prevent HTTP Trace attacks." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:355 +msgid "Proxy Comment Posting" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:365 +msgid "Forbid Proxy Comment Posting" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:368 +msgid "Check this if you want to forbid proxy comment posting." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:373 +msgid "" +"This setting will deny any requests that use a proxy server when posting " +"comments." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:374 +msgid "" +"By forbidding proxy comments you are in effect eliminating some SPAM and " +"other proxy requests." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:383 +msgid "Bad Query Strings" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:393 +msgid "Deny Bad Query Strings" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:396 +msgid "This will help protect you against malicious queries via XSS." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:401 +msgid "" +"This feature will write rules in your .htaccess file to prevent malicious " +"string attacks on your site using XSS." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:402 +msgid "" +"NOTE: Some of these strings might be used for plugins or themes and hence " +"this might break some functionality." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:403 +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:433 +msgid "" +"You are therefore strongly advised to take a backup of your active .htaccess " +"file before applying this feature." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:412 +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:84 +msgid "Advanced Character String Filter" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:422 +msgid "Enable Advanced Character String Filter" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:425 +msgid "This will block bad character matches from XSS." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:430 +msgid "" +"This is an advanced character string filter to prevent malicious string " +"attacks on your site coming from Cross Site Scripting (XSS)." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:431 +msgid "" +"This setting matches for common malicious string patterns and exploits and " +"will produce a 403 error for the hacker attempting the query." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:432 +msgid "NOTE: Some strings for this setting might break some functionality." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:441 +msgid "Save Additional Firewall Settings" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:476 +msgid "You have successfully saved the 5G Firewall Protection configuration" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:489 +#, php-format +msgid "" +"This feature allows you to activate the 5G firewall security protection " +"rules designed and produced by %s." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:490 +msgid "" +"The 5G Blacklist is a simple, flexible blacklist that helps reduce the " +"number of malicious URL requests that hit your website." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:491 +msgid "" +"The added advantage of applying the 5G firewall to your site is that it has " +"been tested and confirmed by the people at PerishablePress.com to be an " +"optimal and least disruptive set of .htaccess security rules for general WP " +"sites running on an Apache server or similar." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:492 +#, php-format +msgid "" +"Therefore the 5G firewall rules should not have any impact on your site's " +"general functionality but if you wish you can take a %s of your .htaccess " +"file before proceeding." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:498 +msgid "5G Blacklist/Firewall Settings" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:510 +msgid "Enable 5G Firewall Protection" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:513 +msgid "" +"Check this if you want to apply the 5G Blacklist firewall protection from " +"perishablepress.com to your site." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:517 +msgid "" +"This setting will implement the 5G security firewall protection mechanisms " +"on your site which include the following things:" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:518 +msgid "1) Block forbidden characters commonly used in exploitative attacks." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:519 +msgid "2) Block malicious encoded URL characters such as the \".css(\" string." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:520 +msgid "" +"3) Guard against the common patterns and specific exploits in the root " +"portion of targeted URLs." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:521 +msgid "" +"4) Stop attackers from manipulating query strings by disallowing illicit " +"characters." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:522 +msgid "....and much more." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:528 +msgid "Save 5G Firewall Settings" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:556 +msgid "" +"Settings have not been saved - your secret word must consist only of " +"alphanumeric characters, ie, letters and/or numbers only!" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:574 +msgid "" +"You have successfully enabled the cookie based brute force prevention feature" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:575 +msgid "" +"From now on you will need to log into your WP Admin using the following URL:" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:577 +msgid "" +"It is important that you save this URL value somewhere in case you forget " +"it, OR," +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:578 +#, php-format +msgid "simply remember to add a \"?%s=1\" to your current site URL address." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:584 +msgid "" +"You have successfully saved cookie based brute force prevention feature " +"settings." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:629 +msgid "Brute Force Prevention Firewall Settings" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:634 +msgid "" +"A Brute Force Attack is when a hacker tries many combinations of usernames " +"and passwords until they succeed in guessing the right combination." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:635 +msgid "" +"Due to the fact that at any one time there may be many concurrent login " +"attempts occurring on your site via malicious automated robots, this also " +"has a negative impact on your server's memory and performance." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:636 +msgid "" +"The features in this tab will stop the majority of Brute Force Login Attacks " +"at the .htaccess level thus providing even better protection for your WP " +"login page and also reducing the load on your server because the system does " +"not have to run PHP code to process the login attempts." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:643 +#, php-format +msgid "" +"Even though this feature should not have any impact on your site's general " +"functionality you are strongly encouraged to take a %s of your ." +"htaccess file before proceeding." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:644 +msgid "" +"If this feature is not used correctly, you can get locked out of your site. " +"A backup file will come in handy if that happens." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:645 +#, php-format +msgid "" +"To learn more about how to use this feature please watch the following %s." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:654 +msgid "Cookie Based Brute Force Login Prevention" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:665 +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:79 +msgid "Enable Brute Force Attack Prevention" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:668 +msgid "" +"Check this if you want to protect your login page from Brute Force Attack." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:673 +msgid "" +"This feature will deny access to your WordPress login page for all people " +"except those who have a special cookie in their browser." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:675 +msgid "To use this feature do the following:" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:677 +msgid "1) Enable the checkbox." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:679 +msgid "" +"2) Enter a secret word consisting of alphanumeric characters which will be " +"difficult to guess. This secret word will be useful whenever you need to " +"know the special URL which you will use to access the login page (see point " +"below)." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:681 +msgid "" +"3) You will then be provided with a special login URL. You will need to use " +"this URL to login to your WordPress site instead of the usual login URL. " +"NOTE: The system will deposit a special cookie in your browser which will " +"allow you access to the WordPress administration login page." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:683 +msgid "" +"Any person trying to access your login page who does not have the special " +"cookie in their browser will be automatically blocked." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:690 +msgid "Secret Word" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:692 +msgid "" +"Choose a secret word consisting of alphanumeric characters which you can use " +"to access your special URL. Your are highly encouraged to choose a word " +"which will be difficult to guess." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:696 +msgid "Re-direct URL" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:700 +msgid "" +"Specify a URL to redirect a hacker to when they try to access your WordPress " +"login page." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:707 +msgid "" +"The URL specified here can be any site's URL and does not have to be your " +"own. For example you can be as creative as you like and send hackers to the " +"CIA or NSA home page." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:709 +msgid "" +"This field will default to: http://127.0.0.1 if you do not enter a value." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:711 +msgid "Useful Tip:" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:713 +msgid "" +"It's a good idea to not redirect attempted brute force login attempts to " +"your site because it increases the load on your server." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:715 +msgid "" +"Redirecting a hacker or malicious bot back to \"http://127.0.0.1\" is ideal " +"because it deflects them back to their own local host and puts the load on " +"their server instead of yours." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:722 +msgid "My Site Has Posts Or Pages Which Are Password Protected" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:725 +msgid "" +"Check this if you are using the native WordPress password protection feature " +"for some or all of your blog posts or pages." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:730 +msgid "" +"In the cases where you are protecting some of your posts or pages using the " +"in-built WordPress password protection feature, a few extra lines of " +"directives and exceptions need to be added to your .htacces file so that " +"people trying to access pages are not automatically blocked." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:732 +msgid "" +"By enabling this checkbox the plugin will add the necessary rules and " +"exceptions to your .htacces file so that people trying to access these pages " +"are not automatically blocked." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:734 +msgid "Helpful Tip:" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:736 +msgid "" +"If you do not use the WordPress password protection feature for your posts " +"or pages then it is highly recommended that you leave this checkbox disabled." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:743 +msgid "My Site Has a Theme or Plugins Which Use AJAX" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:746 +msgid "Check this if your site uses AJAX functionality." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:751 +msgid "" +"In the cases where your WordPress installation has a theme or plugins which " +"use AJAX, a few extra lines of directives and exceptions need to be added to " +"your .htacces file to prevent AJAX requests from being automatically blocked " +"by the brute force prevention feature." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:753 +msgid "" +"By enabling this checkbox the plugin will add the necessary rules and " +"exceptions to your .htacces file so that AJAX operations will work as " +"expected." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:768 +msgid "The cookie test was successful. You can now enable this feature." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:771 +msgid "Save Feature Settings" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:778 +msgid "" +"The cookie test failed on this server. So this feature cannot be used on " +"this site." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:784 +msgid "" +"Before using this feature you are required to perform a cookie test first. " +"This is to make sure that your browser cookie is working correctly and that " +"you won't lock yourself out." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-firewall-menu.php:786 +msgid "Perform Cookie Test" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-list-acct-activity.php:79 +#: all-in-one-wp-security/admin/wp-security-list-comment-spammer-ip.php:86 +#: all-in-one-wp-security/admin/wp-security-list-locked-ip.php:80 +#: all-in-one-wp-security/admin/wp-security-list-locked-ip.php:91 +#: all-in-one-wp-security/admin/wp-security-list-login-fails.php:78 +#: all-in-one-wp-security/admin/wp-security-list-registered-users.php:82 +#: all-in-one-wp-security/admin/wp-security-list-registered-users.php:93 +msgid "Please select some records using the checkboxes" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-list-acct-activity.php:107 +#: all-in-one-wp-security/admin/wp-security-list-login-fails.php:107 +msgid "The selected entries were deleted successfully!" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-list-acct-activity.php:120 +#: all-in-one-wp-security/admin/wp-security-list-login-fails.php:119 +msgid "The selected entry was deleted successfully!" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-list-comment-spammer-ip.php:139 +msgid "" +"The selected IP addresses were saved in the blacklist configuration settings." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-list-comment-spammer-ip.php:153 +msgid "" +"The .htaccess file was successfully modified to include the selected IP " +"addresses." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-list-comment-spammer-ip.php:159 +msgid "" +"NOTE: The .htaccess file was not modified because you have disabled the " +"\"Enable IP or User Agent Blacklisting\" check box." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-list-comment-spammer-ip.php:160 +#, php-format +msgid "" +"To block these IP addresses you will need to enable the above flag in the %s " +"menu" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-list-locked-ip.php:115 +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:748 +msgid "The selected IP ranges were unlocked successfully!" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-list-locked-ip.php:124 +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:757 +msgid "The selected IP range was unlocked successfully!" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-list-registered-users.php:118 +msgid "The selected accounts were approved successfully!" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-list-registered-users.php:125 +msgid "The selected account was approved successfully!" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-list-registered-users.php:146 +msgid "The selected accounts were deleted successfully!" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-list-registered-users.php:154 +msgid "The selected account was deleted successfully!" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-maintenance-menu.php:22 +msgid "Visitor Lockout" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-maintenance-menu.php:88 +msgid "Site lockout feature settings saved!" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-maintenance-menu.php:93 +msgid "General Visitor Lockout" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-maintenance-menu.php:99 +msgid "" +"This feature allows you to put your site into \"maintenance mode\" by " +"locking down the front-end to all visitors except logged in users with super " +"admin privileges." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-maintenance-menu.php:100 +msgid "" +"Locking your site down to general visitors can be useful if you are " +"investigating some issues on your site or perhaps you might be doing some " +"maintenance and wish to keep out all traffic for security reasons." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-maintenance-menu.php:105 +msgid "Enable Front-end Lockout" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-maintenance-menu.php:108 +msgid "" +"Check this if you want all visitors except those who are logged in as " +"administrator to be locked out of the front-end of your site." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-maintenance-menu.php:112 +msgid "Enter a Message:" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-maintenance-menu.php:124 +msgid "" +"Enter a message you wish to display to visitors when your site is in " +"maintenance mode." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-maintenance-menu.php:131 +msgid "Save Site Lockout Settings" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:25 +msgid "General Settings" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:28 +msgid "WP Meta Info" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:95 +msgid "All the security features have been disabled successfully!" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:99 +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:126 +msgid "" +"Could not write to the .htaccess file. Please restore your .htaccess file " +"manually using the restore functionality in the \".htaccess File\"." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:104 +msgid "" +"Could not write to the wp-config.php. Please restore your wp-config.php file " +"manually using the restore functionality in the \"wp-config.php File\"." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:122 +msgid "All firewall rules have been disabled successfully!" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:136 +msgid "WP Security Plugin" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:138 +msgid "" +"Thank you for using our WordPress security plugin. There are a lot of " +"security features in this plugin." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:139 +msgid "" +"Go through each menu items and enable the security options to add more " +"security to your site. Start by activating the basic features first." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:140 +msgid "" +"It is a good practice to take a backup of your .htaccess file, database and " +"wp-config.php file before activating the security features. This plugin has " +"options that you can use to backup those resources easily." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:143 +msgid "Backup your database" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:144 +msgid "Backup .htaccess file" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:145 +msgid "Backup wp-config.php file" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:151 +msgid "Disable Security Features" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:157 +msgid "" +"If you think that some plugin functionality on your site is broken due to a " +"security feature you enabled in this plugin, then use the following option " +"to turn off all the security features of this plugin." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:161 +msgid "Disable All Security Features" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:167 +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:177 +msgid "Disable All Firewall Rules" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:173 +msgid "" +"This feature will disable all firewall rules which are currently active in " +"this plugin and it will also delete these rules from your .htacess file. Use " +"it if you think one of the firewall rules is causing an issue on your site." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:206 +msgid "" +"Your .htaccess file was successfully backed up! Using an FTP program go to " +"the \"backups\" directory of this plugin to save a copy of the file to your " +"computer." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:216 +msgid "" +"htaccess file rename failed during backup. Please check your root directory " +"for the backup file using FTP." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:222 +msgid "htaccess backup failed." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:237 +msgid "Please choose a .htaccess to restore from." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:253 +msgid "" +"htaccess file restore failed. Please attempt to restore the .htaccess " +"manually using FTP." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:257 +msgid "Your .htaccess file has successfully been restored!" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:263 +msgid "" +"htaccess Restore operation failed! Please check the contents of the file you " +"are trying to restore from." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:269 +msgid ".htaccess File Operations" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:272 +msgid "" +"Your \".htaccess\" file is a key component of your website's security and it " +"can be modified to implement various levels of protection mechanisms." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:273 +msgid "" +"This feature allows you to backup and save your currently active .htaccess " +"file should you need to re-use the the backed up file in the future." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:274 +msgid "" +"You can also restore your site's .htaccess settings using a backed up ." +"htaccess file." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:288 +msgid "Save the current .htaccess file" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:292 +msgid "" +"Click the button below to backup and save the currently active .htaccess " +"file." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:293 +msgid "Backup .htaccess File" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:297 +msgid "Restore from a backed up .htaccess file" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:303 +msgid ".htaccess file to restore from" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:309 +msgid "" +"After selecting your file, click the button below to restore your site using " +"the backed up htaccess file (htaccess_backup.txt)." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:315 +msgid "Restore .htaccess File" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:319 +msgid "View Contents of the currently active .htaccess file" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:348 +msgid "Please choose a wp-config.php file to restore from." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:364 +msgid "" +"wp-config.php file restore failed. Please attempt to restore this file " +"manually using FTP." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:368 +msgid "Your wp-config.php file has successfully been restored!" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:374 +msgid "" +"wp-config.php Restore operation failed! Please check the contents of the " +"file you are trying to restore from." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:380 +msgid "wp-config.php File Operations" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:383 +msgid "" +"Your \"wp-config.php\" file is one of the most important in your WordPress " +"installation. It is a primary configuration file and contains crucial things " +"such as details of your database and other critical components." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:384 +msgid "" +"This feature allows you to backup and save your currently active wp-config." +"php file should you need to re-use the the backed up file in the future." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:385 +msgid "" +"You can also restore your site's wp-config.php settings using a backed up wp-" +"config.php file." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:399 +msgid "Save the current wp-config.php file" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:403 +msgid "" +"Click the button below to backup and download the contents of the currently " +"active wp-config.php file." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:404 +msgid "Backup wp-config.php File" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:409 +msgid "Restore from a backed up wp-config file" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:415 +msgid "wp-config file to restore from" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:421 +msgid "" +"After selecting your file click the button below to restore your site using " +"the backed up wp-config file (wp-config.php.backup.txt)." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:427 +msgid "Restore wp-config File" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:431 +msgid "View Contents of the currently active wp-config.php file" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:466 +msgid "WP Generator Meta Tag" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:469 +msgid "" +"Wordpress generator automatically adds some meta information inside the " +"\"head\" tags of every page on your site's front end. Below is an example of " +"this:" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:471 +msgid "" +"The above meta information shows which version of WordPress your site is " +"currently running and thus can help hackers or crawlers scan your site to " +"see if you have an older version of WordPress or one with a known exploit." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:472 +msgid "" +"This feature will allow you to remove the WP generator meta info from your " +"site's pages." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:478 +msgid "WP Generator Meta Info" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:490 +msgid "Remove WP Generator Meta Info" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-settings-menu.php:493 +msgid "" +"Check this if you want to remove the meta info produced by WP Generator from " +"all pages" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:23 +msgid "Comment SPAM" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:24 +msgid "Comment SPAM IP Monitoring" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:111 +msgid "Comment SPAM Settings" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:116 +msgid "Add Captcha To Comments Form" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:120 +msgid "" +"This feature will add a simple math captcha field in the WordPress comments " +"form." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:137 +msgid "Enable Captcha On Comment Forms" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:140 +msgid "Check this if you want to insert a captcha field on the comment forms" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:148 +msgid "Block Spambot Comments" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:152 +msgid "" +"A large portion of WordPress blog comment SPAM is mainly produced by " +"automated bots and not necessarily by humans. " +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:153 +msgid "" +"This feature will greatly minimize the useless and unecessary traffic and " +"load on your server resulting from SPAM comments by blocking all comment " +"requests which do not originate from your domain." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:170 +msgid "Block Spambots From Posting Comments" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:173 +msgid "" +"Check this if you want to apply a firewall rule which will block comments " +"originating from spambots." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:177 +msgid "" +"This feature will implement a firewall rule to block all comment attempts " +"which do not originate from your domain." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:178 +msgid "" +"A legitimate comment is one which is submitted by a human who physically " +"fills out the comment form and clicks the submit button. For such events, " +"the HTTP_REFERRER is always set to your own domain." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:179 +msgid "" +"A comment submitted by a spambot is done by directly calling the comments." +"php file, which usually means that the HTTP_REFERRER value is not your " +"domain and often times empty." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:180 +msgid "" +"This feature will check and block comment requests which are not referred by " +"your domain thus greatly reducing your overall blog SPAM and PHP requests " +"done by the server to process these comments." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:207 +msgid "Nonce check failed for list SPAM comment IPs!" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:213 +msgid "" +"You entered a non numeric value for the minimum SPAM comments per IP field. " +"It has been set to the default value." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:225 +#, php-format +msgid "" +"Displaying results for IP addresses which have posted a minimum of %s SPAM " +"comments" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:241 +msgid "" +"This tab displays a list of the IP addresses of the people or bots who have " +"left SPAM comments on your site." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:242 +msgid "" +"This information can be handy for identifying the most persistent IP " +"addresses or ranges used by spammers." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:243 +msgid "" +"By inspecting the IP address data coming from spammers you will be in a " +"better position to determine which addresses or address ranges you should " +"block by adding them to your blacklist." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:244 +msgid "" +"To add one or more of the IP addresses displayed in the table below to your " +"blacklist, simply click the \"Block\" link for the individual row or select " +"more than one address \n" +" using the checkboxes and then choose the \"block" +"\" option from the Bulk Actions dropdown list and click the \"Apply\" button." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:250 +msgid "List SPAMMER IP Addresses" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:256 +msgid "Minimum number of SPAM comments per IP" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:258 +msgid "" +"This field allows you to list only those IP addresses which have been used " +"to post X or more SPAM comments." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:262 +msgid "" +"Example 1: Setting this value to \"0\" or \"1\" will list ALL IP addresses " +"which were used to submit SPAM comments." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:263 +msgid "" +"Example 2: Setting this value to \"5\" will list only those IP addresses " +"which were used to submit 5 SPAM comments or more on your site." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:270 +msgid "Find IP Addresses" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:274 +msgid "SPAMMER IP Address Results" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:280 +#: all-in-one-wp-security/classes/wp-security-utility.php:150 +msgid "" +"The plugin has detected that you are using a Multi-Site WordPress " +"installation." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:281 +msgid "Only the \"superadmin\" can block IP addresses from the main site." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-spam-menu.php:282 +msgid "" +"Take note of the IP addresses you want blocked and ask the superadmin to add " +"these to the blacklist using the \"Blacklist Manager\" on the main site." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:29 +msgid "WP Username" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:30 +msgid "Display Name" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:31 +msgid "Password" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:85 +msgid "Admin User Security" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:88 +msgid "" +"By default, WordPress sets the administrator username to \"admin\" at " +"installation time." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:89 +msgid "" +"A lot of hackers try to take advantage of this information by attempting " +"\"Brute Force Login Attacks\" where they repeatedly try to guess the " +"password by using \"admin\" for username." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:90 +msgid "" +"From a security perspective, changing the default \"admin\" user name is one " +"of the first and smartest things you should do on your site." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:91 +msgid "" +"This feature will allow you to change your default \"admin\" user name to a " +"more secure name of your choosing." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:98 +msgid "List of Administrator Accounts" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:107 +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:33 +msgid "Change Admin Username" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:115 +msgid "" +"Your site currently has an account which uses the default \"admin\" " +"username. \n" +" It is highly recommended that you change this name to " +"something else. \n" +" Use the following field to change the admin username." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:123 +msgid "New Admin Username" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:125 +msgid "Choose a new username for admin." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:129 +msgid "Change Username" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:131 +msgid "" +"NOTE: If you are currently logged in as \"admin\" you will be automatically " +"logged out after changing your username and will be required to log back in." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:138 +msgid "No action required! " +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:140 +msgid "" +"Your site does not have any account which uses the default \"admin\" " +"username. " +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:141 +msgid "This is good security practice." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:153 +msgid "Display Name Security" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:156 +msgid "" +"When you submit a post or answer a comment, WordPress will usually display " +"your \"nickname\"." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:157 +msgid "" +"By default the nickname is set to the login (or user) name of your account." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:158 +msgid "" +"From a security perspective, leaving your nickname the same as your user " +"name is bad practice because it gives a hacker at least half of your " +"account's login credentials." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:159 +msgid "" +"Therefore to further tighten your site's security you are advised to change " +"your nickname and Display name to be " +"different from your Username." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:165 +msgid "Modify Accounts With Identical Login Name & Display Name" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:174 +msgid "" +"Your site currently has the following accounts which have an identical login " +"name and display name." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:175 +msgid "Click on the link to edit the settings of that particular user account" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:190 +msgid "No action required." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:191 +msgid "" +"Your site does not have a user account where the display name is identical " +"to the username." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:202 +msgid "Password Tool" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:205 +msgid "" +"Poor password selection is one of the most common weak points of many sites " +"and is usually the first thing a hacker will try to exploit when attempting " +"to break into your site." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:206 +msgid "" +"Many people fall into the trap of using a simple word or series of numbers " +"as their password. Such a predictable and simple password would take a " +"competent hacker merely minutes to guess your password by using a simple " +"script which cycles through the easy and most common combinations." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:207 +msgid "" +"The longer and more complex your password is the harder it is for hackers to " +"\"crack\" because more complex passwords require much greater computing " +"power and time." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:208 +msgid "" +"This section contains a useful password strength tool which you can use to " +"check whether your password is sufficiently strong enough." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:213 +msgid "Password Strength Tool" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:218 +msgid "Start typing a password." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:221 +msgid "It would take a desktop PC approximately" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:222 +msgid "1 sec" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:222 +msgid "to crack your password!" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:227 +msgid "Password Strength" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:243 +msgid "Nonce check failed on admin username change operation!" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:250 +msgid "Username " +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:250 +msgid " already exists. Please enter another value. " +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:266 +msgid "The database update operation of the user account failed!" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:293 +msgid "You entered an invalid username. Please enter another value. " +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:297 +msgid "Please enter a value for your username. " +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:304 +msgid "Username Successfully Changed!" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-accounts-menu.php:324 +msgid "Account Login Name" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:28 +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:41 +msgid "Login Captcha" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:29 +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:407 +msgid "Login Whitelist" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:30 +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:519 +msgid "Failed Login Records" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:31 +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:47 +msgid "Force Logout" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:32 +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:653 +msgid "Account Activity Logs" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:100 +msgid "" +"You entered a non numeric value for the max login attempts field. It has " +"been set to the default value." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:107 +msgid "" +"You entered a non numeric value for the login retry time period field. It " +"has been set to the default value." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:114 +msgid "" +"You entered a non numeric value for the lockout time length field. It has " +"been set to the default value." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:159 +msgid "Login Lockdown Configuration" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:163 +msgid "One of the ways hackers try to compromise sites is via a " +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:163 +msgid "Brute Force Login Attack" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:164 +msgid "" +"This is where attackers use repeated login attempts until they guess the " +"password." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:165 +msgid "" +"Apart from choosing strong passwords, monitoring and blocking IP addresses " +"which are involved in repeated login failures in a short period of time is a " +"very effective way to stop these types of attacks." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:166 +#, php-format +msgid "" +"You may also want to checkout our %s feature for another secure way to " +"protect against these types of attacks." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:171 +msgid "Login Lockdown Options" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:183 +msgid "Enable Login Lockdown Feature" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:186 +msgid "" +"Check this if you want to enable the login lockdown feature and apply the " +"settings below" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:190 +msgid "Max Login Attempts" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:192 +msgid "" +"Set the value for the maximum login retries before IP address is locked out" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:196 +msgid "Login Retry Time Period (min)" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:198 +msgid "" +"If the maximum number of failed login attempts for a particular IP address " +"occur within this time period the plugin will lock out that address" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:202 +msgid "Time Length of Lockout (min)" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:204 +msgid "" +"Set the length of time for which a particular IP address will be prevented " +"from logging in" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:208 +msgid "Display Generic Error Message" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:211 +msgid "" +"Check this if you want to show a generic error message when a login attempt " +"fails" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:215 +msgid "Instantly Lockout Invalid Usernames" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:218 +msgid "" +"Check this if you want to instantly lockout login attempts with usernames " +"which do not exist on your system" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:223 +msgid "Notify By Email" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:226 +msgid "" +"Check this if you want to receive an email when someone has been locked out " +"due to maximum failed login attempts" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:236 +msgid "Currently Locked Out IP Address Ranges" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:290 +msgid "" +"This feature allows you to add a captcha form on the WordPress login page." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:291 +msgid "" +"Users who attempt to login will also need to enter the answer to a simple " +"mathematical question - if they enter the wrong answer, the plugin will not " +"allow them login even if they entered the correct username and password." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:292 +msgid "" +"Therefore, adding a captcha form on the login page is another effective yet " +"simple \"Brute Force\" prevention technique." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:298 +msgid "Login Form Captcha Settings" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:309 +msgid "Enable Captcha On Login Page" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:312 +msgid "Check this if you want to insert a captcha form on the login page" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:318 +msgid "Lost Password Form Captcha Settings" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:328 +msgid "Enable Captcha On Lost Password Page" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:331 +msgid "" +"Check this if you want to insert a captcha form on the lost password page" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:353 +msgid "Nonce check failed for save whitelist settings!" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:410 +msgid "" +"The All In One WP Security Whitelist feature gives you the option of only " +"allowing certain IP addresses or ranges to have access to your WordPress " +"login page." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:411 +msgid "" +"This feature will deny login access for all IP addresses which are not in " +"your whitelist as configured in the settings below." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:412 +msgid "" +"The plugin achieves this by writing the appropriate directives to your ." +"htaccess file." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:413 +msgid "" +"By allowing/blocking IP addresses via the .htaccess file your are using the " +"most secure first line of defence because login access will only be granted " +"to whitelisted IP addresses and other addresses will be blocked as soon as " +"they try to access your login page." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:420 +#, php-format +msgid "" +"Attention: If in addition to enabling the white list feature, you also have " +"the %s feature enabled, you will still need to use your secret word " +"in the URL when trying to access your WordPress login page." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:421 +msgid "" +"These features are NOT functionally related. Having both of them enabled on " +"your site means you are creating 2 layers of security." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:426 +msgid "Login IP Whitelist Settings" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:437 +msgid "Enable IP Whitelisting" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:440 +msgid "" +"Check this if you want to enable the whitelisting of selected IP addresses " +"specified in the settings below" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:444 +msgid "Your Current IP Address" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:447 +msgid "" +"You can copy and paste this address in the text box below if you want to " +"include it in your login whitelist." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:451 +msgid "Enter Whitelisted IP Addresses:" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:455 +msgid "" +"Enter one or more IP addresses or IP ranges you wish to include in your " +"whitelist. Only the addresses specified here will have access to the " +"WordPress login page." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:485 +msgid "Nonce check failed for delete all failed login records operation!" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:494 +msgid "User Login Feature - Delete all failed login records operation failed!" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:498 +msgid "All records from the Failed Logins table were deleted successfully!" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:513 +msgid "This tab displays the failed login attempts for your site." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:514 +msgid "" +"The information below can be handy if you need to do security investigations " +"because it will show you the IP range, username and ID (if applicable) and " +"the time/date of the failed login attempt." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:535 +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:544 +msgid "Delete All Failed Login Records" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:541 +msgid "" +"Click this button if you wish to delete all failed login records in one go." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:569 +msgid "" +"You entered a non numeric value for the logout time period field. It has " +"been set to the default value." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:597 +msgid "" +"Setting an expiry period for your WP administration session is a simple way " +"to protect against unauthorized access to your site from your computer." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:598 +msgid "" +"This feature allows you to specify a time period in minutes after which the " +"admin session will expire and the user will be forced to log back in." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:603 +msgid "Force User Logout Options" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:615 +msgid "Enable Force WP User Logout" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:618 +msgid "" +"Check this if you want to force a wp user to be logged out after a " +"configured amount of time" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:622 +msgid "Logout the WP User After XX Minutes" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:624 +msgid "" +"(Minutes) The user will be forced to log back in after this time period has " +"elapased." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:647 +msgid "" +"This tab displays the login activity for WordPress admin accounts registered " +"with your site." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:648 +msgid "" +"The information below can be handy if you need to do security investigations " +"because it will show you the last 50 recent login events by username, IP " +"address and time/date." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:685 +msgid "Nonce check failed for users logged in list!" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:698 +msgid "Refresh Logged In User Data" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:702 +msgid "Refresh Data" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:708 +msgid "This tab displays all users who are currently logged into your site." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:709 +msgid "" +"If you suspect there is a user or users who are logged in which should not " +"be, you can block them by inspecting the IP addresses from the data below " +"and adding them to your blacklist." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:714 +msgid "Currently Logged In Users" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:779 +msgid "The selected records were deleted successfully!" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-login-menu.php:788 +msgid "The selected record was deleted successfully!" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-registration-menu.php:23 +msgid "Manual Approval" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-registration-menu.php:24 +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:53 +msgid "Registration Captcha" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-registration-menu.php:112 +msgid "User Registration Settings" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-registration-menu.php:116 +msgid "Manually Approve New Registrations" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-registration-menu.php:120 +msgid "" +"If your site allows people to create their own accounts via the WordPress " +"registration form, then you can minimize SPAM or bogus registrations by " +"manually approving each registration." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-registration-menu.php:121 +msgid "" +"This feature will automatically set a newly registered account to \"pending" +"\" until the administrator activates it. Therefore undesirable registrants " +"will be unable to log in without your express approval." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-registration-menu.php:122 +msgid "" +"You can view all accounts which have been newly registered via the handy " +"table below and you can also perform bulk activation/deactivation/deletion " +"tasks on each account." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-registration-menu.php:138 +msgid "Enable manual approval of new registrations" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-registration-menu.php:141 +msgid "" +"Check this if you want to automatically disable all newly registered " +"accounts so that you can approve them manually." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-registration-menu.php:150 +msgid "Approve Registered Users" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-registration-menu.php:195 +msgid "" +"This feature allows you to add a captcha form on the WordPress registration " +"page." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-registration-menu.php:196 +msgid "" +"Users who attempt to register will also need to enter the answer to a simple " +"mathematical question - if they enter the wrong answer, the plugin will not " +"allow them to register." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-registration-menu.php:197 +msgid "" +"Therefore, adding a captcha form on the registration page is another " +"effective yet simple SPAM registration prevention technique." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-registration-menu.php:202 +msgid "Registration Page Captcha Settings" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-registration-menu.php:214 +msgid "Enable Captcha On Registration Page" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-user-registration-menu.php:217 +msgid "" +"Check this if you want to insert a captcha form on the WordPress user " +"registration page (if you allow user registration)." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-whois-menu.php:22 +msgid "WhoIS Lookup" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-whois-menu.php:74 +msgid "WHOIS Lookup Information" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-whois-menu.php:77 +msgid "" +"This feature allows you to look up more detailed information about an IP " +"address or domain name by querying the WHOIS API." +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-whois-menu.php:83 +msgid "Perform a WHOIS Lookup for an IP or Domain Name" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-whois-menu.php:89 +msgid "Enter IP Address or Domain Name" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-whois-menu.php:91 +msgid "" +"Enter an IP address or domain name. Example: 111.11.12.13 OR some-domain-" +"name.com" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-whois-menu.php:95 +msgid "Perform IP or Domain Lookup" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-whois-menu.php:115 +msgid "WHOIS lookup successfully completed. Please see the results below:" +msgstr "" + +#: all-in-one-wp-security/admin/wp-security-whois-menu.php:127 +msgid "" +"You have entered an incorrectly formatted IP address or domain name. Please " +"try again." +msgstr "" + +#: all-in-one-wp-security/admin/general/wp-security-list-table.php:178 +msgid "No items found." +msgstr "" + +#: all-in-one-wp-security/admin/general/wp-security-list-table.php:281 +msgid "Bulk Actions" +msgstr "" + +#: all-in-one-wp-security/admin/general/wp-security-list-table.php:291 +msgid "Apply" +msgstr "" + +#: all-in-one-wp-security/admin/general/wp-security-list-table.php:365 +msgid "Show all dates" +msgstr "" + +#: all-in-one-wp-security/admin/general/wp-security-list-table.php:378 +#, php-format +msgid "%1$s %2$d" +msgstr "" + +#: all-in-one-wp-security/admin/general/wp-security-list-table.php:394 +msgid "List View" +msgstr "" + +#: all-in-one-wp-security/admin/general/wp-security-list-table.php:395 +msgid "Excerpt View" +msgstr "" + +#: all-in-one-wp-security/admin/general/wp-security-list-table.php:421 +#, php-format +msgid "%s pending" +msgstr "" + +#: all-in-one-wp-security/admin/general/wp-security-list-table.php:653 +msgid "Select All" +msgstr "" + +#: all-in-one-wp-security/classes/wp-security-backup.php:177 +msgid "All In One WP Security - Site Database Backup" +msgstr "" + +#: all-in-one-wp-security/classes/wp-security-backup.php:179 +msgid "Attached is your latest DB backup file for site URL" +msgstr "" + +#: all-in-one-wp-security/classes/wp-security-backup.php:179 +msgid " generated on" +msgstr "" + +#: all-in-one-wp-security/classes/wp-security-captcha.php:12 +msgid "Please enter an answer in digits:" +msgstr "" + +#: all-in-one-wp-security/classes/wp-security-captcha.php:91 +msgid "one" +msgstr "" + +#: all-in-one-wp-security/classes/wp-security-captcha.php:92 +msgid "two" +msgstr "" + +#: all-in-one-wp-security/classes/wp-security-captcha.php:93 +msgid "three" +msgstr "" + +#: all-in-one-wp-security/classes/wp-security-captcha.php:94 +msgid "four" +msgstr "" + +#: all-in-one-wp-security/classes/wp-security-captcha.php:95 +msgid "five" +msgstr "" + +#: all-in-one-wp-security/classes/wp-security-captcha.php:96 +msgid "six" +msgstr "" + +#: all-in-one-wp-security/classes/wp-security-captcha.php:97 +msgid "seven" +msgstr "" + +#: all-in-one-wp-security/classes/wp-security-captcha.php:98 +msgid "eight" +msgstr "" + +#: all-in-one-wp-security/classes/wp-security-captcha.php:99 +msgid "nine" +msgstr "" + +#: all-in-one-wp-security/classes/wp-security-captcha.php:100 +msgid "ten" +msgstr "" + +#: all-in-one-wp-security/classes/wp-security-captcha.php:101 +msgid "eleven" +msgstr "" + +#: all-in-one-wp-security/classes/wp-security-captcha.php:102 +msgid "twelve" +msgstr "" + +#: all-in-one-wp-security/classes/wp-security-captcha.php:103 +msgid "thirteen" +msgstr "" + +#: all-in-one-wp-security/classes/wp-security-captcha.php:104 +msgid "fourteen" +msgstr "" + +#: all-in-one-wp-security/classes/wp-security-captcha.php:105 +msgid "fifteen" +msgstr "" + +#: all-in-one-wp-security/classes/wp-security-captcha.php:106 +msgid "sixteen" +msgstr "" + +#: all-in-one-wp-security/classes/wp-security-captcha.php:107 +msgid "seventeen" +msgstr "" + +#: all-in-one-wp-security/classes/wp-security-captcha.php:108 +msgid "eighteen" +msgstr "" + +#: all-in-one-wp-security/classes/wp-security-captcha.php:109 +msgid "nineteen" +msgstr "" + +#: all-in-one-wp-security/classes/wp-security-captcha.php:110 +msgid "twenty" +msgstr "" + +#: all-in-one-wp-security/classes/wp-security-file-scan.php:58 +msgid "All In One WP Security - File change detected!" +msgstr "" + +#: all-in-one-wp-security/classes/wp-security-file-scan.php:60 +msgid "A file change was detected on your system for site URL" +msgstr "" + +#: all-in-one-wp-security/classes/wp-security-file-scan.php:60 +msgid ". Scan was generated on" +msgstr "" + +#: all-in-one-wp-security/classes/wp-security-file-scan.php:61 +msgid "Login to your site to view the scan details." +msgstr "" + +#: all-in-one-wp-security/classes/wp-security-general-init-tasks.php:158 +msgid "Please enter an answer in the CAPTCHA field." +msgstr "" + +#: all-in-one-wp-security/classes/wp-security-general-init-tasks.php:168 +msgid "" +"Error: You entered an incorrect CAPTCHA answer. Please go back and try again." +msgstr "" + +#: all-in-one-wp-security/classes/wp-security-general-init-tasks.php:196 +#: all-in-one-wp-security/classes/wp-security-user-login.php:63 +#: all-in-one-wp-security/classes/wp-security-user-login.php:66 +#: all-in-one-wp-security/classes/wp-security-user-registration.php:59 +msgid "ERROR: Your answer was incorrect - please try again." +msgstr "" + +#: all-in-one-wp-security/classes/wp-security-user-login.php:39 +msgid "" +"ERROR: Login failed because your IP address has been " +"blocked.\n" +" Please contact the administrator." +msgstr "" + +#: all-in-one-wp-security/classes/wp-security-user-login.php:76 +msgid "ERROR: The username field is empty." +msgstr "" + +#: all-in-one-wp-security/classes/wp-security-user-login.php:80 +msgid "ERROR: The password field is empty." +msgstr "" + +#: all-in-one-wp-security/classes/wp-security-user-login.php:100 +#: all-in-one-wp-security/classes/wp-security-user-login.php:126 +msgid "ERROR: Invalid login credentials." +msgstr "" + +#: all-in-one-wp-security/classes/wp-security-user-login.php:103 +msgid "ERROR: Invalid username." +msgstr "" + +#: all-in-one-wp-security/classes/wp-security-user-login.php:129 +#, php-format +msgid "" +"ERROR: Incorrect password. Lost your password?" +msgstr "" + +#: all-in-one-wp-security/classes/wp-security-user-login.php:140 +msgid "" +"ACCOUNT PENDING: Your account is currently not active. An " +"administrator needs to activate your account before you can login." +msgstr "" + +#: all-in-one-wp-security/classes/wp-security-user-login.php:263 +msgid "Site Lockout Notification" +msgstr "" + +#: all-in-one-wp-security/classes/wp-security-user-login.php:264 +msgid "" +"A lockdown event has occurred due to too many failed login attempts or " +"invalid username:" +msgstr "" + +#: all-in-one-wp-security/classes/wp-security-user-login.php:265 +msgid "Username: " +msgstr "" + +#: all-in-one-wp-security/classes/wp-security-user-login.php:266 +msgid "IP Address: " +msgstr "" + +#: all-in-one-wp-security/classes/wp-security-user-login.php:267 +msgid "IP Range: " +msgstr "" + +#: all-in-one-wp-security/classes/wp-security-user-login.php:268 +msgid "" +"Log into your site's WordPress administration panel to see the duration of " +"the lockout or to unlock the user." +msgstr "" + +#: all-in-one-wp-security/classes/wp-security-user-login.php:425 +#, php-format +msgid "" +"Your session has expired because it has been over %d minutes since your last " +"login." +msgstr "" + +#: all-in-one-wp-security/classes/wp-security-user-login.php:426 +#: all-in-one-wp-security/classes/wp-security-user-login.php:430 +msgid "Please log back in to continue." +msgstr "" + +#: all-in-one-wp-security/classes/wp-security-user-login.php:429 +msgid "You were logged out because you just changed the \"admin\" username." +msgstr "" + +#: all-in-one-wp-security/classes/wp-security-utility-ip-address.php:79 +#: all-in-one-wp-security/classes/wp-security-utility-ip-address.php:98 +#: all-in-one-wp-security/classes/wp-security-utility-ip-address.php:113 +#: all-in-one-wp-security/classes/wp-security-utility-ip-address.php:128 +msgid " is not a valid ip address format." +msgstr "" + +#: all-in-one-wp-security/classes/wp-security-utility-ip-address.php:136 +msgid "You cannot ban your own IP address: " +msgstr "" + +#: all-in-one-wp-security/classes/wp-security-utility.php:151 +msgid "" +"This feature can only be configured by the \"superadmin\" on the main site." +msgstr "" + +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:29 +msgid "Remove WP Generatore Meta Tag" +msgstr "" + +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:35 +msgid "Change Display Name" +msgstr "" + +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:43 +msgid "Lost Password Captcha" +msgstr "" + +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:45 +msgid "Login IP Whitelisting" +msgstr "" + +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:51 +msgid "Registration Approval" +msgstr "" + +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:67 +msgid "WordPress Files Access" +msgstr "" + +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:71 +msgid "IP and User Agent Blacklisting" +msgstr "" + +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:75 +msgid "Enable Basic Firewall" +msgstr "" + +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:76 +msgid "Enable Pingback Vulnerability Protection" +msgstr "" + +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:82 +msgid "Forbid Proxy Comments" +msgstr "" + +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:83 +msgid "Deny Bad Queries" +msgstr "" + +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:85 +msgid "5G Blacklist" +msgstr "" + +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:88 +msgid "Block Spambots" +msgstr "" + +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item-manager.php:90 +msgid "Comment Captcha" +msgstr "" + +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item.php:28 +msgid "Basic" +msgstr "" + +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item.php:31 +msgid "Intermediate" +msgstr "" + +#: all-in-one-wp-security/classes/grade-system/wp-security-feature-item.php:34 +msgid "Advanced" +msgstr "" diff --git a/all-in-one-wp-security/lib/index.html b/all-in-one-wp-security/lib/index.html new file mode 100644 index 0000000..e69de29 diff --git a/all-in-one-wp-security/lib/whois/LICENSE b/all-in-one-wp-security/lib/whois/LICENSE new file mode 100644 index 0000000..3912109 --- /dev/null +++ b/all-in-one-wp-security/lib/whois/LICENSE @@ -0,0 +1,340 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General +Public License instead of this License. diff --git a/all-in-one-wp-security/lib/whois/handler.template.php b/all-in-one-wp-security/lib/whois/handler.template.php new file mode 100644 index 0000000..6e0b6b9 --- /dev/null +++ b/all-in-one-wp-security/lib/whois/handler.template.php @@ -0,0 +1,40 @@ + \ No newline at end of file diff --git a/all-in-one-wp-security/lib/whois/npdata.ser b/all-in-one-wp-security/lib/whois/npdata.ser new file mode 100644 index 0000000..d7ce6d0 --- /dev/null +++ b/all-in-one-wp-security/lib/whois/npdata.ser @@ -0,0 +1 @@ +a:6:{s:11:"map_nothing";a:27:{i:0;i:173;i:1;i:847;i:2;i:6150;i:3;i:6155;i:4;i:6156;i:5;i:6157;i:6;i:8203;i:7;i:8204;i:8;i:8205;i:9;i:8288;i:10;i:65024;i:11;i:65025;i:12;i:65026;i:13;i:65027;i:14;i:65028;i:15;i:65029;i:16;i:65030;i:17;i:65031;i:18;i:65032;i:19;i:65033;i:20;i:65034;i:21;i:65035;i:22;i:65036;i:23;i:65037;i:24;i:65038;i:25;i:65039;i:26;i:65279;}s:18:"general_prohibited";a:64:{i:0;i:0;i:1;i:1;i:2;i:2;i:3;i:3;i:4;i:4;i:5;i:5;i:6;i:6;i:7;i:7;i:8;i:8;i:9;i:9;i:10;i:10;i:11;i:11;i:12;i:12;i:13;i:13;i:14;i:14;i:15;i:15;i:16;i:16;i:17;i:17;i:18;i:18;i:19;i:19;i:20;i:20;i:21;i:21;i:22;i:22;i:23;i:23;i:24;i:24;i:25;i:25;i:26;i:26;i:27;i:27;i:28;i:28;i:29;i:29;i:30;i:30;i:31;i:31;i:32;i:32;i:33;i:33;i:34;i:34;i:35;i:35;i:36;i:36;i:37;i:37;i:38;i:38;i:39;i:39;i:40;i:40;i:41;i:41;i:42;i:42;i:43;i:43;i:44;i:44;i:45;i:47;i:46;i:59;i:47;i:60;i:48;i:61;i:49;i:62;i:50;i:63;i:51;i:64;i:52;i:91;i:53;i:92;i:54;i:93;i:55;i:94;i:56;i:95;i:57;i:96;i:58;i:123;i:59;i:124;i:60;i:125;i:61;i:126;i:62;i:127;i:63;i:12290;}s:8:"prohibit";a:84:{i:0;i:160;i:1;i:5760;i:2;i:8192;i:3;i:8193;i:4;i:8194;i:5;i:8195;i:6;i:8196;i:7;i:8197;i:8;i:8198;i:9;i:8199;i:10;i:8200;i:11;i:8201;i:12;i:8202;i:13;i:8203;i:14;i:8239;i:15;i:8287;i:16;i:12288;i:17;i:1757;i:18;i:1807;i:19;i:6158;i:20;i:8204;i:21;i:8205;i:22;i:8232;i:23;i:8233;i:24;i:65279;i:25;i:65529;i:26;i:65530;i:27;i:65531;i:28;i:65532;i:29;i:65534;i:30;i:65535;i:31;i:131070;i:32;i:131071;i:33;i:196606;i:34;i:196607;i:35;i:262142;i:36;i:262143;i:37;i:327678;i:38;i:327679;i:39;i:393214;i:40;i:393215;i:41;i:458750;i:42;i:458751;i:43;i:524286;i:44;i:524287;i:45;i:589822;i:46;i:589823;i:47;i:655358;i:48;i:655359;i:49;i:720894;i:50;i:720895;i:51;i:786430;i:52;i:786431;i:53;i:851966;i:54;i:851967;i:55;i:917502;i:56;i:917503;i:57;i:983038;i:58;i:983039;i:59;i:1048574;i:60;i:1048575;i:61;i:1114110;i:62;i:1114111;i:63;i:65529;i:64;i:65530;i:65;i:65531;i:66;i:65532;i:67;i:65533;i:68;i:832;i:69;i:833;i:70;i:8206;i:71;i:8207;i:72;i:8234;i:73;i:8235;i:74;i:8236;i:75;i:8237;i:76;i:8238;i:77;i:8298;i:78;i:8299;i:79;i:8300;i:80;i:8301;i:81;i:8302;i:82;i:8303;i:83;i:917505;}s:15:"prohibit_ranges";a:10:{i:0;a:2:{i:0;i:128;i:1;i:159;}i:1;a:2:{i:0;i:8288;i:1;i:8303;}i:2;a:2:{i:0;i:119155;i:1;i:119162;}i:3;a:2:{i:0;i:57344;i:1;i:63743;}i:4;a:2:{i:0;i:983040;i:1;i:1048573;}i:5;a:2:{i:0;i:1048576;i:1;i:1114109;}i:6;a:2:{i:0;i:64976;i:1;i:65007;}i:7;a:2:{i:0;i:55296;i:1;i:57343;}i:8;a:2:{i:0;i:12272;i:1;i:12283;}i:9;a:2:{i:0;i:917536;i:1;i:917631;}}s:11:"replacemaps";a:1401:{i:65;a:1:{i:0;i:97;}i:66;a:1:{i:0;i:98;}i:67;a:1:{i:0;i:99;}i:68;a:1:{i:0;i:100;}i:69;a:1:{i:0;i:101;}i:70;a:1:{i:0;i:102;}i:71;a:1:{i:0;i:103;}i:72;a:1:{i:0;i:104;}i:73;a:1:{i:0;i:105;}i:74;a:1:{i:0;i:106;}i:75;a:1:{i:0;i:107;}i:76;a:1:{i:0;i:108;}i:77;a:1:{i:0;i:109;}i:78;a:1:{i:0;i:110;}i:79;a:1:{i:0;i:111;}i:80;a:1:{i:0;i:112;}i:81;a:1:{i:0;i:113;}i:82;a:1:{i:0;i:114;}i:83;a:1:{i:0;i:115;}i:84;a:1:{i:0;i:116;}i:85;a:1:{i:0;i:117;}i:86;a:1:{i:0;i:118;}i:87;a:1:{i:0;i:119;}i:88;a:1:{i:0;i:120;}i:89;a:1:{i:0;i:121;}i:90;a:1:{i:0;i:122;}i:181;a:1:{i:0;i:956;}i:192;a:1:{i:0;i:224;}i:193;a:1:{i:0;i:225;}i:194;a:1:{i:0;i:226;}i:195;a:1:{i:0;i:227;}i:196;a:1:{i:0;i:228;}i:197;a:1:{i:0;i:229;}i:198;a:1:{i:0;i:230;}i:199;a:1:{i:0;i:231;}i:200;a:1:{i:0;i:232;}i:201;a:1:{i:0;i:233;}i:202;a:1:{i:0;i:234;}i:203;a:1:{i:0;i:235;}i:204;a:1:{i:0;i:236;}i:205;a:1:{i:0;i:237;}i:206;a:1:{i:0;i:238;}i:207;a:1:{i:0;i:239;}i:208;a:1:{i:0;i:240;}i:209;a:1:{i:0;i:241;}i:210;a:1:{i:0;i:242;}i:211;a:1:{i:0;i:243;}i:212;a:1:{i:0;i:244;}i:213;a:1:{i:0;i:245;}i:214;a:1:{i:0;i:246;}i:216;a:1:{i:0;i:248;}i:217;a:1:{i:0;i:249;}i:218;a:1:{i:0;i:250;}i:219;a:1:{i:0;i:251;}i:220;a:1:{i:0;i:252;}i:221;a:1:{i:0;i:253;}i:222;a:1:{i:0;i:254;}i:223;a:2:{i:0;i:115;i:1;i:115;}i:256;a:1:{i:0;i:257;}i:258;a:1:{i:0;i:259;}i:260;a:1:{i:0;i:261;}i:262;a:1:{i:0;i:263;}i:264;a:1:{i:0;i:265;}i:266;a:1:{i:0;i:267;}i:268;a:1:{i:0;i:269;}i:270;a:1:{i:0;i:271;}i:272;a:1:{i:0;i:273;}i:274;a:1:{i:0;i:275;}i:276;a:1:{i:0;i:277;}i:278;a:1:{i:0;i:279;}i:280;a:1:{i:0;i:281;}i:282;a:1:{i:0;i:283;}i:284;a:1:{i:0;i:285;}i:286;a:1:{i:0;i:287;}i:288;a:1:{i:0;i:289;}i:290;a:1:{i:0;i:291;}i:292;a:1:{i:0;i:293;}i:294;a:1:{i:0;i:295;}i:296;a:1:{i:0;i:297;}i:298;a:1:{i:0;i:299;}i:300;a:1:{i:0;i:301;}i:302;a:1:{i:0;i:303;}i:304;a:2:{i:0;i:105;i:1;i:775;}i:306;a:1:{i:0;i:307;}i:308;a:1:{i:0;i:309;}i:310;a:1:{i:0;i:311;}i:313;a:1:{i:0;i:314;}i:315;a:1:{i:0;i:316;}i:317;a:1:{i:0;i:318;}i:319;a:1:{i:0;i:320;}i:321;a:1:{i:0;i:322;}i:323;a:1:{i:0;i:324;}i:325;a:1:{i:0;i:326;}i:327;a:1:{i:0;i:328;}i:329;a:2:{i:0;i:700;i:1;i:110;}i:330;a:1:{i:0;i:331;}i:332;a:1:{i:0;i:333;}i:334;a:1:{i:0;i:335;}i:336;a:1:{i:0;i:337;}i:338;a:1:{i:0;i:339;}i:340;a:1:{i:0;i:341;}i:342;a:1:{i:0;i:343;}i:344;a:1:{i:0;i:345;}i:346;a:1:{i:0;i:347;}i:348;a:1:{i:0;i:349;}i:350;a:1:{i:0;i:351;}i:352;a:1:{i:0;i:353;}i:354;a:1:{i:0;i:355;}i:356;a:1:{i:0;i:357;}i:358;a:1:{i:0;i:359;}i:360;a:1:{i:0;i:361;}i:362;a:1:{i:0;i:363;}i:364;a:1:{i:0;i:365;}i:366;a:1:{i:0;i:367;}i:368;a:1:{i:0;i:369;}i:370;a:1:{i:0;i:371;}i:372;a:1:{i:0;i:373;}i:374;a:1:{i:0;i:375;}i:376;a:1:{i:0;i:255;}i:377;a:1:{i:0;i:378;}i:379;a:1:{i:0;i:380;}i:381;a:1:{i:0;i:382;}i:383;a:1:{i:0;i:115;}i:385;a:1:{i:0;i:595;}i:386;a:1:{i:0;i:387;}i:388;a:1:{i:0;i:389;}i:390;a:1:{i:0;i:596;}i:391;a:1:{i:0;i:392;}i:393;a:1:{i:0;i:598;}i:394;a:1:{i:0;i:599;}i:395;a:1:{i:0;i:396;}i:398;a:1:{i:0;i:477;}i:399;a:1:{i:0;i:601;}i:400;a:1:{i:0;i:603;}i:401;a:1:{i:0;i:402;}i:403;a:1:{i:0;i:608;}i:404;a:1:{i:0;i:611;}i:406;a:1:{i:0;i:617;}i:407;a:1:{i:0;i:616;}i:408;a:1:{i:0;i:409;}i:412;a:1:{i:0;i:623;}i:413;a:1:{i:0;i:626;}i:415;a:1:{i:0;i:629;}i:416;a:1:{i:0;i:417;}i:418;a:1:{i:0;i:419;}i:420;a:1:{i:0;i:421;}i:422;a:1:{i:0;i:640;}i:423;a:1:{i:0;i:424;}i:425;a:1:{i:0;i:643;}i:428;a:1:{i:0;i:429;}i:430;a:1:{i:0;i:648;}i:431;a:1:{i:0;i:432;}i:433;a:1:{i:0;i:650;}i:434;a:1:{i:0;i:651;}i:435;a:1:{i:0;i:436;}i:437;a:1:{i:0;i:438;}i:439;a:1:{i:0;i:658;}i:440;a:1:{i:0;i:441;}i:444;a:1:{i:0;i:445;}i:452;a:1:{i:0;i:454;}i:453;a:1:{i:0;i:454;}i:455;a:1:{i:0;i:457;}i:456;a:1:{i:0;i:457;}i:458;a:1:{i:0;i:460;}i:459;a:1:{i:0;i:460;}i:461;a:1:{i:0;i:462;}i:463;a:1:{i:0;i:464;}i:465;a:1:{i:0;i:466;}i:467;a:1:{i:0;i:468;}i:469;a:1:{i:0;i:470;}i:471;a:1:{i:0;i:472;}i:473;a:1:{i:0;i:474;}i:475;a:1:{i:0;i:476;}i:478;a:1:{i:0;i:479;}i:480;a:1:{i:0;i:481;}i:482;a:1:{i:0;i:483;}i:484;a:1:{i:0;i:485;}i:486;a:1:{i:0;i:487;}i:488;a:1:{i:0;i:489;}i:490;a:1:{i:0;i:491;}i:492;a:1:{i:0;i:493;}i:494;a:1:{i:0;i:495;}i:496;a:2:{i:0;i:106;i:1;i:780;}i:497;a:1:{i:0;i:499;}i:498;a:1:{i:0;i:499;}i:500;a:1:{i:0;i:501;}i:502;a:1:{i:0;i:405;}i:503;a:1:{i:0;i:447;}i:504;a:1:{i:0;i:505;}i:506;a:1:{i:0;i:507;}i:508;a:1:{i:0;i:509;}i:510;a:1:{i:0;i:511;}i:512;a:1:{i:0;i:513;}i:514;a:1:{i:0;i:515;}i:516;a:1:{i:0;i:517;}i:518;a:1:{i:0;i:519;}i:520;a:1:{i:0;i:521;}i:522;a:1:{i:0;i:523;}i:524;a:1:{i:0;i:525;}i:526;a:1:{i:0;i:527;}i:528;a:1:{i:0;i:529;}i:530;a:1:{i:0;i:531;}i:532;a:1:{i:0;i:533;}i:534;a:1:{i:0;i:535;}i:536;a:1:{i:0;i:537;}i:538;a:1:{i:0;i:539;}i:540;a:1:{i:0;i:541;}i:542;a:1:{i:0;i:543;}i:544;a:1:{i:0;i:414;}i:546;a:1:{i:0;i:547;}i:548;a:1:{i:0;i:549;}i:550;a:1:{i:0;i:551;}i:552;a:1:{i:0;i:553;}i:554;a:1:{i:0;i:555;}i:556;a:1:{i:0;i:557;}i:558;a:1:{i:0;i:559;}i:560;a:1:{i:0;i:561;}i:562;a:1:{i:0;i:563;}i:837;a:1:{i:0;i:953;}i:890;a:2:{i:0;i:32;i:1;i:953;}i:902;a:1:{i:0;i:940;}i:904;a:1:{i:0;i:941;}i:905;a:1:{i:0;i:942;}i:906;a:1:{i:0;i:943;}i:908;a:1:{i:0;i:972;}i:910;a:1:{i:0;i:973;}i:911;a:1:{i:0;i:974;}i:912;a:3:{i:0;i:953;i:1;i:776;i:2;i:769;}i:913;a:1:{i:0;i:945;}i:914;a:1:{i:0;i:946;}i:915;a:1:{i:0;i:947;}i:916;a:1:{i:0;i:948;}i:917;a:1:{i:0;i:949;}i:918;a:1:{i:0;i:950;}i:919;a:1:{i:0;i:951;}i:920;a:1:{i:0;i:952;}i:921;a:1:{i:0;i:953;}i:922;a:1:{i:0;i:954;}i:923;a:1:{i:0;i:955;}i:924;a:1:{i:0;i:956;}i:925;a:1:{i:0;i:957;}i:926;a:1:{i:0;i:958;}i:927;a:1:{i:0;i:959;}i:928;a:1:{i:0;i:960;}i:929;a:1:{i:0;i:961;}i:931;a:1:{i:0;i:963;}i:932;a:1:{i:0;i:964;}i:933;a:1:{i:0;i:965;}i:934;a:1:{i:0;i:966;}i:935;a:1:{i:0;i:967;}i:936;a:1:{i:0;i:968;}i:937;a:1:{i:0;i:969;}i:938;a:1:{i:0;i:970;}i:939;a:1:{i:0;i:971;}i:944;a:3:{i:0;i:965;i:1;i:776;i:2;i:769;}i:962;a:1:{i:0;i:963;}i:976;a:1:{i:0;i:946;}i:977;a:1:{i:0;i:952;}i:978;a:1:{i:0;i:965;}i:979;a:1:{i:0;i:973;}i:980;a:1:{i:0;i:971;}i:981;a:1:{i:0;i:966;}i:982;a:1:{i:0;i:960;}i:984;a:1:{i:0;i:985;}i:986;a:1:{i:0;i:987;}i:988;a:1:{i:0;i:989;}i:990;a:1:{i:0;i:991;}i:992;a:1:{i:0;i:993;}i:994;a:1:{i:0;i:995;}i:996;a:1:{i:0;i:997;}i:998;a:1:{i:0;i:999;}i:1000;a:1:{i:0;i:1001;}i:1002;a:1:{i:0;i:1003;}i:1004;a:1:{i:0;i:1005;}i:1006;a:1:{i:0;i:1007;}i:1008;a:1:{i:0;i:954;}i:1009;a:1:{i:0;i:961;}i:1010;a:1:{i:0;i:963;}i:1012;a:1:{i:0;i:952;}i:1013;a:1:{i:0;i:949;}i:1024;a:1:{i:0;i:1104;}i:1025;a:1:{i:0;i:1105;}i:1026;a:1:{i:0;i:1106;}i:1027;a:1:{i:0;i:1107;}i:1028;a:1:{i:0;i:1108;}i:1029;a:1:{i:0;i:1109;}i:1030;a:1:{i:0;i:1110;}i:1031;a:1:{i:0;i:1111;}i:1032;a:1:{i:0;i:1112;}i:1033;a:1:{i:0;i:1113;}i:1034;a:1:{i:0;i:1114;}i:1035;a:1:{i:0;i:1115;}i:1036;a:1:{i:0;i:1116;}i:1037;a:1:{i:0;i:1117;}i:1038;a:1:{i:0;i:1118;}i:1039;a:1:{i:0;i:1119;}i:1040;a:1:{i:0;i:1072;}i:1041;a:1:{i:0;i:1073;}i:1042;a:1:{i:0;i:1074;}i:1043;a:1:{i:0;i:1075;}i:1044;a:1:{i:0;i:1076;}i:1045;a:1:{i:0;i:1077;}i:1046;a:1:{i:0;i:1078;}i:1047;a:1:{i:0;i:1079;}i:1048;a:1:{i:0;i:1080;}i:1049;a:1:{i:0;i:1081;}i:1050;a:1:{i:0;i:1082;}i:1051;a:1:{i:0;i:1083;}i:1052;a:1:{i:0;i:1084;}i:1053;a:1:{i:0;i:1085;}i:1054;a:1:{i:0;i:1086;}i:1055;a:1:{i:0;i:1087;}i:1056;a:1:{i:0;i:1088;}i:1057;a:1:{i:0;i:1089;}i:1058;a:1:{i:0;i:1090;}i:1059;a:1:{i:0;i:1091;}i:1060;a:1:{i:0;i:1092;}i:1061;a:1:{i:0;i:1093;}i:1062;a:1:{i:0;i:1094;}i:1063;a:1:{i:0;i:1095;}i:1064;a:1:{i:0;i:1096;}i:1065;a:1:{i:0;i:1097;}i:1066;a:1:{i:0;i:1098;}i:1067;a:1:{i:0;i:1099;}i:1068;a:1:{i:0;i:1100;}i:1069;a:1:{i:0;i:1101;}i:1070;a:1:{i:0;i:1102;}i:1071;a:1:{i:0;i:1103;}i:1120;a:1:{i:0;i:1121;}i:1122;a:1:{i:0;i:1123;}i:1124;a:1:{i:0;i:1125;}i:1126;a:1:{i:0;i:1127;}i:1128;a:1:{i:0;i:1129;}i:1130;a:1:{i:0;i:1131;}i:1132;a:1:{i:0;i:1133;}i:1134;a:1:{i:0;i:1135;}i:1136;a:1:{i:0;i:1137;}i:1138;a:1:{i:0;i:1139;}i:1140;a:1:{i:0;i:1141;}i:1142;a:1:{i:0;i:1143;}i:1144;a:1:{i:0;i:1145;}i:1146;a:1:{i:0;i:1147;}i:1148;a:1:{i:0;i:1149;}i:1150;a:1:{i:0;i:1151;}i:1152;a:1:{i:0;i:1153;}i:1162;a:1:{i:0;i:1163;}i:1164;a:1:{i:0;i:1165;}i:1166;a:1:{i:0;i:1167;}i:1168;a:1:{i:0;i:1169;}i:1170;a:1:{i:0;i:1171;}i:1172;a:1:{i:0;i:1173;}i:1174;a:1:{i:0;i:1175;}i:1176;a:1:{i:0;i:1177;}i:1178;a:1:{i:0;i:1179;}i:1180;a:1:{i:0;i:1181;}i:1182;a:1:{i:0;i:1183;}i:1184;a:1:{i:0;i:1185;}i:1186;a:1:{i:0;i:1187;}i:1188;a:1:{i:0;i:1189;}i:1190;a:1:{i:0;i:1191;}i:1192;a:1:{i:0;i:1193;}i:1194;a:1:{i:0;i:1195;}i:1196;a:1:{i:0;i:1197;}i:1198;a:1:{i:0;i:1199;}i:1200;a:1:{i:0;i:1201;}i:1202;a:1:{i:0;i:1203;}i:1204;a:1:{i:0;i:1205;}i:1206;a:1:{i:0;i:1207;}i:1208;a:1:{i:0;i:1209;}i:1210;a:1:{i:0;i:1211;}i:1212;a:1:{i:0;i:1213;}i:1214;a:1:{i:0;i:1215;}i:1217;a:1:{i:0;i:1218;}i:1219;a:1:{i:0;i:1220;}i:1221;a:1:{i:0;i:1222;}i:1223;a:1:{i:0;i:1224;}i:1225;a:1:{i:0;i:1226;}i:1227;a:1:{i:0;i:1228;}i:1229;a:1:{i:0;i:1230;}i:1232;a:1:{i:0;i:1233;}i:1234;a:1:{i:0;i:1235;}i:1236;a:1:{i:0;i:1237;}i:1238;a:1:{i:0;i:1239;}i:1240;a:1:{i:0;i:1241;}i:1242;a:1:{i:0;i:1243;}i:1244;a:1:{i:0;i:1245;}i:1246;a:1:{i:0;i:1247;}i:1248;a:1:{i:0;i:1249;}i:1250;a:1:{i:0;i:1251;}i:1252;a:1:{i:0;i:1253;}i:1254;a:1:{i:0;i:1255;}i:1256;a:1:{i:0;i:1257;}i:1258;a:1:{i:0;i:1259;}i:1260;a:1:{i:0;i:1261;}i:1262;a:1:{i:0;i:1263;}i:1264;a:1:{i:0;i:1265;}i:1266;a:1:{i:0;i:1267;}i:1268;a:1:{i:0;i:1269;}i:1272;a:1:{i:0;i:1273;}i:1280;a:1:{i:0;i:1281;}i:1282;a:1:{i:0;i:1283;}i:1284;a:1:{i:0;i:1285;}i:1286;a:1:{i:0;i:1287;}i:1288;a:1:{i:0;i:1289;}i:1290;a:1:{i:0;i:1291;}i:1292;a:1:{i:0;i:1293;}i:1294;a:1:{i:0;i:1295;}i:1329;a:1:{i:0;i:1377;}i:1330;a:1:{i:0;i:1378;}i:1331;a:1:{i:0;i:1379;}i:1332;a:1:{i:0;i:1380;}i:1333;a:1:{i:0;i:1381;}i:1334;a:1:{i:0;i:1382;}i:1335;a:1:{i:0;i:1383;}i:1336;a:1:{i:0;i:1384;}i:1337;a:1:{i:0;i:1385;}i:1338;a:1:{i:0;i:1386;}i:1339;a:1:{i:0;i:1387;}i:1340;a:1:{i:0;i:1388;}i:1341;a:1:{i:0;i:1389;}i:1342;a:1:{i:0;i:1390;}i:1343;a:1:{i:0;i:1391;}i:1344;a:1:{i:0;i:1392;}i:1345;a:1:{i:0;i:1393;}i:1346;a:1:{i:0;i:1394;}i:1347;a:1:{i:0;i:1395;}i:1348;a:1:{i:0;i:1396;}i:1349;a:1:{i:0;i:1397;}i:1350;a:1:{i:0;i:1398;}i:1351;a:1:{i:0;i:1399;}i:1352;a:1:{i:0;i:1400;}i:1353;a:1:{i:0;i:1401;}i:1354;a:1:{i:0;i:1402;}i:1355;a:1:{i:0;i:1403;}i:1356;a:1:{i:0;i:1404;}i:1357;a:1:{i:0;i:1405;}i:1358;a:1:{i:0;i:1406;}i:1359;a:1:{i:0;i:1407;}i:1360;a:1:{i:0;i:1408;}i:1361;a:1:{i:0;i:1409;}i:1362;a:1:{i:0;i:1410;}i:1363;a:1:{i:0;i:1411;}i:1364;a:1:{i:0;i:1412;}i:1365;a:1:{i:0;i:1413;}i:1366;a:1:{i:0;i:1414;}i:1415;a:2:{i:0;i:1381;i:1;i:1410;}i:7680;a:1:{i:0;i:7681;}i:7682;a:1:{i:0;i:7683;}i:7684;a:1:{i:0;i:7685;}i:7686;a:1:{i:0;i:7687;}i:7688;a:1:{i:0;i:7689;}i:7690;a:1:{i:0;i:7691;}i:7692;a:1:{i:0;i:7693;}i:7694;a:1:{i:0;i:7695;}i:7696;a:1:{i:0;i:7697;}i:7698;a:1:{i:0;i:7699;}i:7700;a:1:{i:0;i:7701;}i:7702;a:1:{i:0;i:7703;}i:7704;a:1:{i:0;i:7705;}i:7706;a:1:{i:0;i:7707;}i:7708;a:1:{i:0;i:7709;}i:7710;a:1:{i:0;i:7711;}i:7712;a:1:{i:0;i:7713;}i:7714;a:1:{i:0;i:7715;}i:7716;a:1:{i:0;i:7717;}i:7718;a:1:{i:0;i:7719;}i:7720;a:1:{i:0;i:7721;}i:7722;a:1:{i:0;i:7723;}i:7724;a:1:{i:0;i:7725;}i:7726;a:1:{i:0;i:7727;}i:7728;a:1:{i:0;i:7729;}i:7730;a:1:{i:0;i:7731;}i:7732;a:1:{i:0;i:7733;}i:7734;a:1:{i:0;i:7735;}i:7736;a:1:{i:0;i:7737;}i:7738;a:1:{i:0;i:7739;}i:7740;a:1:{i:0;i:7741;}i:7742;a:1:{i:0;i:7743;}i:7744;a:1:{i:0;i:7745;}i:7746;a:1:{i:0;i:7747;}i:7748;a:1:{i:0;i:7749;}i:7750;a:1:{i:0;i:7751;}i:7752;a:1:{i:0;i:7753;}i:7754;a:1:{i:0;i:7755;}i:7756;a:1:{i:0;i:7757;}i:7758;a:1:{i:0;i:7759;}i:7760;a:1:{i:0;i:7761;}i:7762;a:1:{i:0;i:7763;}i:7764;a:1:{i:0;i:7765;}i:7766;a:1:{i:0;i:7767;}i:7768;a:1:{i:0;i:7769;}i:7770;a:1:{i:0;i:7771;}i:7772;a:1:{i:0;i:7773;}i:7774;a:1:{i:0;i:7775;}i:7776;a:1:{i:0;i:7777;}i:7778;a:1:{i:0;i:7779;}i:7780;a:1:{i:0;i:7781;}i:7782;a:1:{i:0;i:7783;}i:7784;a:1:{i:0;i:7785;}i:7786;a:1:{i:0;i:7787;}i:7788;a:1:{i:0;i:7789;}i:7790;a:1:{i:0;i:7791;}i:7792;a:1:{i:0;i:7793;}i:7794;a:1:{i:0;i:7795;}i:7796;a:1:{i:0;i:7797;}i:7798;a:1:{i:0;i:7799;}i:7800;a:1:{i:0;i:7801;}i:7802;a:1:{i:0;i:7803;}i:7804;a:1:{i:0;i:7805;}i:7806;a:1:{i:0;i:7807;}i:7808;a:1:{i:0;i:7809;}i:7810;a:1:{i:0;i:7811;}i:7812;a:1:{i:0;i:7813;}i:7814;a:1:{i:0;i:7815;}i:7816;a:1:{i:0;i:7817;}i:7818;a:1:{i:0;i:7819;}i:7820;a:1:{i:0;i:7821;}i:7822;a:1:{i:0;i:7823;}i:7824;a:1:{i:0;i:7825;}i:7826;a:1:{i:0;i:7827;}i:7828;a:1:{i:0;i:7829;}i:7830;a:2:{i:0;i:104;i:1;i:817;}i:7831;a:2:{i:0;i:116;i:1;i:776;}i:7832;a:2:{i:0;i:119;i:1;i:778;}i:7833;a:2:{i:0;i:121;i:1;i:778;}i:7834;a:2:{i:0;i:97;i:1;i:702;}i:7835;a:1:{i:0;i:7777;}i:7840;a:1:{i:0;i:7841;}i:7842;a:1:{i:0;i:7843;}i:7844;a:1:{i:0;i:7845;}i:7846;a:1:{i:0;i:7847;}i:7848;a:1:{i:0;i:7849;}i:7850;a:1:{i:0;i:7851;}i:7852;a:1:{i:0;i:7853;}i:7854;a:1:{i:0;i:7855;}i:7856;a:1:{i:0;i:7857;}i:7858;a:1:{i:0;i:7859;}i:7860;a:1:{i:0;i:7861;}i:7862;a:1:{i:0;i:7863;}i:7864;a:1:{i:0;i:7865;}i:7866;a:1:{i:0;i:7867;}i:7868;a:1:{i:0;i:7869;}i:7870;a:1:{i:0;i:7871;}i:7872;a:1:{i:0;i:7873;}i:7874;a:1:{i:0;i:7875;}i:7876;a:1:{i:0;i:7877;}i:7878;a:1:{i:0;i:7879;}i:7880;a:1:{i:0;i:7881;}i:7882;a:1:{i:0;i:7883;}i:7884;a:1:{i:0;i:7885;}i:7886;a:1:{i:0;i:7887;}i:7888;a:1:{i:0;i:7889;}i:7890;a:1:{i:0;i:7891;}i:7892;a:1:{i:0;i:7893;}i:7894;a:1:{i:0;i:7895;}i:7896;a:1:{i:0;i:7897;}i:7898;a:1:{i:0;i:7899;}i:7900;a:1:{i:0;i:7901;}i:7902;a:1:{i:0;i:7903;}i:7904;a:1:{i:0;i:7905;}i:7906;a:1:{i:0;i:7907;}i:7908;a:1:{i:0;i:7909;}i:7910;a:1:{i:0;i:7911;}i:7912;a:1:{i:0;i:7913;}i:7914;a:1:{i:0;i:7915;}i:7916;a:1:{i:0;i:7917;}i:7918;a:1:{i:0;i:7919;}i:7920;a:1:{i:0;i:7921;}i:7922;a:1:{i:0;i:7923;}i:7924;a:1:{i:0;i:7925;}i:7926;a:1:{i:0;i:7927;}i:7928;a:1:{i:0;i:7929;}i:7944;a:1:{i:0;i:7936;}i:7945;a:1:{i:0;i:7937;}i:7946;a:1:{i:0;i:7938;}i:7947;a:1:{i:0;i:7939;}i:7948;a:1:{i:0;i:7940;}i:7949;a:1:{i:0;i:7941;}i:7950;a:1:{i:0;i:7942;}i:7951;a:1:{i:0;i:7943;}i:7960;a:1:{i:0;i:7952;}i:7961;a:1:{i:0;i:7953;}i:7962;a:1:{i:0;i:7954;}i:7963;a:1:{i:0;i:7955;}i:7964;a:1:{i:0;i:7956;}i:7965;a:1:{i:0;i:7957;}i:7976;a:1:{i:0;i:7968;}i:7977;a:1:{i:0;i:7969;}i:7978;a:1:{i:0;i:7970;}i:7979;a:1:{i:0;i:7971;}i:7980;a:1:{i:0;i:7972;}i:7981;a:1:{i:0;i:7973;}i:7982;a:1:{i:0;i:7974;}i:7983;a:1:{i:0;i:7975;}i:7992;a:1:{i:0;i:7984;}i:7993;a:1:{i:0;i:7985;}i:7994;a:1:{i:0;i:7986;}i:7995;a:1:{i:0;i:7987;}i:7996;a:1:{i:0;i:7988;}i:7997;a:1:{i:0;i:7989;}i:7998;a:1:{i:0;i:7990;}i:7999;a:1:{i:0;i:7991;}i:8008;a:1:{i:0;i:8000;}i:8009;a:1:{i:0;i:8001;}i:8010;a:1:{i:0;i:8002;}i:8011;a:1:{i:0;i:8003;}i:8012;a:1:{i:0;i:8004;}i:8013;a:1:{i:0;i:8005;}i:8016;a:2:{i:0;i:965;i:1;i:787;}i:8018;a:3:{i:0;i:965;i:1;i:787;i:2;i:768;}i:8020;a:3:{i:0;i:965;i:1;i:787;i:2;i:769;}i:8022;a:3:{i:0;i:965;i:1;i:787;i:2;i:834;}i:8025;a:1:{i:0;i:8017;}i:8027;a:1:{i:0;i:8019;}i:8029;a:1:{i:0;i:8021;}i:8031;a:1:{i:0;i:8023;}i:8040;a:1:{i:0;i:8032;}i:8041;a:1:{i:0;i:8033;}i:8042;a:1:{i:0;i:8034;}i:8043;a:1:{i:0;i:8035;}i:8044;a:1:{i:0;i:8036;}i:8045;a:1:{i:0;i:8037;}i:8046;a:1:{i:0;i:8038;}i:8047;a:1:{i:0;i:8039;}i:8064;a:2:{i:0;i:7936;i:1;i:953;}i:8065;a:2:{i:0;i:7937;i:1;i:953;}i:8066;a:2:{i:0;i:7938;i:1;i:953;}i:8067;a:2:{i:0;i:7939;i:1;i:953;}i:8068;a:2:{i:0;i:7940;i:1;i:953;}i:8069;a:2:{i:0;i:7941;i:1;i:953;}i:8070;a:2:{i:0;i:7942;i:1;i:953;}i:8071;a:2:{i:0;i:7943;i:1;i:953;}i:8072;a:2:{i:0;i:7936;i:1;i:953;}i:8073;a:2:{i:0;i:7937;i:1;i:953;}i:8074;a:2:{i:0;i:7938;i:1;i:953;}i:8075;a:2:{i:0;i:7939;i:1;i:953;}i:8076;a:2:{i:0;i:7940;i:1;i:953;}i:8077;a:2:{i:0;i:7941;i:1;i:953;}i:8078;a:2:{i:0;i:7942;i:1;i:953;}i:8079;a:2:{i:0;i:7943;i:1;i:953;}i:8080;a:2:{i:0;i:7968;i:1;i:953;}i:8081;a:2:{i:0;i:7969;i:1;i:953;}i:8082;a:2:{i:0;i:7970;i:1;i:953;}i:8083;a:2:{i:0;i:7971;i:1;i:953;}i:8084;a:2:{i:0;i:7972;i:1;i:953;}i:8085;a:2:{i:0;i:7973;i:1;i:953;}i:8086;a:2:{i:0;i:7974;i:1;i:953;}i:8087;a:2:{i:0;i:7975;i:1;i:953;}i:8088;a:2:{i:0;i:7968;i:1;i:953;}i:8089;a:2:{i:0;i:7969;i:1;i:953;}i:8090;a:2:{i:0;i:7970;i:1;i:953;}i:8091;a:2:{i:0;i:7971;i:1;i:953;}i:8092;a:2:{i:0;i:7972;i:1;i:953;}i:8093;a:2:{i:0;i:7973;i:1;i:953;}i:8094;a:2:{i:0;i:7974;i:1;i:953;}i:8095;a:2:{i:0;i:7975;i:1;i:953;}i:8096;a:2:{i:0;i:8032;i:1;i:953;}i:8097;a:2:{i:0;i:8033;i:1;i:953;}i:8098;a:2:{i:0;i:8034;i:1;i:953;}i:8099;a:2:{i:0;i:8035;i:1;i:953;}i:8100;a:2:{i:0;i:8036;i:1;i:953;}i:8101;a:2:{i:0;i:8037;i:1;i:953;}i:8102;a:2:{i:0;i:8038;i:1;i:953;}i:8103;a:2:{i:0;i:8039;i:1;i:953;}i:8104;a:2:{i:0;i:8032;i:1;i:953;}i:8105;a:2:{i:0;i:8033;i:1;i:953;}i:8106;a:2:{i:0;i:8034;i:1;i:953;}i:8107;a:2:{i:0;i:8035;i:1;i:953;}i:8108;a:2:{i:0;i:8036;i:1;i:953;}i:8109;a:2:{i:0;i:8037;i:1;i:953;}i:8110;a:2:{i:0;i:8038;i:1;i:953;}i:8111;a:2:{i:0;i:8039;i:1;i:953;}i:8114;a:2:{i:0;i:8048;i:1;i:953;}i:8115;a:2:{i:0;i:945;i:1;i:953;}i:8116;a:2:{i:0;i:940;i:1;i:953;}i:8118;a:2:{i:0;i:945;i:1;i:834;}i:8119;a:3:{i:0;i:945;i:1;i:834;i:2;i:953;}i:8120;a:1:{i:0;i:8112;}i:8121;a:1:{i:0;i:8113;}i:8122;a:1:{i:0;i:8048;}i:8123;a:1:{i:0;i:8049;}i:8124;a:2:{i:0;i:945;i:1;i:953;}i:8126;a:1:{i:0;i:953;}i:8130;a:2:{i:0;i:8052;i:1;i:953;}i:8131;a:2:{i:0;i:951;i:1;i:953;}i:8132;a:2:{i:0;i:942;i:1;i:953;}i:8134;a:2:{i:0;i:951;i:1;i:834;}i:8135;a:3:{i:0;i:951;i:1;i:834;i:2;i:953;}i:8136;a:1:{i:0;i:8050;}i:8137;a:1:{i:0;i:8051;}i:8138;a:1:{i:0;i:8052;}i:8139;a:1:{i:0;i:8053;}i:8140;a:2:{i:0;i:951;i:1;i:953;}i:8146;a:3:{i:0;i:953;i:1;i:776;i:2;i:768;}i:8147;a:3:{i:0;i:953;i:1;i:776;i:2;i:769;}i:8150;a:2:{i:0;i:953;i:1;i:834;}i:8151;a:3:{i:0;i:953;i:1;i:776;i:2;i:834;}i:8152;a:1:{i:0;i:8144;}i:8153;a:1:{i:0;i:8145;}i:8154;a:1:{i:0;i:8054;}i:8155;a:1:{i:0;i:8055;}i:8162;a:3:{i:0;i:965;i:1;i:776;i:2;i:768;}i:8163;a:3:{i:0;i:965;i:1;i:776;i:2;i:769;}i:8164;a:2:{i:0;i:961;i:1;i:787;}i:8166;a:2:{i:0;i:965;i:1;i:834;}i:8167;a:3:{i:0;i:965;i:1;i:776;i:2;i:834;}i:8168;a:1:{i:0;i:8160;}i:8169;a:1:{i:0;i:8161;}i:8170;a:1:{i:0;i:8058;}i:8171;a:1:{i:0;i:8059;}i:8172;a:1:{i:0;i:8165;}i:8178;a:2:{i:0;i:8060;i:1;i:953;}i:8179;a:2:{i:0;i:969;i:1;i:953;}i:8180;a:2:{i:0;i:974;i:1;i:953;}i:8182;a:2:{i:0;i:969;i:1;i:834;}i:8183;a:3:{i:0;i:969;i:1;i:834;i:2;i:953;}i:8184;a:1:{i:0;i:8056;}i:8185;a:1:{i:0;i:8057;}i:8186;a:1:{i:0;i:8060;}i:8187;a:1:{i:0;i:8061;}i:8188;a:2:{i:0;i:969;i:1;i:953;}i:8360;a:2:{i:0;i:114;i:1;i:115;}i:8450;a:1:{i:0;i:99;}i:8451;a:2:{i:0;i:176;i:1;i:99;}i:8455;a:1:{i:0;i:603;}i:8457;a:2:{i:0;i:176;i:1;i:102;}i:8459;a:1:{i:0;i:104;}i:8460;a:1:{i:0;i:104;}i:8461;a:1:{i:0;i:104;}i:8464;a:1:{i:0;i:105;}i:8465;a:1:{i:0;i:105;}i:8466;a:1:{i:0;i:108;}i:8469;a:1:{i:0;i:110;}i:8470;a:2:{i:0;i:110;i:1;i:111;}i:8473;a:1:{i:0;i:112;}i:8474;a:1:{i:0;i:113;}i:8475;a:1:{i:0;i:114;}i:8476;a:1:{i:0;i:114;}i:8477;a:1:{i:0;i:114;}i:8480;a:2:{i:0;i:115;i:1;i:109;}i:8481;a:3:{i:0;i:116;i:1;i:101;i:2;i:108;}i:8482;a:2:{i:0;i:116;i:1;i:109;}i:8484;a:1:{i:0;i:122;}i:8486;a:1:{i:0;i:969;}i:8488;a:1:{i:0;i:122;}i:8490;a:1:{i:0;i:107;}i:8491;a:1:{i:0;i:229;}i:8492;a:1:{i:0;i:98;}i:8493;a:1:{i:0;i:99;}i:8496;a:1:{i:0;i:101;}i:8497;a:1:{i:0;i:102;}i:8499;a:1:{i:0;i:109;}i:8510;a:1:{i:0;i:947;}i:8511;a:1:{i:0;i:960;}i:8517;a:1:{i:0;i:100;}i:8544;a:1:{i:0;i:8560;}i:8545;a:1:{i:0;i:8561;}i:8546;a:1:{i:0;i:8562;}i:8547;a:1:{i:0;i:8563;}i:8548;a:1:{i:0;i:8564;}i:8549;a:1:{i:0;i:8565;}i:8550;a:1:{i:0;i:8566;}i:8551;a:1:{i:0;i:8567;}i:8552;a:1:{i:0;i:8568;}i:8553;a:1:{i:0;i:8569;}i:8554;a:1:{i:0;i:8570;}i:8555;a:1:{i:0;i:8571;}i:8556;a:1:{i:0;i:8572;}i:8557;a:1:{i:0;i:8573;}i:8558;a:1:{i:0;i:8574;}i:8559;a:1:{i:0;i:8575;}i:9398;a:1:{i:0;i:9424;}i:9399;a:1:{i:0;i:9425;}i:9400;a:1:{i:0;i:9426;}i:9401;a:1:{i:0;i:9427;}i:9402;a:1:{i:0;i:9428;}i:9403;a:1:{i:0;i:9429;}i:9404;a:1:{i:0;i:9430;}i:9405;a:1:{i:0;i:9431;}i:9406;a:1:{i:0;i:9432;}i:9407;a:1:{i:0;i:9433;}i:9408;a:1:{i:0;i:9434;}i:9409;a:1:{i:0;i:9435;}i:9410;a:1:{i:0;i:9436;}i:9411;a:1:{i:0;i:9437;}i:9412;a:1:{i:0;i:9438;}i:9413;a:1:{i:0;i:9439;}i:9414;a:1:{i:0;i:9440;}i:9415;a:1:{i:0;i:9441;}i:9416;a:1:{i:0;i:9442;}i:9417;a:1:{i:0;i:9443;}i:9418;a:1:{i:0;i:9444;}i:9419;a:1:{i:0;i:9445;}i:9420;a:1:{i:0;i:9446;}i:9421;a:1:{i:0;i:9447;}i:9422;a:1:{i:0;i:9448;}i:9423;a:1:{i:0;i:9449;}i:13169;a:3:{i:0;i:104;i:1;i:112;i:2;i:97;}i:13171;a:2:{i:0;i:97;i:1;i:117;}i:13173;a:2:{i:0;i:111;i:1;i:118;}i:13184;a:2:{i:0;i:112;i:1;i:97;}i:13185;a:2:{i:0;i:110;i:1;i:97;}i:13186;a:2:{i:0;i:956;i:1;i:97;}i:13187;a:2:{i:0;i:109;i:1;i:97;}i:13188;a:2:{i:0;i:107;i:1;i:97;}i:13189;a:2:{i:0;i:107;i:1;i:98;}i:13190;a:2:{i:0;i:109;i:1;i:98;}i:13191;a:2:{i:0;i:103;i:1;i:98;}i:13194;a:2:{i:0;i:112;i:1;i:102;}i:13195;a:2:{i:0;i:110;i:1;i:102;}i:13196;a:2:{i:0;i:956;i:1;i:102;}i:13200;a:2:{i:0;i:104;i:1;i:122;}i:13201;a:3:{i:0;i:107;i:1;i:104;i:2;i:122;}i:13202;a:3:{i:0;i:109;i:1;i:104;i:2;i:122;}i:13203;a:3:{i:0;i:103;i:1;i:104;i:2;i:122;}i:13204;a:3:{i:0;i:116;i:1;i:104;i:2;i:122;}i:13225;a:2:{i:0;i:112;i:1;i:97;}i:13226;a:3:{i:0;i:107;i:1;i:112;i:2;i:97;}i:13227;a:3:{i:0;i:109;i:1;i:112;i:2;i:97;}i:13228;a:3:{i:0;i:103;i:1;i:112;i:2;i:97;}i:13236;a:2:{i:0;i:112;i:1;i:118;}i:13237;a:2:{i:0;i:110;i:1;i:118;}i:13238;a:2:{i:0;i:956;i:1;i:118;}i:13239;a:2:{i:0;i:109;i:1;i:118;}i:13240;a:2:{i:0;i:107;i:1;i:118;}i:13241;a:2:{i:0;i:109;i:1;i:118;}i:13242;a:2:{i:0;i:112;i:1;i:119;}i:13243;a:2:{i:0;i:110;i:1;i:119;}i:13244;a:2:{i:0;i:956;i:1;i:119;}i:13245;a:2:{i:0;i:109;i:1;i:119;}i:13246;a:2:{i:0;i:107;i:1;i:119;}i:13247;a:2:{i:0;i:109;i:1;i:119;}i:13248;a:2:{i:0;i:107;i:1;i:969;}i:13249;a:2:{i:0;i:109;i:1;i:969;}i:13251;a:2:{i:0;i:98;i:1;i:113;}i:13254;a:4:{i:0;i:99;i:1;i:8725;i:2;i:107;i:3;i:103;}i:13255;a:3:{i:0;i:99;i:1;i:111;i:2;i:46;}i:13256;a:2:{i:0;i:100;i:1;i:98;}i:13257;a:2:{i:0;i:103;i:1;i:121;}i:13259;a:2:{i:0;i:104;i:1;i:112;}i:13261;a:2:{i:0;i:107;i:1;i:107;}i:13262;a:2:{i:0;i:107;i:1;i:109;}i:13271;a:2:{i:0;i:112;i:1;i:104;}i:13273;a:3:{i:0;i:112;i:1;i:112;i:2;i:109;}i:13274;a:2:{i:0;i:112;i:1;i:114;}i:13276;a:2:{i:0;i:115;i:1;i:118;}i:13277;a:2:{i:0;i:119;i:1;i:98;}i:64256;a:2:{i:0;i:102;i:1;i:102;}i:64257;a:2:{i:0;i:102;i:1;i:105;}i:64258;a:2:{i:0;i:102;i:1;i:108;}i:64259;a:3:{i:0;i:102;i:1;i:102;i:2;i:105;}i:64260;a:3:{i:0;i:102;i:1;i:102;i:2;i:108;}i:64261;a:2:{i:0;i:115;i:1;i:116;}i:64262;a:2:{i:0;i:115;i:1;i:116;}i:64275;a:2:{i:0;i:1396;i:1;i:1398;}i:64276;a:2:{i:0;i:1396;i:1;i:1381;}i:64277;a:2:{i:0;i:1396;i:1;i:1387;}i:64278;a:2:{i:0;i:1406;i:1;i:1398;}i:64279;a:2:{i:0;i:1396;i:1;i:1389;}i:65313;a:1:{i:0;i:65345;}i:65314;a:1:{i:0;i:65346;}i:65315;a:1:{i:0;i:65347;}i:65316;a:1:{i:0;i:65348;}i:65317;a:1:{i:0;i:65349;}i:65318;a:1:{i:0;i:65350;}i:65319;a:1:{i:0;i:65351;}i:65320;a:1:{i:0;i:65352;}i:65321;a:1:{i:0;i:65353;}i:65322;a:1:{i:0;i:65354;}i:65323;a:1:{i:0;i:65355;}i:65324;a:1:{i:0;i:65356;}i:65325;a:1:{i:0;i:65357;}i:65326;a:1:{i:0;i:65358;}i:65327;a:1:{i:0;i:65359;}i:65328;a:1:{i:0;i:65360;}i:65329;a:1:{i:0;i:65361;}i:65330;a:1:{i:0;i:65362;}i:65331;a:1:{i:0;i:65363;}i:65332;a:1:{i:0;i:65364;}i:65333;a:1:{i:0;i:65365;}i:65334;a:1:{i:0;i:65366;}i:65335;a:1:{i:0;i:65367;}i:65336;a:1:{i:0;i:65368;}i:65337;a:1:{i:0;i:65369;}i:65338;a:1:{i:0;i:65370;}i:66560;a:1:{i:0;i:66600;}i:66561;a:1:{i:0;i:66601;}i:66562;a:1:{i:0;i:66602;}i:66563;a:1:{i:0;i:66603;}i:66564;a:1:{i:0;i:66604;}i:66565;a:1:{i:0;i:66605;}i:66566;a:1:{i:0;i:66606;}i:66567;a:1:{i:0;i:66607;}i:66568;a:1:{i:0;i:66608;}i:66569;a:1:{i:0;i:66609;}i:66570;a:1:{i:0;i:66610;}i:66571;a:1:{i:0;i:66611;}i:66572;a:1:{i:0;i:66612;}i:66573;a:1:{i:0;i:66613;}i:66574;a:1:{i:0;i:66614;}i:66575;a:1:{i:0;i:66615;}i:66576;a:1:{i:0;i:66616;}i:66577;a:1:{i:0;i:66617;}i:66578;a:1:{i:0;i:66618;}i:66579;a:1:{i:0;i:66619;}i:66580;a:1:{i:0;i:66620;}i:66581;a:1:{i:0;i:66621;}i:66582;a:1:{i:0;i:66622;}i:66583;a:1:{i:0;i:66623;}i:66584;a:1:{i:0;i:66624;}i:66585;a:1:{i:0;i:66625;}i:66586;a:1:{i:0;i:66626;}i:66587;a:1:{i:0;i:66627;}i:66588;a:1:{i:0;i:66628;}i:66589;a:1:{i:0;i:66629;}i:66590;a:1:{i:0;i:66630;}i:66591;a:1:{i:0;i:66631;}i:66592;a:1:{i:0;i:66632;}i:66593;a:1:{i:0;i:66633;}i:66594;a:1:{i:0;i:66634;}i:66595;a:1:{i:0;i:66635;}i:66596;a:1:{i:0;i:66636;}i:66597;a:1:{i:0;i:66637;}i:119808;a:1:{i:0;i:97;}i:119809;a:1:{i:0;i:98;}i:119810;a:1:{i:0;i:99;}i:119811;a:1:{i:0;i:100;}i:119812;a:1:{i:0;i:101;}i:119813;a:1:{i:0;i:102;}i:119814;a:1:{i:0;i:103;}i:119815;a:1:{i:0;i:104;}i:119816;a:1:{i:0;i:105;}i:119817;a:1:{i:0;i:106;}i:119818;a:1:{i:0;i:107;}i:119819;a:1:{i:0;i:108;}i:119820;a:1:{i:0;i:109;}i:119821;a:1:{i:0;i:110;}i:119822;a:1:{i:0;i:111;}i:119823;a:1:{i:0;i:112;}i:119824;a:1:{i:0;i:113;}i:119825;a:1:{i:0;i:114;}i:119826;a:1:{i:0;i:115;}i:119827;a:1:{i:0;i:116;}i:119828;a:1:{i:0;i:117;}i:119829;a:1:{i:0;i:118;}i:119830;a:1:{i:0;i:119;}i:119831;a:1:{i:0;i:120;}i:119832;a:1:{i:0;i:121;}i:119833;a:1:{i:0;i:122;}i:119860;a:1:{i:0;i:97;}i:119861;a:1:{i:0;i:98;}i:119862;a:1:{i:0;i:99;}i:119863;a:1:{i:0;i:100;}i:119864;a:1:{i:0;i:101;}i:119865;a:1:{i:0;i:102;}i:119866;a:1:{i:0;i:103;}i:119867;a:1:{i:0;i:104;}i:119868;a:1:{i:0;i:105;}i:119869;a:1:{i:0;i:106;}i:119870;a:1:{i:0;i:107;}i:119871;a:1:{i:0;i:108;}i:119872;a:1:{i:0;i:109;}i:119873;a:1:{i:0;i:110;}i:119874;a:1:{i:0;i:111;}i:119875;a:1:{i:0;i:112;}i:119876;a:1:{i:0;i:113;}i:119877;a:1:{i:0;i:114;}i:119878;a:1:{i:0;i:115;}i:119879;a:1:{i:0;i:116;}i:119880;a:1:{i:0;i:117;}i:119881;a:1:{i:0;i:118;}i:119882;a:1:{i:0;i:119;}i:119883;a:1:{i:0;i:120;}i:119884;a:1:{i:0;i:121;}i:119885;a:1:{i:0;i:122;}i:119912;a:1:{i:0;i:97;}i:119913;a:1:{i:0;i:98;}i:119914;a:1:{i:0;i:99;}i:119915;a:1:{i:0;i:100;}i:119916;a:1:{i:0;i:101;}i:119917;a:1:{i:0;i:102;}i:119918;a:1:{i:0;i:103;}i:119919;a:1:{i:0;i:104;}i:119920;a:1:{i:0;i:105;}i:119921;a:1:{i:0;i:106;}i:119922;a:1:{i:0;i:107;}i:119923;a:1:{i:0;i:108;}i:119924;a:1:{i:0;i:109;}i:119925;a:1:{i:0;i:110;}i:119926;a:1:{i:0;i:111;}i:119927;a:1:{i:0;i:112;}i:119928;a:1:{i:0;i:113;}i:119929;a:1:{i:0;i:114;}i:119930;a:1:{i:0;i:115;}i:119931;a:1:{i:0;i:116;}i:119932;a:1:{i:0;i:117;}i:119933;a:1:{i:0;i:118;}i:119934;a:1:{i:0;i:119;}i:119935;a:1:{i:0;i:120;}i:119936;a:1:{i:0;i:121;}i:119937;a:1:{i:0;i:122;}i:119964;a:1:{i:0;i:97;}i:119966;a:1:{i:0;i:99;}i:119967;a:1:{i:0;i:100;}i:119970;a:1:{i:0;i:103;}i:119973;a:1:{i:0;i:106;}i:119974;a:1:{i:0;i:107;}i:119977;a:1:{i:0;i:110;}i:119978;a:1:{i:0;i:111;}i:119979;a:1:{i:0;i:112;}i:119980;a:1:{i:0;i:113;}i:119982;a:1:{i:0;i:115;}i:119983;a:1:{i:0;i:116;}i:119984;a:1:{i:0;i:117;}i:119985;a:1:{i:0;i:118;}i:119986;a:1:{i:0;i:119;}i:119987;a:1:{i:0;i:120;}i:119988;a:1:{i:0;i:121;}i:119989;a:1:{i:0;i:122;}i:120016;a:1:{i:0;i:97;}i:120017;a:1:{i:0;i:98;}i:120018;a:1:{i:0;i:99;}i:120019;a:1:{i:0;i:100;}i:120020;a:1:{i:0;i:101;}i:120021;a:1:{i:0;i:102;}i:120022;a:1:{i:0;i:103;}i:120023;a:1:{i:0;i:104;}i:120024;a:1:{i:0;i:105;}i:120025;a:1:{i:0;i:106;}i:120026;a:1:{i:0;i:107;}i:120027;a:1:{i:0;i:108;}i:120028;a:1:{i:0;i:109;}i:120029;a:1:{i:0;i:110;}i:120030;a:1:{i:0;i:111;}i:120031;a:1:{i:0;i:112;}i:120032;a:1:{i:0;i:113;}i:120033;a:1:{i:0;i:114;}i:120034;a:1:{i:0;i:115;}i:120035;a:1:{i:0;i:116;}i:120036;a:1:{i:0;i:117;}i:120037;a:1:{i:0;i:118;}i:120038;a:1:{i:0;i:119;}i:120039;a:1:{i:0;i:120;}i:120040;a:1:{i:0;i:121;}i:120041;a:1:{i:0;i:122;}i:120068;a:1:{i:0;i:97;}i:120069;a:1:{i:0;i:98;}i:120071;a:1:{i:0;i:100;}i:120072;a:1:{i:0;i:101;}i:120073;a:1:{i:0;i:102;}i:120074;a:1:{i:0;i:103;}i:120077;a:1:{i:0;i:106;}i:120078;a:1:{i:0;i:107;}i:120079;a:1:{i:0;i:108;}i:120080;a:1:{i:0;i:109;}i:120081;a:1:{i:0;i:110;}i:120082;a:1:{i:0;i:111;}i:120083;a:1:{i:0;i:112;}i:120084;a:1:{i:0;i:113;}i:120086;a:1:{i:0;i:115;}i:120087;a:1:{i:0;i:116;}i:120088;a:1:{i:0;i:117;}i:120089;a:1:{i:0;i:118;}i:120090;a:1:{i:0;i:119;}i:120091;a:1:{i:0;i:120;}i:120092;a:1:{i:0;i:121;}i:120120;a:1:{i:0;i:97;}i:120121;a:1:{i:0;i:98;}i:120123;a:1:{i:0;i:100;}i:120124;a:1:{i:0;i:101;}i:120125;a:1:{i:0;i:102;}i:120126;a:1:{i:0;i:103;}i:120128;a:1:{i:0;i:105;}i:120129;a:1:{i:0;i:106;}i:120130;a:1:{i:0;i:107;}i:120131;a:1:{i:0;i:108;}i:120132;a:1:{i:0;i:109;}i:120134;a:1:{i:0;i:111;}i:120138;a:1:{i:0;i:115;}i:120139;a:1:{i:0;i:116;}i:120140;a:1:{i:0;i:117;}i:120141;a:1:{i:0;i:118;}i:120142;a:1:{i:0;i:119;}i:120143;a:1:{i:0;i:120;}i:120144;a:1:{i:0;i:121;}i:120172;a:1:{i:0;i:97;}i:120173;a:1:{i:0;i:98;}i:120174;a:1:{i:0;i:99;}i:120175;a:1:{i:0;i:100;}i:120176;a:1:{i:0;i:101;}i:120177;a:1:{i:0;i:102;}i:120178;a:1:{i:0;i:103;}i:120179;a:1:{i:0;i:104;}i:120180;a:1:{i:0;i:105;}i:120181;a:1:{i:0;i:106;}i:120182;a:1:{i:0;i:107;}i:120183;a:1:{i:0;i:108;}i:120184;a:1:{i:0;i:109;}i:120185;a:1:{i:0;i:110;}i:120186;a:1:{i:0;i:111;}i:120187;a:1:{i:0;i:112;}i:120188;a:1:{i:0;i:113;}i:120189;a:1:{i:0;i:114;}i:120190;a:1:{i:0;i:115;}i:120191;a:1:{i:0;i:116;}i:120192;a:1:{i:0;i:117;}i:120193;a:1:{i:0;i:118;}i:120194;a:1:{i:0;i:119;}i:120195;a:1:{i:0;i:120;}i:120196;a:1:{i:0;i:121;}i:120197;a:1:{i:0;i:122;}i:120224;a:1:{i:0;i:97;}i:120225;a:1:{i:0;i:98;}i:120226;a:1:{i:0;i:99;}i:120227;a:1:{i:0;i:100;}i:120228;a:1:{i:0;i:101;}i:120229;a:1:{i:0;i:102;}i:120230;a:1:{i:0;i:103;}i:120231;a:1:{i:0;i:104;}i:120232;a:1:{i:0;i:105;}i:120233;a:1:{i:0;i:106;}i:120234;a:1:{i:0;i:107;}i:120235;a:1:{i:0;i:108;}i:120236;a:1:{i:0;i:109;}i:120237;a:1:{i:0;i:110;}i:120238;a:1:{i:0;i:111;}i:120239;a:1:{i:0;i:112;}i:120240;a:1:{i:0;i:113;}i:120241;a:1:{i:0;i:114;}i:120242;a:1:{i:0;i:115;}i:120243;a:1:{i:0;i:116;}i:120244;a:1:{i:0;i:117;}i:120245;a:1:{i:0;i:118;}i:120246;a:1:{i:0;i:119;}i:120247;a:1:{i:0;i:120;}i:120248;a:1:{i:0;i:121;}i:120249;a:1:{i:0;i:122;}i:120276;a:1:{i:0;i:97;}i:120277;a:1:{i:0;i:98;}i:120278;a:1:{i:0;i:99;}i:120279;a:1:{i:0;i:100;}i:120280;a:1:{i:0;i:101;}i:120281;a:1:{i:0;i:102;}i:120282;a:1:{i:0;i:103;}i:120283;a:1:{i:0;i:104;}i:120284;a:1:{i:0;i:105;}i:120285;a:1:{i:0;i:106;}i:120286;a:1:{i:0;i:107;}i:120287;a:1:{i:0;i:108;}i:120288;a:1:{i:0;i:109;}i:120289;a:1:{i:0;i:110;}i:120290;a:1:{i:0;i:111;}i:120291;a:1:{i:0;i:112;}i:120292;a:1:{i:0;i:113;}i:120293;a:1:{i:0;i:114;}i:120294;a:1:{i:0;i:115;}i:120295;a:1:{i:0;i:116;}i:120296;a:1:{i:0;i:117;}i:120297;a:1:{i:0;i:118;}i:120298;a:1:{i:0;i:119;}i:120299;a:1:{i:0;i:120;}i:120300;a:1:{i:0;i:121;}i:120301;a:1:{i:0;i:122;}i:120328;a:1:{i:0;i:97;}i:120329;a:1:{i:0;i:98;}i:120330;a:1:{i:0;i:99;}i:120331;a:1:{i:0;i:100;}i:120332;a:1:{i:0;i:101;}i:120333;a:1:{i:0;i:102;}i:120334;a:1:{i:0;i:103;}i:120335;a:1:{i:0;i:104;}i:120336;a:1:{i:0;i:105;}i:120337;a:1:{i:0;i:106;}i:120338;a:1:{i:0;i:107;}i:120339;a:1:{i:0;i:108;}i:120340;a:1:{i:0;i:109;}i:120341;a:1:{i:0;i:110;}i:120342;a:1:{i:0;i:111;}i:120343;a:1:{i:0;i:112;}i:120344;a:1:{i:0;i:113;}i:120345;a:1:{i:0;i:114;}i:120346;a:1:{i:0;i:115;}i:120347;a:1:{i:0;i:116;}i:120348;a:1:{i:0;i:117;}i:120349;a:1:{i:0;i:118;}i:120350;a:1:{i:0;i:119;}i:120351;a:1:{i:0;i:120;}i:120352;a:1:{i:0;i:121;}i:120353;a:1:{i:0;i:122;}i:120380;a:1:{i:0;i:97;}i:120381;a:1:{i:0;i:98;}i:120382;a:1:{i:0;i:99;}i:120383;a:1:{i:0;i:100;}i:120384;a:1:{i:0;i:101;}i:120385;a:1:{i:0;i:102;}i:120386;a:1:{i:0;i:103;}i:120387;a:1:{i:0;i:104;}i:120388;a:1:{i:0;i:105;}i:120389;a:1:{i:0;i:106;}i:120390;a:1:{i:0;i:107;}i:120391;a:1:{i:0;i:108;}i:120392;a:1:{i:0;i:109;}i:120393;a:1:{i:0;i:110;}i:120394;a:1:{i:0;i:111;}i:120395;a:1:{i:0;i:112;}i:120396;a:1:{i:0;i:113;}i:120397;a:1:{i:0;i:114;}i:120398;a:1:{i:0;i:115;}i:120399;a:1:{i:0;i:116;}i:120400;a:1:{i:0;i:117;}i:120401;a:1:{i:0;i:118;}i:120402;a:1:{i:0;i:119;}i:120403;a:1:{i:0;i:120;}i:120404;a:1:{i:0;i:121;}i:120405;a:1:{i:0;i:122;}i:120432;a:1:{i:0;i:97;}i:120433;a:1:{i:0;i:98;}i:120434;a:1:{i:0;i:99;}i:120435;a:1:{i:0;i:100;}i:120436;a:1:{i:0;i:101;}i:120437;a:1:{i:0;i:102;}i:120438;a:1:{i:0;i:103;}i:120439;a:1:{i:0;i:104;}i:120440;a:1:{i:0;i:105;}i:120441;a:1:{i:0;i:106;}i:120442;a:1:{i:0;i:107;}i:120443;a:1:{i:0;i:108;}i:120444;a:1:{i:0;i:109;}i:120445;a:1:{i:0;i:110;}i:120446;a:1:{i:0;i:111;}i:120447;a:1:{i:0;i:112;}i:120448;a:1:{i:0;i:113;}i:120449;a:1:{i:0;i:114;}i:120450;a:1:{i:0;i:115;}i:120451;a:1:{i:0;i:116;}i:120452;a:1:{i:0;i:117;}i:120453;a:1:{i:0;i:118;}i:120454;a:1:{i:0;i:119;}i:120455;a:1:{i:0;i:120;}i:120456;a:1:{i:0;i:121;}i:120457;a:1:{i:0;i:122;}i:120488;a:1:{i:0;i:945;}i:120489;a:1:{i:0;i:946;}i:120490;a:1:{i:0;i:947;}i:120491;a:1:{i:0;i:948;}i:120492;a:1:{i:0;i:949;}i:120493;a:1:{i:0;i:950;}i:120494;a:1:{i:0;i:951;}i:120495;a:1:{i:0;i:952;}i:120496;a:1:{i:0;i:953;}i:120497;a:1:{i:0;i:954;}i:120498;a:1:{i:0;i:955;}i:120499;a:1:{i:0;i:956;}i:120500;a:1:{i:0;i:957;}i:120501;a:1:{i:0;i:958;}i:120502;a:1:{i:0;i:959;}i:120503;a:1:{i:0;i:960;}i:120504;a:1:{i:0;i:961;}i:120505;a:1:{i:0;i:952;}i:120506;a:1:{i:0;i:963;}i:120507;a:1:{i:0;i:964;}i:120508;a:1:{i:0;i:965;}i:120509;a:1:{i:0;i:966;}i:120510;a:1:{i:0;i:967;}i:120511;a:1:{i:0;i:968;}i:120512;a:1:{i:0;i:969;}i:120531;a:1:{i:0;i:963;}i:120546;a:1:{i:0;i:945;}i:120547;a:1:{i:0;i:946;}i:120548;a:1:{i:0;i:947;}i:120549;a:1:{i:0;i:948;}i:120550;a:1:{i:0;i:949;}i:120551;a:1:{i:0;i:950;}i:120552;a:1:{i:0;i:951;}i:120553;a:1:{i:0;i:952;}i:120554;a:1:{i:0;i:953;}i:120555;a:1:{i:0;i:954;}i:120556;a:1:{i:0;i:955;}i:120557;a:1:{i:0;i:956;}i:120558;a:1:{i:0;i:957;}i:120559;a:1:{i:0;i:958;}i:120560;a:1:{i:0;i:959;}i:120561;a:1:{i:0;i:960;}i:120562;a:1:{i:0;i:961;}i:120563;a:1:{i:0;i:952;}i:120564;a:1:{i:0;i:963;}i:120565;a:1:{i:0;i:964;}i:120566;a:1:{i:0;i:965;}i:120567;a:1:{i:0;i:966;}i:120568;a:1:{i:0;i:967;}i:120569;a:1:{i:0;i:968;}i:120570;a:1:{i:0;i:969;}i:120589;a:1:{i:0;i:963;}i:120604;a:1:{i:0;i:945;}i:120605;a:1:{i:0;i:946;}i:120606;a:1:{i:0;i:947;}i:120607;a:1:{i:0;i:948;}i:120608;a:1:{i:0;i:949;}i:120609;a:1:{i:0;i:950;}i:120610;a:1:{i:0;i:951;}i:120611;a:1:{i:0;i:952;}i:120612;a:1:{i:0;i:953;}i:120613;a:1:{i:0;i:954;}i:120614;a:1:{i:0;i:955;}i:120615;a:1:{i:0;i:956;}i:120616;a:1:{i:0;i:957;}i:120617;a:1:{i:0;i:958;}i:120618;a:1:{i:0;i:959;}i:120619;a:1:{i:0;i:960;}i:120620;a:1:{i:0;i:961;}i:120621;a:1:{i:0;i:952;}i:120622;a:1:{i:0;i:963;}i:120623;a:1:{i:0;i:964;}i:120624;a:1:{i:0;i:965;}i:120625;a:1:{i:0;i:966;}i:120626;a:1:{i:0;i:967;}i:120627;a:1:{i:0;i:968;}i:120628;a:1:{i:0;i:969;}i:120647;a:1:{i:0;i:963;}i:120662;a:1:{i:0;i:945;}i:120663;a:1:{i:0;i:946;}i:120664;a:1:{i:0;i:947;}i:120665;a:1:{i:0;i:948;}i:120666;a:1:{i:0;i:949;}i:120667;a:1:{i:0;i:950;}i:120668;a:1:{i:0;i:951;}i:120669;a:1:{i:0;i:952;}i:120670;a:1:{i:0;i:953;}i:120671;a:1:{i:0;i:954;}i:120672;a:1:{i:0;i:955;}i:120673;a:1:{i:0;i:956;}i:120674;a:1:{i:0;i:957;}i:120675;a:1:{i:0;i:958;}i:120676;a:1:{i:0;i:959;}i:120677;a:1:{i:0;i:960;}i:120678;a:1:{i:0;i:961;}i:120679;a:1:{i:0;i:952;}i:120680;a:1:{i:0;i:963;}i:120681;a:1:{i:0;i:964;}i:120682;a:1:{i:0;i:965;}i:120683;a:1:{i:0;i:966;}i:120684;a:1:{i:0;i:967;}i:120685;a:1:{i:0;i:968;}i:120686;a:1:{i:0;i:969;}i:120705;a:1:{i:0;i:963;}i:120720;a:1:{i:0;i:945;}i:120721;a:1:{i:0;i:946;}i:120722;a:1:{i:0;i:947;}i:120723;a:1:{i:0;i:948;}i:120724;a:1:{i:0;i:949;}i:120725;a:1:{i:0;i:950;}i:120726;a:1:{i:0;i:951;}i:120727;a:1:{i:0;i:952;}i:120728;a:1:{i:0;i:953;}i:120729;a:1:{i:0;i:954;}i:120730;a:1:{i:0;i:955;}i:120731;a:1:{i:0;i:956;}i:120732;a:1:{i:0;i:957;}i:120733;a:1:{i:0;i:958;}i:120734;a:1:{i:0;i:959;}i:120735;a:1:{i:0;i:960;}i:120736;a:1:{i:0;i:961;}i:120737;a:1:{i:0;i:952;}i:120738;a:1:{i:0;i:963;}i:120739;a:1:{i:0;i:964;}i:120740;a:1:{i:0;i:965;}i:120741;a:1:{i:0;i:966;}i:120742;a:1:{i:0;i:967;}i:120743;a:1:{i:0;i:968;}i:120744;a:1:{i:0;i:969;}i:120763;a:1:{i:0;i:963;}i:1017;a:1:{i:0;i:963;}i:7468;a:1:{i:0;i:97;}i:7469;a:1:{i:0;i:230;}i:7470;a:1:{i:0;i:98;}i:7472;a:1:{i:0;i:100;}i:7473;a:1:{i:0;i:101;}i:7474;a:1:{i:0;i:477;}i:7475;a:1:{i:0;i:103;}i:7476;a:1:{i:0;i:104;}i:7477;a:1:{i:0;i:105;}i:7478;a:1:{i:0;i:106;}i:7479;a:1:{i:0;i:107;}i:7480;a:1:{i:0;i:108;}i:7481;a:1:{i:0;i:109;}i:7482;a:1:{i:0;i:110;}i:7484;a:1:{i:0;i:111;}i:7485;a:1:{i:0;i:547;}i:7486;a:1:{i:0;i:112;}i:7487;a:1:{i:0;i:114;}i:7488;a:1:{i:0;i:116;}i:7489;a:1:{i:0;i:117;}i:7490;a:1:{i:0;i:119;}i:8507;a:3:{i:0;i:102;i:1;i:97;i:2;i:120;}i:12880;a:3:{i:0;i:112;i:1;i:116;i:2;i:101;}i:13004;a:2:{i:0;i:104;i:1;i:103;}i:13006;a:2:{i:0;i:101;i:1;i:118;}i:13007;a:3:{i:0;i:108;i:1;i:116;i:2;i:100;}i:13178;a:2:{i:0;i:105;i:1;i:117;}i:13278;a:3:{i:0;i:118;i:1;i:8725;i:2;i:109;}i:13279;a:3:{i:0;i:97;i:1;i:8725;i:2;i:109;}}s:12:"norm_combcls";a:341:{i:820;i:1;i:821;i:1;i:822;i:1;i:823;i:1;i:824;i:1;i:2364;i:7;i:2492;i:7;i:2620;i:7;i:2748;i:7;i:2876;i:7;i:3260;i:7;i:4151;i:7;i:12441;i:8;i:12442;i:8;i:2381;i:9;i:2509;i:9;i:2637;i:9;i:2765;i:9;i:2893;i:9;i:3021;i:9;i:3149;i:9;i:3277;i:9;i:3405;i:9;i:3530;i:9;i:3642;i:9;i:3972;i:9;i:4153;i:9;i:5908;i:9;i:5940;i:9;i:6098;i:9;i:1456;i:10;i:1457;i:11;i:1458;i:12;i:1459;i:13;i:1460;i:14;i:1461;i:15;i:1462;i:16;i:1463;i:17;i:1464;i:18;i:1465;i:19;i:1467;i:20;i:1468;i:21;i:1469;i:22;i:1471;i:23;i:1473;i:24;i:1474;i:25;i:64286;i:26;i:1611;i:27;i:1612;i:28;i:1613;i:29;i:1614;i:30;i:1615;i:31;i:1616;i:32;i:1617;i:33;i:1618;i:34;i:1648;i:35;i:1809;i:36;i:3157;i:84;i:3158;i:91;i:3640;i:103;i:3641;i:103;i:3656;i:107;i:3657;i:107;i:3658;i:107;i:3659;i:107;i:3768;i:118;i:3769;i:118;i:3784;i:122;i:3785;i:122;i:3786;i:122;i:3787;i:122;i:3953;i:129;i:3954;i:130;i:3962;i:130;i:3963;i:130;i:3964;i:130;i:3965;i:130;i:3968;i:130;i:3956;i:132;i:801;i:202;i:802;i:202;i:807;i:202;i:808;i:202;i:795;i:216;i:3897;i:216;i:119141;i:216;i:119142;i:216;i:119150;i:216;i:119151;i:216;i:119152;i:216;i:119153;i:216;i:119154;i:216;i:12330;i:218;i:790;i:220;i:791;i:220;i:792;i:220;i:793;i:220;i:796;i:220;i:797;i:220;i:798;i:220;i:799;i:220;i:800;i:220;i:803;i:220;i:804;i:220;i:805;i:220;i:806;i:220;i:809;i:220;i:810;i:220;i:811;i:220;i:812;i:220;i:813;i:220;i:814;i:220;i:815;i:220;i:816;i:220;i:817;i:220;i:818;i:220;i:819;i:220;i:825;i:220;i:826;i:220;i:827;i:220;i:828;i:220;i:839;i:220;i:840;i:220;i:841;i:220;i:845;i:220;i:846;i:220;i:851;i:220;i:852;i:220;i:853;i:220;i:854;i:220;i:1425;i:220;i:1430;i:220;i:1435;i:220;i:1443;i:220;i:1444;i:220;i:1445;i:220;i:1446;i:220;i:1447;i:220;i:1450;i:220;i:1621;i:220;i:1622;i:220;i:1763;i:220;i:1770;i:220;i:1773;i:220;i:1841;i:220;i:1844;i:220;i:1847;i:220;i:1848;i:220;i:1849;i:220;i:1851;i:220;i:1852;i:220;i:1854;i:220;i:1858;i:220;i:1860;i:220;i:1862;i:220;i:1864;i:220;i:2386;i:220;i:3864;i:220;i:3865;i:220;i:3893;i:220;i:3895;i:220;i:4038;i:220;i:6459;i:220;i:8424;i:220;i:119163;i:220;i:119164;i:220;i:119165;i:220;i:119166;i:220;i:119167;i:220;i:119168;i:220;i:119169;i:220;i:119170;i:220;i:119178;i:220;i:119179;i:220;i:1434;i:222;i:1453;i:222;i:6441;i:222;i:12333;i:222;i:12334;i:224;i:12335;i:224;i:119149;i:226;i:1454;i:228;i:6313;i:228;i:12331;i:228;i:768;i:230;i:769;i:230;i:770;i:230;i:771;i:230;i:772;i:230;i:773;i:230;i:774;i:230;i:775;i:230;i:776;i:230;i:777;i:230;i:778;i:230;i:779;i:230;i:780;i:230;i:781;i:230;i:782;i:230;i:783;i:230;i:784;i:230;i:785;i:230;i:786;i:230;i:787;i:230;i:788;i:230;i:829;i:230;i:830;i:230;i:831;i:230;i:832;i:230;i:833;i:230;i:834;i:230;i:835;i:230;i:836;i:230;i:838;i:230;i:842;i:230;i:843;i:230;i:844;i:230;i:848;i:230;i:849;i:230;i:850;i:230;i:855;i:230;i:867;i:230;i:868;i:230;i:869;i:230;i:870;i:230;i:871;i:230;i:872;i:230;i:873;i:230;i:874;i:230;i:875;i:230;i:876;i:230;i:877;i:230;i:878;i:230;i:879;i:230;i:1155;i:230;i:1156;i:230;i:1157;i:230;i:1158;i:230;i:1426;i:230;i:1427;i:230;i:1428;i:230;i:1429;i:230;i:1431;i:230;i:1432;i:230;i:1433;i:230;i:1436;i:230;i:1437;i:230;i:1438;i:230;i:1439;i:230;i:1440;i:230;i:1441;i:230;i:1448;i:230;i:1449;i:230;i:1451;i:230;i:1452;i:230;i:1455;i:230;i:1476;i:230;i:1552;i:230;i:1553;i:230;i:1554;i:230;i:1555;i:230;i:1556;i:230;i:1557;i:230;i:1619;i:230;i:1620;i:230;i:1623;i:230;i:1624;i:230;i:1750;i:230;i:1751;i:230;i:1752;i:230;i:1753;i:230;i:1754;i:230;i:1755;i:230;i:1756;i:230;i:1759;i:230;i:1760;i:230;i:1761;i:230;i:1762;i:230;i:1764;i:230;i:1767;i:230;i:1768;i:230;i:1771;i:230;i:1772;i:230;i:1840;i:230;i:1842;i:230;i:1843;i:230;i:1845;i:230;i:1846;i:230;i:1850;i:230;i:1853;i:230;i:1855;i:230;i:1856;i:230;i:1857;i:230;i:1859;i:230;i:1861;i:230;i:1863;i:230;i:1865;i:230;i:1866;i:230;i:2385;i:230;i:2387;i:230;i:2388;i:230;i:3970;i:230;i:3971;i:230;i:3974;i:230;i:3975;i:230;i:5901;i:230;i:6458;i:230;i:8400;i:230;i:8401;i:230;i:8404;i:230;i:8405;i:230;i:8406;i:230;i:8407;i:230;i:8411;i:230;i:8412;i:230;i:8417;i:230;i:8423;i:230;i:8425;i:230;i:65056;i:230;i:65057;i:230;i:65058;i:230;i:65059;i:230;i:119173;i:230;i:119174;i:230;i:119175;i:230;i:119177;i:230;i:119176;i:230;i:119210;i:230;i:119211;i:230;i:119212;i:230;i:119213;i:230;i:789;i:232;i:794;i:232;i:12332;i:232;i:863;i:233;i:866;i:233;i:861;i:234;i:862;i:234;i:864;i:234;i:865;i:234;i:837;i:240;}} \ No newline at end of file diff --git a/all-in-one-wp-security/lib/whois/whois.ae.php b/all-in-one-wp-security/lib/whois/whois.ae.php new file mode 100644 index 0000000..fca86c0 --- /dev/null +++ b/all-in-one-wp-security/lib/whois/whois.ae.php @@ -0,0 +1,58 @@ + 'domain.name', + 'Registrar Name:' => 'domain.sponsor', + 'Status:' => 'domain.status', + 'Registrant Contact ID:' => 'owner.handle', + 'Registrant Contact Name:' => 'owner.name', + 'Tech Contact Name:' => 'tech.name', + 'Tech Contact ID:' => 'tech.handle', + 'Name Server:' => 'domain.nserver.' + ); + + $r['regrinfo'] = generic_parser_b($data_str['rawdata'], $items, 'ymd'); + + $r['regyinfo'] = array( + 'referrer' => 'http://www.nic.ae', + 'registrar' => 'UAENIC' + ); + + return $r; + } + } +?> diff --git a/all-in-one-wp-security/lib/whois/whois.aero.php b/all-in-one-wp-security/lib/whois/whois.aero.php new file mode 100644 index 0000000..963a4a1 --- /dev/null +++ b/all-in-one-wp-security/lib/whois/whois.aero.php @@ -0,0 +1,45 @@ + 'http://www.nic.aero', + 'registrar' => 'Societe Internationale de Telecommunications Aeronautiques SC' + ); + return $r; + } + } +?> \ No newline at end of file diff --git a/all-in-one-wp-security/lib/whois/whois.ag.php b/all-in-one-wp-security/lib/whois/whois.ag.php new file mode 100644 index 0000000..3f663fe --- /dev/null +++ b/all-in-one-wp-security/lib/whois/whois.ag.php @@ -0,0 +1,45 @@ + 'http://www.nic.ag', + 'registrar' => 'Nic AG' + ); + return $r; + } + } +?> \ No newline at end of file diff --git a/all-in-one-wp-security/lib/whois/whois.asia.php b/all-in-one-wp-security/lib/whois/whois.asia.php new file mode 100644 index 0000000..c9fa918 --- /dev/null +++ b/all-in-one-wp-security/lib/whois/whois.asia.php @@ -0,0 +1,44 @@ +'http://www.dotasia.org/', + 'registrar' => 'DotAsia' + ); + return $r; + } + } +?> \ No newline at end of file diff --git a/all-in-one-wp-security/lib/whois/whois.at.php b/all-in-one-wp-security/lib/whois/whois.at.php new file mode 100644 index 0000000..639c267 --- /dev/null +++ b/all-in-one-wp-security/lib/whois/whois.at.php @@ -0,0 +1,102 @@ + 'fax', + 'e-mail' => 'email', + 'nic-hdl' => 'handle', + 'person' => 'name', + 'personname' => 'name', + 'street address' => 'address.street', + 'city' => 'address.city', + 'postal code' => 'address.pcode', + 'country' => 'address.country' + ); + + $contacts = array( + 'registrant' => 'owner', + 'admin-c' => 'admin', + 'tech-c' => 'tech', + 'billing-c' => 'billing', + 'zone-c' => 'zone' + ); + + $reg = generic_parser_a($data_str['rawdata'], $translate, $contacts, 'domain', 'Ymd'); + + if (isset($reg['domain']['remarks'])) + unset($reg['domain']['remarks']); + + if (isset($reg['domain']['descr'])) + { + while (list($key, $val) = each($reg['domain']['descr'])) + { + $v = trim(substr(strstr($val, ':'), 1)); + if (strstr($val, '[organization]:')) + { + $reg['owner']['organization'] = $v; + continue; + } + if (strstr($val, '[phone]:')) + { + $reg['owner']['phone'] = $v; + continue; + } + if (strstr($val, '[fax-no]:')) + { + $reg['owner']['fax'] = $v; + continue; + } + if (strstr($val, '[e-mail]:')) + { + $reg['owner']['email'] = $v; + continue; + } + + $reg['owner']['address'][$key] = $v; + } + + if (isset($reg['domain']['descr'])) unset($reg['domain']['descr']); + } + + $r['regrinfo'] = $reg; + $r['regyinfo'] = array( + 'referrer' => 'http://www.nic.at', + 'registrar' => 'NIC-AT' + ); + return $r; + } + } +?> diff --git a/all-in-one-wp-security/lib/whois/whois.au.php b/all-in-one-wp-security/lib/whois/whois.au.php new file mode 100644 index 0000000..ae28c6a --- /dev/null +++ b/all-in-one-wp-security/lib/whois/whois.au.php @@ -0,0 +1,63 @@ + 'domain.name', + 'Last Modified:' => 'domain.changed', + 'Registrar Name:' => 'domain.sponsor', + 'Status:' => 'domain.status', + 'Domain ROID:' => 'domain.handle', + 'Registrant:' => 'owner.organization', + 'Registrant Contact ID:' => 'owner.handle', + 'Registrant Contact Email:' => 'owner.email', + 'Registrant Contact Name:' => 'owner.name', + 'Tech Contact Name:' => 'tech.name', + 'Tech Contact Email:' => 'tech.email', + 'Tech Contact ID:' => 'tech.handle', + 'Name Server:' => 'domain.nserver.' + ); + + $r['regrinfo'] = generic_parser_b($data_str['rawdata'], $items); + $r['regyinfo'] = array( + 'referrer' => 'http://www.aunic.net', + 'registrar' => 'AU-NIC' + ); + return $r; + } + } + +?> diff --git a/all-in-one-wp-security/lib/whois/whois.be.php b/all-in-one-wp-security/lib/whois/whois.be.php new file mode 100644 index 0000000..10f1c8f --- /dev/null +++ b/all-in-one-wp-security/lib/whois/whois.be.php @@ -0,0 +1,76 @@ + 'Domain:', + 'domain.status' => 'Status:', + 'domain.nserver' => 'Nameservers:', + 'domain.created' => 'Registered:', + 'owner' => 'Licensee:', + 'admin' => 'Onsite Contacts:', + 'tech' => 'Agent Technical Contacts:', + 'agent' => 'Agent:' + ); + + $trans = array( + 'company name2:' => '' + ); + + $r['regrinfo'] = get_blocks($data['rawdata'], $items); + + if ($r['regrinfo']['domain']['status'] == 'REGISTERED') + { + $r['regrinfo']['registered'] = 'yes'; + $r['regrinfo'] = get_contacts($r['regrinfo'],$trans); + + if (isset($r['regrinfo']['agent'])) + { + $sponsor = get_contact($r['regrinfo']['agent'],$trans); + unset($r['regrinfo']['agent']); + $r['regrinfo']['domain']['sponsor'] = $sponsor['name']; + } + + $r = format_dates($r, '-mdy'); + } + else + $r['regrinfo']['registered'] = 'no'; + + $r['regyinfo']['referrer'] = 'http://www.domain-registry.nl'; + $r['regyinfo']['registrar'] = 'DNS Belgium'; + return $r; + } + } +?> diff --git a/all-in-one-wp-security/lib/whois/whois.biz.php b/all-in-one-wp-security/lib/whois/whois.biz.php new file mode 100644 index 0000000..7e28b18 --- /dev/null +++ b/all-in-one-wp-security/lib/whois/whois.biz.php @@ -0,0 +1,45 @@ + 'http://www.neulevel.biz', + 'registrar' => 'NEULEVEL' + ); + return $r; + } + } +?> diff --git a/all-in-one-wp-security/lib/whois/whois.br.php b/all-in-one-wp-security/lib/whois/whois.br.php new file mode 100644 index 0000000..63d96d1 --- /dev/null +++ b/all-in-one-wp-security/lib/whois/whois.br.php @@ -0,0 +1,84 @@ + 'fax', + 'e-mail' => 'email', + 'nic-hdl-br' => 'handle', + 'person' => 'name', + 'netname' => 'name', + 'domain' => 'name', + 'updated' => '' + ); + + $contacts = array( + 'owner-c' => 'owner', + 'tech-c' => 'tech', + 'admin-c' => 'admin', + 'billing-c' => 'billing' + ); + + $r = generic_parser_a($data_str['rawdata'], $translate, $contacts, 'domain', 'Ymd'); + + if (in_array('Permission denied.', $r['disclaimer'])) + { + $r['registered'] = 'unknown'; + return $r; + } + + if (isset($r['domain']['nsstat'])) unset($r['domain']['nsstat']); + if (isset($r['domain']['nslastaa'])) unset($r['domain']['nslastaa']); + + if (isset($r['domain']['owner'])) + { + $r['owner']['organization'] = $r['domain']['owner']; + unset($r['domain']['owner']); + } + + if (isset($r['domain']['responsible'])) unset($r['domain']['responsible']); + if (isset($r['domain']['address'])) unset($r['domain']['address']); + if (isset($r['domain']['phone'])) unset($r['domain']['phone']); + + $a['regrinfo'] = $r; + $a['regyinfo'] = array( + 'registrar' => 'BR-NIC', + 'referrer' => 'http://www.nic.br' + ); + return $a; + } + } +?> diff --git a/all-in-one-wp-security/lib/whois/whois.ca.php b/all-in-one-wp-security/lib/whois/whois.ca.php new file mode 100644 index 0000000..92049a7 --- /dev/null +++ b/all-in-one-wp-security/lib/whois/whois.ca.php @@ -0,0 +1,76 @@ + 'Registrant:', + 'admin' => 'Administrative contact:', + 'tech' => 'Technical contact:', + 'domain.sponsor' => 'Registrar:', + 'domain.nserver' => 'Name servers:', + 'domain.status' => 'Domain status:', + 'domain.created' => 'Creation date:', + 'domain.expires' => 'Expiry date:', + 'domain.changed' => 'Updated date:' + ); + + $extra = array( + 'postal address:' => 'address.0', + 'job title:' => '', + 'number:' => 'handle', + 'description:' => 'organization' + ); + + $r['regrinfo'] = easy_parser($data_str['rawdata'],$items,'ymd',$extra); + + if (!empty($r['regrinfo']['domain']['sponsor'])) + { + list($v,$reg) = explode(':',$r['regrinfo']['domain']['sponsor'][0]); + $r['regrinfo']['domain']['sponsor'] = trim($reg); + } + + if (empty($r['regrinfo']['domain']['status']) || $r['regrinfo']['domain']['status'] == 'available') + $r['regrinfo']['registered'] = 'no'; + else + $r['regrinfo']['registered'] = 'yes'; + + $r['regyinfo'] = array( + 'registrar' => 'CIRA', + 'referrer' => 'http://www.cira.ca/' + ); + return $r; + } + } +?> \ No newline at end of file diff --git a/all-in-one-wp-security/lib/whois/whois.cat.php b/all-in-one-wp-security/lib/whois/whois.cat.php new file mode 100644 index 0000000..c107cf9 --- /dev/null +++ b/all-in-one-wp-security/lib/whois/whois.cat.php @@ -0,0 +1,47 @@ + \ No newline at end of file diff --git a/all-in-one-wp-security/lib/whois/whois.ch.php b/all-in-one-wp-security/lib/whois/whois.ch.php new file mode 100644 index 0000000..90f6c36 --- /dev/null +++ b/all-in-one-wp-security/lib/whois/whois.ch.php @@ -0,0 +1,82 @@ + 'Holder of domain name:', + 'domain.name' => 'Domain name:', + 'domain.created' => 'Date of last registration:', + 'domain.changed' => 'Date of last modification:', + 'tech' => 'Technical contact:', + 'domain.nserver' => 'Name servers:', + 'domain.dnssec' => 'DNSSEC:' + ); + + $trans = array( + 'contractual language:' => 'language' + ); + + $r['regrinfo'] = get_blocks($data_str['rawdata'], $items); + + if (!empty($r['regrinfo']['domain']['name'])) + { + $r['regrinfo'] = get_contacts($r['regrinfo'],$trans); + + $r['regrinfo']['domain']['name'] = $r['regrinfo']['domain']['name'][0]; + + if (isset($r['regrinfo']['domain']['changed'][0])) + $r['regrinfo']['domain']['changed'] = get_date($r['regrinfo']['domain']['changed'][0], 'dmy'); + + if (isset($r['regrinfo']['domain']['created'][0])) + $r['regrinfo']['domain']['created'] = get_date($r['regrinfo']['domain']['created'][0], 'dmy'); + + $r['regrinfo']['registered'] = 'yes'; + } + else + { + $r = ''; + $r['regrinfo']['registered'] = 'no'; + } + + $r['regyinfo'] = array( + 'referrer' => 'http://www.nic.ch', + 'registrar' => 'SWITCH Domain Name Registration' + ); + return $r; + } + } +?> diff --git a/all-in-one-wp-security/lib/whois/whois.cl.php b/all-in-one-wp-security/lib/whois/whois.cl.php new file mode 100644 index 0000000..f6874d7 --- /dev/null +++ b/all-in-one-wp-security/lib/whois/whois.cl.php @@ -0,0 +1,56 @@ + '(Administrative Contact)', + 'tech' => 'Contacto Técnico (Technical Contact):', + 'domain.nserver' => 'Servidores de nombre (Domain servers):', + 'domain.changed' => '(Database last updated on):' + ); + + $trans = array( + 'organización:' => 'organization', + 'nombre :' => 'name'); + + $r['regrinfo'] = easy_parser($data_str['rawdata'], $items, 'd-m-y', $trans); + $r['regyinfo'] = array( + 'referrer' => 'http://www.nic.cl', + 'registrar' => 'NIC Chile' + ); + return $r; + } + } +?> diff --git a/all-in-one-wp-security/lib/whois/whois.client.php b/all-in-one-wp-security/lib/whois/whois.client.php new file mode 100644 index 0000000..f3c34e8 --- /dev/null +++ b/all-in-one-wp-security/lib/whois/whois.client.php @@ -0,0 +1,595 @@ + '', + 'type' => 'domain', + 'query' => '', + 'status', + 'server' + ); + + // This release of the package + var $CODE_VERSION = '4.2.2'; + + // Full code and data version string (e.g. 'Whois2.php v3.01:16') + var $VERSION; + + /* + * Constructor function + */ + function WhoisClient () { + // Load DATA array + @require('whois.servers.php'); + + // Set version + $this->VERSION = sprintf("phpWhois v%s-%s", $this->CODE_VERSION, $this->DATA_VERSION); + } + + /* + * Perform lookup + */ + + function GetRawData ($query) { + + $this->Query['query'] = $query; + + // clear error description + if (isset($this->Query['errstr'])) unset($this->Query['errstr']); + + if (!isset($this->Query['server'])) { + $this->Query['status'] = 'error'; + $this->Query['errstr'][] = 'No server specified'; + return(array()); + } + + // Check if protocol is http + + if (substr($this->Query['server'],0,7)=='http://' || + substr($this->Query['server'],0,8)=='https://') + { + $output = $this->httpQuery($this->Query['server']); + + if (!$output) + { + $this->Query['status'] = 'error'; + $this->Query['errstr'][] = 'Connect failed to: '.$this->Query['server']; + return(array()); + } + + $this->Query['args'] = substr(strchr($this->Query['server'],'?'),1); + $this->Query['server'] = strtok($this->Query['server'],'?'); + + if (substr($this->Query['server'],0,7)=='http://') + $this->Query['server_port'] = 80; + else + $this->Query['server_port'] = 483; + } + else + { + // Get args + + if (strpos($this->Query['server'],'?')) + { + $parts = explode('?',$this->Query['server']); + $this->Query['server'] = trim($parts[0]); + $query_args = trim($parts[1]); + + // replace substitution parameters + $query_args = str_replace('{query}', $query, $query_args); + $query_args = str_replace('{version}', 'phpWhois'.$this->CODE_VERSION, $query_args); + + if (strpos($query_args,'{ip}')!==false) + { + $query_args = str_replace('{ip}', phpwhois_getclientip(), $query_args); + } + + if (strpos($query_args,'{hname}')!==false) + { + $query_args = str_replace('{hname}', gethostbyaddr(phpwhois_getclientip()), $query_args); + } + } + else + { + if (empty($this->Query['args'])) + $query_args = $query; + else + $query_args = $this->Query['args']; + } + + $this->Query['args'] = $query_args; + + if (substr($this->Query['server'],0,9) == 'rwhois://') + { + $this->Query['server'] = substr($this->Query['server'],9); + } + + if (substr($this->Query['server'],0,8) == 'whois://') + { + $this->Query['server'] = substr($this->Query['server'],8); + } + + // Get port + + if (strpos($this->Query['server'],':')) + { + $parts = explode(':',$this->Query['server']); + $this->Query['server'] = trim($parts[0]); + $this->Query['server_port'] = trim($parts[1]); + } + else + $this->Query['server_port'] = $this->PORT; + + // Connect to whois server, or return if failed + + $ptr = $this->Connect(); + + if($ptr < 0) { + $this->Query['status'] = 'error'; + $this->Query['errstr'][] = 'Connect failed to: '.$this->Query['server']; + return array(); + } + + stream_set_timeout($ptr,$this->STIMEOUT); + stream_set_blocking($ptr,0); + + // Send query + fputs($ptr, trim($query_args)."\r\n"); + + // Prepare to receive result + $raw = ''; + $start = time(); + $null = NULL; + $r = array($ptr); + + while (!feof($ptr)) + { + if (stream_select($r,$null,$null,$this->STIMEOUT)) + { + $raw .= fgets($ptr, $this->BUFFER); + } + + if (time()-$start > $this->STIMEOUT) + { + $this->Query['status'] = 'error'; + $this->Query['errstr'][] = 'Timeout reading from '.$this->Query['server']; + return array(); + } + } + + if (array_key_exists($this->Query['server'],$this->NON_UTF8)) + { + $raw = utf8_encode($raw); + } + + $output = explode("\n", $raw); + + // Drop empty last line (if it's empty! - saleck) + if (empty($output[count($output)-1])) + unset($output[count($output)-1]); + } + + return $output; + } + + /* + * Perform lookup. Returns an array. The 'rawdata' element contains an + * array of lines gathered from the whois query. If a top level domain + * handler class was found for the domain, other elements will have been + * populated too. + */ + + function GetData ($query='', $deep_whois=true) { + + // If domain to query passed in, use it, otherwise use domain from initialisation + $query = !empty($query) ? $query : $this->Query['query']; + + $output = $this->GetRawData($query); + + // Create result and set 'rawdata' + $result = array( 'rawdata' => $output ); + $result = $this->set_whois_info($result); + + // Return now on error + if (empty($output)) return $result; + + // If we have a handler, post-process it with it + if (isSet($this->Query['handler'])) + { + // Keep server list + $servers = $result['regyinfo']['servers']; + unset($result['regyinfo']['servers']); + + // Process data + $result = $this->Process($result,$deep_whois); + + // Add new servers to the server list + if (isset($result['regyinfo']['servers'])) + $result['regyinfo']['servers'] = array_merge($servers,$result['regyinfo']['servers']); + else + $result['regyinfo']['servers'] = $servers; + + // Handler may forget to set rawdata + if (!isset($result['rawdata'])) + $result['rawdata'] = $output; + } + + // Type defaults to domain + if (!isset($result['regyinfo']['type'])) + $result['regyinfo']['type'] = 'domain'; + + // Add error information if any + if (isset($this->Query['errstr'])) + $result['errstr'] = $this->Query['errstr']; + + // Fix/add nameserver information + if (method_exists($this,'FixResult') && $this->Query['tld'] != 'ip') + $this->FixResult($result,$query); + + return($result); + } + + /* + * Adds whois server query information to result + */ + + function set_whois_info ($result) + { + $info = array( + 'server'=> $this->Query['server'], + ); + + if (!empty($this->Query['args'])) + $info['args'] = $this->Query['args']; + else + $info['args'] = $this->Query['query']; + + if (!empty($this->Query['server_port'])) + $info['port'] = $this->Query['server_port']; + else + $info['port'] = 43; + + if (isset($result['regyinfo']['whois'])) + unset($result['regyinfo']['whois']); + + if (isset($result['regyinfo']['rwhois'])) + unset($result['regyinfo']['rwhois']); + + $result['regyinfo']['servers'][] = $info; + + return $result; + } + + /* + * Convert html output to plain text + */ + function httpQuery ($query) { + + //echo ini_get('allow_url_fopen'); + + //if (ini_get('allow_url_fopen')) + $lines = @file($this->Query['server']); + + if (!$lines) return false; + + $output = ''; + $pre = ''; + + while (list($key, $val)=each($lines)) { + $val = trim($val); + + $pos=strpos(strtoupper($val),'

');
+			if ($pos!==false) {
+				$pre = "\n";
+				$output.=substr($val,0,$pos)."\n";
+				$val = substr($val,$pos+5);
+				}
+			$pos=strpos(strtoupper($val),'
'); + if ($pos!==false) { + $pre = ''; + $output.=substr($val,0,$pos)."\n"; + $val = substr($val,$pos+6); + } + $output.=$val.$pre; + } + + $search = array ( + '
', '

', '', + '', '', '', + '
', '

', '', + '', '', '' ); + + $output = str_replace($search,"\n",$output); + $output = str_replace('2) continue; + } + else $null=0; + $rawdata[]=$val; + } + return $rawdata; + } + + /* + * Open a socket to the whois server. + * + * Returns a socket connection pointer on success, or -1 on failure. + */ + function Connect ($server = '') { + + if ($server == '') + $server = $this->Query['server']; + + // Fail if server not set + if($server == '') + return(-1); + + // Get rid of protocol and/or get port + $port = $this->Query['server_port']; + + $pos = strpos($server,'://'); + + if ($pos !== false) + $server = substr($server, $pos+3); + + $pos = strpos($server,':'); + + if ($pos !== false) + { + $port = substr($server,$pos+1); + $server = substr($server,0,$pos); + } + + // Enter connection attempt loop + $retry = 0; + + while($retry <= $this->RETRY) { + // Set query status + $this->Query['status'] = 'ready'; + + // Connect to whois port + $ptr = @fsockopen($server, $port, $errno, $errstr, $this->STIMEOUT); + + if($ptr > 0) { + $this->Query['status'] = 'ok'; + return($ptr); + } + + // Failed this attempt + $this->Query['status'] = 'error'; + $this->Query['error'][] = $errstr; + $retry++; + + // Sleep before retrying + sleep($this->SLEEP); + } + + // If we get this far, it hasn't worked + return(-1); + } + + /* + * Post-process result with handler class. On success, returns the result + * from the handler. On failure, returns passed result unaltered. + */ + function Process (&$result, $deep_whois=true) { + + $handler_name = str_replace('.','_',$this->Query['handler']); + + // If the handler has not already been included somehow, include it now + $HANDLER_FLAG = sprintf("__%s_HANDLER__", strtoupper($handler_name)); + + if (!defined($HANDLER_FLAG)) + include($this->Query['file']); + + // If the handler has still not been included, append to query errors list and return + if (!defined($HANDLER_FLAG)) + { + $this->Query['errstr'][] = "Can't find $handler_name handler: ".$this->Query['file']; + return($result); + } + + if (!$this->gtld_recurse && $this->Query['file'] == 'whois.gtld.php') + return $result; + + // Pass result to handler + $object = $handler_name.'_handler'; + + $handler = new $object(''); + + // If handler returned an error, append it to the query errors list + if(isSet($handler->Query['errstr'])) + $this->Query['errstr'][] = $handler->Query['errstr']; + + $handler->deep_whois = $deep_whois; + + // Process + $res = $handler->parse($result,$this->Query['query']); + + // Return the result + return $res; + } + + /* + * Does more (deeper) whois ... + */ + + function DeepWhois ($query, $result) { + + if (!isset($result['regyinfo']['whois'])) return $result; + + $this->Query['server'] = $wserver = $result['regyinfo']['whois']; + unset($result['regyinfo']['whois']); + $subresult = $this->GetRawData($query); + + if (!empty($subresult)) + { + $result = $this->set_whois_info($result); + $result['rawdata'] = $subresult; + + if (isset($this->WHOIS_GTLD_HANDLER[$wserver])) + $this->Query['handler'] = $this->WHOIS_GTLD_HANDLER[$wserver]; + else + { + $parts = explode('.',$wserver); + $hname = strtolower($parts[1]); + + if (($fp = @fopen('whois.gtld.'.$hname.'.php', 'r', 1)) and fclose($fp)) + $this->Query['handler'] = $hname; + } + + if (!empty($this->Query['handler'])) + { + $this->Query['file'] = sprintf('whois.gtld.%s.php', $this->Query['handler']); + $regrinfo = $this->Process($subresult); //$result['rawdata']); + $result['regrinfo'] = $this->merge_results($result['regrinfo'], $regrinfo); + //$result['rawdata'] = $subresult; + } + } + + return $result; + } + + /* + * Merge results + */ + + function merge_results($a1, $a2) { + + reset($a2); + + while (list($key, $val) = each($a2)) + { + if (isset($a1[$key])) + { + if (is_array($val)) + { + if ($key != 'nserver') + $a1[$key] = $this->merge_results($a1[$key], $val); + } + else + { + $val = trim($val); + if ($val != '') + $a1[$key] = $val; + } + } + else + $a1[$key] = $val; + } + + return $a1; + } + + function FixNameServer($nserver) + { + $dns = array(); + + foreach($nserver as $val) + { + $val = str_replace( array('[',']','(',')'), '', trim($val)); + $val = str_replace("\t", ' ', $val); + $parts = explode(' ', $val); + $host = ''; + $ip = ''; + + foreach($parts as $p) + { + if (substr($p,-1) == '.') $p = substr($p,0,-1); + + if ((ip2long($p) == - 1) or (ip2long($p) === false)) + { + // Hostname ? + if ($host == '' && preg_match('/^[\w\-]+(\.[\w\-]+)+$/',$p)) + { + $host = $p; + } + } + else + // IP Address + $ip = $p; + } + + // Valid host name ? + + if ($host == '') continue; + + // Get ip address + + if ($ip == '') + { + $ip = gethostbyname($host); + if ($ip == $host) $ip = '(DOES NOT EXIST)'; + } + + if (substr($host,-1,1) == '.') $host = substr($host,0,-1); + + $dns[strtolower($host)] = $ip; + } + + return $dns; + } +} +?> \ No newline at end of file diff --git a/all-in-one-wp-security/lib/whois/whois.cn.php b/all-in-one-wp-security/lib/whois/whois.cn.php new file mode 100644 index 0000000..9c9a736 --- /dev/null +++ b/all-in-one-wp-security/lib/whois/whois.cn.php @@ -0,0 +1,91 @@ + 'domain.name', + 'Domain Status:' => 'domain.status.', + 'ROID:' => 'domain.handle', + 'Name Server:' => 'domain.nserver.', + 'Registration Date:' => 'domain.created', + 'Expiration Date:' => 'domain.expires', + 'Sponsoring Registrar:' => 'domain.sponsor', + 'Registrant Name:' => 'owner.name', + 'Registrant Organization:' => 'owner.organization', + 'Registrant Address:' => 'owner.address.address', + 'Registrant Postal Code:' => 'owner.address.pcode', + 'Registrant City:' => 'owner.address.city', + 'Registrant Country Code:' => 'owner.address.country', + 'Registrant Email:' => 'owner.email', + 'Registrant Phone Number:' => 'owner.phone', + 'Registrant Fax:' => 'owner.fax', + 'Administrative Name:' => 'admin.name', + 'Administrative Organization:' => 'admin.organization', + 'Administrative Address:' => 'admin.address.address', + 'Administrative Postal Code:' => 'admin.address.pcode', + 'Administrative City:' => 'admin.address.city', + 'Administrative Country Code:' => 'admin.address.country', + 'Administrative Email:' => 'admin.email', + 'Administrative Phone Number:' => 'admin.phone', + 'Administrative Fax:' => 'admin.fax', + 'Technical Name:' => 'tech.name', + 'Technical Organization:' => 'tech.organization', + 'Technical Address:' => 'tech.address.address', + 'Technical Postal Code:' => 'tech.address.pcode', + 'Technical City:' => 'tech.address.city', + 'tec-country:' => 'tech.address.country', + 'Technical Email:' => 'tech.email', + 'Technical Phone Number:' => 'tech.phone', + 'Technical Fax:' => 'tech.fax', + 'Billing Name:' => 'billing.name', + 'Billing Organization:' => 'billing.organization', + 'Billing Address:' => 'billing.address.address', + 'Billing Postal Code:' => 'billing.address.pcode', + 'Billing City:' => 'billing.address.city', + 'Billing Country Code:' => 'billing.address.country', + 'Billing Email:' => 'billing.email', + 'Billing Phone Number:' => 'billing.phone', + 'Billing Fax:' => 'billing.fax' + ); + + $r['regrinfo'] = generic_parser_b($data_str['rawdata'], $items, 'ymd'); + $r['regyinfo'] = array( + 'referrer' => 'http://www.cnnic.net.cn', + 'registrar' => 'China NIC' + ); + return $r; + } + } +?> \ No newline at end of file diff --git a/all-in-one-wp-security/lib/whois/whois.co.php b/all-in-one-wp-security/lib/whois/whois.co.php new file mode 100644 index 0000000..f7751d7 --- /dev/null +++ b/all-in-one-wp-security/lib/whois/whois.co.php @@ -0,0 +1,43 @@ + \ No newline at end of file diff --git a/all-in-one-wp-security/lib/whois/whois.co.za.php b/all-in-one-wp-security/lib/whois/whois.co.za.php new file mode 100644 index 0000000..bd73225 --- /dev/null +++ b/all-in-one-wp-security/lib/whois/whois.co.za.php @@ -0,0 +1,73 @@ + 'domain.changed', + '1a. domain :' => 'domain.name', + '2b. registrantpostaladdress:' => 'owner.address.address.0', + '2f. billingaccount :' => 'billing.name', + '2g. billingemail :' => 'billing.email', + '2i. invoiceaddress :' => 'billing.address', + '2j. registrantphone :' => 'owner.phone', + '2k. registrantfax :' => 'owner.fax', + '2l. registrantemail :' => 'owner.email', + '4a. admin :' => 'admin.name', + '4c. admincompany :' => 'admin.organization', + '4d. adminpostaladdr :' => 'admin.address', + '4e. adminphone :' => 'admin.phone', + '4f. adminfax :' => 'admin.fax', + '4g. adminemail :' => 'admin.email', + '5a. tec :' => 'tech.name', + '5c. teccompany :' => 'tech.organization', + '5d. tecpostaladdr :' => 'tech.address', + '5e. tecphone :' => 'tech.phone', + '5f. tecfax :' => 'tech.fax', + '5g. tecemail :' => 'tech.email', + '6a. primnsfqdn :' => 'domain.nserver.0', + '6e. secns1fqdn :' => 'domain.nserver.1', + '6i. secns2fqdn :' => 'domain.nserver.2', + '6m. secns3fqdn :' => 'domain.nserver.3', + '6q. secns4fqdn :' => 'domain.nserver.4' + ); + + $r['regrinfo'] = generic_parser_b($data_str['rawdata'], $items); + + $r['regyinfo']['referrer'] = 'http://www.co.za'; + $r['regyinfo']['registrar'] = 'UniForum Association'; + return $r; + } + } +?> \ No newline at end of file diff --git a/all-in-one-wp-security/lib/whois/whois.coop.php b/all-in-one-wp-security/lib/whois/whois.coop.php new file mode 100644 index 0000000..f16a7ef --- /dev/null +++ b/all-in-one-wp-security/lib/whois/whois.coop.php @@ -0,0 +1,106 @@ + 'Contact Type: registrant', + 'admin' => 'Contact Type: admin', + 'tech' => 'Contact Type: tech', + 'billing' => 'Contact Type: billing', + 'domain.name' => 'Domain Name:', + 'domain.handle' => 'Domain ID:', + 'domain.expires' => 'Expiry Date:', + 'domain.created' => 'Created:', + 'domain.changed' => 'Last updated:', + 'domain.status' => 'Domain Status:', + 'domain.sponsor' => 'Sponsoring registrar:', + 'domain.nserver.' => 'Host Name:' + ); + + $translate = array( + 'Contact ID:' => 'handle', + 'Name:' => 'name', + 'Organisation:' => 'organization', + 'Street 1:' => 'address.street.0', + 'Street 2:' => 'address.street.1', + 'Street 3:' => 'address.street.2', + 'City:' => 'address.city', + 'State/Province:' => 'address.state', + 'Postal code:' => 'address.pcode', + 'Country:' => 'address.country', + 'Voice:' => 'phone', + 'Fax:' => 'fax', + 'Email:' => 'email' + ); + + $blocks = get_blocks($data_str['rawdata'],$items); + + $r=array(); + + if (isset($blocks['domain'])) + { + $r['regrinfo']['domain'] = format_dates($blocks['domain'],'dmy'); + $r['regrinfo']['registered'] = 'yes'; + + if (isset($blocks['owner'])) + { + $r['regrinfo']['owner'] = generic_parser_b($blocks['owner'],$translate,'dmy',false); + + if (isset($blocks['tech'])) + $r['regrinfo']['tech'] = generic_parser_b($blocks['tech'],$translate,'dmy',false); + + if (isset($blocks['admin'])) + $r['regrinfo']['admin'] = generic_parser_b($blocks['admin'],$translate,'dmy',false); + + if (isset($blocks['billing'])) + $r['regrinfo']['billing'] = generic_parser_b($blocks['billing'],$translate,'dmy',false); + } + else + { + $r['regrinfo']['owner'] = generic_parser_b($data_str['rawdata'],$translate,'dmy',false); + } + } + else + $r['regrinfo']['registered'] = 'no'; + + $r['regyinfo'] = array( + 'referrer' => 'http://www.nic.coop', + 'registrar' => '.coop registry' + ); + return $r; + } + } +?> diff --git a/all-in-one-wp-security/lib/whois/whois.cz.php b/all-in-one-wp-security/lib/whois/whois.cz.php new file mode 100644 index 0000000..d0367be --- /dev/null +++ b/all-in-one-wp-security/lib/whois/whois.cz.php @@ -0,0 +1,73 @@ + 'expires', + 'registered' => 'created', + 'nserver' => 'nserver', + 'domain' => 'name', + 'contact' => 'handle', + 'reg-c' => '', + 'descr' => 'desc', + 'e-mail' => 'email', + 'person' => 'name', + 'org' => 'organization', + 'fax-no' => 'fax' + ); + + $contacts = array( + 'admin-c' => 'admin', + 'tech-c' => 'tech', + 'bill-c' => 'billing', + 'registrant' => 'owner' + ); + + $r['regrinfo'] = generic_parser_a($data_str['rawdata'], $translate, $contacts, 'domain', 'dmy'); + + $r['regyinfo'] = array( + 'referrer' => 'http://www.nic.cz', + 'registrar' => 'CZ-NIC' + ); + + if ($data_str['rawdata'][0] == 'Your connection limit exceeded. Please slow down and try again later.') + { + $r['regrinfo']['registered'] = 'unknown'; + } + + return $r; + } + } +?> \ No newline at end of file diff --git a/all-in-one-wp-security/lib/whois/whois.de.php b/all-in-one-wp-security/lib/whois/whois.de.php new file mode 100644 index 0000000..47645bb --- /dev/null +++ b/all-in-one-wp-security/lib/whois/whois.de.php @@ -0,0 +1,78 @@ + 'Domain:', + 'domain.nserver.' =>'Nserver:', + 'domain.nserver.#' =>'Nsentry:', + 'domain.status' => 'Status:', + 'domain.changed' => 'Changed:', + 'domain.desc.' => 'Descr:', + 'owner' => '[Holder]', + 'admin' => '[Admin-C]', + 'tech' => '[Tech-C]', + 'zone' => '[Zone-C]' + ); + + $extra = array( + 'city:' => 'address.city', + 'postalcode:' => 'address.pcode', + 'countrycode:' => 'address.country', + 'remarks:' => '', + 'sip:' => 'sip', + 'type:' => '' + ); + + $r['regrinfo'] = easy_parser($data_str['rawdata'], $items, 'ymd',$extra); + + $r['regyinfo'] = array( + 'registrar' => 'DENIC eG', + 'referrer' => 'http://www.denic.de/' + ); + + if (!isset($r['regrinfo']['domain']['status']) || $r['regrinfo']['domain']['status'] == "free") + { + $r['regrinfo']['registered'] = 'no'; + } + else + { + $r['regrinfo']['domain']['changed'] = substr($r['regrinfo']['domain']['changed'], 0, 10); + $r['regrinfo']['registered'] = 'yes'; + } + return $r; + } + } +?> \ No newline at end of file diff --git a/all-in-one-wp-security/lib/whois/whois.edu.php b/all-in-one-wp-security/lib/whois/whois.edu.php new file mode 100644 index 0000000..22e6d92 --- /dev/null +++ b/all-in-one-wp-security/lib/whois/whois.edu.php @@ -0,0 +1,62 @@ + 'Domain name:', + 'domain.sponsor' => 'Registrar:', + 'domain.nserver' => 'Name Servers:', + 'domain.changed' => 'Domain record last updated:', + 'domain.created' => 'Domain record activated:', + 'owner' => 'Registrant:', + 'admin' => 'Administrative Contact:', + 'tech' => 'Technical Contact:', + 'billing' => 'Billing Contact:' + ); + + $r['regrinfo'] = easy_parser($data_str['rawdata'], $items, 'dmy'); + + if (isset($b['tech'])) + { + if ($r['regrinfo']['tech']['name'] == 'Same as above') + $r['regrinfo']['tech'] = $r['regrinfo']['admin']; + } + + $r['regyinfo']['referrer'] = 'http://whois.educause.net'; + $r['regyinfo']['registrar'] = 'EDUCASE'; + return ($r); + } + } +?> \ No newline at end of file diff --git a/all-in-one-wp-security/lib/whois/whois.eu.php b/all-in-one-wp-security/lib/whois/whois.eu.php new file mode 100644 index 0000000..10627c3 --- /dev/null +++ b/all-in-one-wp-security/lib/whois/whois.eu.php @@ -0,0 +1,85 @@ + 'Domain:', + 'domain.status' => 'Status:', + 'domain.nserver' => 'Name servers:', + 'domain.created' => 'Registered:', + 'domain.registrar' => 'Registrar:', + 'tech' => 'Registrar Technical Contacts:', + 'owner' => 'Registrant:', + '' => 'Please visit' + ); + + $extra = array( + 'organisation:' => 'organization', + 'website:' => 'url' + ); + + $r['regrinfo'] = get_blocks($data['rawdata'], $items); + + if (!empty($r['regrinfo']['domain']['status'])) + switch ($r['regrinfo']['domain']['status']) + { + case 'FREE': + case 'AVAILABLE': + $r['regrinfo']['registered'] = 'no'; + break; + + case 'APPLICATION PENDING': + $r['regrinfo']['registered'] = 'pending'; + break; + + default: + $r['regrinfo']['registered'] = 'unknown'; + } + else + $r['regrinfo']['registered'] = 'yes'; + + if (isset($r['regrinfo']['tech'])) + $r['regrinfo']['tech'] = get_contact($r['regrinfo']['tech'],$extra); + + if (isset($r['regrinfo']['domain']['registrar'])) + $r['regrinfo']['domain']['registrar'] = get_contact($r['regrinfo']['domain']['registrar'],$extra); + + $r['regyinfo']['referrer'] = 'http://www.eurid.eu'; + $r['regyinfo']['registrar'] = 'EURID'; + return $r; + } + } +?> \ No newline at end of file diff --git a/all-in-one-wp-security/lib/whois/whois.fi.php b/all-in-one-wp-security/lib/whois/whois.fi.php new file mode 100644 index 0000000..a94d202 --- /dev/null +++ b/all-in-one-wp-security/lib/whois/whois.fi.php @@ -0,0 +1,57 @@ + 'domain.name', + 'created:' => 'domain.created', + 'expires:' => 'domain.expires', + 'status:' => 'domain.status', + 'nserver:' => 'domain.nserver.', + 'descr:' => 'owner.name.', + 'address:' => 'owner.address.', + 'phone:' => 'owner.phone', + ); + + $r['regrinfo'] = generic_parser_b($data_str['rawdata'], $items); + + $r['regyinfo'] = array( + 'referrer' => 'https://domain.ficora.fi/', + 'registrar' => 'Finnish Communications Regulatory Authority' + ); + return $r; + } + } +?> \ No newline at end of file diff --git a/all-in-one-wp-security/lib/whois/whois.fj.php b/all-in-one-wp-security/lib/whois/whois.fj.php new file mode 100644 index 0000000..c059954 --- /dev/null +++ b/all-in-one-wp-security/lib/whois/whois.fj.php @@ -0,0 +1,67 @@ + 'Registrant:', + 'domain.status' => 'Status:', + 'domain.expires' => 'Expires:', + 'domain.nserver' => 'Domain servers:' + ); + + $r['regrinfo'] = get_blocks($data_str['rawdata'], $items); + + if (!empty($r['regrinfo']['domain']['status'])) + { + $r['regrinfo'] = get_contacts($r['regrinfo']); + + date_default_timezone_set("Pacific/Fiji"); + + if (isset($r['regrinfo']['domain']['expires'])) + $r['regrinfo']['domain']['expires'] = strftime("%Y-%m-%d",strtotime($r['regrinfo']['domain']['expires'])); + + $r['regrinfo']['registered'] = 'yes'; + } + else + $r['regrinfo']['registered'] = 'no'; + + $r['regyinfo'] = array( + 'referrer' => 'http://www.domains.fj', + 'registrar' => 'FJ Domain Name Registry' + ); + return $r; + } + } +?> \ No newline at end of file diff --git a/all-in-one-wp-security/lib/whois/whois.fm.php b/all-in-one-wp-security/lib/whois/whois.fm.php new file mode 100644 index 0000000..0e34f0a --- /dev/null +++ b/all-in-one-wp-security/lib/whois/whois.fm.php @@ -0,0 +1,80 @@ + 'Registrant', + 'admin' => 'Admin', + 'tech' => 'Technical', + 'billing' => 'Billing', + 'domain.nserver' => 'Name Servers:', + 'domain.created' => 'Created:', + 'domain.expires' => 'Expires:', + 'domain.changed' => 'Modified:', + 'domain.status' => 'Status:', + 'domain.sponsor' => 'Registrar Name:' + ); + + $r['regrinfo'] = get_blocks($data['rawdata'], $items); + + $items = array( + 'phone number:' => 'phone', + 'email address:' => 'email', + 'fax number:' => 'fax', + 'organisation:' => 'organization' + ); + + if (!empty($r['regrinfo']['domain']['created'])) + { + $r['regrinfo'] = get_contacts($r['regrinfo'],$items); + + if (count($r['regrinfo']['billing']['address']) > 4) + $r['regrinfo']['billing']['address'] = array_slice($r['regrinfo']['billing']['address'],0,4); + + $r['regrinfo']['registered'] = 'yes'; + format_dates($r['regrinfo']['domain'],'dmY'); + } + else + { + $r = ''; + $r['regrinfo']['registered'] = 'no'; + } + + $r['regyinfo']['referrer'] = 'http://www.dot.dm'; + $r['regyinfo']['registrar'] = 'dotFM'; + return $r; + } + } +?> \ No newline at end of file diff --git a/all-in-one-wp-security/lib/whois/whois.fr.php b/all-in-one-wp-security/lib/whois/whois.fr.php new file mode 100644 index 0000000..9854248 --- /dev/null +++ b/all-in-one-wp-security/lib/whois/whois.fr.php @@ -0,0 +1,78 @@ + 'fax', + 'e-mail' => 'email', + 'nic-hdl' => 'handle', + 'ns-list' => 'handle', + 'person' => 'name', + 'address' => 'address.', + 'descr' => 'desc', + 'anniversary' => '', + 'domain' => '', + 'last-update' => 'changed', + 'registered' => 'created', + 'country' => 'address.country', + 'registrar' => 'sponsor', + 'role' => 'organization' + ); + + $contacts = array( + 'admin-c' => 'admin', + 'tech-c' => 'tech', + 'zone-c' => 'zone', + 'holder-c' => 'owner', + 'nsl-id' => 'nserver' + ); + + $reg = generic_parser_a($data_str['rawdata'], $translate, $contacts, 'domain','dmY'); + + if (isset($reg['nserver'])) + { + $reg['domain'] = array_merge($reg['domain'],$reg['nserver']); + unset($reg['nserver']); + } + + $r['regrinfo'] = $reg; + $r['regyinfo'] = array( + 'referrer' => 'http://www.nic.fr', + 'registrar' => 'AFNIC' + ); + return $r; + } + } +?> \ No newline at end of file diff --git a/all-in-one-wp-security/lib/whois/whois.gtld.afternic.php b/all-in-one-wp-security/lib/whois/whois.gtld.afternic.php new file mode 100644 index 0000000..94ffe26 --- /dev/null +++ b/all-in-one-wp-security/lib/whois/whois.gtld.afternic.php @@ -0,0 +1,51 @@ + 'Registrant:', + 'admin' => 'Administrative Contact', + 'tech' => 'Technical Contact', + 'zone' => 'Zone Contact', + 'domain.name' => 'Domain Name:', + 'domain.changed' => 'Last updated on', + 'domain.created' => 'Domain created on', + 'domain.expires' => 'Domain expires on' + ); + + return easy_parser($data_str, $items, 'dmy', false, false, true); + } + } +?> \ No newline at end of file diff --git a/all-in-one-wp-security/lib/whois/whois.gtld.alldomains.php b/all-in-one-wp-security/lib/whois/whois.gtld.alldomains.php new file mode 100644 index 0000000..01c7728 --- /dev/null +++ b/all-in-one-wp-security/lib/whois/whois.gtld.alldomains.php @@ -0,0 +1,49 @@ + 'Registrant:', + 'admin' => 'Administrative', + 'tech' => 'Technical', + 'domain.name' => 'Domain name:', + 'domain.sponsor' => 'Registrar:', + 'domain.nserver.' => 'Domain servers in listed order:' + ); + + return easy_parser($data_str, $items, 'ymd'); + } + } +?> \ No newline at end of file diff --git a/all-in-one-wp-security/lib/whois/whois.gtld.ascio.php b/all-in-one-wp-security/lib/whois/whois.gtld.ascio.php new file mode 100644 index 0000000..44fc19f --- /dev/null +++ b/all-in-one-wp-security/lib/whois/whois.gtld.ascio.php @@ -0,0 +1,51 @@ + 'Registrant:', + 'admin' => 'Administrative ', + 'tech' => 'Technical ', + 'domain.name' => 'Domain name:', + 'domain.nserver.' => 'Domain servers in listed order:', + 'domain.created' => 'Record created:', + 'domain.expires' => 'Record expires:', + 'domain.changed' => 'Record last updated:' + ); + + return easy_parser($data_str, $items, 'ymd',false,false,true); + } + } +?> \ No newline at end of file diff --git a/all-in-one-wp-security/lib/whois/whois.gtld.assorted.php b/all-in-one-wp-security/lib/whois/whois.gtld.assorted.php new file mode 100644 index 0000000..a6e30f6 --- /dev/null +++ b/all-in-one-wp-security/lib/whois/whois.gtld.assorted.php @@ -0,0 +1,51 @@ + 'Registrant:', + 'admin' => 'Administrative Contact:', + 'tech' => 'Technical Contact:', + 'domain.name' => 'Domain Name:', + 'domain.nserver.' => 'Domain servers in listed order:', + 'domain.created' => 'Record created on', + 'domain.expires' => 'Record expires on', + 'domain.changed' => 'Record last updated' + ); + + return easy_parser($data_str, $items, 'ymd',false,false,true); + } + } +?> \ No newline at end of file diff --git a/all-in-one-wp-security/lib/whois/whois.gtld.corporatedomains.php b/all-in-one-wp-security/lib/whois/whois.gtld.corporatedomains.php new file mode 100644 index 0000000..ad229d7 --- /dev/null +++ b/all-in-one-wp-security/lib/whois/whois.gtld.corporatedomains.php @@ -0,0 +1,53 @@ + 'Registrant:', + 'admin' => 'Administrative Contact', + 'tech' => 'Technical Contact', + 'zone' => 'Zone Contact', + 'domain.name' => 'Domain Name:', + 'domain.changed' => 'Last updated on', + 'domain.created' => 'Domain created on', + 'domain.expires' => 'Domain expires on', + 'domain.sponsor' => 'Registrar Name....:', + 'domain.nserver' => 'DNS Servers:' + ); + + return easy_parser($data_str, $items, 'dmy', false, false, true); + } + } +?> \ No newline at end of file diff --git a/all-in-one-wp-security/lib/whois/whois.gtld.directnic.php b/all-in-one-wp-security/lib/whois/whois.gtld.directnic.php new file mode 100644 index 0000000..511755e --- /dev/null +++ b/all-in-one-wp-security/lib/whois/whois.gtld.directnic.php @@ -0,0 +1,53 @@ + 'Registrant:', + 'admin' => 'Administrative Contact', + 'tech' => 'Technical Contact', + 'domain.name' => 'Domain Name:', + 'domain.sponsor' => 'Registration Service Provider:', + 'domain.nserver' => 'Domain servers in listed order:', + 'domain.changed' => 'Record last updated ', + 'domain.created' => 'Record created on ', + 'domain.expires' => 'Record expires on ', + '' => 'By submitting a WHOIS query' + ); + + return easy_parser($data_str, $items, 'mdy',false,false,true); + } + } +?> \ No newline at end of file diff --git a/all-in-one-wp-security/lib/whois/whois.gtld.domaindiscover.php b/all-in-one-wp-security/lib/whois/whois.gtld.domaindiscover.php new file mode 100644 index 0000000..00f3d0f --- /dev/null +++ b/all-in-one-wp-security/lib/whois/whois.gtld.domaindiscover.php @@ -0,0 +1,51 @@ + 'Registrant:', + 'admin' => 'Administrative Contact', + 'tech' => 'Technical Contact', + 'zone' => 'Zone Contact', + 'domain.name' => 'Domain Name:', + 'domain.changed' => 'Last updated on', + 'domain.created' => 'Domain created on', + 'domain.expires' => 'Domain expires on' + ); + + return easy_parser($data_str, $items, 'dmy', false, false, true); + } + } +?> \ No newline at end of file diff --git a/all-in-one-wp-security/lib/whois/whois.gtld.domainpeople.php b/all-in-one-wp-security/lib/whois/whois.gtld.domainpeople.php new file mode 100644 index 0000000..c9ee5c3 --- /dev/null +++ b/all-in-one-wp-security/lib/whois/whois.gtld.domainpeople.php @@ -0,0 +1,59 @@ + 'Registrant Contact:', + 'admin' => 'Administrative Contact:', + 'tech' => 'Technical Contact:', + 'domain.name' => 'Domain name:', + 'domain.sponsor' => 'Registration Service Provided By:', + 'domain.referrer' => 'Contact:', + 'domain.nserver.' => 'Name Servers:', + 'domain.created' => 'Creation date:', + 'domain.expires' => 'Expiration date:', +// 'domain.changed' => 'Record last updated on', + 'domain.status' => 'Status:' + ); + + $r = easy_parser($data_str, $items, 'dmy', false, false, true); + if (isset($r['domain']['sponsor']) && is_array($r['domain']['sponsor'])) + $r['domain']['sponsor'] = $r['domain']['sponsor'][0]; + return $r; + } + } +?> \ No newline at end of file diff --git a/all-in-one-wp-security/lib/whois/whois.gtld.dotster.php b/all-in-one-wp-security/lib/whois/whois.gtld.dotster.php new file mode 100644 index 0000000..eec492a --- /dev/null +++ b/all-in-one-wp-security/lib/whois/whois.gtld.dotster.php @@ -0,0 +1,53 @@ + 'Registrant:', + 'admin' => 'Administrative', + 'tech' => 'Technical', + 'domain.nserver' => + 'Domain servers in listed order:', + 'domain.name' => 'Domain name:', + 'domain.created' => 'Created on:', + 'domain.expires' => 'Expires on:', + 'domain.changed' => 'Last Updated on:', + 'domain.sponsor' => 'Registrar:' + ); + + return easy_parser($data_str, $items, 'dmy'); + } + } +?> \ No newline at end of file diff --git a/all-in-one-wp-security/lib/whois/whois.gtld.dreamhost.php b/all-in-one-wp-security/lib/whois/whois.gtld.dreamhost.php new file mode 100644 index 0000000..38455cd --- /dev/null +++ b/all-in-one-wp-security/lib/whois/whois.gtld.dreamhost.php @@ -0,0 +1,54 @@ + 'Registrant Contact:', + 'admin' => 'Administrative Contact:', + 'tech' => 'Technical Contact:', + 'billing' => 'Billing Contact:', + 'domain.name' => 'Domain Name:', + 'domain.nserver' => 'Domain servers in listed order:', + 'domain.created' => 'Record created on', + 'domain.expires' => 'Record expires on' + ); + + $r = easy_parser($data_str, $items, 'dmy', false, false, true); + if (isset($r['domain']['sponsor']) && is_array($r['domain']['sponsor'])) + $r['domain']['sponsor'] = $r['domain']['sponsor'][0]; + return $r; + } + } +?> diff --git a/all-in-one-wp-security/lib/whois/whois.gtld.enom.php b/all-in-one-wp-security/lib/whois/whois.gtld.enom.php new file mode 100644 index 0000000..0510bcc --- /dev/null +++ b/all-in-one-wp-security/lib/whois/whois.gtld.enom.php @@ -0,0 +1,62 @@ + 'Registrant Contact', + 'owner#1' => 'REGISTRANT Contact:', + 'admin#0' => 'Administrative Contact', + 'admin#1' => 'ADMINISTRATIVE Contact:', + 'tech#0' => 'Technical Contact', + 'tech#1' => 'TECHNICAL Contact:', + 'billing#0' => 'Billing Contact', + 'billing#1' => 'BILLING Contact:', + 'domain.nserver' => 'Nameservers', + 'domain.name#0' => 'Domain name:', + 'domain.name#1' => 'Domain name-', + 'domain.sponsor' => 'Registration Service Provided By:', + 'domain.status' => 'Status:', + 'domain.created#0' => 'Creation date:', + 'domain.expires#0' => 'Expiration date:', + 'domain.created#1' => 'Created:', + 'domain.expires#1' => 'Expires:', + 'domain.created#2' => 'Start of registration-', + 'domain.expires#2' => 'Registered through-' + ); + + return easy_parser($data_str, $items, 'dmy', false, false, true); + } + } +?> \ No newline at end of file diff --git a/all-in-one-wp-security/lib/whois/whois.gtld.fabulous.php b/all-in-one-wp-security/lib/whois/whois.gtld.fabulous.php new file mode 100644 index 0000000..d7094b8 --- /dev/null +++ b/all-in-one-wp-security/lib/whois/whois.gtld.fabulous.php @@ -0,0 +1,54 @@ + 'Domain '.$query.':', + 'admin' => 'Administrative contact:', + 'tech' => 'Technical contact:', + 'billing' => 'Billing contact:', + '' => 'Record dates:' + ); + + $r = easy_parser($data_str, $items, 'mdy',false,false,true); + + if (!isset($r['tech'])) $r['tech'] = $r['billing']; + + if (!isset($r['admin'])) $r['admin'] = $r['tech']; + + return $r; + } + } +?> \ No newline at end of file diff --git a/all-in-one-wp-security/lib/whois/whois.gtld.fastdomain.php b/all-in-one-wp-security/lib/whois/whois.gtld.fastdomain.php new file mode 100644 index 0000000..819083c --- /dev/null +++ b/all-in-one-wp-security/lib/whois/whois.gtld.fastdomain.php @@ -0,0 +1,78 @@ + 'Registrant Info:', + 'admin' => 'Administrative Info:', + 'tech' => 'Technical Info:', + 'domain.name' => 'Domain Name:', + 'domain.sponsor' => 'Provider Name....:', + 'domain.referrer' => 'Provider Homepage:', + 'domain.nserver' => 'Domain servers in listed order:', + 'domain.created' => 'Created on..............:', + 'domain.expires' => 'Expires on..............:', + 'domain.changed' => 'Last modified on........:', + 'domain.status' => 'Status:' + ); + + while (list($key, $val) = each($data_str)) + { + $faststr = strpos($val, ' (FAST-'); + if ($faststr) + $data_str[$key] = substr($val, 0, $faststr); + } + + $r = easy_parser($data_str, $items, 'dmy', false, false, true); + + if (isset($r['domain']['sponsor']) && is_array($r['domain']['sponsor'])) + + $r['domain']['sponsor'] = $r['domain']['sponsor'][0]; + + if (isset($r['domain']['nserver'])) + { + reset($r['domain']['nserver']); + $endnserver = false; + while (list($key, $val) = each($r['domain']['nserver'])) + { + if ($val == '=-=-=-=') + unset($r['domain']['nserver'][$key]); + } + } + + return $r; + } + } +?> \ No newline at end of file diff --git a/all-in-one-wp-security/lib/whois/whois.gtld.gandi.php b/all-in-one-wp-security/lib/whois/whois.gtld.gandi.php new file mode 100644 index 0000000..bb513db --- /dev/null +++ b/all-in-one-wp-security/lib/whois/whois.gtld.gandi.php @@ -0,0 +1,56 @@ + 'owner-c', + 'admin' => 'admin-c', + 'tech' => 'tech-c', + 'billing' => 'bill-c' + ); + + $trans = array( + 'nic-hdl:' => 'handle', + 'person:' => 'name', + 'zipcode:' => 'address.pcode', + 'city:' => 'address.city', + 'lastupdated:' => 'changed', + 'owner-name:' => '' + ); + + return easy_parser($data_str, $items, 'dmy', $trans); + } + } +?> \ No newline at end of file diff --git a/all-in-one-wp-security/lib/whois/whois.gtld.genericb.php b/all-in-one-wp-security/lib/whois/whois.gtld.genericb.php new file mode 100644 index 0000000..9c240f0 --- /dev/null +++ b/all-in-one-wp-security/lib/whois/whois.gtld.genericb.php @@ -0,0 +1,40 @@ + \ No newline at end of file diff --git a/all-in-one-wp-security/lib/whois/whois.gtld.godaddy.php b/all-in-one-wp-security/lib/whois/whois.gtld.godaddy.php new file mode 100644 index 0000000..5ede66a --- /dev/null +++ b/all-in-one-wp-security/lib/whois/whois.gtld.godaddy.php @@ -0,0 +1,56 @@ + 'Registrant:', + 'admin' => 'Administrative Contact', + 'tech' => 'Technical Contact', + 'domain.name' => 'Domain Name:', + 'domain.nserver.' => 'Domain servers in listed order:', + 'domain.created' => 'Created on:', + 'domain.expires' => 'Expires on:', + 'domain.changed' => 'Last Updated on:', + 'domain.sponsor' => 'Registered through:' + ); + + $r = get_blocks($data_str, $items); + $r['owner'] = get_contact($r['owner']); + $r['admin'] = get_contact($r['admin'],false,true); + $r['tech'] = get_contact($r['tech'],false,true); + return format_dates($r, 'dmy'); + } + } +?> \ No newline at end of file diff --git a/all-in-one-wp-security/lib/whois/whois.gtld.iana.php b/all-in-one-wp-security/lib/whois/whois.gtld.iana.php new file mode 100644 index 0000000..3f8694f --- /dev/null +++ b/all-in-one-wp-security/lib/whois/whois.gtld.iana.php @@ -0,0 +1,51 @@ + 'contact: administrative', + 'tech' => 'contact: technical', + 'domain.nserver.' => 'nserver:', + 'domain.created' => 'created:', + 'domain.changed' => 'changed:', + 'domain.source' => 'source:', + 'domain.name' => 'domain:', + 'disclaimer.' => '% ' + ); + + return easy_parser($data_str,$items,'Ymd',false,false,false,'owner'); + } + } +?> \ No newline at end of file diff --git a/all-in-one-wp-security/lib/whois/whois.gtld.interdomain.php b/all-in-one-wp-security/lib/whois/whois.gtld.interdomain.php new file mode 100644 index 0000000..1197b87 --- /dev/null +++ b/all-in-one-wp-security/lib/whois/whois.gtld.interdomain.php @@ -0,0 +1,80 @@ + 'domain.name', + 'Creation Date............' => 'domain.created', + 'Expiry Date..............' => 'domain.expires', + 'Last Update Date.........' => 'domain.changed', + 'Name Server.............' => 'domain.nserver.', + 'Organization Name........' => 'owner.name', + 'Organization Org.........' => 'owner.organization', + 'Organization Street......' => 'owner.address.street', + 'Organization City........' => 'owner.address.city', + 'Organization State.......' => 'owner.address.state', + 'Organization PC..........' => 'owner.address.pcode', + 'Organization Country.....' => 'owner.address.country', + 'Organization Phone.......' => 'owner.phone', + 'Organization e-mail......' => 'owner.email', + 'Organization Contact Id....' => 'owner.handle', + 'Administrative Contact Id..' => 'admin.handle', + 'Administrative Name......' => 'admin.name', + 'Administrative Org.......' => 'admin.organization', + 'Administrative Street....' => 'admin.address.street', + 'Administrative City......' => 'admin.address.city', + 'Administrative State.....' => 'admin.address.state', + 'Administrative PC........' => 'admin.address.pcode', + 'Administrative Country...' => 'admin.address.country', + 'Administrative Phone.....' => 'admin.phone', + 'Administrative e-mail....' => 'admin.email', + 'Administrative Fax.......' => 'admin.fax', + 'Technical Contact Id.......' => 'tech.handle', + 'Technical Name...........' => 'tech.name', + 'Technical Org............' => 'tech.organization', + 'Technical Street.........' => 'tech.address.street', + 'Technical City...........' => 'tech.address.city', + 'Technical State..........' => 'tech.address.state', + 'Technical PC.............' => 'tech.address.pcode', + 'Technical Country........' => 'tech.address.country', + 'Technical Phone..........' => 'tech.phone', + 'Technical e-mail.........' => 'tech.email', + 'Technical Fax............' => 'tech.fax' + ); + + return generic_parser_b($data_str, $items, 'dmy'); + } + } +?> \ No newline at end of file diff --git a/all-in-one-wp-security/lib/whois/whois.gtld.itsyourdomain.php b/all-in-one-wp-security/lib/whois/whois.gtld.itsyourdomain.php new file mode 100644 index 0000000..7d20253 --- /dev/null +++ b/all-in-one-wp-security/lib/whois/whois.gtld.itsyourdomain.php @@ -0,0 +1,52 @@ + 'Registrant', + 'admin' => 'Administrative', + 'tech' => 'Technical', + 'billing' => 'Billing', + 'domain.name' => 'Domain:', + 'domain.nserver.' => 'Domain Name Servers:', + 'domain.created' => 'Record created on ', + 'domain.expires' => 'Record expires on ', + 'domain.changed' => 'Record last updated on ' + ); + + return easy_parser($data_str, $items, 'mdy'); + } + } +?> \ No newline at end of file diff --git a/all-in-one-wp-security/lib/whois/whois.gtld.joker.php b/all-in-one-wp-security/lib/whois/whois.gtld.joker.php new file mode 100644 index 0000000..9168e90 --- /dev/null +++ b/all-in-one-wp-security/lib/whois/whois.gtld.joker.php @@ -0,0 +1,78 @@ + 'handle', + 'modified' => 'changed', + 'reseller' => 'sponsor', + 'address' => 'address.street', + 'postal-code' => 'address.pcode', + 'city' => 'address.city', + 'state' => 'address.state', + 'country' => 'address.country', + 'person' => 'name', + 'domain' => 'name' + ); + + $contacts = array( + 'admin-c' => 'admin', + 'tech-c' => 'tech', + 'billing-c' => 'billing' + ); + + $items = array( + 'owner' => 'name', + 'organization' => 'organization', + 'email' => 'email', + 'phone' => 'phone', + 'address' => 'address', + ); + + $r = generic_parser_a($data_str, $translate, $contacts, 'domain', 'Ymd'); + + foreach($items as $tag => $convert) + { + if (isset($r['domain'][$tag])) + { + $r['owner'][$convert] = $r['domain'][$tag]; + unset($r['domain'][$tag]); + } + } + + return $r; + } + } +?> \ No newline at end of file diff --git a/all-in-one-wp-security/lib/whois/whois.gtld.markmonitor.php b/all-in-one-wp-security/lib/whois/whois.gtld.markmonitor.php new file mode 100644 index 0000000..f43cf18 --- /dev/null +++ b/all-in-one-wp-security/lib/whois/whois.gtld.markmonitor.php @@ -0,0 +1,55 @@ + 'Registrant:', + 'admin' => 'Administrative Contact:', + 'tech' => 'Technical Contact, Zone Contact:', + 'domain.name' => 'Domain Name:', + 'domain.sponsor' => 'Registrar Name:', + 'domain.nserver' => 'Domain servers in listed order:', + 'domain.created' => 'Created on..............:', + 'domain.expires' => 'Expires on..............:', + 'domain.changed' => 'Record last updated on..:' + ); + + $r = easy_parser($data_str, $items, 'dmy', false, false, true); + if (isset($r['domain']['sponsor']) && is_array($r['domain']['sponsor'])) + $r['domain']['sponsor'] = $r['domain']['sponsor'][0]; + return $r; + } + } +?> \ No newline at end of file diff --git a/all-in-one-wp-security/lib/whois/whois.gtld.melbourneit.php b/all-in-one-wp-security/lib/whois/whois.gtld.melbourneit.php new file mode 100644 index 0000000..bbddd4c --- /dev/null +++ b/all-in-one-wp-security/lib/whois/whois.gtld.melbourneit.php @@ -0,0 +1,59 @@ + 'domain.name', + 'Registration Date....' => 'domain.created', + 'Expiry Date..........' => 'domain.expires', + 'Organisation Name....' => 'owner.name', + 'Organisation Address.' => 'owner.address.', + 'Admin Name...........' => 'admin.name', + 'Admin Address........' => 'admin.address.', + 'Admin Email..........' => 'admin.email', + 'Admin Phone..........' => 'admin.phone', + 'Admin Fax............' => 'admin.fax', + 'Tech Name............' => 'tech.name', + 'Tech Address.........' => 'tech.address.', + 'Tech Email...........' => 'tech.email', + 'Tech Phone...........' => 'tech.phone', + 'Tech Fax.............' => 'tech.fax', + 'Name Server..........' => 'domain.nserver.' + ); + + return generic_parser_b($data_str, $items, 'ymd'); + } + } +?> \ No newline at end of file diff --git a/all-in-one-wp-security/lib/whois/whois.gtld.moniker.php b/all-in-one-wp-security/lib/whois/whois.gtld.moniker.php new file mode 100644 index 0000000..0824f9e --- /dev/null +++ b/all-in-one-wp-security/lib/whois/whois.gtld.moniker.php @@ -0,0 +1,52 @@ + 'Registrant', + 'admin' => 'Administrative ', + 'tech' => 'Technical ', + 'billing' => 'Billing ', + 'domain.name' => 'Domain Name:', + 'domain.nserver.' => 'Domain servers in listed order:', + 'domain.created' => 'Record created on: ', + 'domain.expires' => 'Domain Expires on: ', + 'domain.changed' => 'Database last updated on: ' + ); + + return easy_parser($data_str, $items, 'ymd'); + } + } +?> \ No newline at end of file diff --git a/all-in-one-wp-security/lib/whois/whois.gtld.namejuice.php b/all-in-one-wp-security/lib/whois/whois.gtld.namejuice.php new file mode 100644 index 0000000..7bf898f --- /dev/null +++ b/all-in-one-wp-security/lib/whois/whois.gtld.namejuice.php @@ -0,0 +1,53 @@ + 'Registrant Contact:', + 'admin' => 'Administrative Contact:', + 'tech' => 'Technical Contact:', + 'domain.name' => 'Domain name:', + 'domain.nserver.' => 'Name Servers:', + 'domain.created' => 'Creation date:', + 'domain.expires' => 'Expiration date:', + 'domain.changed' => 'Update date:', + 'domain.status' => 'Status:', + 'domain.sponsor' => 'Registration Service Provided By:' + ); + + return easy_parser($data_str, $items, 'dmy', false, true, true); + } + } +?> \ No newline at end of file diff --git a/all-in-one-wp-security/lib/whois/whois.gtld.nameking.php b/all-in-one-wp-security/lib/whois/whois.gtld.nameking.php new file mode 100644 index 0000000..49680a1 --- /dev/null +++ b/all-in-one-wp-security/lib/whois/whois.gtld.nameking.php @@ -0,0 +1,70 @@ + 'Registrant', + 'admin' => 'Admin Contact', + 'tech' => 'Tech Contact', + 'billing' => 'Billing Contact', + 'domain.sponsor' => 'Registration Provided By:', + 'domain.created' => 'Creation Date:', + 'domain.expires' => 'Expiration Date:', + ); + + $extra = array( + 'tel--' => 'phone', + 'tel:' => 'phone', + 'tel --:' => 'phone', + 'email-:' => 'email', + 'email:' => 'email', + 'mail:' => 'email', + 'name--' => 'name', + 'org:' => 'organization', + 'zipcode:' => 'address.pcode', + 'postcode:' => 'address.pcode', + 'address:' => 'address.street', + 'city:' => 'address.city', + 'province:' => 'address.city.', + ',province:' => '', + ',country:' => 'address.country', + 'organization:' => 'organization', + 'city, province, post code:' => 'address.city' + ); + + return easy_parser($data_str, $items, 'mdy', $extra, false, true); + } + } +?> \ No newline at end of file diff --git a/all-in-one-wp-security/lib/whois/whois.gtld.names4ever.php b/all-in-one-wp-security/lib/whois/whois.gtld.names4ever.php new file mode 100644 index 0000000..3cd046e --- /dev/null +++ b/all-in-one-wp-security/lib/whois/whois.gtld.names4ever.php @@ -0,0 +1,54 @@ + 'Registrant:', + 'admin' => 'Administrative Contact', + 'tech' => 'Technical Contact', + 'domain.name' => 'Domain Name:', + 'domain.sponsor' => 'Registrar Name....:', + 'domain.referrer' => 'Registrar Homepage:', + 'domain.nserver' => 'DNS Servers:', + 'domain.created' => 'Record created on', + 'domain.expires' => 'Record expires on', + 'domain.changed' => 'Record last updated on', + 'domain.status' => 'Domain status:' + ); + + return easy_parser($data_str, $items, 'dmy', false, false, true); + } + } +?> \ No newline at end of file diff --git a/all-in-one-wp-security/lib/whois/whois.gtld.namevault.php b/all-in-one-wp-security/lib/whois/whois.gtld.namevault.php new file mode 100644 index 0000000..a8199cf --- /dev/null +++ b/all-in-one-wp-security/lib/whois/whois.gtld.namevault.php @@ -0,0 +1,52 @@ + 'Registrant', + 'admin' => 'Administrative Contact:', + 'tech' => 'Technical Contact:', + 'billing' => 'Billing Contact:', + 'domain.name' => 'Domain Name:', + 'domain.nserver.' => 'Name Servers', + 'domain.created' => 'Creation Date:', + 'domain.expires' => 'Expiration Date:', + 'domain.status' => 'Status:' + ); + + return easy_parser($data_str, $items, 'dmy', false, true, true); + } + } +?> \ No newline at end of file diff --git a/all-in-one-wp-security/lib/whois/whois.gtld.networksolutions.php b/all-in-one-wp-security/lib/whois/whois.gtld.networksolutions.php new file mode 100644 index 0000000..c5ec38f --- /dev/null +++ b/all-in-one-wp-security/lib/whois/whois.gtld.networksolutions.php @@ -0,0 +1,50 @@ + 'Registrant:', + 'admin' => 'Administrative Contact', + 'tech' => 'Technical Contact', + 'domain.name' => 'Domain Name:', + 'domain.nserver.' => 'Domain servers in listed order:', + 'domain.created' => 'Record created on', + 'domain.expires' => 'Record expires on' + ); + + return easy_parser($data_str, $items, 'dmy',false,true,true); + } + } +?> \ No newline at end of file diff --git a/all-in-one-wp-security/lib/whois/whois.gtld.nicco.php b/all-in-one-wp-security/lib/whois/whois.gtld.nicco.php new file mode 100644 index 0000000..dc1fd4b --- /dev/null +++ b/all-in-one-wp-security/lib/whois/whois.gtld.nicco.php @@ -0,0 +1,62 @@ + 'Holder Contact', + 'admin' => 'Admin Contact', + 'tech' => 'Tech. Contact', + 'domain.nserver.' => 'Nameservers', + 'domain.created' => 'Creation Date:', + 'domain.expires' => 'Expiration Date:' + ); + + $translate = array( + 'city:' => 'address.city', + 'org. name:' => 'organization', + 'address1:' => 'address.street.', + 'address2:' => 'address.street.', + 'state:' => 'address.state', + 'postal code:' => 'address.zip' + ); + + $r = get_blocks($data_str, $items, true); + $r['owner'] = get_contact($r['owner'],$translate); + $r['admin'] = get_contact($r['admin'],$translate,true); + $r['tech'] = get_contact($r['tech'],$translate,true); + return format_dates($r, 'dmy'); + } + } +?> \ No newline at end of file diff --git a/all-in-one-wp-security/lib/whois/whois.gtld.nicline.php b/all-in-one-wp-security/lib/whois/whois.gtld.nicline.php new file mode 100644 index 0000000..77bbbfd --- /dev/null +++ b/all-in-one-wp-security/lib/whois/whois.gtld.nicline.php @@ -0,0 +1,51 @@ + 'Registrant:', + 'admin' => 'Administrative contact:', + 'tech' => 'Technical contact:', + 'domain.name' => 'Domain name:', + 'domain.nserver.' => 'Domain servers in listed order:', + 'domain.created' => 'Created:', + 'domain.expires' => 'Expires:', + 'domain.changed' => 'Last updated:' + ); + + return easy_parser($data_str, $items, 'dmy'); + } + } +?> \ No newline at end of file diff --git a/all-in-one-wp-security/lib/whois/whois.gtld.onlinenic.php b/all-in-one-wp-security/lib/whois/whois.gtld.onlinenic.php new file mode 100644 index 0000000..8bfe88d --- /dev/null +++ b/all-in-one-wp-security/lib/whois/whois.gtld.onlinenic.php @@ -0,0 +1,83 @@ + 'Registrant:', + 'admin' => 'Administrator:', + 'tech' => 'Technical Contactor:', + 'billing' => 'Billing Contactor:', + 'domain.name' => 'Domain name:', + 'domain.name#' => 'Domain Name:', + 'domain.nserver' => 'Domain servers in listed order:', + 'domain.created' => 'Record created on ', + 'domain.expires' => 'Record expired on ', + 'domain.changed' => 'Record last updated at ' + ); + + $extra = array( + 'tel--' => 'phone', + 'tel:' => 'phone', + 'tel --:' => 'phone', + 'email-:' => 'email', + 'email:' => 'email', + 'mail:' => 'email', + 'name--' => 'name', + 'org:' => 'organization', + 'zipcode:' => 'address.pcode', + 'postcode:' => 'address.pcode', + 'address:' => 'address.street', + 'city:' => 'address.city', + 'province:' => '', + ',province:' => '', + ',country:' => 'address.country' + ); + + $r = easy_parser($data_str, $items, 'mdy',$extra,false,true); + + foreach($r as $key => $part) + if (isset($part['email'])) + { + @list($email,$phone) = explode(' ',$part['email']); + $email = str_replace('(','',$email); + $email = str_replace(')','',$email); + $r[$key]['email'] = $email; + if ($phone != '') $r[$key]['phone'] = $phone; + } + + return $r; + } + } +?> \ No newline at end of file diff --git a/all-in-one-wp-security/lib/whois/whois.gtld.opensrs.php b/all-in-one-wp-security/lib/whois/whois.gtld.opensrs.php new file mode 100644 index 0000000..cdf21a5 --- /dev/null +++ b/all-in-one-wp-security/lib/whois/whois.gtld.opensrs.php @@ -0,0 +1,58 @@ + 'Registrant:', + 'admin' => 'Administrative Contact', + 'tech' => 'Technical Contact', + 'domain.name' => 'Domain name:', + '' => 'Registration Service Provider:', + 'domain.nserver' => 'Domain servers in listed order:', + 'domain.changed' => 'Record last updated on', + 'domain.created' => 'Record created on', + 'domain.expires' => 'Record expires on', + 'domain.sponsor' => 'Registrar of Record:' + ); + + $r = easy_parser($data_str, $items, 'dmy', false, false, true); + + if (isset($r['domain']['sponsor']) && is_array($r['domain']['sponsor'])) + $r['domain']['sponsor'] = $r['domain']['sponsor'][0]; + + return $r; + } + } +?> \ No newline at end of file diff --git a/all-in-one-wp-security/lib/whois/whois.gtld.ovh.php b/all-in-one-wp-security/lib/whois/whois.gtld.ovh.php new file mode 100644 index 0000000..df6ee71 --- /dev/null +++ b/all-in-one-wp-security/lib/whois/whois.gtld.ovh.php @@ -0,0 +1,51 @@ + 'Registrant:', + 'admin' => 'Administrative Contact:', + 'tech' => 'Technical Contact:', + 'billing' => 'Billing Contact:', + 'domain.sponsor' => 'Registrar of Record:', + 'domain.changed' => 'Record last updated on', + 'domain.expires' => 'Record expires on', + 'domain.created' => 'Record created on' + ); + + return easy_parser($data_str, $items, 'mdy',false,false,true); + } + } +?> \ No newline at end of file diff --git a/all-in-one-wp-security/lib/whois/whois.gtld.php b/all-in-one-wp-security/lib/whois/whois.gtld.php new file mode 100644 index 0000000..d16cef1 --- /dev/null +++ b/all-in-one-wp-security/lib/whois/whois.gtld.php @@ -0,0 +1,81 @@ + 'regrinfo.domain.name', + 'Registrar:' => 'regyinfo.registrar', + 'Whois Server:' => 'regyinfo.whois', + 'Referral URL:' => 'regyinfo.referrer', + 'Name Server:' => 'regrinfo.domain.nserver.', // identical descriptors + 'Updated Date:' => 'regrinfo.domain.changed', + 'Last Updated On:' => 'regrinfo.domain.changed', + 'EPP Status:' => 'regrinfo.domain.epp_status.', + 'Status:' => 'regrinfo.domain.status.', + 'Creation Date:' => 'regrinfo.domain.created', + 'Created On:' => 'regrinfo.domain.created', + 'Expiration Date:' => 'regrinfo.domain.expires', + 'Updated Date:' => 'regrinfo.domain.changed', + 'No match for ' => 'nodomain' + ); + + function parse($data, $query) + { + $this->Query = array(); + $this->SUBVERSION = sprintf('%s-%s', $query['handler'], $this->HANDLER_VERSION); + $this->result = generic_parser_b($data['rawdata'], $this->REG_FIELDS, 'dmy'); + + unset($this->result['registered']); + + if (isset($this->result['nodomain'])) + { + unset($this->result['nodomain']); + $this->result['regrinfo']['registered'] = 'no'; + return $this->result; + } + + if ($this->deep_whois) $this->result = $this->DeepWhois($query,$this->result); + + // Next server could fail to return data + if (empty($this->result['rawdata']) || count($this->result['rawdata']) < 3) + $this->result['rawdata'] = $data['rawdata']; + + // Domain is registered no matter what next server says + $this->result['regrinfo']['registered'] = 'yes'; + + return $this->result; + } + } +?> \ No newline at end of file diff --git a/all-in-one-wp-security/lib/whois/whois.gtld.psiusa.php b/all-in-one-wp-security/lib/whois/whois.gtld.psiusa.php new file mode 100644 index 0000000..6a266a8 --- /dev/null +++ b/all-in-one-wp-security/lib/whois/whois.gtld.psiusa.php @@ -0,0 +1,90 @@ + 'domain.created', + 'last-changed:' => 'domain.changed', + 'status:' => 'domain.status', + '[owner-c] fname:' => 'owner.name.first', + '[owner-c] lname:' => 'owner.name.last', + '[owner-c] org:' => 'owner.organization', + '[owner-c] address:' => 'owner.address.street', + '[owner-c] city:' => 'owner.address.city', + '[owner-c] pcode:' => 'owner.address.pcode', + '[owner-c] country:' => 'owner.address.country', + '[owner-c] state:' => 'owner.address.state', + '[owner-c] phone:' => 'owner.phone', + '[owner-c] fax:' => 'owner.fax', + '[owner-c] email:' => 'owner.email', + '[admin-c] fname:' => 'admin.name.first', + '[admin-c] lname:' => 'admin.name.last', + '[admin-c] org:' => 'admin.organization', + '[admin-c] address:' => 'admin.address.street', + '[admin-c] city:' => 'admin.address.city', + '[admin-c] pcode:' => 'admin.address.pcode', + '[admin-c] country:' => 'admin.address.country', + '[admin-c] state:' => 'admin.address.state', + '[admin-c] phone:' => 'admin.phone', + '[admin-c] fax:' => 'admin.fax', + '[admin-c] email:' => 'admin.email', + '[tech-c] fname:' => 'tech.name.first', + '[tech-c] lname:' => 'tech.name.last', + '[tech-c] org:' => 'tech.organization', + '[tech-c] address:' => 'tech.address.street', + '[tech-c] city:' => 'tech.address.city', + '[tech-c] pcode:' => 'tech.address.pcode', + '[tech-c] country:' => 'tech.address.country', + '[tech-c] state:' => 'tech.address.state', + '[tech-c] phone:' => 'tech.phone', + '[tech-c] fax:' => 'tech.fax', + '[tech-c] email:' => 'tech.email', + '[zone-c] fname:' => 'zone.name.first', + '[zone-c] lname:' => 'zone.name.last', + '[zone-c] org:' => 'zone.organization', + '[zone-c] address:' => 'zone.address.street', + '[zone-c] city:' => 'zone.address.city', + '[zone-c] pcode:' => 'zone.address.pcode', + '[zone-c] country:' => 'zone.address.country', + '[zone-c] state:' => 'zone.address.state', + '[zone-c] phone:' => 'zone.phone', + '[zone-c] fax:' => 'zone.fax', + '[zone-c] email:' => 'zone.email', + ); + + return generic_parser_b($data_str, $items); + } + } +?> \ No newline at end of file diff --git a/all-in-one-wp-security/lib/whois/whois.gtld.publicdomainregistry.php b/all-in-one-wp-security/lib/whois/whois.gtld.publicdomainregistry.php new file mode 100644 index 0000000..3982552 --- /dev/null +++ b/all-in-one-wp-security/lib/whois/whois.gtld.publicdomainregistry.php @@ -0,0 +1,57 @@ + 'Registrant:', + 'owner#' => '(Registrant):', + 'admin' => 'Administrative Contact', + 'tech' => 'Technical Contact', + 'billing' => 'Billing Contact', + 'domain.name' => 'Domain name:', + 'domain.sponsor' => 'Registration Service Provided By:', + 'domain.nserver' => 'Domain servers in listed order:', + 'domain.changed' => 'Record last updated ', + 'domain.created' => 'Record created on', + 'domain.created#' => 'Creation Date:', + 'domain.expires' => 'Record expires on', + 'domain.expires#' => 'Expiration Date:', + 'domain.status' => 'Status:' + ); + + return easy_parser($data_str, $items, 'mdy', false, true, true); + } + } +?> \ No newline at end of file diff --git a/all-in-one-wp-security/lib/whois/whois.gtld.register.php b/all-in-one-wp-security/lib/whois/whois.gtld.register.php new file mode 100644 index 0000000..51f3169 --- /dev/null +++ b/all-in-one-wp-security/lib/whois/whois.gtld.register.php @@ -0,0 +1,62 @@ + 'Registrant Info:', + 'owner#1' => 'Organization:', + 'owner#2' => 'Registrant:', + 'owner#3' => 'Registrant Contact:', + 'admin' => 'Administrative', + 'tech' => 'Technical', + 'zone' => 'Zone', + 'domain.sponsor#0' => 'Registrar Name....:', + 'domain.sponsor#1' => 'Registration Service Provided By:', + 'domain.referrer' => 'Registrar Homepage:', + 'domain.nserver' => 'Domain servers in listed order:', + 'domain.nserver' => 'DNS Servers:', + 'domain.name' => 'Domain name:', + 'domain.created#0' => 'Created on..............:', + 'domain.created#1' => 'Creation date:', + 'domain.expires#0' => 'Expires on..............:', + 'domain.expires#1' => 'Expiration date:', + 'domain.changed' => 'Record last updated on..:', + 'domain.status' => 'Status:' + ); + + return easy_parser($data_str, $items, 'ymd'); + } + } +?> \ No newline at end of file diff --git a/all-in-one-wp-security/lib/whois/whois.gtld.rrpproxy.php b/all-in-one-wp-security/lib/whois/whois.gtld.rrpproxy.php new file mode 100644 index 0000000..2a81430 --- /dev/null +++ b/all-in-one-wp-security/lib/whois/whois.gtld.rrpproxy.php @@ -0,0 +1,92 @@ + 'domain.created', + 'updated-date:' => 'domain.changed', + 'registration-expiration-date:' => 'domain.expires', + 'RSP:' => 'domain.sponsor', + 'URL:' => 'domain.referrer', + 'owner-nom.contact:' => 'owner.handle', + 'owner-fname:' => 'owner.name.first', + 'owner-lname:' => 'owner.name.last', + 'owner-organization:' => 'owner.organization', + 'owner-street:' => 'owner.address.street', + 'owner-city:' => 'owner.address.city', + 'owner-zip:' => 'owner.address.pcode', + 'owner-country:' => 'owner.address.country', + 'owner-phone:' => 'owner.phone', + 'owner-fax:' => 'owner.fax', + 'owner-email:' => 'owner.email', + 'admin-nom.contact:' => 'admin.handle', + 'admin-fname:' => 'admin.name.first', + 'admin-lname:' => 'admin.name.last', + 'admin-organization:' => 'admin.organization', + 'admin-street:' => 'admin.address.street', + 'admin-city:' => 'admin.address.city', + 'admin-zip:' => 'admin.address.pcode', + 'admin-country:' => 'admin.address.country', + 'admin-phone:' => 'admin.phone', + 'admin-fax:' => 'admin.fax', + 'admin-email:' => 'admin.email', + 'tech-nom.contact:' => 'tech.handle', + 'tech-fname:' => 'tech.name.first', + 'tech-lname:' => 'tech.name.last', + 'tech-organization:' => 'tech.organization', + 'tech-street:' => 'tech.address.street', + 'tech-city:' => 'tech.address.city', + 'tech-zip:' => 'tech.address.pcode', + 'tech-country:' => 'tech.address.country', + 'tech-phone:' => 'tech.phone', + 'tech-fax:' => 'tech.fax', + 'tech-email:' => 'tech.email', + 'billing-nom.contact:' => 'billing.handle', + 'billing-fname:' => 'billing.name.first', + 'billing-lname:' => 'billing.name.last', + 'billing-organization:' => 'billing.organization', + 'billing-street:' => 'billing.address.street', + 'billing-city:' => 'billing.address.city', + 'billing-zip:' => 'billing.address.pcode', + 'billing-country:' => 'billing.address.country', + 'billing-phone:' => 'billing.phone', + 'billing-fax:' => 'billing.fax', + 'billing-email:' => 'billing.email' + ); + + return generic_parser_b($data_str, $items); + } + } +?> \ No newline at end of file diff --git a/all-in-one-wp-security/lib/whois/whois.gtld.schlund.php b/all-in-one-wp-security/lib/whois/whois.gtld.schlund.php new file mode 100644 index 0000000..3de3fe6 --- /dev/null +++ b/all-in-one-wp-security/lib/whois/whois.gtld.schlund.php @@ -0,0 +1,86 @@ + 'domain.created', + 'last-changed:' => 'domain.changed', + 'status:' => 'domain.status', + 'registrant-firstname:' => 'owner.name.first', + 'registrant-lastname:' => 'owner.name.last', + 'registrant-organization:' => 'owner.organization', + 'registrant-street1:' => 'owner.address.street.', + 'registrant-street2:' => 'owner.address.street.', + 'registrant-pcode:' => 'owner.address.pcode', + 'registrant-city:' => 'owner.address.city', + 'registrant-ccode:' => 'owner.address.country', + 'registrant-phone:' => 'owner.phone', + 'registrant-email:' => 'owner.email', + 'admin-c-firstname:' => 'admin.name.first', + 'admin-c-lastname:' => 'admin.name.last', + 'admin-c-organization:' => 'admin.organization', + 'admin-c-street1:' => 'admin.address.street.', + 'admin-c-street2:' => 'admin.address.street.', + 'admin-c-pcode:' => 'admin.address.pcode', + 'admin-c-city:' => 'admin.address.city', + 'admin-c-ccode:' => 'admin.address.country', + 'admin-c-phone:' => 'admin.phone', + 'admin-c-email:' => 'admin.email', + 'tech-c-firstname:' => 'tech.name.first', + 'tech-c-lastname:' => 'tech.name.last', + 'tech-c-organization:' => 'tech.organization', + 'tech-c-street1:' => 'tech.address.street.', + 'tech-c-street2:' => 'tech.address.street.', + 'tech-c-pcode:' => 'tech.address.pcode', + 'tech-c-city:' => 'tech.address.city', + 'tech-c-ccode:' => 'tech.address.country', + 'tech-c-phone:' => 'tech.phone', + 'tech-c-email:' => 'tech.email', + 'bill-c-firstname:' => 'billing.name.first', + 'bill-c-lastname:' => 'billing.name.last', + 'bill-c-organization:' => 'billing.organization', + 'bill-c-street1:' => 'billing.address.street.', + 'bill-c-street2:' => 'billing.address.street.', + 'bill-c-pcode:' => 'billing.address.pcode', + 'bill-c-city:' => 'billing.address.city', + 'bill-c-ccode:' => 'billing.address.country', + 'bill-c-phone:' => 'billing.phone', + 'bill-c-email:' => 'billing.email' + ); + + return generic_parser_b($data_str, $items); + } + } +?> \ No newline at end of file diff --git a/all-in-one-wp-security/lib/whois/whois.gtld.srsplus.php b/all-in-one-wp-security/lib/whois/whois.gtld.srsplus.php new file mode 100644 index 0000000..1ab2c4e --- /dev/null +++ b/all-in-one-wp-security/lib/whois/whois.gtld.srsplus.php @@ -0,0 +1,51 @@ + 'Registrant:', + 'admin' => 'Administrative', + 'tech' => 'Technical', + 'billing' => 'Billing', + 'domain.name' => 'Domain Name:', + 'domain.nserver' => 'Domain servers:', + 'domain.created' => 'Record created on', + 'domain.expires' => 'Record expires on' + ); + + return easy_parser($data_str, $items, 'ymd',false,true,true); + } + } +?> \ No newline at end of file diff --git a/all-in-one-wp-security/lib/whois/whois.gtld.tmagnic.php b/all-in-one-wp-security/lib/whois/whois.gtld.tmagnic.php new file mode 100644 index 0000000..0df7bed --- /dev/null +++ b/all-in-one-wp-security/lib/whois/whois.gtld.tmagnic.php @@ -0,0 +1,52 @@ + 'Owner Contact:', + 'admin' => 'Admin Contact', + 'tech' => 'Technical Contact', + 'domain.name' => 'Domain Name:', + 'domain.nserver.' => 'Domain servers in listed order:', + 'domain.expires' => 'Record expires on: ', + 'domain.changed' => 'Record last updated on: ', + '' => 'Zone Contact', + '#' => 'Punycode Name:' + ); + + return easy_parser($data_str, $items, 'ymd',false,false,true); + } + } +?> \ No newline at end of file diff --git a/all-in-one-wp-security/lib/whois/whois.gtld.tvcorp.php b/all-in-one-wp-security/lib/whois/whois.gtld.tvcorp.php new file mode 100644 index 0000000..ee842e0 --- /dev/null +++ b/all-in-one-wp-security/lib/whois/whois.gtld.tvcorp.php @@ -0,0 +1,50 @@ + 'Registrant', + 'admin' => 'Admin', + 'tech' => 'Technical', + 'billing' => 'Billing', + 'domain.nserver.' => 'Domain servers:', + 'domain.created' => 'Record created on', + 'domain.expires' => 'Record expires on' + ); + + return easy_parser($data_str, $items, 'mdy'); + } + } +?> \ No newline at end of file diff --git a/all-in-one-wp-security/lib/whois/whois.gtld.wildwestdomains.php b/all-in-one-wp-security/lib/whois/whois.gtld.wildwestdomains.php new file mode 100644 index 0000000..22e692d --- /dev/null +++ b/all-in-one-wp-security/lib/whois/whois.gtld.wildwestdomains.php @@ -0,0 +1,52 @@ + 'Registrant:', + 'admin' => 'Administrative Contact:', + 'tech' => 'Technical Contact:', + 'domain.name' => 'Domain name:', + 'domain.sponsor'=> 'Registered through:', + 'domain.nserver' => 'Domain servers in listed order:', + 'domain.created' => 'Created on:', + 'domain.expires' => 'Expires on:', + 'domain.changed' => 'Last Updated on:' + ); + + return easy_parser($data_str, $items, 'mdy'); + } + } +?> \ No newline at end of file diff --git a/all-in-one-wp-security/lib/whois/whois.hu.php b/all-in-one-wp-security/lib/whois/whois.hu.php new file mode 100644 index 0000000..f8dd3ae --- /dev/null +++ b/all-in-one-wp-security/lib/whois/whois.hu.php @@ -0,0 +1,95 @@ + 'fax', + 'e-mail' => 'email', + 'hun-id' => 'handle', + 'person' => 'name', + 'nameserver' => 'nserver', + 'person' => 'name', + 'org' => 'organization', + 'registered' => 'created' + ); + + $contacts = array ( + 'registrar' => 'owner', + 'admin-c' => 'admin', + 'tech-c' => 'tech', + 'billing-c' => 'billing', + 'zone-c' => 'zone', + 'owner-hun-id' => 'owner' + ); + + // make those broken hungary comments standards-conforming + // replace first found hun-id with owner-hun-id (will be parsed later on) + // make output UTF-8 + + $comments = true; + $owner_id = true; + + foreach ($data_str['rawdata'] as $i => $val) + { + if ($comments) + { + if (strpos($data_str['rawdata'][$i],'domain:') === false) + { + if ($i) $data_str['rawdata'][$i] = '% '.$data_str['rawdata'][$i]; + } + else + $comments = false; + } + else + if ($owner_id && substr($data_str['rawdata'][$i],0,7) == 'hun-id:') + { + $data_str['rawdata'][$i] = 'owner-'.$data_str['rawdata'][$i]; + $owner_id = false; + } + } + + $reg = generic_parser_a($data_str['rawdata'],$translate,$contacts); + + unset($reg['domain']['organization']); + unset($reg['domain']['address']); + unset($reg['domain']['phone']); + unset($reg['domain']['fax']); + + $r['regrinfo'] = $reg; + $r['regyinfo'] = array('referrer'=>'http://www.nic.hu','registrar'=>'HUNIC'); + return format_dates($r,'ymd'); + } + } +?> \ No newline at end of file diff --git a/all-in-one-wp-security/lib/whois/whois.icon.png b/all-in-one-wp-security/lib/whois/whois.icon.png new file mode 100644 index 0000000000000000000000000000000000000000..b1e905ecf877fcf283b91cc3e68d951920381f54 GIT binary patch literal 571 zcmV-B0>u4^P)WdH}&2ptM777$EorvLx|2XskIMF-Ug9SSWsi6ohc00009a7bBm000XT z000XT0n*)m`~Uy|Ay7+aAGfsC%tIy`ybq*9hpiB0+a9v<}yd(VWpX zX-_#fd~M~c(kw+v?VlXm|1^!eT6WvGhdOqRLje6B&S)?k(Wnu5ho*EP=qgu+b!muY zSmV}pjxz>1*%hu_T$yF;GWukFSmr`onXL~_0bKZ_L5Eh-j}NFC7WO7oUL@wz06hbX}x!-*|=%evL8c@Gz-bStAYRk002ov JPDHLkV1i!%{Nexr literal 0 HcmV?d00001 diff --git a/all-in-one-wp-security/lib/whois/whois.idna.php b/all-in-one-wp-security/lib/whois/whois.idna.php new file mode 100644 index 0000000..ed2bae2 --- /dev/null +++ b/all-in-one-wp-security/lib/whois/whois.idna.php @@ -0,0 +1,969 @@ + + * @copyright 2004-2007 phlyLabs Berlin, http://phlylabs.de + * @version 0.5.1 + * + */ +class idna_convert +{ + /** + * Holds all relevant mapping tables, loaded from a seperate file on construct + * See RFC3454 for details + * + * @var array + * @access private + */ + var $NP = array(); + + // Internal settings, do not mess with them + var $_punycode_prefix = 'xn--'; + var $_invalid_ucs = 0x80000000; + var $_max_ucs = 0x10FFFF; + var $_base = 36; + var $_tmin = 1; + var $_tmax = 26; + var $_skew = 38; + var $_damp = 700; + var $_initial_bias = 72; + var $_initial_n = 0x80; + var $_sbase = 0xAC00; + var $_lbase = 0x1100; + var $_vbase = 0x1161; + var $_tbase = 0x11A7; + var $_lcount = 19; + var $_vcount = 21; + var $_tcount = 28; + var $_ncount = 588; // _vcount * _tcount + var $_scount = 11172; // _lcount * _tcount * _vcount + var $_error = false; + + // See {@link set_paramter()} for details of how to change the following + // settings from within your script / application + var $_api_encoding = 'utf8'; // Default input charset is UTF-8 + var $_allow_overlong = false; // Overlong UTF-8 encodings are forbidden + var $_strict_mode = false; // Behave strict or not + + // The constructor + function idna_convert($options = false) + { + $this->slast = $this->_sbase + $this->_lcount * $this->_vcount * $this->_tcount; + if (function_exists('file_get_contents')) { + $this->NP = unserialize(file_get_contents(dirname(__FILE__).'/npdata.ser')); + } else { + $this->NP = unserialize(join('', file(dirname(__FILE__).'/npdata.ser'))); + } + // If parameters are given, pass these to the respective method + if (is_array($options)) { + return $this->set_parameter($options); + } + return true; + } + + /** + * Sets a new option value. Available options and values: + * [encoding - Use either UTF-8, UCS4 as array or UCS4 as string as input ('utf8' for UTF-8, + * 'ucs4_string' and 'ucs4_array' respectively for UCS4); The output is always UTF-8] + * [overlong - Unicode does not allow unnecessarily long encodings of chars, + * to allow this, set this parameter to true, else to false; + * default is false.] + * [strict - true: strict mode, good for registration purposes - Causes errors + * on failures; false: loose mode, ideal for "wildlife" applications + * by silently ignoring errors and returning the original input instead + * + * @param mixed Parameter to set (string: single parameter; array of Parameter => Value pairs) + * @param string Value to use (if parameter 1 is a string) + * @return boolean true on success, false otherwise + * @access public + */ + function set_parameter($option, $value = false) + { + if (!is_array($option)) { + $option = array($option => $value); + } + foreach ($option as $k => $v) { + switch ($k) { + case 'encoding': + switch ($v) { + case 'utf8': + case 'ucs4_string': + case 'ucs4_array': + $this->_api_encoding = $v; + break; + default: + $this->_error('Set Parameter: Unknown parameter '.$v.' for option '.$k); + return false; + } + break; + case 'overlong': + $this->_allow_overlong = ($v) ? true : false; + break; + case 'strict': + $this->_strict_mode = ($v) ? true : false; + break; + default: + $this->_error('Set Parameter: Unknown option '.$k); + return false; + } + } + return true; + } + + /** + * Decode a given ACE domain name + * @param string Domain name (ACE string) + * [@param string Desired output encoding, see {@link set_parameter}] + * @return string Decoded Domain name (UTF-8 or UCS-4) + * @access public + */ + function decode($input, $one_time_encoding = false) + { + // Optionally set + if ($one_time_encoding) { + switch ($one_time_encoding) { + case 'utf8': + case 'ucs4_string': + case 'ucs4_array': + break; + default: + $this->_error('Unknown encoding '.$one_time_encoding); + return false; + } + } + // Make sure to drop any newline characters around + $input = trim($input); + + // Negotiate input and try to determine, whether it is a plain string, + // an email address or something like a complete URL + if (strpos($input, '@')) { // Maybe it is an email address + // No no in strict mode + if ($this->_strict_mode) { + $this->_error('Only simple domain name parts can be handled in strict mode'); + return false; + } + list ($email_pref, $input) = explode('@', $input, 2); + $arr = explode('.', $input); + foreach ($arr as $k => $v) { + if (preg_match('!^'.preg_quote($this->_punycode_prefix, '!').'!', $v)) { + $conv = $this->_decode($v); + if ($conv) $arr[$k] = $conv; + } + } + $input = join('.', $arr); + $arr = explode('.', $email_pref); + foreach ($arr as $k => $v) { + if (preg_match('!^'.preg_quote($this->_punycode_prefix, '!').'!', $v)) { + $conv = $this->_decode($v); + if ($conv) $arr[$k] = $conv; + } + } + $email_pref = join('.', $arr); + $return = $email_pref . '@' . $input; + } elseif (preg_match('![:\./]!', $input)) { // Or a complete domain name (with or without paths / parameters) + // No no in strict mode + if ($this->_strict_mode) { + $this->_error('Only simple domain name parts can be handled in strict mode'); + return false; + } + $parsed = parse_url($input); + if (isset($parsed['host'])) { + $arr = explode('.', $parsed['host']); + foreach ($arr as $k => $v) { + $conv = $this->_decode($v); + if ($conv) $arr[$k] = $conv; + } + $parsed['host'] = join('.', $arr); + $return = + (empty($parsed['scheme']) ? '' : $parsed['scheme'].(strtolower($parsed['scheme']) == 'mailto' ? ':' : '://')) + .(empty($parsed['user']) ? '' : $parsed['user'].(empty($parsed['pass']) ? '' : ':'.$parsed['pass']).'@') + .$parsed['host'] + .(empty($parsed['port']) ? '' : ':'.$parsed['port']) + .(empty($parsed['path']) ? '' : $parsed['path']) + .(empty($parsed['query']) ? '' : '?'.$parsed['query']) + .(empty($parsed['fragment']) ? '' : '#'.$parsed['fragment']); + } else { // parse_url seems to have failed, try without it + $arr = explode('.', $input); + foreach ($arr as $k => $v) { + $conv = $this->_decode($v); + $arr[$k] = ($conv) ? $conv : $v; + } + $return = join('.', $arr); + } + } else { // Otherwise we consider it being a pure domain name string + $return = $this->_decode($input); + if (!$return) $return = $input; + } + // The output is UTF-8 by default, other output formats need conversion here + // If one time encoding is given, use this, else the objects property + switch (($one_time_encoding) ? $one_time_encoding : $this->_api_encoding) { + case 'utf8': + return $return; + break; + case 'ucs4_string': + return $this->_ucs4_to_ucs4_string($this->_utf8_to_ucs4($return)); + break; + case 'ucs4_array': + return $this->_utf8_to_ucs4($return); + break; + default: + $this->_error('Unsupported output format'); + return false; + } + } + + /** + * Encode a given UTF-8 domain name + * @param string Domain name (UTF-8 or UCS-4) + * [@param string Desired input encoding, see {@link set_parameter}] + * @return string Encoded Domain name (ACE string) + * @access public + */ + function encode($decoded, $one_time_encoding = false) + { + // Forcing conversion of input to UCS4 array + // If one time encoding is given, use this, else the objects property + switch ($one_time_encoding ? $one_time_encoding : $this->_api_encoding) { + case 'utf8': + $decoded = $this->_utf8_to_ucs4($decoded); + break; + case 'ucs4_string': + $decoded = $this->_ucs4_string_to_ucs4($decoded); + case 'ucs4_array': + break; + default: + $this->_error('Unsupported input format: '.($one_time_encoding ? $one_time_encoding : $this->_api_encoding)); + return false; + } + + // No input, no output, what else did you expect? + if (empty($decoded)) return ''; + + // Anchors for iteration + $last_begin = 0; + // Output string + $output = ''; + foreach ($decoded as $k => $v) { + // Make sure to use just the plain dot + switch($v) { + case 0x3002: + case 0xFF0E: + case 0xFF61: + $decoded[$k] = 0x2E; + // Right, no break here, the above are converted to dots anyway + // Stumbling across an anchoring character + case 0x2E: + case 0x2F: + case 0x3A: + case 0x3F: + case 0x40: + // Neither email addresses nor URLs allowed in strict mode + if ($this->_strict_mode) { + $this->_error('Neither email addresses nor URLs are allowed in strict mode.'); + return false; + } else { + // Skip first char + if ($k) { + $encoded = ''; + $encoded = $this->_encode(array_slice($decoded, $last_begin, (($k)-$last_begin))); + if ($encoded) { + $output .= $encoded; + } else { + $output .= $this->_ucs4_to_utf8(array_slice($decoded, $last_begin, (($k)-$last_begin))); + } + $output .= chr($decoded[$k]); + } + $last_begin = $k + 1; + } + } + } + // Catch the rest of the string + if ($last_begin) { + $inp_len = sizeof($decoded); + $encoded = ''; + $encoded = $this->_encode(array_slice($decoded, $last_begin, (($inp_len)-$last_begin))); + if ($encoded) { + $output .= $encoded; + } else { + $output .= $this->_ucs4_to_utf8(array_slice($decoded, $last_begin, (($inp_len)-$last_begin))); + } + return $output; + } else { + if ($output = $this->_encode($decoded)) { + return $output; + } else { + return $this->_ucs4_to_utf8($decoded); + } + } + } + + /** + * Use this method to get the last error ocurred + * @param void + * @return string The last error, that occured + * @access public + */ + function get_last_error() + { + return $this->_error; + } + + /** + * The actual decoding algorithm + * @access private + */ + function _decode($encoded) + { + // We do need to find the Punycode prefix + if (!preg_match('!^'.preg_quote($this->_punycode_prefix, '!').'!', $encoded)) { + $this->_error('This is not a punycode string'); + return false; + } + $encode_test = preg_replace('!^'.preg_quote($this->_punycode_prefix, '!').'!', '', $encoded); + // If nothing left after removing the prefix, it is hopeless + if (!$encode_test) { + $this->_error('The given encoded string was empty'); + return false; + } + // Find last occurence of the delimiter + $delim_pos = strrpos($encoded, '-'); + if ($delim_pos > strlen($this->_punycode_prefix)) { + for ($k = strlen($this->_punycode_prefix); $k < $delim_pos; ++$k) { + $decoded[] = ord($encoded{$k}); + } + } else { + $decoded = array(); + } + $deco_len = count($decoded); + $enco_len = strlen($encoded); + + // Wandering through the strings; init + $is_first = true; + $bias = $this->_initial_bias; + $idx = 0; + $char = $this->_initial_n; + + for ($enco_idx = ($delim_pos) ? ($delim_pos + 1) : 0; $enco_idx < $enco_len; ++$deco_len) { + for ($old_idx = $idx, $w = 1, $k = $this->_base; 1 ; $k += $this->_base) { + $digit = $this->_decode_digit($encoded{$enco_idx++}); + $idx += $digit * $w; + $t = ($k <= $bias) ? $this->_tmin : + (($k >= $bias + $this->_tmax) ? $this->_tmax : ($k - $bias)); + if ($digit < $t) break; + $w = (int) ($w * ($this->_base - $t)); + } + $bias = $this->_adapt($idx - $old_idx, $deco_len + 1, $is_first); + $is_first = false; + $char += (int) ($idx / ($deco_len + 1)); + $idx %= ($deco_len + 1); + if ($deco_len > 0) { + // Make room for the decoded char + for ($i = $deco_len; $i > $idx; $i--) { + $decoded[$i] = $decoded[($i - 1)]; + } + } + $decoded[$idx++] = $char; + } + return $this->_ucs4_to_utf8($decoded); + } + + /** + * The actual encoding algorithm + * @access private + */ + function _encode($decoded) + { + // We cannot encode a domain name containing the Punycode prefix + $extract = strlen($this->_punycode_prefix); + $check_pref = $this->_utf8_to_ucs4($this->_punycode_prefix); + $check_deco = array_slice($decoded, 0, $extract); + + if ($check_pref == $check_deco) { + $this->_error('This is already a punycode string'); + return false; + } + // We will not try to encode strings consisting of basic code points only + $encodable = false; + foreach ($decoded as $k => $v) { + if ($v > 0x7a) { + $encodable = true; + break; + } + } + if (!$encodable) { + $this->_error('The given string does not contain encodable chars'); + return false; + } + + // Do NAMEPREP + $decoded = $this->_nameprep($decoded); + if (!$decoded || !is_array($decoded)) return false; // NAMEPREP failed + + $deco_len = count($decoded); + if (!$deco_len) return false; // Empty array + + $codecount = 0; // How many chars have been consumed + + $encoded = ''; + // Copy all basic code points to output + for ($i = 0; $i < $deco_len; ++$i) { + $test = $decoded[$i]; + // Will match [-0-9a-zA-Z] + if ((0x2F < $test && $test < 0x40) || (0x40 < $test && $test < 0x5B) + || (0x60 < $test && $test <= 0x7B) || (0x2D == $test)) { + $encoded .= chr($decoded[$i]); + $codecount++; + } + } + if ($codecount == $deco_len) return $encoded; // All codepoints were basic ones + + // Start with the prefix; copy it to output + $encoded = $this->_punycode_prefix.$encoded; + + // If we have basic code points in output, add an hyphen to the end + if ($codecount) $encoded .= '-'; + + // Now find and encode all non-basic code points + $is_first = true; + $cur_code = $this->_initial_n; + $bias = $this->_initial_bias; + $delta = 0; + while ($codecount < $deco_len) { + // Find the smallest code point >= the current code point and + // remember the last ouccrence of it in the input + for ($i = 0, $next_code = $this->_max_ucs; $i < $deco_len; $i++) { + if ($decoded[$i] >= $cur_code && $decoded[$i] <= $next_code) { + $next_code = $decoded[$i]; + } + } + + $delta += ($next_code - $cur_code) * ($codecount + 1); + $cur_code = $next_code; + + // Scan input again and encode all characters whose code point is $cur_code + for ($i = 0; $i < $deco_len; $i++) { + if ($decoded[$i] < $cur_code) { + $delta++; + } elseif ($decoded[$i] == $cur_code) { + for ($q = $delta, $k = $this->_base; 1; $k += $this->_base) { + $t = ($k <= $bias) ? $this->_tmin : + (($k >= $bias + $this->_tmax) ? $this->_tmax : $k - $bias); + if ($q < $t) break; + $encoded .= $this->_encode_digit(intval($t + (($q - $t) % ($this->_base - $t)))); //v0.4.5 Changed from ceil() to intval() + $q = (int) (($q - $t) / ($this->_base - $t)); + } + $encoded .= $this->_encode_digit($q); + $bias = $this->_adapt($delta, $codecount+1, $is_first); + $codecount++; + $delta = 0; + $is_first = false; + } + } + $delta++; + $cur_code++; + } + return $encoded; + } + + /** + * Adapt the bias according to the current code point and position + * @access private + */ + function _adapt($delta, $npoints, $is_first) + { + $delta = intval($is_first ? ($delta / $this->_damp) : ($delta / 2)); + $delta += intval($delta / $npoints); + for ($k = 0; $delta > (($this->_base - $this->_tmin) * $this->_tmax) / 2; $k += $this->_base) { + $delta = intval($delta / ($this->_base - $this->_tmin)); + } + return intval($k + ($this->_base - $this->_tmin + 1) * $delta / ($delta + $this->_skew)); + } + + /** + * Encoding a certain digit + * @access private + */ + function _encode_digit($d) + { + return chr($d + 22 + 75 * ($d < 26)); + } + + /** + * Decode a certain digit + * @access private + */ + function _decode_digit($cp) + { + $cp = ord($cp); + return ($cp - 48 < 10) ? $cp - 22 : (($cp - 65 < 26) ? $cp - 65 : (($cp - 97 < 26) ? $cp - 97 : $this->_base)); + } + + /** + * Internal error handling method + * @access private + */ + function _error($error = '') + { + $this->_error = $error; + } + + /** + * Do Nameprep according to RFC3491 and RFC3454 + * @param array Unicode Characters + * @return string Unicode Characters, Nameprep'd + * @access private + */ + function _nameprep($input) + { + $output = array(); + $error = false; + // + // Mapping + // Walking through the input array, performing the required steps on each of + // the input chars and putting the result into the output array + // While mapping required chars we apply the cannonical ordering + foreach ($input as $v) { + // Map to nothing == skip that code point + if (in_array($v, $this->NP['map_nothing'])) continue; + + // Try to find prohibited input + if (in_array($v, $this->NP['prohibit']) || in_array($v, $this->NP['general_prohibited'])) { + $this->_error('NAMEPREP: Prohibited input U+'.sprintf('%08X', $v)); + return false; + } + foreach ($this->NP['prohibit_ranges'] as $range) { + if ($range[0] <= $v && $v <= $range[1]) { + $this->_error('NAMEPREP: Prohibited input U+'.sprintf('%08X', $v)); + return false; + } + } + // + // Hangul syllable decomposition + if (0xAC00 <= $v && $v <= 0xD7AF) { + foreach ($this->_hangul_decompose($v) as $out) { + $output[] = (int) $out; + } + // There's a decomposition mapping for that code point + } elseif (isset($this->NP['replacemaps'][$v])) { + foreach ($this->_apply_cannonical_ordering($this->NP['replacemaps'][$v]) as $out) { + $output[] = (int) $out; + } + } else { + $output[] = (int) $v; + } + } + // Before applying any Combining, try to rearrange any Hangul syllables + $output = $this->_hangul_compose($output); + // + // Combine code points + // + $last_class = 0; + $last_starter = 0; + $out_len = count($output); + for ($i = 0; $i < $out_len; ++$i) { + $class = $this->_get_combining_class($output[$i]); + if ((!$last_class || $last_class > $class) && $class) { + // Try to match + $seq_len = $i - $last_starter; + $out = $this->_combine(array_slice($output, $last_starter, $seq_len)); + // On match: Replace the last starter with the composed character and remove + // the now redundant non-starter(s) + if ($out) { + $output[$last_starter] = $out; + if (count($out) != $seq_len) { + for ($j = $i+1; $j < $out_len; ++$j) { + $output[$j-1] = $output[$j]; + } + unset($output[$out_len]); + } + // Rewind the for loop by one, since there can be more possible compositions + $i--; + $out_len--; + $last_class = ($i == $last_starter) ? 0 : $this->_get_combining_class($output[$i-1]); + continue; + } + } + // The current class is 0 + if (!$class) $last_starter = $i; + $last_class = $class; + } + return $output; + } + + /** + * Decomposes a Hangul syllable + * (see http://www.unicode.org/unicode/reports/tr15/#Hangul + * @param integer 32bit UCS4 code point + * @return array Either Hangul Syllable decomposed or original 32bit value as one value array + * @access private + */ + function _hangul_decompose($char) + { + $sindex = (int) $char - $this->_sbase; + if ($sindex < 0 || $sindex >= $this->_scount) { + return array($char); + } + $result = array(); + $result[] = (int) $this->_lbase + $sindex / $this->_ncount; + $result[] = (int) $this->_vbase + ($sindex % $this->_ncount) / $this->_tcount; + $T = intval($this->_tbase + $sindex % $this->_tcount); + if ($T != $this->_tbase) $result[] = $T; + return $result; + } + /** + * Ccomposes a Hangul syllable + * (see http://www.unicode.org/unicode/reports/tr15/#Hangul + * @param array Decomposed UCS4 sequence + * @return array UCS4 sequence with syllables composed + * @access private + */ + function _hangul_compose($input) + { + $inp_len = count($input); + if (!$inp_len) return array(); + $result = array(); + $last = (int) $input[0]; + $result[] = $last; // copy first char from input to output + + for ($i = 1; $i < $inp_len; ++$i) { + $char = (int) $input[$i]; + $sindex = $last - $this->_sbase; + $lindex = $last - $this->_lbase; + $vindex = $char - $this->_vbase; + $tindex = $char - $this->_tbase; + // Find out, whether two current characters are LV and T + if (0 <= $sindex && $sindex < $this->_scount && ($sindex % $this->_tcount == 0) + && 0 <= $tindex && $tindex <= $this->_tcount) { + // create syllable of form LVT + $last += $tindex; + $result[(count($result) - 1)] = $last; // reset last + continue; // discard char + } + // Find out, whether two current characters form L and V + if (0 <= $lindex && $lindex < $this->_lcount && 0 <= $vindex && $vindex < $this->_vcount) { + // create syllable of form LV + $last = (int) $this->_sbase + ($lindex * $this->_vcount + $vindex) * $this->_tcount; + $result[(count($result) - 1)] = $last; // reset last + continue; // discard char + } + // if neither case was true, just add the character + $last = $char; + $result[] = $char; + } + return $result; + } + + /** + * Returns the combining class of a certain wide char + * @param integer Wide char to check (32bit integer) + * @return integer Combining class if found, else 0 + * @access private + */ + function _get_combining_class($char) + { + return isset($this->NP['norm_combcls'][$char]) ? $this->NP['norm_combcls'][$char] : 0; + } + + /** + * Apllies the cannonical ordering of a decomposed UCS4 sequence + * @param array Decomposed UCS4 sequence + * @return array Ordered USC4 sequence + * @access private + */ + function _apply_cannonical_ordering($input) + { + $swap = true; + $size = count($input); + while ($swap) { + $swap = false; + $last = $this->_get_combining_class(intval($input[0])); + for ($i = 0; $i < $size-1; ++$i) { + $next = $this->_get_combining_class(intval($input[$i+1])); + if ($next != 0 && $last > $next) { + // Move item leftward until it fits + for ($j = $i + 1; $j > 0; --$j) { + if ($this->_get_combining_class(intval($input[$j-1])) <= $next) break; + $t = intval($input[$j]); + $input[$j] = intval($input[$j-1]); + $input[$j-1] = $t; + $swap = true; + } + // Reentering the loop looking at the old character again + $next = $last; + } + $last = $next; + } + } + return $input; + } + + /** + * Do composition of a sequence of starter and non-starter + * @param array UCS4 Decomposed sequence + * @return array Ordered USC4 sequence + * @access private + */ + function _combine($input) + { + $inp_len = count($input); + foreach ($this->NP['replacemaps'] as $np_src => $np_target) { + if ($np_target[0] != $input[0]) continue; + if (count($np_target) != $inp_len) continue; + $hit = false; + foreach ($input as $k2 => $v2) { + if ($v2 == $np_target[$k2]) { + $hit = true; + } else { + $hit = false; + break; + } + } + if ($hit) return $np_src; + } + return false; + } + + /** + * This converts an UTF-8 encoded string to its UCS-4 representation + * By talking about UCS-4 "strings" we mean arrays of 32bit integers representing + * each of the "chars". This is due to PHP not being able to handle strings with + * bit depth different from 8. This apllies to the reverse method _ucs4_to_utf8(), too. + * The following UTF-8 encodings are supported: + * bytes bits representation + * 1 7 0xxxxxxx + * 2 11 110xxxxx 10xxxxxx + * 3 16 1110xxxx 10xxxxxx 10xxxxxx + * 4 21 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx + * 5 26 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx + * 6 31 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx + * Each x represents a bit that can be used to store character data. + * The five and six byte sequences are part of Annex D of ISO/IEC 10646-1:2000 + * @access private + */ + function _utf8_to_ucs4($input) + { + $output = array(); + $out_len = 0; + $inp_len = strlen($input); + $mode = 'next'; + $test = 'none'; + for ($k = 0; $k < $inp_len; ++$k) { + $v = ord($input{$k}); // Extract byte from input string + + if ($v < 128) { // We found an ASCII char - put into stirng as is + $output[$out_len] = $v; + ++$out_len; + if ('add' == $mode) { + $this->_error('Conversion from UTF-8 to UCS-4 failed: malformed input at byte '.$k); + return false; + } + continue; + } + if ('next' == $mode) { // Try to find the next start byte; determine the width of the Unicode char + $start_byte = $v; + $mode = 'add'; + $test = 'range'; + if ($v >> 5 == 6) { // &110xxxxx 10xxxxx + $next_byte = 0; // Tells, how many times subsequent bitmasks must rotate 6bits to the left + $v = ($v - 192) << 6; + } elseif ($v >> 4 == 14) { // &1110xxxx 10xxxxxx 10xxxxxx + $next_byte = 1; + $v = ($v - 224) << 12; + } elseif ($v >> 3 == 30) { // &11110xxx 10xxxxxx 10xxxxxx 10xxxxxx + $next_byte = 2; + $v = ($v - 240) << 18; + } elseif ($v >> 2 == 62) { // &111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx + $next_byte = 3; + $v = ($v - 248) << 24; + } elseif ($v >> 1 == 126) { // &1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx + $next_byte = 4; + $v = ($v - 252) << 30; + } else { + $this->_error('This might be UTF-8, but I don\'t understand it at byte '.$k); + return false; + } + if ('add' == $mode) { + $output[$out_len] = (int) $v; + ++$out_len; + continue; + } + } + if ('add' == $mode) { + if (!$this->_allow_overlong && $test == 'range') { + $test = 'none'; + if (($v < 0xA0 && $start_byte == 0xE0) || ($v < 0x90 && $start_byte == 0xF0) || ($v > 0x8F && $start_byte == 0xF4)) { + $this->_error('Bogus UTF-8 character detected (out of legal range) at byte '.$k); + return false; + } + } + if ($v >> 6 == 2) { // Bit mask must be 10xxxxxx + $v = ($v - 128) << ($next_byte * 6); + $output[($out_len - 1)] += $v; + --$next_byte; + } else { + $this->_error('Conversion from UTF-8 to UCS-4 failed: malformed input at byte '.$k); + return false; + } + if ($next_byte < 0) { + $mode = 'next'; + } + } + } // for + return $output; + } + + /** + * Convert UCS-4 string into UTF-8 string + * See _utf8_to_ucs4() for details + * @access private + */ + function _ucs4_to_utf8($input) + { + $output = ''; + $k = 0; + foreach ($input as $v) { + ++$k; + // $v = ord($v); + if ($v < 128) { // 7bit are transferred literally + $output .= chr($v); + } elseif ($v < (1 << 11)) { // 2 bytes + $output .= chr(192 + ($v >> 6)) . chr(128 + ($v & 63)); + } elseif ($v < (1 << 16)) { // 3 bytes + $output .= chr(224 + ($v >> 12)) . chr(128 + (($v >> 6) & 63)) . chr(128 + ($v & 63)); + } elseif ($v < (1 << 21)) { // 4 bytes + $output .= chr(240 + ($v >> 18)) . chr(128 + (($v >> 12) & 63)) + . chr(128 + (($v >> 6) & 63)) . chr(128 + ($v & 63)); + } elseif ($v < (1 << 26)) { // 5 bytes + $output .= chr(248 + ($v >> 24)) . chr(128 + (($v >> 18) & 63)) + . chr(128 + (($v >> 12) & 63)) . chr(128 + (($v >> 6) & 63)) + . chr(128 + ($v & 63)); + } elseif ($v < (1 << 31)) { // 6 bytes + $output .= chr(252 + ($v >> 30)) . chr(128 + (($v >> 24) & 63)) + . chr(128 + (($v >> 18) & 63)) . chr(128 + (($v >> 12) & 63)) + . chr(128 + (($v >> 6) & 63)) . chr(128 + ($v & 63)); + } else { + $this->_error('Conversion from UCS-4 to UTF-8 failed: malformed input at byte '.$k); + return false; + } + } + return $output; + } + + /** + * Convert UCS-4 array into UCS-4 string + * + * @access private + */ + function _ucs4_to_ucs4_string($input) + { + $output = ''; + // Take array values and split output to 4 bytes per value + // The bit mask is 255, which reads &11111111 + foreach ($input as $v) { + $output .= chr(($v >> 24) & 255).chr(($v >> 16) & 255).chr(($v >> 8) & 255).chr($v & 255); + } + return $output; + } + + /** + * Convert UCS-4 strin into UCS-4 garray + * + * @access private + */ + function _ucs4_string_to_ucs4($input) + { + $output = array(); + $inp_len = strlen($input); + // Input length must be dividable by 4 + if ($inp_len % 4) { + $this->_error('Input UCS4 string is broken'); + return false; + } + // Empty input - return empty output + if (!$inp_len) return $output; + for ($i = 0, $out_len = -1; $i < $inp_len; ++$i) { + // Increment output position every 4 input bytes + if (!($i % 4)) { + $out_len++; + $output[$out_len] = 0; + } + $output[$out_len] += ord($input{$i}) << (8 * (3 - ($i % 4) ) ); + } + return $output; + } +} + +/** +* Adapter class for aligning the API of idna_convert with that of Net_IDNA +* @author Matthias Sommerfeld +*/ +class Net_IDNA_php4 extends idna_convert +{ + /** + * Sets a new option value. Available options and values: + * [encoding - Use either UTF-8, UCS4 as array or UCS4 as string as input ('utf8' for UTF-8, + * 'ucs4_string' and 'ucs4_array' respectively for UCS4); The output is always UTF-8] + * [overlong - Unicode does not allow unnecessarily long encodings of chars, + * to allow this, set this parameter to true, else to false; + * default is false.] + * [strict - true: strict mode, good for registration purposes - Causes errors + * on failures; false: loose mode, ideal for "wildlife" applications + * by silently ignoring errors and returning the original input instead + * + * @param mixed Parameter to set (string: single parameter; array of Parameter => Value pairs) + * @param string Value to use (if parameter 1 is a string) + * @return boolean true on success, false otherwise + * @access public + */ + function setParams($option, $param = false) + { + return $this->IC->set_parameters($option, $param); + } +} + +?> \ No newline at end of file diff --git a/all-in-one-wp-security/lib/whois/whois.ie.php b/all-in-one-wp-security/lib/whois/whois.ie.php new file mode 100644 index 0000000..936c81e --- /dev/null +++ b/all-in-one-wp-security/lib/whois/whois.ie.php @@ -0,0 +1,64 @@ + 'handle', + 'person' => 'name', + 'renewal' => 'expires' + ); + + $contacts = array( + 'admin-c' => 'admin', + 'tech-c' => 'tech', + ); + + $reg = generic_parser_a($data_str['rawdata'], $translate, $contacts, 'domain', 'Ymd'); + + if (isset($reg['domain']['descr'])) + { + $reg['owner']['organization'] = $reg['domain']['descr'][0]; + unset($reg['domain']['descr']); + } + + $r['regrinfo'] = $reg; + $r['regyinfo'] = array( + 'referrer' => 'http://www.domainregistry.ie', + 'registrar' => 'IE Domain Registry' + ); + return $r; + } + } +?> diff --git a/all-in-one-wp-security/lib/whois/whois.in.php b/all-in-one-wp-security/lib/whois/whois.in.php new file mode 100644 index 0000000..438d6fc --- /dev/null +++ b/all-in-one-wp-security/lib/whois/whois.in.php @@ -0,0 +1,45 @@ + 'http://whois.registry.in', + 'registrar' => 'INRegistry' + ); + return $r; + } + } +?> \ No newline at end of file diff --git a/all-in-one-wp-security/lib/whois/whois.info.php b/all-in-one-wp-security/lib/whois/whois.info.php new file mode 100644 index 0000000..02fc903 --- /dev/null +++ b/all-in-one-wp-security/lib/whois/whois.info.php @@ -0,0 +1,45 @@ + 'http://whois.afilias.info', + 'registrar' => 'Afilias Global Registry Services' + ); + return $r; + } + } +?> \ No newline at end of file diff --git a/all-in-one-wp-security/lib/whois/whois.int.php b/all-in-one-wp-security/lib/whois/whois.int.php new file mode 100644 index 0000000..1e7a783 --- /dev/null +++ b/all-in-one-wp-security/lib/whois/whois.int.php @@ -0,0 +1,44 @@ +parse($data_str['rawdata'], $query); + $r['regyinfo']['referrer'] = 'http://www.iana.org/int-dom/int.htm'; + $r['regyinfo']['registrar'] = 'Internet Assigned Numbers Authority'; + return ($r); + } + } +?> \ No newline at end of file diff --git a/all-in-one-wp-security/lib/whois/whois.ip.afrinic.php b/all-in-one-wp-security/lib/whois/whois.ip.afrinic.php new file mode 100644 index 0000000..6f66afd --- /dev/null +++ b/all-in-one-wp-security/lib/whois/whois.ip.afrinic.php @@ -0,0 +1,77 @@ + 'fax', + 'e-mail' => 'email', + 'nic-hdl' => 'handle', + 'person' => 'name', + 'netname' => 'name', + 'organisation' => 'handle', + 'org-name' => 'organization', + 'org-type' => 'type' + ); + + $contacts = array( + 'admin-c' => 'admin', + 'tech-c' => 'tech', + 'org' => 'owner' + ); + + $r = generic_parser_a($data_str, $translate, $contacts, 'network', 'Ymd'); + + if (isset($r['network']['descr'])) + { + $r['owner']['organization'] = $r['network']['descr']; + unset($r['network']['descr']); + } + + if (isset($r['owner']['remarks']) && is_array($r['owner']['remarks'])) + while (list($key, $val) = each($r['owner']['remarks'])) + { + $pos = strpos($val,'rwhois://'); + + if ($pos!==false) + $r['rwhois'] = strtok(substr($val,$pos),' '); + } + + $r = array( 'regrinfo' => $r ); + $r['regyinfo']['type'] = 'ip'; + $r['regyinfo']['registrar'] = 'African Network Information Center'; + return $r; + } + } +?> \ No newline at end of file diff --git a/all-in-one-wp-security/lib/whois/whois.ip.apnic.php b/all-in-one-wp-security/lib/whois/whois.ip.apnic.php new file mode 100644 index 0000000..598276f --- /dev/null +++ b/all-in-one-wp-security/lib/whois/whois.ip.apnic.php @@ -0,0 +1,122 @@ + 'fax', + 'e-mail' => 'email', + 'nic-hdl' => 'handle', + 'person' => 'name', + 'country' => 'address', + 'netname' => 'name', + 'descr' => 'desc', + 'aut-num' => 'handle' + ); + + $contacts = array ( + 'admin-c' => 'admin', + 'tech-c' => 'tech' + ); + + $blocks = generic_parser_a_blocks($data_str,$translate,$disclaimer); + + if (isset($disclaimer) && is_array($disclaimer)) $r['disclaimer'] = $disclaimer; + + if (empty($blocks) || !is_array($blocks['main'])) + { + $r['registered'] = 'no'; + } + else + { + if (isset($blocks[$query])) + { + $as = true; + $rb = $blocks[$query]; + } + else + { + $rb = $blocks['main']; + $as = false; + } + + $r['registered'] = 'yes'; + + while (list($key,$val) = each($contacts)) + if (isset($rb[$key])) + { + if (is_array($rb[$key])) + $blk = $rb[$key][count($rb[$key])-1]; + else + $blk = $rb[$key]; + + //$blk = strtoupper(strtok($blk,' ')); + if (isset($blocks[$blk])) $r[$val] = $blocks[$blk]; + unset($rb[$key]); + } + + $r['network'] = $rb; + format_dates($r,'Ymd'); + + if (isset($r['network']['desc'])) + { + if (is_array($r['network']['desc'])) + { + $r['owner']['organization'] = array_shift($r['network']['desc']); + $r['owner']['address'] = $r['network']['desc']; + } + else + $r['owner']['organization'] = $r['network']['desc']; + + unset($r['network']['desc']); + } + + if (isset($r['network']['address'])) + { + if (isset($r['owner']['address'])) + $r['owner']['address'][] = $r['network']['address']; + else + $r['owner']['address'] = $r['network']['address']; + + unset($r['network']['address']); + } + } + + $r = array( 'regrinfo' => $r ); + $r['regyinfo']['type'] ='ip'; + $r['regyinfo']['registrar'] = 'Asia Pacific Network Information Centre'; + return $r; + } +} +?> \ No newline at end of file diff --git a/all-in-one-wp-security/lib/whois/whois.ip.arin.php b/all-in-one-wp-security/lib/whois/whois.ip.arin.php new file mode 100644 index 0000000..f214aca --- /dev/null +++ b/all-in-one-wp-security/lib/whois/whois.ip.arin.php @@ -0,0 +1,78 @@ + 'owner.organization', + 'CustName:' => 'owner.organization', + 'OrgId:' => 'owner.handle', + 'Address:' => 'owner.address.street.', + 'City:' => 'owner.address.city', + 'StateProv:' => 'owner.address.state', + 'PostalCode:' => 'owner.address.pcode', + 'Country:' => 'owner.address.country', + 'NetRange:' => 'network.inetnum', + 'NetName:' => 'network.name', + 'NetHandle:' => 'network.handle', + 'NetType:' => 'network.status', + 'NameServer:' => 'network.nserver.', + 'Comment:' => 'network.desc.', + 'RegDate:' => 'network.created', + 'Updated:' => 'network.changed', + 'ASHandle:' => 'network.handle', + 'ASName:' => 'network.name', + 'NetHandle:' => 'network.handle', + 'NetName:' => 'network.name', + 'TechHandle:' => 'tech.handle', + 'TechName:' => 'tech.name', + 'TechPhone:' => 'tech.phone', + 'TechEmail:' => 'tech.email', + 'OrgAbuseName:' => 'abuse.name', + 'OrgAbuseHandle:' => 'abuse.handle', + 'OrgAbusePhone:' => 'abuse.phone', + 'OrgAbuseEmail:' => 'abuse.email.', + 'ReferralServer:' => 'rwhois' + ); + + $r = generic_parser_b($data_str, $items, 'ymd', false, true); + + if (@isset($r['abuse']['email'])) + $r['abuse']['email'] = implode(',',$r['abuse']['email']); + + return array( 'regrinfo' => $r ); + } + } +?> \ No newline at end of file diff --git a/all-in-one-wp-security/lib/whois/whois.ip.krnic.php b/all-in-one-wp-security/lib/whois/whois.ip.krnic.php new file mode 100644 index 0000000..71bc12f --- /dev/null +++ b/all-in-one-wp-security/lib/whois/whois.ip.krnic.php @@ -0,0 +1,112 @@ + '[ Organization Information ]', + 'tech1' => '[ Technical Contact Information ]', + + 'owner2' => '[ ISP Organization Information ]', + 'admin2' => '[ ISP IP Admin Contact Information ]', + 'tech2' => '[ ISP IP Tech Contact Information ]', + + 'admin3' => '[ ISP IPv4 Admin Contact Information ]', + 'tech3' => '[ ISP IPv4 Tech Contact Information ]', + + 'abuse' => '[ ISP Network Abuse Contact Information ]', + + 'network.inetnum' => 'IPv4 Address :', + 'network.name' => 'Network Name :', + 'network.mnt-by' => 'Connect ISP Name :', + 'network.created' => 'Registration Date :' + ); + + $items = array( + 'Orgnization ID :' => 'handle', + 'Org Name :' => 'organization', + 'Org Name :' => 'organization', + 'Name :' => 'name', + 'Name :' => 'name', + 'Org Address :' => 'address.street', + 'Zip Code :' => 'address.pcode', + 'State :' => 'address.state', + 'Address :' => 'address.street', + 'Zip Code :' => 'address.pcode', + 'Phone :' => 'phone', + 'Phone :' => 'phone', + 'Fax :' => 'fax', + 'E-Mail :' => 'email', + 'E-Mail :' => 'email' + ); + + $b = get_blocks($data_str, $blocks); + + if (isset($b['network'])) + $r['network'] = $b['network']; + + if (isset($b['owner1'])) + $r['owner'] = generic_parser_b($b['owner1'], $items, 'Ymd', false); + else + if (isset($b['owner2'])) + $r['owner'] = generic_parser_b($b['owner2'], $items, 'Ymd', false); + + if (isset($b['admin2'])) + $r['admin'] = generic_parser_b($b['admin2'], $items, 'Ymd', false); + else + if (isset($b['admin3'])) + $r['admin'] = generic_parser_b($b['admin3'], $items, 'Ymd', false); + + if (isset($b['tech1'])) + $r['tech'] = generic_parser_b($b['tech1'], $items, 'Ymd', false); + else + if (isset($b['tech2'])) + $r['tech'] = generic_parser_b($b['tech2'], $items, 'Ymd', false); + else + if (isset($b['tech3'])) + $r['tech'] = generic_parser_b($b['tech3'], $items, 'Ymd', false); + + if (isset($b['abuse'])) + $r['abuse'] = generic_parser_b($b['abuse'], $items, 'Ymd', false); + + $r = format_dates($r, 'Ymd'); + + $r = array( 'regrinfo' => $r ); + $r['regyinfo']['type'] ='ip'; + $r['regyinfo']['registrar'] = 'Korean Network Information Centre'; + + return $r; + } + } +?> \ No newline at end of file diff --git a/all-in-one-wp-security/lib/whois/whois.ip.lacnic.php b/all-in-one-wp-security/lib/whois/whois.ip.lacnic.php new file mode 100644 index 0000000..c930458 --- /dev/null +++ b/all-in-one-wp-security/lib/whois/whois.ip.lacnic.php @@ -0,0 +1,79 @@ + 'fax', + 'e-mail' => 'email', + 'nic-hdl-br' => 'handle', + 'nic-hdl' => 'handle', + 'person' => 'name', + 'netname' => 'name', + 'descr' => 'desc', + 'country' => 'address.country' + ); + + $contacts = array( + 'owner-c' => 'owner', + 'tech-c' => 'tech', + 'abuse-c' => 'abuse', + 'admin-c' => 'admin' + ); + + $r = generic_parser_a($data_str, $translate, $contacts, 'network'); + + unset($r['network']['owner']); + unset($r['network']['ownerid']); + unset($r['network']['responsible']); + unset($r['network']['address']); + unset($r['network']['phone']); + unset($r['network']['aut-num']); + unset($r['network']['nsstat']); + unset($r['network']['nslastaa']); + unset($r['network']['inetrev']); + + if (!empty($r['network']['aut-num'])) + $r['network']['handle'] = $r['network']['aut-num']; + + if (is_array($r['network']['nserver'])) + $r['network']['nserver'] = array_unique($r['network']['nserver']); + + $r = array( 'regrinfo' => $r ); + $r['regyinfo']['type'] ='ip'; + $r['regyinfo']['registrar'] = 'Latin American and Caribbean IP address Regional Registry'; + return $r; + } + } +?> \ No newline at end of file diff --git a/all-in-one-wp-security/lib/whois/whois.ip.lib.php b/all-in-one-wp-security/lib/whois/whois.ip.lib.php new file mode 100644 index 0000000..e88b588 --- /dev/null +++ b/all-in-one-wp-security/lib/whois/whois.ip.lib.php @@ -0,0 +1,120 @@ += $min) && (ip2long($ip) <= $max)) return false; + } + + return true; +} + +//----------------------------------------------------------------- +// Get real client ip address + +function phpwhois_getclientip() +{ + if (!empty($_SERVER['HTTP_CLIENT_IP']) && phpwhois_validip($_SERVER['HTTP_CLIENT_IP'])) + return $_SERVER['HTTP_CLIENT_IP']; + + if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) + foreach (explode(',',$_SERVER['HTTP_X_FORWARDED_FOR']) as $ip) + if (phpwhois_validip(trim($ip))) + return $ip; + + if (!empty($_SERVER['HTTP_X_FORWARDED']) && phpwhois_validip($_SERVER['HTTP_X_FORWARDED'])) + return $_SERVER['HTTP_X_FORWARDED']; + + if (!empty($_SERVER['HTTP_FORWARDED_FOR']) && phpwhois_validip($_SERVER['HTTP_FORWARDED_FOR'])) + return $_SERVER['HTTP_FORWARDED_FOR']; + + if (!empty($_SERVER['HTTP_FORWARDED']) && phpwhois_validip($_SERVER['HTTP_FORWARDED'])) + return $_SERVER['HTTP_FORWARDED']; + + if (!empty($_SERVER['HTTP_X_FORWARDED']) && phpwhois_validip($_SERVER['HTTP_X_FORWARDED'])) + return $_SERVER['HTTP_X_FORWARDED']; + + return $_SERVER['REMOTE_ADDR']; +} + +//----------------------------------------------------------------- +// Convert from CIDR to net range + +function phpwhois_cidr_conv($net) +{ + $start = strtok($net, '/'); + $n = 3-substr_count($net, '.'); + + if ($n > 0) + { + for ($i = $n; $i > 0; $i--) + $start.= '.0'; + } + + $bits1 = str_pad(decbin(ip2long($start)), 32, '0', 'STR_PAD_LEFT'); + $net = pow(2, (32-substr(strstr($net, '/'), 1))) - 1; + $bits2 = str_pad(decbin($net), 32, '0', 'STR_PAD_LEFT'); + $final = ''; + + for ($i = 0; $i < 32; $i++) + { + if ($bits1[$i] == $bits2[$i]) + $final.= $bits1[$i]; + if ($bits1[$i] == 1 and $bits2[$i] == 0) + $final.= $bits1[$i]; + if ($bits1[$i] == 0 and $bits2[$i] == 1) + $final.= $bits2[$i]; + } + + return $start." - ".long2ip(bindec($final)); +} +?> \ No newline at end of file diff --git a/all-in-one-wp-security/lib/whois/whois.ip.php b/all-in-one-wp-security/lib/whois/whois.ip.php new file mode 100644 index 0000000..70e77f4 --- /dev/null +++ b/all-in-one-wp-security/lib/whois/whois.ip.php @@ -0,0 +1,285 @@ + 'whois.ripe.net', + 'RIPE Network Coordination Centre' => 'whois.ripe.net', + 'Asia Pacific Network Information Center' => 'whois.apnic.net', + 'Asia Pacific Network Information Centre' => 'whois.apnic.net', + 'Latin American and Caribbean IP address Regional Registry' => 'whois.lacnic.net', + 'African Network Information Center' => 'whois.afrinic.net' + ); + + var $HANDLERS = array( + 'whois.krnic.net' => 'krnic', + 'whois.apnic.net' => 'apnic', + 'whois.ripe.net' => 'ripe', + 'whois.arin.net' => 'arin', + 'whois.lacnic.net' => 'lacnic', + 'whois.afrinic.net' => 'afrinic' + ); + + var $more_data = array(); // More queries to get more accurated data + var $done = array(); + + function parse($data, $query) + { + $result['regrinfo'] = array(); + $result['regyinfo'] = array(); + $result['regyinfo']['registrar'] = 'American Registry for Internet Numbers (ARIN)'; + $result['rawdata'] = array(); + + if (strpos($query,'.') === false) + $result['regyinfo']['type'] = 'AS'; + else + $result['regyinfo']['type'] = 'ip'; + + if (!$this->deep_whois) return null; + + $this->Query = array(); + $this->Query['server'] = 'whois.arin.net'; + $this->Query['query'] = $query; + + $rawdata = $data['rawdata']; + + if (empty($rawdata)) return $result; + + $presults[] = $rawdata; + $ip = ip2long($query); + $done = array(); + + while (count($presults) > 0) + { + $rwdata = array_shift($presults); + $found = false; + + foreach($rwdata as $line) + { + if (!strncmp($line,'American Registry for Internet Numbers',38)) continue; + + $p = strpos($line, '(NETBLK-'); + + if ($p === false) $p = strpos($line, '(NET-'); + + if ($p !== false) + { + $net = strtok(substr($line,$p+1),') '); + list($low,$high) = explode('-',str_replace(' ','',substr($line,$p+strlen($net)+3))); + + if (!isset($done[$net]) && $ip >= ip2long($low) && $ip <= ip2long($high)) + { + $owner = substr($line,0,$p-1); + + if (!empty($this->REGISTRARS['owner'])) + { + $this->handle_rwhois($this->REGISTRARS['owner'],$query); + break 2; + } + else + { + $this->Query['args'] = 'n '.$net; + $presults[] = $this->GetRawData($net); + $done[$net] = 1; + } + } + $found = true; + } + } + + if (!$found) + { + $this->Query['file'] = 'whois.ip.arin.php'; + $this->Query['handler'] = 'arin'; + $result = $this->parse_results($result,$rwdata,$query,true); + } + } + + unset($this->Query['args']); + + while (count($this->more_data) > 0) + { + $srv_data = array_shift($this->more_data); + $this->Query['server'] = $srv_data['server']; + unset($this->Query['handler']); + // Use original query + $rwdata = $this->GetRawData($srv_data['query']); + + if (!empty($rwdata)) + { + if (!empty($srv_data['handler'])) + { + $this->Query['handler'] = $srv_data['handler']; + + if (!empty($srv_data['file'])) + $this->Query['file'] = $srv_data['file']; + else + $this->Query['file'] = 'whois.'.$this->Query['handler'].'.php'; + } + + $result = $this->parse_results($result,$rwdata,$query,$srv_data['reset']); + $result = $this->set_whois_info($result); + $reset = false; + } + } + + + // Normalize nameserver fields + + if (isset($result['regrinfo']['network']['nserver'])) + { + if (!is_array($result['regrinfo']['network']['nserver'])) + { + unset($result['regrinfo']['network']['nserver']); + } + else + $result['regrinfo']['network']['nserver'] = $this->FixNameServer($result['regrinfo']['network']['nserver']); + } + + return $result; + } + + //----------------------------------------------------------------- + + function parse_results($result,$rwdata,$query,$reset) + { + $rwres = $this->Process($rwdata); + + if ($result['regyinfo']['type'] == 'AS' && !empty($rwres['regrinfo']['network'])) + { + $rwres['regrinfo']['AS'] = $rwres['regrinfo']['network']; + unset($rwres['regrinfo']['network']); + } + + if ($reset) + { + $result['regrinfo'] = $rwres['regrinfo']; + $result['rawdata'] = $rwdata; + } + else + { + $result['rawdata'][] = ''; + + foreach ($rwdata as $line) + $result['rawdata'][] = $line; + + foreach($rwres['regrinfo'] as $key => $data) + { + $result = $this->join_result($result,$key,$rwres); + } + } + + if ($this->deep_whois) + { + if (isset($rwres['regrinfo']['rwhois'])) + { + $this->handle_rwhois($rwres['regrinfo']['rwhois'],$query); + unset($result['regrinfo']['rwhois']); + } + else + if (!@empty($rwres['regrinfo']['owner']['organization'])) + switch ($rwres['regrinfo']['owner']['organization']) + { + case 'KRNIC': + $this->handle_rwhois('whois.krnic.net',$query); + break; + + case 'African Network Information Center': + $this->handle_rwhois('whois.afrinic.net',$query); + break; + } + } + + if (!empty($rwres['regyinfo'])) + $result['regyinfo'] = array_merge($result['regyinfo'],$rwres['regyinfo']); + + return $result; + } + + //----------------------------------------------------------------- + + function handle_rwhois($server,$query) + { + // Avoid querying the same server twice + + $parts = parse_url($server); + + if (empty($parts['host'])) + $host = $parts['path']; + else + $host = $parts['host']; + + if (array_key_exists($host,$this->done)) return; + + $q = array ( + 'query' => $query, + 'server' => $server + ); + + if (isset($this->HANDLERS[$host])) + { + $q['handler'] = $this->HANDLERS[$host]; + $q['file'] = sprintf('whois.ip.%s.php', $q['handler']); + $q['reset'] = true; + } + else + { + $q['handler'] = 'rwhois'; + $q['reset'] = false; + unset($q['file']); + } + + $this->more_data[] = $q; + $this->done[$host] = 1; + } + + //----------------------------------------------------------------- + + function join_result($result, $key, $newres) + { + if (isset($result['regrinfo'][$key]) && !array_key_exists(0,$result['regrinfo'][$key])) + { + $r = $result['regrinfo'][$key]; + $result['regrinfo'][$key] = array($r); + } + + $result['regrinfo'][$key][] = $newres['regrinfo'][$key]; + return $result; + } + } +?> \ No newline at end of file diff --git a/all-in-one-wp-security/lib/whois/whois.ip.ripe.php b/all-in-one-wp-security/lib/whois/whois.ip.ripe.php new file mode 100644 index 0000000..6ac51cb --- /dev/null +++ b/all-in-one-wp-security/lib/whois/whois.ip.ripe.php @@ -0,0 +1,85 @@ + 'fax', + 'e-mail' => 'email', + 'nic-hdl' => 'handle', + 'person' => 'name', + 'netname' => 'name', + 'descr' => 'desc' + ); + + $contacts = array( + 'admin-c' => 'admin', + 'tech-c' => 'tech' + ); + + if (!empty($data_str['rawdata'])) $data_str = $data_str['rawdata']; + + $r = generic_parser_a($data_str, $translate, $contacts, 'network'); + + if (isset($r['network']['desc'])) + { + $r['owner']['organization'] = $r['network']['desc']; + unset($r['network']['desc']); + } + + if (isset($r['admin']['abuse-mailbox'])) + { + $r['abuse']['email'] = $r['admin']['abuse-mailbox']; + unset($r['admin']['abuse-mailbox']); + } + + if (isset($r['tech']['abuse-mailbox'])) + { + $r['abuse']['email'] = $r['tech']['abuse-mailbox']; + unset($r['tech']['abuse-mailbox']); + } + + // Clean mess + if (isset($r['tech']['tech-c'])) unset($r['tech']['tech-c']); + if (isset($r['tech']['admin-c'])) unset($r['tech']['admin-c']); + if (isset($r['admin']['tech-c'])) unset($r['admin']['tech-c']); + if (isset($r['admin']['admin-c'])) unset($r['admin']['admin-c']); + + $r = array( 'regrinfo' => $r ); + $r['regyinfo']['type'] ='ip'; + $r['regyinfo']['registrar'] = 'RIPE Network Coordination Centre'; + return $r; + } + } +?> \ No newline at end of file diff --git a/all-in-one-wp-security/lib/whois/whois.ir.php b/all-in-one-wp-security/lib/whois/whois.ir.php new file mode 100644 index 0000000..b7632cb --- /dev/null +++ b/all-in-one-wp-security/lib/whois/whois.ir.php @@ -0,0 +1,60 @@ +. + */ + +// Define the handler flag. +if (!defined('__IR_HANDLER__')) + define('__IR_HANDLER__', 1); + +// Loadup the parser. +require_once('whois.parser.php'); + +/** + * IR Domain names lookup handler class. + */ +class ir_handler + { + function parse($data_str, $query) + { + $translate = array( + 'nic-hdl' => 'handle', + 'org' => 'organization', + 'e-mail' => 'email', + 'person' => 'name', + 'fax-no' => 'fax', + 'domain' => 'name' + ); + + $contacts = array( + 'admin-c' => 'admin', + 'tech-c' => 'tech', + 'holder-c' => 'owner' + ); + + $reg = generic_parser_a($data_str['rawdata'], $translate, $contacts, 'domain', 'Ymd'); + + $r['regrinfo'] = $reg; + $r['regyinfo'] = array( + 'referrer'=>'http://whois.nic.ir/', + 'registrar' => 'NIC-IR' + ); + return $r; + } + } +?> \ No newline at end of file diff --git a/all-in-one-wp-security/lib/whois/whois.is.php b/all-in-one-wp-security/lib/whois/whois.is.php new file mode 100644 index 0000000..b9902d6 --- /dev/null +++ b/all-in-one-wp-security/lib/whois/whois.is.php @@ -0,0 +1,69 @@ + 'fax', + 'e-mail' => 'email', + 'nic-hdl' => 'handle', + 'person' => 'name' + ); + + $contacts = array( + 'owner-c' => 'owner', + 'admin-c' => 'admin', + 'tech-c' => 'tech', + 'billing-c' => 'billing', + 'zone-c' => 'zone' + ); + + $reg = generic_parser_a($data_str['rawdata'], $translate, $contacts, 'domain', 'mdy'); + + if (isset($reg['domain']['descr'])) + { + $reg['owner']['name'] = array_shift($reg['domain']['descr']); + $reg['owner']['address'] = $reg['domain']['descr']; + unset($reg['domain']['descr']); + } + + $r['regrinfo'] = $reg; + $r['regyinfo'] = array( + 'referrer' => 'http://www.isnic.is', + 'registrar' => 'ISNIC' + ); + return $r; + } + } +?> \ No newline at end of file diff --git a/all-in-one-wp-security/lib/whois/whois.it.php b/all-in-one-wp-security/lib/whois/whois.it.php new file mode 100644 index 0000000..08538d7 --- /dev/null +++ b/all-in-one-wp-security/lib/whois/whois.it.php @@ -0,0 +1,78 @@ + array +- ContactID in address +*/ + +if (!defined('__IT_HANDLER__')) + define('__IT_HANDLER__', 1); + +require_once('whois.parser.php'); + +class it_handler + { + function parse($data_str, $query) + { + $items = array( + 'domain.name' => 'Domain:', + 'domain.nserver' => 'Nameservers', + 'domain.status' => 'Status:', + 'domain.expires' => 'Expire Date:', + 'owner' => 'Registrant', + 'admin' => 'Admin Contact', + 'tech' => 'Technical Contacts', + 'registrar' => 'Registrar' + ); + + $extra = array( + 'address:' => 'address.', + 'contactid:' => 'handle', + 'organization:' => 'organization', + 'created:' => 'created', + 'last update:' => 'changed', + 'web:' => 'web' + ); + + $r['regrinfo'] = easy_parser($data_str['rawdata'], $items, 'ymd',$extra); + + if (isset($r['regrinfo']['registrar'])) + { + $r['regrinfo']['domain']['registrar'] = $r['regrinfo']['registrar']; + unset($r['regrinfo']['registrar']); + } + + $r['regyinfo'] = array( + 'registrar' => 'IT-Nic', + 'referrer' => 'http://www.nic.it/' + ); + return $r; + } + } +?> \ No newline at end of file diff --git a/all-in-one-wp-security/lib/whois/whois.jp.php b/all-in-one-wp-security/lib/whois/whois.jp.php new file mode 100644 index 0000000..d5f12bb --- /dev/null +++ b/all-in-one-wp-security/lib/whois/whois.jp.php @@ -0,0 +1,111 @@ + 'domain.status', + '[Status]' => 'domain.status', + '[Registered Date]' => 'domain.created', + '[Created on]' => 'domain.created', + '[Expires on]' => 'domain.expires', + '[Last Updated]' => 'domain.changed', + '[Last Update]' => 'domain.changed', + '[Organization]' => 'owner.organization', + '[Name]' => 'owner.name', + '[Email]' => 'owner.email', + '[Postal code]' => 'owner.address.pcode', + '[Postal Address]' => 'owner.address.street', + '[Phone]' => 'owner.phone', + '[Fax]' => 'owner.fax', + '[Administrative Contact]' => 'admin.handle', + '[Technical Contact]' => 'tech.handle', + '[Name Server]' => 'domain.nserver.' + ); + + $r['regrinfo'] = generic_parser_b($data_str['rawdata'], $items, 'ymd'); + + $r['regyinfo'] = array( + 'referrer' => 'http://www.jprs.jp', + 'registrar' => 'Japan Registry Services' + ); + + if (!$this->deep_whois) return $r; + + $r['rawdata'] = $data_str['rawdata']; + + $items = array( + 'a. [JPNIC Handle]' => 'handle', + 'c. [Last, First]' => 'name', + 'd. [E-Mail]' => 'email', + 'g. [Organization]' => 'organization', + 'o. [TEL]' => 'phone', + 'p. [FAX]' => 'fax', + '[Last Update]' => 'changed' + ); + + $this->Query['server'] = 'jp.whois-servers.net'; + + if (!empty($r['regrinfo']['admin']['handle'])) + { + $rwdata = $this->GetRawData('CONTACT '.$r['regrinfo']['admin']['handle'].'/e'); + $r['rawdata'][] = ''; + $r['rawdata'] = array_merge($r['rawdata'],$rwdata); + $r['regrinfo']['admin'] = generic_parser_b($rwdata,$items,'ymd',false); + $r = $this->set_whois_info($r); + } + + if (!empty($r['regrinfo']['tech']['handle'])) + { + if (!empty($r['regrinfo']['admin']['handle']) && + $r['regrinfo']['admin']['handle'] == $r['regrinfo']['tech']['handle']) + { + $r['regrinfo']['tech'] = $r['regrinfo']['admin']; + } + else + { + unset($this->Query); + $this->Query['server'] = 'jp.whois-servers.net'; + $rwdata = $this->GetRawData('CONTACT '.$r['regrinfo']['tech']['handle'].'/e'); + $r['rawdata'][] = ''; + $r['rawdata'] = array_merge($r['rawdata'],$rwdata); + $r['regrinfo']['tech'] = generic_parser_b($rwdata,$items,'ymd',false); + $r = $this->set_whois_info($r); + } + } + + return $r; + } + } +?> \ No newline at end of file diff --git a/all-in-one-wp-security/lib/whois/whois.lt.php b/all-in-one-wp-security/lib/whois/whois.lt.php new file mode 100644 index 0000000..15c1133 --- /dev/null +++ b/all-in-one-wp-security/lib/whois/whois.lt.php @@ -0,0 +1,64 @@ + 'handle', + 'contact name:' => 'name' + ); + + $items = array( + 'admin' => 'Contact type: Admin', + 'tech' => 'Contact type: Tech', + 'zone' => 'Contact type: Zone', + 'owner.name' => 'Registrar:', + 'owner.email' => 'Registrar email:', + 'domain.status' => 'Status:', + 'domain.created' => 'Registered:', + 'domain.changed' => 'Last updated:', + 'domain.nserver.' => 'NS:', + '' => '%' + ); + + $r['regrinfo'] = easy_parser($data_str['rawdata'], $items, 'ymd', $translate); + + $r['regyinfo'] = array( + 'referrer' => 'http://www.domreg.lt', + 'registrar' => 'DOMREG.LT' + ); + return $r; + } + } +?> \ No newline at end of file diff --git a/all-in-one-wp-security/lib/whois/whois.lu.php b/all-in-one-wp-security/lib/whois/whois.lu.php new file mode 100644 index 0000000..ff7287e --- /dev/null +++ b/all-in-one-wp-security/lib/whois/whois.lu.php @@ -0,0 +1,78 @@ + 'domain.name', + 'domaintype:' => 'domain.status', + 'nserver:' => 'domain.nserver.', + 'registered:' => 'domain.created', + 'source:' => 'domain.source', + 'ownertype:' => 'owner.type', + 'org-name:' => 'owner.organization', + 'org-address:' => 'owner.address.', + 'org-zipcode:' => 'owner.address.pcode', + 'org-city:' => 'owner.address.city', + 'org-country:' => 'owner.address.country', + 'adm-name:' => 'admin.name', + 'adm-address:' => 'admin.address.', + 'adm-zipcode:' => 'admin.address.pcode', + 'adm-city:' => 'admin.address.city', + 'adm-country:' => 'admin.address.country', + 'adm-email:' => 'admin.email', + 'tec-name:' => 'tech.name', + 'tec-address:' => 'tech.address.', + 'tec-zipcode:' => 'tech.address.pcode', + 'tec-city:' => 'tech.address.city', + 'tec-country:' => 'tech.address.country', + 'tec-email:' => 'tech.email', + 'bil-name:' => 'billing.name', + 'bil-address:' => 'billing.address.', + 'bil-zipcode:' => 'billing.address.pcode', + 'bil-city:' => 'billing.address.city', + 'bil-country:' => 'billing.address.country', + 'bil-email:' => 'billing.email' + ); + + $r['regrinfo'] = generic_parser_b($data_str['rawdata'], $items, 'dmy'); + + $r['regyinfo'] = array( + 'referrer' => 'http://www.dns.lu', + 'registrar' => 'DNS-LU' + ); + return $r; + } + } +?> \ No newline at end of file diff --git a/all-in-one-wp-security/lib/whois/whois.ly.php b/all-in-one-wp-security/lib/whois/whois.ly.php new file mode 100644 index 0000000..0ed85d2 --- /dev/null +++ b/all-in-one-wp-security/lib/whois/whois.ly.php @@ -0,0 +1,72 @@ + 'Registrant:', + 'admin' => 'Administrative Contact:', + 'tech' => 'Technical Contact:', + 'domain.name' => 'Domain Name:', + 'domain.status' => 'Domain Status:', + 'domain.created' => 'Created:', + 'domain.changed' => 'Updated:', + 'domain.expires' => 'Expired:', + 'domain.nserver' => 'Domain servers in listed order:' + ); + + $extra = array( 'zip/postal code:' => 'address.pcode' ); + + $r['regrinfo'] = get_blocks($data_str['rawdata'], $items); + + if (!empty($r['regrinfo']['domain']['name'])) + { + $r['regrinfo'] = get_contacts($r['regrinfo'],$extra); + $r['regrinfo']['domain']['name'] = $r['regrinfo']['domain']['name'][0]; + $r['regrinfo']['registered'] = 'yes'; + } + else + { + $r = ''; + $r['regrinfo']['registered'] = 'no'; + } + + $r['regyinfo'] = array( + 'referrer' => 'http://www.nic.ly', + 'registrar' => 'Libya ccTLD' + ); + return $r; + } + } +?> \ No newline at end of file diff --git a/all-in-one-wp-security/lib/whois/whois.main.php b/all-in-one-wp-security/lib/whois/whois.main.php new file mode 100644 index 0000000..1441194 --- /dev/null +++ b/all-in-one-wp-security/lib/whois/whois.main.php @@ -0,0 +1,327 @@ +windows = true; + else + $this->windows = false; + + // Set version + $this->VERSION = sprintf("phpWhois v%s-%s", $this->CODE_VERSION, $this->DATA_VERSION); + } + + /* + * Use special whois server + */ + + function UseServer ($tld, $server) + { + $this->WHOIS_SPECIAL[$tld] = $server; + } + + /* + * Lookup query + */ + + function Lookup($query = '', $is_utf = true) + { + // start clean + $this->Query = array( 'status' => '' ); + + $query = trim($query); + + $IDN = new idna_convert(); + + if ($is_utf) + $query = $IDN->encode($query); + else + $query = $IDN->encode(utf8_encode($query)); + + // If domain to query was not set + if (!isSet($query) || $query == '') + { + // Configure to use default whois server + $this->Query['server'] = $this->NSI_REGISTRY; + return ; + } + + // Set domain to query in query array + + $this->Query['query'] = $domain = strtolower($query); + + // If query is an ip address do ip lookup + + if ($query == long2ip(ip2long($query))) + { + // IPv4 Prepare to do lookup via the 'ip' handler + $ip = @gethostbyname($query); + + if (isset($this->WHOIS_SPECIAL['ip'])) + { + $this->Query['server'] = $this->WHOIS_SPECIAL['ip']; + $this->Query['args'] = $ip; + } + else + { + $this->Query['server'] = 'whois.arin.net'; + $this->Query['args'] = "n $ip"; + $this->Query['file'] = 'whois.ip.php'; + $this->Query['handler'] = 'ip'; + } + $this->Query['host_ip'] = $ip; + $this->Query['query'] = $ip; + $this->Query['tld'] = 'ip'; + $this->Query['host_name'] = @gethostbyaddr($ip); + return $this->GetData('',$this->deep_whois); + } + + if (strpos($query, ':')) + { + // IPv6 AS Prepare to do lookup via the 'ip' handler + $ip = @gethostbyname($query); + + if (isset($this->WHOIS_SPECIAL['ip'])) + { + $this->Query['server'] = $this->WHOIS_SPECIAL['ip']; + } + else + { + $this->Query['server'] = 'whois.ripe.net'; + $this->Query['file'] = 'whois.ip.ripe.php'; + $this->Query['handler'] = 'ripe'; + } + $this->Query['query'] = $ip; + $this->Query['tld'] = 'ip'; + return $this->GetData('',$this->deep_whois); + } + + if (!strpos($query, '.')) + { + // AS Prepare to do lookup via the 'ip' handler + $ip = @gethostbyname($query); + $this->Query['server'] = 'whois.arin.net'; + if (strtolower(substr($ip,0,2)) == 'as') + $as = substr($ip,2); + else + $as = $ip; + $this->Query['args'] = "a $as"; + $this->Query['file'] = 'whois.ip.php'; + $this->Query['handler'] = 'ip'; + $this->Query['query'] = $ip; + $this->Query['tld'] = 'as'; + return $this->GetData('',$this->deep_whois); + } + + // Build array of all possible tld's for that domain + + $tld = ''; + $server = ''; + $dp = explode('.', $domain); + $np = count($dp)-1; + $tldtests = array(); + + for ($i = 0; $i < $np; $i++) + { + array_shift($dp); + $tldtests[] = implode('.', $dp); + } + + // Search the correct whois server + + if ($this->non_icann) + $special_tlds = array_merge($this->WHOIS_SPECIAL,$this->WHOIS_NON_ICANN); + else + $special_tlds = $this->WHOIS_SPECIAL; + + foreach($tldtests as $tld) + { + // Test if we know in advance that no whois server is + // available for this domain and that we can get the + // data via http or whois request + + if (isset($special_tlds[$tld])) + { + $val = $special_tlds[$tld]; + + if ($val == '') return $this->Unknown(); + + $domain = substr($query, 0, - strlen($tld) - 1); + $val = str_replace('{domain}', $domain, $val); + $server = str_replace('{tld}', $tld, $val); + break; + } + } + + if ($server == '') + foreach($tldtests as $tld) + { + // Determine the top level domain, and it's whois server using + // DNS lookups on 'whois-servers.net'. + // Assumes a valid DNS response indicates a recognised tld (!?) + + $cname = $tld.'.whois-servers.net'; + + if (gethostbyname($cname) == $cname) continue; + $server = $tld.'.whois-servers.net'; + break; + } + + if ($tld && $server) + { + // If found, set tld and whois server in query array + $this->Query['server'] = $server; + $this->Query['tld'] = $tld; + $handler = ''; + + foreach($tldtests as $htld) + { + // special handler exists for the tld ? + + if (isSet($this->DATA[$htld])) + { + $handler = $this->DATA[$htld]; + break; + } + + // Regular handler exists for the tld ? + if (($fp = @fopen('whois.'.$htld.'.php', 'r', 1)) and fclose($fp)) + { + $handler = $htld; + break; + } + } + + // If there is a handler set it + + if ($handler != '') + { + $this->Query['file'] = "whois.$handler.php"; + $this->Query['handler'] = $handler; + } + + // Special parameters ? + + if (isset($this->WHOIS_PARAM[$server])) + $this->Query['server'] = $this->Query['server'].'?'.str_replace('$',$domain,$this->WHOIS_PARAM[$server]); + + $result = $this->GetData('',$this->deep_whois); + $this->Checkdns($result); + return $result; + } + + // If tld not known, and domain not in DNS, return error + return $this->Unknown(); + } + + /* Unsupported domains */ + + function Unknown() + { + unset($this->Query['server']); + $this->Query['status'] = 'error'; + $result['rawdata'][] = $this->Query['errstr'][] = $this->Query['query'].' domain is not supported'; + $this->Checkdns($result); + $this->FixResult($result, $this->Query['query']); + return $result; + } + + /* Get nameservers if missing */ + + function Checkdns(&$result) + { + if ($this->deep_whois && empty($result['regrinfo']['domain']['nserver']) && function_exists('dns_get_record')) + { + $ns = @dns_get_record($this->Query['query'],DNS_NS); + if (!is_array($ns)) return; + $nserver = array(); + foreach($ns as $row) $nserver[] = $row['target']; + if (count($nserver) > 0) + $result['regrinfo']['domain']['nserver'] = $this->FixNameServer($nserver); + } + } + /* + * Fix and/or add name server information + */ + + function FixResult(&$result, $domain) + { + // Add usual fields + $result['regrinfo']['domain']['name'] = $domain; + + // Check if nameservers exist + + if (!isset($result['regrinfo']['registered'])) + { + if (function_exists('checkdnsrr') && checkdnsrr($domain, 'NS')) + $result['regrinfo']['registered'] = 'yes'; + else + $result['regrinfo']['registered'] = 'unknown'; + } + + // Normalize nameserver fields + + if (isset($result['regrinfo']['domain']['nserver'])) + { + if (!is_array($result['regrinfo']['domain']['nserver'])) + { + unset($result['regrinfo']['domain']['nserver']); + } + else + $result['regrinfo']['domain']['nserver'] = $this->FixNameServer($result['regrinfo']['domain']['nserver']); + } + } + } + +?> diff --git a/all-in-one-wp-security/lib/whois/whois.me.php b/all-in-one-wp-security/lib/whois/whois.me.php new file mode 100644 index 0000000..09f518d --- /dev/null +++ b/all-in-one-wp-security/lib/whois/whois.me.php @@ -0,0 +1,45 @@ + 'http://domain.me', + 'registrar' => 'doMEn' + ); + return $r; + } + } +?> \ No newline at end of file diff --git a/all-in-one-wp-security/lib/whois/whois.mobi.php b/all-in-one-wp-security/lib/whois/whois.mobi.php new file mode 100644 index 0000000..56347e4 --- /dev/null +++ b/all-in-one-wp-security/lib/whois/whois.mobi.php @@ -0,0 +1,47 @@ + \ No newline at end of file diff --git a/all-in-one-wp-security/lib/whois/whois.museum.php b/all-in-one-wp-security/lib/whois/whois.museum.php new file mode 100644 index 0000000..658a07c --- /dev/null +++ b/all-in-one-wp-security/lib/whois/whois.museum.php @@ -0,0 +1,45 @@ + 'http://musedoma.museum', + 'registrar' => 'Museum Domain Management Association' + ); + return $r; + } + } +?> \ No newline at end of file diff --git a/all-in-one-wp-security/lib/whois/whois.mx.php b/all-in-one-wp-security/lib/whois/whois.mx.php new file mode 100644 index 0000000..882c2c5 --- /dev/null +++ b/all-in-one-wp-security/lib/whois/whois.mx.php @@ -0,0 +1,70 @@ + 'Registrant:', + 'admin' => 'Administrative Contact:', + 'tech' => 'Technical Contact:', + 'billing' => 'Billing Contact:', + 'domain.nserver' => 'Name Servers:', + 'domain.created' => 'Created On:', + 'domain.expires' => 'Expiration Date:', + 'domain.changed' => 'Last Updated On:', + 'domain.sponsor' => 'Registrar:' + ); + + $extra = array( + 'city:' => 'address.city', + 'state:' => 'address.state', + 'dns:' => '0' + ); + + $r['regrinfo'] = easy_parser($data_str['rawdata'],$items,'dmy',$extra); + + $r['regyinfo'] = array( + 'registrar' => 'NIC Mexico', + 'referrer' => 'http://www.nic.mx/' + ); + + if (empty($r['regrinfo']['domain']['created'])) + $r['regrinfo']['registered'] = 'no'; + else + $r['regrinfo']['registered'] = 'yes'; + + return $r; + } + } +?> \ No newline at end of file diff --git a/all-in-one-wp-security/lib/whois/whois.name.php b/all-in-one-wp-security/lib/whois/whois.name.php new file mode 100644 index 0000000..db2d695 --- /dev/null +++ b/all-in-one-wp-security/lib/whois/whois.name.php @@ -0,0 +1,45 @@ + 'http://www.nic.name/', + 'registrar' => 'Global Name Registry' + ); + return $r; + } + } +?> \ No newline at end of file diff --git a/all-in-one-wp-security/lib/whois/whois.nl.php b/all-in-one-wp-security/lib/whois/whois.nl.php new file mode 100644 index 0000000..1b26106 --- /dev/null +++ b/all-in-one-wp-security/lib/whois/whois.nl.php @@ -0,0 +1,88 @@ + 'Domain name:', + 'domain.status' => 'Status:', + 'domain.nserver' => 'Domain nameservers:', + 'domain.created' => 'Date registered:', + 'domain.changed' => 'Record last updated:', + 'domain.sponsor' => 'Registrar:', + 'admin' => 'Administrative contact:', + 'tech' => 'Technical contact(s):' + ); + + $r['regrinfo'] = get_blocks($data['rawdata'], $items); + $r['regyinfo']['referrer'] = 'http://www.domain-registry.nl'; + $r['regyinfo']['registrar'] = 'Stichting Internet Domeinregistratie NL'; + + if (!isset($r['regrinfo']['domain']['status'])) + { + $r['regrinfo']['registered'] = 'no'; + return $r; + } + + if (isset($r['regrinfo']['tech'])) + $r['regrinfo']['tech'] = $this->get_contact($r['regrinfo']['tech']); + + if (isset($r['regrinfo']['zone'])) + $r['regrinfo']['zone'] = $this->get_contact($r['regrinfo']['zone']); + + if (isset($r['regrinfo']['admin'])) + $r['regrinfo']['admin'] = $this->get_contact($r['regrinfo']['admin']); + + if (isset($r['regrinfo']['owner'])) + $r['regrinfo']['owner'] = $this->get_contact($r['regrinfo']['owner']); + + $r['regrinfo']['registered'] = 'yes'; + format_dates($r,'dmy'); + return $r; + } + + function get_contact($data) + { + $r = get_contact($data); + + if (isset($r['name']) && preg_match('/^[A-Z0-9]+-[A-Z0-9]+$/',$r['name'])) + { + $r['handle'] = $r['name']; + $r['name'] = array_shift ($r['address']); + } + + return $r; + } + } +?> \ No newline at end of file diff --git a/all-in-one-wp-security/lib/whois/whois.nu.php b/all-in-one-wp-security/lib/whois/whois.nu.php new file mode 100644 index 0000000..addb471 --- /dev/null +++ b/all-in-one-wp-security/lib/whois/whois.nu.php @@ -0,0 +1,90 @@ + 'Domain Name (UTF-8):', + 'created' => 'Record created on', + 'expires' => 'Record expires on', + 'changed' => 'Record last updated on', + 'status' => 'Record status:', + 'handle' => 'Record ID:' + ); + + while (list($key, $val) = each($data_str['rawdata'])) + { + $val = trim($val); + + if ($val != '') + { + if ($val == 'Domain servers in listed order:') + { + while (list($key, $val) = each($data_str['rawdata'])) + { + $val = trim($val); + if ($val == '') + break; + $r['regrinfo']['domain']['nserver'][] = $val; + } + break; + } + + reset($items); + + while (list($field, $match) = each($items)) + if (strstr($val, $match)) + { + $r['regrinfo']['domain'][$field] = trim(substr($val, strlen($match))); + break; + } + } + } + + if (isset($r['regrinfo']['domain'])) + $r['regrinfo']['registered'] = 'yes'; + else + $r['regrinfo']['registered'] = 'no'; + + $r['regyinfo'] = array( + 'whois' => 'whois.nic.nu', + 'referrer' => 'http://www.nunames.nu', + 'registrar' => '.NU Domain, Ltd' + ); + + format_dates($r, 'dmy'); + return $r; + } + } +?> \ No newline at end of file diff --git a/all-in-one-wp-security/lib/whois/whois.nz.php b/all-in-one-wp-security/lib/whois/whois.nz.php new file mode 100644 index 0000000..6f17d2a --- /dev/null +++ b/all-in-one-wp-security/lib/whois/whois.nz.php @@ -0,0 +1,102 @@ + 'domain.name', + 'query_status:' => 'domain.status', + 'ns_name_01:' => 'domain.nserver.0', + 'ns_name_02:' => 'domain.nserver.1', + 'ns_name_03:' => 'domain.nserver.2', + 'domain_dateregistered:' => 'domain.created', + 'domain_datelastmodified:' => 'domain.changed', + 'domain_datebilleduntil:' => 'domain.expires', + 'registrar_name:' => 'domain.sponsor', + 'registrant_contact_name:' => 'owner.name', + 'registrant_contact_address1:' => 'owner.address.address.0', + 'registrant_contact_address2:' => 'owner.address.address.1', + 'registrant_contact_address3:' => 'owner.address.address.2', + 'registrant_contact_postalcode:'=> 'owner.address.pcode', + 'registrant_contact_city:' => 'owner.address.city', + 'Registrant State/Province:' => 'owner.address.state', + 'registrant_contact_country:' => 'owner.address.country', + 'registrant_contact_phone:' => 'owner.phone', + 'registrant_contact_fax:' => 'owner.fax', + 'registrant_contact_email:' => 'owner.email', + 'admin_contact_name:' => 'admin.name', + 'admin_contact_address1:' => 'admin.address.address.0', + 'admin_contact_address2:' => 'admin.address.address.1', + 'admin_contact_address3:' => 'admin.address.address.2', + 'admin_contact_postalcode:' => 'admin.address.pcode', + 'admin_contact_city:' => 'admin.address.city', + 'admin_contact_country:' => 'admin.address.country', + 'admin_contact_phone:' => 'admin.phone', + 'admin_contact_fax:' => 'admin.fax', + 'admin_contact_email:' => 'admin.email', + 'technical_contact_name:' => 'tech.name', + 'technical_contact_address1:' => 'tech.address.address.0', + 'technical_contact_address1:' => 'tech.address.address.1', + 'technical_contact_address1:' => 'tech.address.address.2', + 'technical_contact_postalcode:' => 'tech.address.pcode', + 'technical_contact_city:' => 'tech.address.city', + 'technical_contact_country:' => 'tech.address.country', + 'technical_contact_phone:' => 'tech.phone', + 'technical_contact_fax:' => 'tech.fax', + 'technical_contact_email:' => 'tech.email' + ); + + $r['regrinfo'] = generic_parser_b($data_str['rawdata'], $items); + + if (!empty($r['regrinfo']['domain']['status'])) + $domain_status = substr($r['regrinfo']['domain']['status'],0,3); + else + $domain_status = ''; + + if ($domain_status=='200') + $r['regrinfo']['registered']='yes'; + elseif ($domain_status=='220') + $r['regrinfo']['registered']='no'; + else + $r['regrinfo']['registered']='unknown'; + + if (!strncmp($data_str['rawdata'][0], 'WHOIS LIMIT EXCEEDED', 20)) + $r['regrinfo']['registered'] = 'unknown'; + + $r['regyinfo']['referrer'] = 'http://www.dnc.org.nz'; + $r['regyinfo']['registrar'] = 'New Zealand Domain Name Registry Limited'; + return $r; + } + } +?> \ No newline at end of file diff --git a/all-in-one-wp-security/lib/whois/whois.org.php b/all-in-one-wp-security/lib/whois/whois.org.php new file mode 100644 index 0000000..7dc45f9 --- /dev/null +++ b/all-in-one-wp-security/lib/whois/whois.org.php @@ -0,0 +1,47 @@ + \ No newline at end of file diff --git a/all-in-one-wp-security/lib/whois/whois.org.za.php b/all-in-one-wp-security/lib/whois/whois.org.za.php new file mode 100644 index 0000000..13d38b0 --- /dev/null +++ b/all-in-one-wp-security/lib/whois/whois.org.za.php @@ -0,0 +1,64 @@ + 'Status:', + 'domain.nserver' => 'Domain name servers in listed order:', + 'domain.changed' => 'Record last updated on', + 'owner' => 'rwhois search on', + 'admin' => 'Administrative Contact:', + 'tech' => 'Technical Contact:', + 'billing' => 'Billing Contact:', + '#' => 'Search Again' + ); + + $r['regrinfo'] = get_blocks($data['rawdata'], $items); + + if (isset($r['regrinfo']['domain']['status'])) + { + $r['regrinfo']['registered'] = 'yes'; + $r['regrinfo']['domain']['handler'] = strtok(array_shift($r['regrinfo']['owner']),' '); + $r['regrinfo'] = get_contacts($r['regrinfo']); + } + else + $r['regrinfo']['registered'] = 'no'; + + $r['regyinfo']['referrer'] = 'http://www.org.za'; + $r['regyinfo']['registrar'] = 'The ORG.ZA Domain'; + return $r; + } + } +?> \ No newline at end of file diff --git a/all-in-one-wp-security/lib/whois/whois.parser.php b/all-in-one-wp-security/lib/whois/whois.parser.php new file mode 100644 index 0000000..d11243a --- /dev/null +++ b/all-in-one-wp-security/lib/whois/whois.parser.php @@ -0,0 +1,873 @@ + 'domain.name', + 'Domain ID:' => 'domain.handle', + 'Sponsoring Registrar:' => 'domain.sponsor', + 'Registrar ID:' => 'domain.sponsor', + 'Domain Status:' => 'domain.status.', + 'Status:' => 'domain.status.', + 'Name Server:' => 'domain.nserver.', + 'Nameservers:' => 'domain.nserver.', + 'Maintainer:' => 'domain.referer', + + 'Domain Registration Date:' => 'domain.created', + 'Domain Create Date:' => 'domain.created', + 'Domain Expiration Date:' => 'domain.expires', + 'Domain Last Updated Date:' => 'domain.changed', + 'Creation Date:' => 'domain.created', + 'Last Modification Date:' => 'domain.changed', + 'Expiration Date:' => 'domain.expires', + 'Created On:' => 'domain.created', + 'Last Updated On:' => 'domain.changed', + 'Expiration Date:' => 'domain.expires', + + 'Registrant ID:' => 'owner.handle', + 'Registrant Name:' => 'owner.name', + 'Registrant Organization:' => 'owner.organization', + 'Registrant Address:' => 'owner.address.street.', + 'Registrant Address1:' => 'owner.address.street.', + 'Registrant Address2:' => 'owner.address.street.', + 'Registrant Street:' => 'owner.address.street.', + 'Registrant Street1:' => 'owner.address.street.', + 'Registrant Street2:' => 'owner.address.street.', + 'Registrant Street3:' => 'owner.address.street.', + 'Registrant Postal Code:' => 'owner.address.pcode', + 'Registrant City:' => 'owner.address.city', + 'Registrant State/Province:' => 'owner.address.state', + 'Registrant Country:' => 'owner.address.country', + 'Registrant Country/Economy:' => 'owner.address.country', + 'Registrant Phone Number:' => 'owner.phone', + 'Registrant Phone:' => 'owner.phone', + 'Registrant Facsimile Number:' => 'owner.fax', + 'Registrant FAX:' => 'owner.fax', + 'Registrant Email:' => 'owner.email', + 'Registrant E-mail:' => 'owner.email', + + 'Administrative Contact ID:' => 'admin.handle', + 'Administrative Contact Name:' => 'admin.name', + 'Administrative Contact Organization:' => 'admin.organization', + 'Administrative Contact Address:' => 'admin.address.street.', + 'Administrative Contact Address1:' => 'admin.address.street.', + 'Administrative Contact Address2:' => 'admin.address.street.', + 'Administrative Contact Postal Code:' => 'admin.address.pcode', + 'Administrative Contact City:' => 'admin.address.city', + 'Administrative Contact State/Province:' => 'admin.address.state', + 'Administrative Contact Country:' => 'admin.address.country', + 'Administrative Contact Phone Number:' => 'admin.phone', + 'Administrative Contact Email:' => 'admin.email', + 'Administrative Contact Facsimile Number:' => 'admin.fax', + 'Administrative Contact Tel:' => 'admin.phone', + 'Administrative Contact Fax:' => 'admin.fax', + 'Administrative ID:' => 'admin.handle', + 'Administrative Name:' => 'admin.name', + 'Administrative Organization:' => 'admin.organization', + 'Administrative Address:' => 'admin.address.street.', + 'Administrative Address1:' => 'admin.address.street.', + 'Administrative Address2:' => 'admin.address.street.', + 'Administrative Postal Code:' => 'admin.address.pcode', + 'Administrative City:' => 'admin.address.city', + 'Administrative State/Province:' => 'admin.address.state', + 'Administrative Country/Economy:' => 'admin.address.country', + 'Administrative Phone:' => 'admin.phone', + 'Administrative E-mail:' => 'admin.email', + 'Administrative Facsimile Number:' => 'admin.fax', + 'Administrative Tel:' => 'admin.phone', + 'Administrative FAX:' => 'admin.fax', + 'Admin ID:' => 'admin.handle', + 'Admin Name:' => 'admin.name', + 'Admin Organization:' => 'admin.organization', + 'Admin Street:' => 'admin.address.street.', + 'Admin Street1:' => 'admin.address.street.', + 'Admin Street2:' => 'admin.address.street.', + 'Admin Street3:' => 'admin.address.street.', + 'Admin Address:' => 'admin.address.street.', + 'Admin Address2:' => 'admin.address.street.', + 'Admin Address3:' => 'admin.address.street.', + 'Admin City:' => 'admin.address.city', + 'Admin State/Province:' => 'admin.address.state', + 'Admin Postal Code:' => 'admin.address.pcode', + 'Admin Country:' => 'admin.address.country', + 'Admin Country/Economy:' => 'admin.address.country', + 'Admin Phone:' => 'admin.phone', + 'Admin FAX:' => 'admin.fax', + 'Admin Email:' => 'admin.email', + 'Admin E-mail:' => 'admin.email', + + 'Technical Contact ID:' => 'tech.handle', + 'Technical Contact Name:' => 'tech.name', + 'Technical Contact Organization:' => 'tech.organization', + 'Technical Contact Address:' => 'tech.address.street.', + 'Technical Contact Address1:' => 'tech.address.street.', + 'Technical Contact Address2:' => 'tech.address.street.', + 'Technical Contact Postal Code:' => 'tech.address.pcode', + 'Technical Contact City:' => 'tech.address.city', + 'Technical Contact State/Province:' => 'tech.address.state', + 'Technical Contact Country:' => 'tech.address.country', + 'Technical Contact Phone Number:' => 'tech.phone', + 'Technical Contact Facsimile Number:' => 'tech.fax', + 'Technical Contact Phone:' => 'tech.phone', + 'Technical Contact Fax:' => 'tech.fax', + 'Technical Contact Email:' => 'tech.email', + 'Technical ID:' => 'tech.handle', + 'Technical Name:' => 'tech.name', + 'Technical Organization:' => 'tech.organization', + 'Technical Address:' => 'tech.address.street.', + 'Technical Address1:' => 'tech.address.street.', + 'Technical Address2:' => 'tech.address.street.', + 'Technical Postal Code:' => 'tech.address.pcode', + 'Technical City:' => 'tech.address.city', + 'Technical State/Province:' => 'tech.address.state', + 'Technical Country/Economy:' => 'tech.address.country', + 'Technical Phone Number:' => 'tech.phone', + 'Technical Facsimile Number:' => 'tech.fax', + 'Technical Phone:' => 'tech.phone', + 'Technical Fax:' => 'tech.fax', + 'Technical FAX:' => 'tech.fax', + 'Technical E-mail:' => 'tech.email', + 'Tech ID:' => 'tech.handle', + 'Tech Name:' => 'tech.name', + 'Tech Organization:' => 'tech.organization', + 'Tech Address:' => 'tech.address.street.', + 'Tech Address2:' => 'tech.address.street.', + 'Tech Address3:' => 'tech.address.street.', + 'Tech Street:' => 'tech.address.street.', + 'Tech Street1:' => 'tech.address.street.', + 'Tech Street2:' => 'tech.address.street.', + 'Tech Street3:' => 'tech.address.street.', + 'Tech City:' => 'tech.address.city', + 'Tech Postal Code:' => 'tech.address.pcode', + 'Tech State/Province:' => 'tech.address.state', + 'Tech Country:' => 'tech.address.country', + 'Tech Country/Economy:' => 'tech.address.country', + 'Tech Phone:' => 'tech.phone', + 'Tech FAX:' => 'tech.fax', + 'Tech Email:' => 'tech.email', + 'Tech E-mail:' => 'tech.email', + + 'Billing Contact ID:' => 'billing.handle', + 'Billing Contact Name:' => 'billing.name', + 'Billing Contact Organization:' => 'billing.organization', + 'Billing Contact Address1:' => 'billing.address.street.', + 'Billing Contact Address2:' => 'billing.address.street.', + 'Billing Contact Postal Code:' => 'billing.address.pcode', + 'Billing Contact City:' => 'billing.address.city', + 'Billing Contact State/Province:' => 'billing.address.state', + 'Billing Contact Country:' => 'billing.address.country', + 'Billing Contact Phone Number:' => 'billing.phone', + 'Billing Contact Facsimile Number:' => 'billing.fax', + 'Billing Contact Email:' => 'billing.email', + 'Billing ID:' => 'billing.handle', + 'Billing Name:' => 'billing.name', + 'Billing Organization:' => 'billing.organization', + 'Billing Address:' => 'billing.address.street.', + 'Billing Address1:' => 'billing.address.street.', + 'Billing Address2:' => 'billing.address.street.', + 'Billing Address3:' => 'billing.address.street.', + 'Billing Street:' => 'billing.address.street.', + 'Billing Street1:' => 'billing.address.street.', + 'Billing Street2:' => 'billing.address.street.', + 'Billing Street3:' => 'billing.address.street.', + 'Billing City:' => 'billing.address.city', + 'Billing Postal Code:' => 'billing.address.pcode', + 'Billing State/Province:' => 'billing.address.state', + 'Billing Country:' => 'billing.address.country', + 'Billing Country/Economy:' => 'billing.address.country', + 'Billing Phone:' => 'billing.phone', + 'Billing Fax:' => 'billing.fax', + 'Billing FAX:' => 'billing.fax', + 'Billing Email:' => 'billing.email', + 'Billing E-mail:' => 'billing.email', + + 'Zone ID:' => 'zone.handle', + 'Zone Organization:' => 'zone.organization', + 'Zone Name:' => 'zone.name', + 'Zone Address:' => 'zone.address.street.', + 'Zone Address 2:' => 'zone.address.street.', + 'Zone City:' => 'zone.address.city', + 'Zone State/Province:' => 'zone.address.state', + 'Zone Postal Code:' => 'zone.address.pcode', + 'Zone Country:' => 'zone.address.country', + 'Zone Phone Number:' => 'zone.phone', + 'Zone Fax Number:' => 'zone.fax', + 'Zone Email:' => 'zone.email' + ); + +$r = ''; +$disok = true; + +while (list($key,$val) = each($rawdata)) + { + if (trim($val) != '') + { + if (($val[0]=='%' || $val[0]=='#') && $disok) + { + $r['disclaimer'][] = trim(substr($val,1)); + $disok = true; + continue; + } + + $disok = false; + reset($items); + + while (list($match, $field)=each($items)) + { + $pos = strpos($val,$match); + + if ($pos !== false) + { + if ($field != '') + { + $var = '$r'.getvarname($field); + $itm = trim(substr($val,$pos+strlen($match))); + + if ($itm!='') + eval($var.'="'.str_replace('"','\"',$itm).'";'); + } + + if (!$scanall) + break; + } + } + } + } + +if (empty($r)) + { + if ($hasreg) $r['registered'] = 'no'; + } +else + { + if ($hasreg) $r['registered'] = 'yes'; + + $r = format_dates($r, $dateformat); + } + +return $r; +} + +//------------------------------------------------------------------------- + +function getvarname ( $vdef ) +{ +$parts = explode('.',$vdef); +$var = ''; + +foreach($parts as $mn) + if ($mn == '') $var = $var.'[]'; + else $var = $var.'["'.$mn.'"]'; + +return $var; +} + +//------------------------------------------------------------------------- + +function get_blocks ( $rawdata, $items, $partial_match = false, $def_block = false ) +{ + +$r = array(); +$endtag = ''; + +while (list($key,$val) = each($rawdata)) + { + $val = trim($val); + if ($val == '') continue; + + $var = $found = false; + + foreach ($items as $field => $match) + { + $pos = strpos($val,$match); + + if ($field != '' && $pos !== false) + { + if ($val == $match) + { + $found = true; + $endtag = ''; + $line = $val; + break; + } + + $last = substr($val,-1,1); + + if ($last == ':' || $last == '-' || $last == ']') + { + $found = true; + $endtag = $last; + $line = $val; + } + else + { + $var = getvarname(strtok($field,'#')); + $itm = trim(substr($val,$pos+strlen($match))); + eval('$r'.$var.'=$itm;'); + } + + break; + } + } + + if (!$found) + { + if (!$var && $def_block) $r[$def_block][] = $val; + continue; + } + + $block = array(); + + // Block found, get data ... + + while (list($key,$val) = each($rawdata)) + { + $val = trim($val); + + if ($val == '' || $val == str_repeat($val[0],strlen($val))) continue; + + $last = substr($val,-1,1); +/* + if ($last == $endtag) + { + // Another block found + prev($rawdata); + break; + } + + if ($endtag == '' || $partial_match) + */ + if ($endtag == '' || $partial_match || $last == $endtag) + { + //Check if this line starts another block + $et = false; + + foreach ($items as $field => $match) + { + $pos = strpos($val,$match); + + if ($pos !== false && $pos == 0) + { + $et = true; + break; + } + } + + if ($et) + { + // Another block found + prev($rawdata); + break; + } + } + + $block[] = $val; + } + + if (empty($block)) continue; + + foreach ($items as $field => $match) + { + $pos = strpos($line,$match); + + if ($pos !== false) + { + $var = getvarname(strtok($field,'#')); + if ($var != '[]') eval('$r'.$var.'=$block;'); + } + } + } + +return $r; +} + +//------------------------------------------------------------------------- + +function easy_parser($data_str, $items, $date_format, $translate = false , + $has_org = false, $partial_match = false, + $def_block = false ) +{ +$r = get_blocks($data_str, $items, $partial_match, $def_block); +$r = get_contacts($r, $translate, $has_org); +format_dates($r, $date_format); +return $r; +} + +//------------------------------------------------------------------------- + +function get_contacts ( $array, $extra_items='', $has_org= false ) +{ +if (isset($array['billing'])) + $array['billing'] = get_contact($array['billing'], $extra_items, $has_org); + +if (isset($array['tech'])) + $array['tech'] = get_contact($array['tech'], $extra_items, $has_org); + +if (isset($array['zone'])) + $array['zone'] = get_contact($array['zone'], $extra_items, $has_org); + +if (isset($array['admin'])) + $array['admin'] = get_contact($array['admin'], $extra_items, $has_org); + +if (isset($array['owner'])) + $array['owner'] = get_contact($array['owner'], $extra_items, $has_org); + +if (isset($array['registrar'])) + $array['registrar'] = get_contact($array['registrar'], $extra_items, $has_org); + +return $array; +} + +//------------------------------------------------------------------------- + +function get_contact ( $array, $extra_items='', $has_org= false ) +{ + +if (!is_array($array)) + return array(); + +$items = array ( + 'fax..:' => 'fax', + 'fax.' => 'fax', + 'fax-no:' => 'fax', + 'fax -' => 'fax', + 'fax-' => 'fax', + 'fax::' => 'fax', + 'fax:' => 'fax', + '[fax]' => 'fax', + '(fax)' => 'fax', + 'fax' => 'fax', + 'tel. ' => 'phone', + 'tel:' => 'phone', + 'phone::' => 'phone', + 'phone:' => 'phone', + 'phone-' => 'phone', + 'phone -' => 'phone', + 'email:' => 'email', + 'e-mail:' => 'email', + 'company name:' => 'organization', + 'organisation:' => 'organization', + 'first name:' => 'name.first', + 'last name:' => 'name.last', + 'street:' => 'address.street', + 'address:' => 'address.street.', + 'language:' => '', + 'location:' => 'address.city', + 'country:' => 'address.country', + 'name:' => 'name', + 'last modified:' => 'changed' + ); + +if ($extra_items) + { + foreach($items as $match => $field) + if (!isset($extra_items[$match])) + $extra_items[$match] = $field; + $items = $extra_items; + } + +while (list($key,$val)=each($array)) + { + $ok=true; + + while ($ok) + { + reset($items); + $ok = false; + + while (list($match,$field) = each($items)) + { + $pos = strpos(strtolower($val),$match); + + if ($pos === false) continue; + + $itm = trim(substr($val,$pos+strlen($match))); + + if ($field != '' && $itm != '') + { + eval('$r'.getvarname($field).'=$itm;'); + } + + $val = trim(substr($val,0,$pos)); + + if ($val == '') + { + unset($array[$key]); + break; + } + else + { + $array[$key] = $val; + $ok = true; + } + //break; + } + + if (preg_match("/([+]*[-\(\)\. x0-9]){7,}/", $val, $matches)) + { + $phone = trim(str_replace(' ','',$matches[0])); + + if (strlen($phone) > 8 && !preg_match('/[0-9]{5}\-[0-9]{3}/',$phone)) + { + if (isset($r['phone'])) + { + if (isset($r['fax'])) continue; + $r['fax'] = trim($matches[0]); + } + else + { + $r['phone'] = trim($matches[0]); + } + + $val = str_replace($matches[0],'',$val); + + if ($val == '') + { + unset($array[$key]); + continue; + } + else + { + $array[$key] = $val; + $ok = true; + } + } + } + + if (preg_match('/([-0-9a-zA-Z._+&\/=]+@([-0-9a-zA-Z]+[.])+[a-zA-Z]{2,6})/',$val, $matches)) + { + $r['email'] = $matches[0]; + + $val = str_replace($matches[0],'',$val); + $val = trim(str_replace('()','',$val)); + + if ($val == '') + { + unset($array[$key]); + continue; + } + else + { + if (!isset($r['name'])) + { + $r['name'] = $val; + unset($array[$key]); + } + else + $array[$key] = $val; + + $ok = true; + } + } + } + } + +if (!isset($r['name']) && count($array)>0) + { + $r['name'] = array_shift($array); + } + +if ($has_org && count($array)>0) + { + $r['organization'] = array_shift($array); + } + +if (isset($r['name']) && is_array($r['name'])) + { + $r['name'] = implode($r['name'],' '); + } + +if (!empty($array)) + { + if (isset($r['address'])) + $r['address'] = array_merge($r['address'],$array); + else + $r['address'] = $array; + } + +return $r; +} + +//------------------------------------------------------------------------- + +function format_dates (&$res,$format='mdy') +{ +if (!is_array($res)) return $res; + +foreach ($res as $key => $val) + { + if (is_array($val)) + { + if (!is_numeric($key) && ($key=='expires' || $key=='created' || $key=='changed')) + { + $d = get_date($val[0],$format); + if ($d) $res[$key] = $d; + } + else + { + $res[$key] = format_dates($val,$format); + } + } + else + { + if (!is_numeric($key) && ($key=='expires' || $key=='created' || $key=='changed')) + { + $d = get_date($val,$format); + if ($d) $res[$key] = $d; + } + } + } + +return $res; +} + +//------------------------------------------------------------------------- + +function get_date($date,$format) +{ +$months = array( 'jan'=>1, 'ene'=>1, 'feb'=>2, 'mar'=>3, 'apr'=>4, 'abr'=>4, + 'may'=>5, 'jun'=>6, 'jul'=>7, 'aug'=>8, 'ago'=>8, 'sep'=>9, + 'oct'=>10, 'nov'=>11, 'dec'=>12, 'dic'=>12 ); + +$parts = explode(' ',$date); + +if (strpos($parts[0],'@') !== false) + { + unset($parts[0]); + $date = implode(' ',$parts); + } + +$date = str_replace(',',' ',trim($date)); +$date = str_replace('.',' ',$date); +$date = str_replace('-',' ',$date); +$date = str_replace('/',' ',$date); +$date = str_replace("\t",' ',$date); + +$parts = explode(' ',$date); +$res = false; + +if ((strlen($parts[0]) == 8 || count($parts) == 1) && is_numeric($parts[0])) + { + $val = $parts[0]; + for ($p=$i=0; $i<3; $i++) + { + if ($format[$i] != 'Y') + { + $res[$format[$i]] = substr($val,$p,2); + $p += 2; + } + else + { + $res['y'] = substr($val,$p,4); + $p += 4; + } + } + } +else + { + $format = strtolower($format); + + for ($p=$i=0; $p 1900) + { + $res[$key] = $res['y']; + $res['y'] = $val; + $ok = false; + break; + } + } + } + +if ($res['m'] > 12) + { + $v = $res['m']; + $res['m'] = $res['d']; + $res['d'] = $v; + } + +if ($res['y'] < 70) + $res['y'] += 2000; +else + if ($res['y'] <= 99) + $res['y'] += 1900; + +return sprintf("%.4d-%02d-%02d",$res['y'],$res['m'],$res['d']); +} + +?> \ No newline at end of file diff --git a/all-in-one-wp-security/lib/whois/whois.pl.php b/all-in-one-wp-security/lib/whois/whois.pl.php new file mode 100644 index 0000000..5228954 --- /dev/null +++ b/all-in-one-wp-security/lib/whois/whois.pl.php @@ -0,0 +1,54 @@ + 'created:', + 'domain.changed' => 'last modified:', + 'domain.sponsor' => 'REGISTRAR:', + '#' => 'WHOIS displays data with a delay not exceeding 15 minutes in relation to the .pl Registry system' + + ); + + $r['regrinfo'] = easy_parser($data_str['rawdata'], $items, 'ymd'); + + $r['regyinfo'] = array( + 'referrer' => 'http://www.dns.pl/english/index.html', + 'registrar' => 'NASK' + ); + return $r; + } + } +?> \ No newline at end of file diff --git a/all-in-one-wp-security/lib/whois/whois.pro.php b/all-in-one-wp-security/lib/whois/whois.pro.php new file mode 100644 index 0000000..7c09bd4 --- /dev/null +++ b/all-in-one-wp-security/lib/whois/whois.pro.php @@ -0,0 +1,43 @@ + \ No newline at end of file diff --git a/all-in-one-wp-security/lib/whois/whois.pt.php b/all-in-one-wp-security/lib/whois/whois.pt.php new file mode 100644 index 0000000..ddda050 --- /dev/null +++ b/all-in-one-wp-security/lib/whois/whois.pt.php @@ -0,0 +1,81 @@ + ' / Domain Name:', + 'domain.created' => 'Data de registo / Creation Date (dd/mm/yyyy):', + 'domain.nserver.' => 'Nameserver:', + 'domain.status' => 'Estado / Status:', + 'owner' => 'Titular / Registrant', + 'billing' => 'Entidade Gestora / Billing Contact', + 'admin' => 'Responsável Administrativo / Admin Contact', + 'tech' => 'Responsável Técnico / Tech Contact', + '#' => 'Nameserver Information' + ); + + $r['regrinfo'] = get_blocks($data['rawdata'], $items); + + if (empty($r['regrinfo']['domain']['name'])) + { + print_r($r['regrinfo']); + $r['regrinfo']['registered'] = 'no'; + return $r; + } + + $r['regrinfo']['domain']['created'] = get_date($r['regrinfo']['domain']['created'], 'dmy'); + + if ($r['regrinfo']['domain']['status'] == 'ACTIVE') + { + $r['regrinfo'] = get_contacts($r['regrinfo']); + $r['regrinfo']['registered'] = 'yes'; + } + else + $r['regrinfo']['registered'] = 'no'; + + $r['regyinfo'] = array( + 'referrer' => 'http://www.fccn.pt', + 'registrar' => 'FCCN' + ); + + return $r; + } + } +?> \ No newline at end of file diff --git a/all-in-one-wp-security/lib/whois/whois.ro.php b/all-in-one-wp-security/lib/whois/whois.ro.php new file mode 100644 index 0000000..3c61775 --- /dev/null +++ b/all-in-one-wp-security/lib/whois/whois.ro.php @@ -0,0 +1,99 @@ + 'fax', + 'e-mail' => 'email', + 'nic-hdl' => 'handle', + 'person' => 'name', + 'address' => 'address.', + 'domain-name' => '', + 'updated' => 'changed', + 'registration-date' => 'created', + 'domain-status' => 'status', + 'nameserver' => 'nserver' + ); + + $contacts = array( + 'admin-contact' => 'admin', + 'technical-contact' => 'tech', + 'zone-contact' => 'zone', + 'billing-contact' => 'billing' + ); + + $extra = array( + 'postal code:' => 'address.pcode' + ); + + $reg = generic_parser_a($data_str['rawdata'], $translate, $contacts, 'domain','Ymd'); + + if (isset($reg['domain']['description'])) + { + $reg['owner'] = get_contact($reg['domain']['description'],$extra); + unset($reg['domain']['description']); + + foreach($reg as $key => $item) + { + if (isset($item['address'])) + { + $data = $item['address']; + unset($reg[$key]['address']); + $reg[$key] = array_merge($reg[$key],get_contact($data,$extra)); + } + } + + $reg['registered'] = 'yes'; + } + else + $reg['registered'] = 'no'; + + $r['regrinfo'] = $reg; + $r['regyinfo'] = array( + 'referrer' => 'http://www.nic.ro', + 'registrar' => 'nic.ro' + ); + + return $r; + } + } +?> \ No newline at end of file diff --git a/all-in-one-wp-security/lib/whois/whois.ru.php b/all-in-one-wp-security/lib/whois/whois.ru.php new file mode 100644 index 0000000..f2419c7 --- /dev/null +++ b/all-in-one-wp-security/lib/whois/whois.ru.php @@ -0,0 +1,63 @@ + 'domain.name', + 'state:' => 'domain.status', + 'nserver:' => 'domain.nserver.', + 'source:' => 'domain.source', + 'created:' => 'domain.created', + 'paid-till:' => 'domain.expires', + 'type:' => 'owner.type', + 'org:' => 'owner.organization', + 'phone:' => 'owner.phone', + 'fax-no:' => 'owner.fax', + 'email:' => 'admin.email' + ); + + $r['regrinfo'] = generic_parser_b($data_str['rawdata'], $items, 'dmy'); + + if (empty($r['regrinfo']['domain']['status'])) + $r['regrinfo']['registered'] = 'no'; + + $r['regyinfo'] = array( + 'referrer' => 'http://www.ripn.net', + 'registrar' => 'RUCENTER-REG-RIPN' + ); + return $r; + } + } +?> \ No newline at end of file diff --git a/all-in-one-wp-security/lib/whois/whois.rwhois.php b/all-in-one-wp-security/lib/whois/whois.rwhois.php new file mode 100644 index 0000000..04bc31f --- /dev/null +++ b/all-in-one-wp-security/lib/whois/whois.rwhois.php @@ -0,0 +1,58 @@ + 'owner.name', + 'network:Organization;I:' => 'owner.organization', + 'network:Organization-City:' => 'owner.address.city', + 'network:Organization-Zip:' => 'owner.address.pcode', + 'network:Organization-Country:' => 'owner.address.country', + 'network:IP-Network-Block:' => 'network.inetnum', + 'network:IP-Network:' => 'network.inetnum', + 'network:Network-Name:' => 'network.name', + 'network:ID:' => 'network.handle', + 'network:Created:' => 'network.created', + 'network:Updated:' => 'network.changed', + 'network:Tech-Contact;I:' => 'tech.email', + 'network:Admin-Contact;I:' => 'admin.email' + ); + + $res = generic_parser_b($data_str, $items, 'Ymd', false); + if (isset($res['disclaimer'])) unset($res['disclaimer']); + return array( 'regrinfo' => $res ); + } + } +?> \ No newline at end of file diff --git a/all-in-one-wp-security/lib/whois/whois.sc.php b/all-in-one-wp-security/lib/whois/whois.sc.php new file mode 100644 index 0000000..663b83e --- /dev/null +++ b/all-in-one-wp-security/lib/whois/whois.sc.php @@ -0,0 +1,45 @@ + 'http://www.nic.sc', + 'registrar' => 'VCS (Pty) Limited' + ); + return $r; + } + } +?> \ No newline at end of file diff --git a/all-in-one-wp-security/lib/whois/whois.se.php b/all-in-one-wp-security/lib/whois/whois.se.php new file mode 100644 index 0000000..a463382 --- /dev/null +++ b/all-in-one-wp-security/lib/whois/whois.se.php @@ -0,0 +1,58 @@ + 'domain.name', + 'state:' => 'domain.status.', + 'status:' => 'domain.status.', + 'expires:' => 'domain.expires', + 'created:' => 'domain.created', + 'nserver:' => 'domain.nserver.', + 'holder:' => 'owner.handle' + ); + + $r['regrinfo'] = generic_parser_b($data_str['rawdata'], $items, 'ymd', false); + + $r['regrinfo']['registered'] = isset($r['regrinfo']['domain']['name']) ? 'yes' : 'no'; + + $r['regyinfo'] = array( + 'referrer' => 'http://www.nic-se.se', + 'registrar' => 'NIC-SE' + ); + return $r; + } + } +?> \ No newline at end of file diff --git a/all-in-one-wp-security/lib/whois/whois.servers.php b/all-in-one-wp-security/lib/whois/whois.servers.php new file mode 100644 index 0000000..d0eb2a3 --- /dev/null +++ b/all-in-one-wp-security/lib/whois/whois.servers.php @@ -0,0 +1,252 @@ +DATA_VERSION = '19'; + +$this->DATA = array( + 'bz' => 'gtld', + 'com' => 'gtld', + 'jobs' => 'gtld', + 'li' => 'ch', + 'net' => 'gtld', + 'tv' => 'gtld', + 'za.org' => 'zanet', + 'za.net' => 'zanet' + ); + +/* Non UTF-8 servers */ + +$this->NON_UTF8 = array( + 'br.whois-servers.net' => 1, + 'ca.whois-servers.net' => 1, + 'cl.whois-servers.net' => 1, + 'hu.whois-servers.net' => 1, + 'is.whois-servers.net' => 1, + 'pt.whois-servers.net' => 1, + 'whois.interdomain.net' => 1, + 'whois.lacnic.net' => 1, + 'whois.nicline.com' => 1, + 'whois.ripe.net' => 1 + ); + +/* If whois Server needs any parameters, enter it here */ + +$this->WHOIS_PARAM = array( + 'com.whois-servers.net' => 'domain =$', + 'net.whois-servers.net' => 'domain =$', + 'de.whois-servers.net' => '-T dn,ace $', + 'jp.whois-servers.net' => 'DOM $/e' + ); + +/* TLD's that have special whois servers or that can only be reached via HTTP */ + +$this->WHOIS_SPECIAL = array( + 'ad' => '', + 'ae' => 'whois.aeda.net.ae', + 'af' => 'whois.nic.af', + 'ai' => 'http://whois.offshore.ai/cgi-bin/whois.pl?domain-name={domain}.ai', + 'al' => '', + 'az' => '', + 'ba' => '', + 'bb' => 'http://domains.org.bb/regsearch/getdetails.cfm?DND={domain}.bb', + 'bg' => 'http://www.register.bg/bg-nic/displaydomain.pl?domain={domain}.bg&search=exist', + 'bi' => 'whois.nic.bi', + 'bj' => 'whois.nic.bj', + 'by' => '', + 'bz' => 'whois2.afilias-grs.net', + 'cy' => '', + 'es' => '', + 'fj' => 'whois.usp.ac.fj', + 'fm' => 'http://www.dot.fm/query_whois.cfm?domain={domain}&tld=fm', + 'jobs' => 'jobswhois.verisign-grs.com', + 'ke' => 'kenic.or.ke', + 'la' => 'whois.centralnic.net', + 'gr' => '', + 'gs' => 'http://www.adamsnames.tc/whois/?domain={domain}.gs', + 'gt' => 'http://www.gt/Inscripcion/whois.php?domain={domain}.gt', + 'me' => 'whois.meregistry.net', + 'mobi' => 'whois.dotmobiregistry.net', + 'ms' => 'http://www.adamsnames.tc/whois/?domain={domain}.ms', + 'mt' => 'http://www.um.edu.mt/cgi-bin/nic/whois?domain={domain}.mt', + 'nl' => 'whois.domain-registry.nl', + 'ly' => 'whois.nic.ly', + 'pe' => 'kero.rcp.net.pe', + 'pr' => 'whois.uprr.pr', + 'pro' => 'whois.registry.pro', + 'sc' => 'whois2.afilias-grs.net', + 'tc' => 'http://www.adamsnames.tc/whois/?domain={domain}.tc', + 'tf' => 'http://www.adamsnames.tc/whois/?domain={domain}.tf', + 've' => 'whois.nic.ve', + 'vg' => 'http://www.adamsnames.tc/whois/?domain={domain}.vg', + // Second level + 'net.au' => 'whois.aunic.net', + 'ae.com' => 'whois.centralnic.net', + 'br.com' => 'whois.centralnic.net', + 'cn.com' => 'whois.centralnic.net', + 'de.com' => 'whois.centralnic.net', + 'eu.com' => 'whois.centralnic.net', + 'hu.com' => 'whois.centralnic.net', + 'jpn.com'=> 'whois.centralnic.net', + 'kr.com' => 'whois.centralnic.net', + 'gb.com' => 'whois.centralnic.net', + 'no.com' => 'whois.centralnic.net', + 'qc.com' => 'whois.centralnic.net', + 'ru.com' => 'whois.centralnic.net', + 'sa.com' => 'whois.centralnic.net', + 'se.com' => 'whois.centralnic.net', + 'za.com' => 'whois.centralnic.net', + 'uk.com' => 'whois.centralnic.net', + 'us.com' => 'whois.centralnic.net', + 'uy.com' => 'whois.centralnic.net', + 'gb.net' => 'whois.centralnic.net', + 'se.net' => 'whois.centralnic.net', + 'uk.net' => 'whois.centralnic.net', + 'za.net' => 'whois.za.net', + 'za.org' => 'whois.za.net', + 'co.za' => 'http://co.za/cgi-bin/whois.sh?Domain={domain}.co.za', + 'org.za' => 'http://www.org.za/cgi-bin/rwhois?domain={domain}.org.za&format=full' + ); + +/* handled gTLD whois servers */ + +$this->WHOIS_GTLD_HANDLER = array( + 'whois.bulkregister.com' => 'enom', + 'whois.dotregistrar.com' => 'dotster', + 'whois.namesdirect.com' => 'dotster', + 'whois.psi-usa.info' => 'psiusa', + 'whois.www.tv' => 'tvcorp', + 'whois.tucows.com' => 'opensrs', + 'whois.35.com' => 'onlinenic', + 'whois.nominalia.com' => 'genericb', + 'whois.encirca.com' => 'genericb', + 'whois.corenic.net' => 'genericb' + ); + +/* Non ICANN TLD's */ + +$this->WHOIS_NON_ICANN = array ( + 'agent' => 'http://www.new.net/search_whois.tp?domain={domain}&tld={tld}', + 'agente' => 'http://www.new.net/search_whois.tp?domain={domain}&tld={tld}', + 'america' => 'http://www.adns.net/whois.php?txtDOMAIN={domain}.{tld}', + 'amor' => 'http://www.new.net/search_whois.tp?domain={domain}&tld={tld}', + 'amore' => 'http://www.new.net/search_whois.tp?domain={domain}&tld={tld}', + 'amour' => 'http://www.new.net/search_whois.tp?domain={domain}&tld={tld}', + 'arte' => 'http://www.new.net/search_whois.tp?domain={domain}&tld={tld}', + 'artes' => 'http://www.new.net/search_whois.tp?domain={domain}&tld={tld}', + 'arts' => 'http://www.new.net/search_whois.tp?domain={domain}&tld={tld}', + 'asta' => 'http://www.new.net/search_whois.tp?domain={domain}&tld={tld}', + 'auction' => 'http://www.new.net/search_whois.tp?domain={domain}&tld={tld}', + 'auktion' => 'http://www.new.net/search_whois.tp?domain={domain}&tld={tld}', + 'boutique' => 'http://www.new.net/search_whois.tp?domain={domain}&tld={tld}', + 'chat' => 'http://www.new.net/search_whois.tp?domain={domain}&tld={tld}', + 'chiesa' => 'http://www.new.net/search_whois.tp?domain={domain}&tld={tld}', + 'church' => 'http://www.new.net/search_whois.tp?domain={domain}&tld={tld}', + 'cia' => 'http://www.new.net/search_whois.tp?domain={domain}&tld={tld}', + 'ciao' => 'http://www.new.net/search_whois.tp?domain={domain}&tld={tld}', + 'cie' => 'http://www.new.net/search_whois.tp?domain={domain}&tld={tld}', + 'club' => 'http://www.new.net/search_whois.tp?domain={domain}&tld={tld}', + 'clube' => 'http://www.new.net/search_whois.tp?domain={domain}&tld={tld}', + 'com2' => 'http://www.adns.net/whois.php?txtDOMAIN={domain}.{tld}', + 'deporte' => 'http://www.new.net/search_whois.tp?domain={domain}&tld={tld}', + 'ditta' => 'http://www.new.net/search_whois.tp?domain={domain}&tld={tld}', + 'earth' => 'http://www.adns.net/whois.php?txtDOMAIN={domain}.{tld}', + 'eglise' => 'http://www.new.net/search_whois.tp?domain={domain}&tld={tld}', + 'enchere' => 'http://www.new.net/search_whois.tp?domain={domain}&tld={tld}', + 'escola' => 'http://www.new.net/search_whois.tp?domain={domain}&tld={tld}', + 'escuela' => 'http://www.new.net/search_whois.tp?domain={domain}&tld={tld}', + 'esporte' => 'http://www.new.net/search_whois.tp?domain={domain}&tld={tld}', + 'etc' => 'http://www.adns.net/whois.php?txtDOMAIN={domain}.{tld}', + 'famiglia' => 'http://www.new.net/search_whois.tp?domain={domain}&tld={tld}', + 'familia' => 'http://www.new.net/search_whois.tp?domain={domain}&tld={tld}', + 'familie' => 'http://www.new.net/search_whois.tp?domain={domain}&tld={tld}', + 'family' => 'http://www.new.net/search_whois.tp?domain={domain}&tld={tld}', + 'free' => 'http://www.new.net/search_whois.tp?domain={domain}&tld={tld}', + 'hola' => 'http://www.new.net/search_whois.tp?domain={domain}&tld={tld}', + 'game' => 'http://www.new.net/search_whois.tp?domain={domain}&tld={tld}', + 'ges' => 'http://www.new.net/search_whois.tp?domain={domain}&tld={tld}', + 'gmbh' => 'http://www.new.net/search_whois.tp?domain={domain}&tld={tld}', + 'golf' => 'http://www.new.net/search_whois.tp?domain={domain}&tld={tld}', + 'gratis' => 'http://www.new.net/search_whois.tp?domain={domain}&tld={tld}', + 'gratuit' => 'http://www.new.net/search_whois.tp?domain={domain}&tld={tld}', + 'iglesia' => 'http://www.new.net/search_whois.tp?domain={domain}&tld={tld}', + 'igreja' => 'http://www.new.net/search_whois.tp?domain={domain}&tld={tld}', + 'inc' => 'http://www.new.net/search_whois.tp?domain={domain}&tld={tld}', + 'jeu' => 'http://www.new.net/search_whois.tp?domain={domain}&tld={tld}', + 'jogo' => 'http://www.new.net/search_whois.tp?domain={domain}&tld={tld}', + 'juego' => 'http://www.new.net/search_whois.tp?domain={domain}&tld={tld}', + 'kids' => 'http://www.new.net/search_whois.tp?domain={domain}&tld={tld}', + 'kirche' => 'http://www.new.net/search_whois.tp?domain={domain}&tld={tld}', + 'krunst' => 'http://www.new.net/search_whois.tp?domain={domain}&tld={tld}', + 'law' => 'http://www.new.net/search_whois.tp?domain={domain}&tld={tld}', + 'legge' => 'http://www.new.net/search_whois.tp?domain={domain}&tld={tld}', + 'lei' => 'http://www.new.net/search_whois.tp?domain={domain}&tld={tld}', + 'leilao' => 'http://www.new.net/search_whois.tp?domain={domain}&tld={tld}', + 'ley' => 'http://www.new.net/search_whois.tp?domain={domain}&tld={tld}', + 'liebe' => 'http://www.new.net/search_whois.tp?domain={domain}&tld={tld}', + 'lion' => 'http://www.adns.net/whois.php?txtDOMAIN={domain}.{tld}', + 'llc' => 'http://www.new.net/search_whois.tp?domain={domain}&tld={tld}', + 'llp' => 'http://www.new.net/search_whois.tp?domain={domain}&tld={tld}', + 'loi' => 'http://www.new.net/search_whois.tp?domain={domain}&tld={tld}', + 'loja' => 'http://www.new.net/search_whois.tp?domain={domain}&tld={tld}', + 'love' => 'http://www.new.net/search_whois.tp?domain={domain}&tld={tld}', + 'ltd' => 'http://www.new.net/search_whois.tp?domain={domain}&tld={tld}', + 'makler' => 'http://www.new.net/search_whois.tp?domain={domain}&tld={tld}', + 'med' => 'http://www.new.net/search_whois.tp?domain={domain}&tld={tld}', + 'mp3' => 'http://www.new.net/search_whois.tp?domain={domain}&tld={tld}', + 'not' => 'http://www.adns.net/whois.php?txtDOMAIN={domain}.{tld}', + 'online' => 'http://www.adns.net/whois.php?txtDOMAIN={domain}.{tld}', + 'recht' => 'http://www.new.net/search_whois.tp?domain={domain}&tld={tld}', + 'reise' => 'http://www.new.net/search_whois.tp?domain={domain}&tld={tld}', + 'resto' => 'http://www.new.net/search_whois.tp?domain={domain}&tld={tld}', + 'school' => 'http://www.new.net/search_whois.tp?domain={domain}&tld={tld}', + 'schule' => 'http://www.new.net/search_whois.tp?domain={domain}&tld={tld}', + 'scifi' => 'http://www.new.net/search_whois.tp?domain={domain}&tld={tld}', + 'scuola' => 'http://www.new.net/search_whois.tp?domain={domain}&tld={tld}', + 'shop' => 'http://www.new.net/search_whois.tp?domain={domain}&tld={tld}', + 'soc' => 'http://www.new.net/search_whois.tp?domain={domain}&tld={tld}', + 'spiel' => 'http://www.new.net/search_whois.tp?domain={domain}&tld={tld}', + 'sport' => 'http://www.new.net/search_whois.tp?domain={domain}&tld={tld}', + 'subasta' => 'http://www.new.net/search_whois.tp?domain={domain}&tld={tld}', + 'tec' => 'http://www.new.net/search_whois.tp?domain={domain}&tld={tld}', + 'tech' => 'http://www.new.net/search_whois.tp?domain={domain}&tld={tld}', + 'tienda' => 'http://www.new.net/search_whois.tp?domain={domain}&tld={tld}', + 'travel' => 'http://www.new.net/search_whois.tp?domain={domain}&tld={tld}', + 'turismo' => 'http://www.new.net/search_whois.tp?domain={domain}&tld={tld}', + 'usa' => 'http://www.adns.net/whois.php?txtDOMAIN={domain}.{tld}', + 'verein' => 'http://www.new.net/search_whois.tp?domain={domain}&tld={tld}', + 'viaje' => 'http://www.new.net/search_whois.tp?domain={domain}&tld={tld}', + 'viagem' => 'http://www.new.net/search_whois.tp?domain={domain}&tld={tld}', + 'video' => 'http://www.new.net/search_whois.tp?domain={domain}&tld={tld}', + 'voyage' => 'http://www.new.net/search_whois.tp?domain={domain}&tld={tld}', + 'xxx' => 'http://www.new.net/search_whois.tp?domain={domain}&tld={tld}', + 'z' => 'http://www.adns.net/whois.php?txtDOMAIN={domain}.{tld}' + ); +?> diff --git a/all-in-one-wp-security/lib/whois/whois.si.php b/all-in-one-wp-security/lib/whois/whois.si.php new file mode 100644 index 0000000..d50ed2b --- /dev/null +++ b/all-in-one-wp-security/lib/whois/whois.si.php @@ -0,0 +1,55 @@ + 'handle', + 'nameserver' => 'nserver' + ); + + $contacts = array( + 'registrant' => 'owner', + 'tech-c' => 'tech' + ); + + $r['regrinfo'] = generic_parser_a($data_str['rawdata'], $translate, $contacts, 'domain', 'Ymd'); + $r['regyinfo'] = array( + 'referrer' => 'http://www.arnes.si', + 'registrar' => 'ARNES' + ); + return $r; + } + } +?> diff --git a/all-in-one-wp-security/lib/whois/whois.su.php b/all-in-one-wp-security/lib/whois/whois.su.php new file mode 100644 index 0000000..93fe793 --- /dev/null +++ b/all-in-one-wp-security/lib/whois/whois.su.php @@ -0,0 +1,63 @@ + 'domain.name', + 'state:' => 'domain.status', + 'person:' => 'owner.name', + 'phone:' => 'owner.phone', + 'e-mail:' => 'owner.email', + 'created:' => 'domain.created', + 'paid-till:' => 'domain.expires', +/* + 'nserver:' => 'domain.nserver.', + 'source:' => 'domain.source', + 'type:' => 'owner.type', + 'org:' => 'owner.organization', + 'fax-no:' => 'owner.fax', +*/ + ); + + $r['regrinfo'] = generic_parser_b($data_str['rawdata'], $items, 'dmy'); + + $r['regyinfo'] = array( + 'referrer' => 'http://www.ripn.net', + 'registrar' => 'RUCENTER-REG-RIPN' + ); + return $r; + } + } +?> \ No newline at end of file diff --git a/all-in-one-wp-security/lib/whois/whois.tel.php b/all-in-one-wp-security/lib/whois/whois.tel.php new file mode 100644 index 0000000..3ffe821 --- /dev/null +++ b/all-in-one-wp-security/lib/whois/whois.tel.php @@ -0,0 +1,45 @@ + 'http://www.telnic.org', + 'registrar' => 'Telnic' + ); + return $r; + } + } +?> \ No newline at end of file diff --git a/all-in-one-wp-security/lib/whois/whois.travel.php b/all-in-one-wp-security/lib/whois/whois.travel.php new file mode 100644 index 0000000..9400ab9 --- /dev/null +++ b/all-in-one-wp-security/lib/whois/whois.travel.php @@ -0,0 +1,43 @@ + \ No newline at end of file diff --git a/all-in-one-wp-security/lib/whois/whois.uk.php b/all-in-one-wp-security/lib/whois/whois.uk.php new file mode 100644 index 0000000..043c2fb --- /dev/null +++ b/all-in-one-wp-security/lib/whois/whois.uk.php @@ -0,0 +1,72 @@ + 'Registrant:', + 'owner.address' => "Registrant's address:", + 'owner.type' => 'Registrant type:', + 'domain.created' => 'Registered on:', + 'domain.changed' => 'Last updated:', + 'domain.expires' => 'Renewal date:', + 'domain.nserver' => 'Name servers:', + 'domain.sponsor' => 'Registrar:', + 'domain.status' => 'Registration status:', + 'domain.dnssec' => 'DNSSEC:', + '' => 'WHOIS lookup made at', + 'disclaimer' => '--', + ); + + $r['regrinfo'] = get_blocks($data_str['rawdata'], $items); + + if (isset($r['regrinfo']['owner'])) + { + $r['regrinfo']['owner']['organization'] = $r['regrinfo']['owner']['organization'][0]; + $r['regrinfo']['domain']['sponsor'] = $r['regrinfo']['domain']['sponsor'][0]; + $r['regrinfo']['registered'] = 'yes'; + + $r = format_dates($r, 'dmy'); + } + else + $r['regrinfo']['registered'] = 'no'; + + $r['regyinfo'] = array( + 'referrer' => 'http://www.nominet.org.uk', + 'registrar' => 'Nominet UK' + ); + return $r; + } + } +?> \ No newline at end of file diff --git a/all-in-one-wp-security/lib/whois/whois.us.php b/all-in-one-wp-security/lib/whois/whois.us.php new file mode 100644 index 0000000..393bd53 --- /dev/null +++ b/all-in-one-wp-security/lib/whois/whois.us.php @@ -0,0 +1,44 @@ +'http://www.neustar.us', + 'registrar' => 'NEUSTAR INC.' + ); + return $r; + } + } +?> \ No newline at end of file diff --git a/all-in-one-wp-security/lib/whois/whois.utils.php b/all-in-one-wp-security/lib/whois/whois.utils.php new file mode 100644 index 0000000..f62ccda --- /dev/null +++ b/all-in-one-wp-security/lib/whois/whois.utils.php @@ -0,0 +1,152 @@ +debugObject($obj); + return "

$r
\n"; + } + + function debugObject($obj,$indent=0) + { + if (is_Array($obj)) + { + $return = ''; + foreach($obj as $k => $v) + { + $return .= str_repeat(' ',$indent); + $return .= $k."->$v\n"; + $return .= $this->debugObject($v,$indent+1); + } + return $return; + } + } + + function ns_rr_defined($query) { + return checkdnsrr($query,'NS'); + } + + // get nice HTML output + + function showHTML($result, $link_myself=true, $params='query=$0&output=nice') { + + // adds links fort HTML output + + $email_regex = "/([-_\w\.]+)(@)([-_\w\.]+)\b/i"; + $html_regex = "/(?:^|\b)((((http|https|ftp):\/\/)|(www\.))([\w\.]+)([,:%#&\/?~=\w+\.-]+))(?:\b|$)/is"; + $ip_regex = "/\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b/i"; + + $out = ''; + $lempty = true; + + foreach($result['rawdata'] as $line) + { + $line = trim($line); + + if ($line == '') + { + if ($lempty) continue; + else $lempty = true; + } + else + $lempty = false; + + $out .= $line."\n"; + } + + if ($lempty) $out = trim($out); + + $out = strip_tags($out); + $out = preg_replace ($email_regex, '$0', $out); + $out = preg_replace_callback ($html_regex, 'href_replace', $out); + + if ($link_myself) + { + if ($params[0] == '/') + $link = $params; + else + $link = $_SERVER['PHP_SELF'].'?'.$params; + + $out = preg_replace ($ip_regex, '$0', $out); + + if (isset($result['regrinfo']['domain']['nserver'])) + { + $nserver = $result['regrinfo']['domain']['nserver']; + } + else + $nserver = false; + + if (isset($result['regrinfo']['network']['nserver'])) + { + $nserver = $result['regrinfo']['network']['nserver']; + } + + if (is_array($nserver)) + { + reset($nserver); + while (list($host, $ip) = each($nserver)) + { + $url = '$host"; + $out = str_replace($host, $url, $out); + $out = str_replace(strtoupper($host), $url, $out); + } + } + } + + // Add bold field names + + $out = preg_replace ("/(?m)^([-\s\.&;'\w\t\(\)\/]+:\s*)/", '$1', $out); + + // Add italics for disclaimer + + $out = preg_replace ("/(?m)^(%.*)/", '$0', $out); + + return str_replace("\n","
\n",$out); + } +} + +function href_replace($matches) +{ +if (substr($matches[0],0,4)=='www.') + { + $web=$matches[0]; + $url='http://'.$web; + } +else + { + $web=$matches[0]; + $url=$web; + } + +return ''.$web.''; +} +?> diff --git a/all-in-one-wp-security/lib/whois/whois.ve.php b/all-in-one-wp-security/lib/whois/whois.ve.php new file mode 100644 index 0000000..6a205d3 --- /dev/null +++ b/all-in-one-wp-security/lib/whois/whois.ve.php @@ -0,0 +1,75 @@ + 'Titular:', + 'domain.name' => 'Nombre de Dominio:', + 'admin' => 'Contacto Administrativo', + 'tech' => 'Contacto Tecnico', + 'billing' => 'Contacto de Cobranza:', + 'domain.created' => 'Fecha de Creacion:', + 'domain.changed' => 'Ultima Actualizacion:', + 'domain.expires' => 'Fecha de Vencimiento:', + 'domain.status' => 'Estatus del dominio:', + 'domain.nserver' => 'Servidor(es) de Nombres de Dominio' + ); + + $r['regrinfo'] = get_blocks($data_str['rawdata'], $items); + + if (!isset($r['regrinfo']['domain']['created']) || is_array($r['regrinfo']['domain']['created'])) + { + $r['regrinfo'] = array ( 'registered' => 'no'); + return $r; + } + + $dns = array(); + + foreach($r['regrinfo']['domain']['nserver'] as $nserv) + { + if ($nserv[0] == '-') $dns[] = $nserv; + } + + $r['regrinfo']['domain']['nserver'] = $dns; + $r['regrinfo'] = get_contacts($r['regrinfo']); + $r['regyinfo'] = array( + 'referrer' => 'http://registro.nic.ve', + 'registrar' => 'NIC-Venezuela - CNTI' + ); + return $r; + } + } +?> \ No newline at end of file diff --git a/all-in-one-wp-security/lib/whois/whois.ws.php b/all-in-one-wp-security/lib/whois/whois.ws.php new file mode 100644 index 0000000..5e8e0e1 --- /dev/null +++ b/all-in-one-wp-security/lib/whois/whois.ws.php @@ -0,0 +1,76 @@ + 'domain.name', + 'Registrant Name:' => 'owner.organization', + 'Registrant Email:' => 'owner.email', + 'Domain Created:' => 'domain.created', + 'Domain Last Updated:' => 'domain.changed', + 'Registrar Name:' => 'domain.sponsor', + 'Current Nameservers:' => 'domain.nserver.', + 'Administrative Contact Email:' => 'admin.email', + 'Administrative Contact Telephone:' => 'admin.phone', + 'Registrar Whois:' => 'rwhois' + ); + + $r['regrinfo'] = generic_parser_b($data_str['rawdata'], $items, 'ymd'); + + $r['regyinfo']['referrer'] = 'http://www.samoanic.ws'; + $r['regyinfo']['registrar'] = 'Samoa Nic'; + + if (!empty($r['regrinfo']['domain']['name'])) + { + $r['regrinfo']['registered'] = 'yes'; + + if (isset($r['regrinfo']['rwhois'])) + { + if ($this->deep_whois) + { + $r['regyinfo']['whois'] = $r['regrinfo']['rwhois']; + $r = $this->DeepWhois($query,$r); + } + + unset($r['regrinfo']['rwhois']); + } + } + else + $r['regrinfo']['registered'] = 'no'; + + return $r; + } + } +?> \ No newline at end of file diff --git a/all-in-one-wp-security/lib/whois/whois.zanet.php b/all-in-one-wp-security/lib/whois/whois.zanet.php new file mode 100644 index 0000000..58bfe5f --- /dev/null +++ b/all-in-one-wp-security/lib/whois/whois.zanet.php @@ -0,0 +1,90 @@ + 'Domain Name : ', + 'domain.created' => 'Record Created :', + 'domain.changed' => 'Record Last Updated :', + 'owner.name' => 'Registered for :', + 'admin' => 'Administrative Contact :', + 'tech' => 'Technical Contact :', + 'domain.nserver' => 'Domain Name Servers listed in order:', + 'registered' => 'No such domain: ', + '' => 'The ZA NiC whois' + ); + + // Arrange contacts ... + + $rawdata = array(); + + while (list($key, $line) = each($data_str['rawdata'])) + { + if (strpos($line, ' Contact ') !== false) + { + $pos = strpos($line, ':'); + + if ($pos !== false) + { + $rawdata[] = substr($line, 0, $pos + 1); + $rawdata[] = trim(substr($line, $pos + 1)); + continue; + } + } + $rawdata[] = $line; + } + + $r['regrinfo'] = get_blocks($rawdata, $items); + + if (isset($r['regrinfo']['registered'])) + { + $r['regrinfo']['registered'] = 'no'; + } + else + { + if (isset($r['regrinfo']['admin'])) + $r['regrinfo']['admin'] = get_contact($r['regrinfo']['admin']); + + if (isset($r['regrinfo']['tech'])) + $r['regrinfo']['tech'] = get_contact($r['regrinfo']['tech']); + } + + $r['regyinfo']['referrer'] = 'http://www.za.net/'; // or http://www.za.org + $r['regyinfo']['registrar'] = 'ZA NiC'; + format_dates($r, 'xmdxxy'); + return $r; + } + } +?> \ No newline at end of file diff --git a/all-in-one-wp-security/license.txt b/all-in-one-wp-security/license.txt new file mode 100644 index 0000000..7dc2abc --- /dev/null +++ b/all-in-one-wp-security/license.txt @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright © 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright © + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright © + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. \ No newline at end of file diff --git a/all-in-one-wp-security/logs/index.html b/all-in-one-wp-security/logs/index.html new file mode 100644 index 0000000..e69de29 diff --git a/all-in-one-wp-security/logs/wp-security-log-cron-job.txt b/all-in-one-wp-security/logs/wp-security-log-cron-job.txt new file mode 100644 index 0000000..e69de29 diff --git a/all-in-one-wp-security/logs/wp-security-log.txt b/all-in-one-wp-security/logs/wp-security-log.txt new file mode 100644 index 0000000..e69de29 diff --git a/all-in-one-wp-security/other-includes/index.html b/all-in-one-wp-security/other-includes/index.html new file mode 100644 index 0000000..e69de29 diff --git a/all-in-one-wp-security/other-includes/wp-security-rename-login-feature.php b/all-in-one-wp-security/other-includes/wp-security-rename-login-feature.php new file mode 100644 index 0000000..99bfba8 --- /dev/null +++ b/all-in-one-wp-security/other-includes/wp-security-rename-login-feature.php @@ -0,0 +1,942 @@ + element. Default 'Log In'. + * @param string $message Optional. Message to display in header. Default empty. + * @param string $wp_error Optional. The error to pass. Default empty. + * @param WP_Error $wp_error Optional. WordPress Error Object + */ +function login_header( $title = 'Log In', $message = '', $wp_error = '' ) { + global $error, $interim_login, $action; + + // Don't index any of these forms + add_action( 'login_head', 'wp_no_robots' ); + + if ( wp_is_mobile() ) + add_action( 'login_head', 'wp_login_viewport_meta' ); + + if ( empty($wp_error) ) + $wp_error = new WP_Error(); + + // Shake it! + $shake_error_codes = array( 'empty_password', 'empty_email', 'invalid_email', 'invalidcombo', 'empty_username', 'invalid_username', 'incorrect_password' ); + /** + * Filter the error codes array for shaking the login form. + * + * @since 3.0.0 + * + * @param array $shake_error_codes Error codes that shake the login form. + */ + $shake_error_codes = apply_filters( 'shake_error_codes', $shake_error_codes ); + + if ( $shake_error_codes && $wp_error->get_error_code() && in_array( $wp_error->get_error_code(), $shake_error_codes ) ) + add_action( 'login_head', 'wp_shake_js', 12 ); + + ?> + + + > + + + + <?php bloginfo('name'); ?> › <?php echo $title; ?> + get_error_code() ) { + ?> + + site_name; + } else { + $login_header_url = __( 'https://wordpress.org/' ); + $login_header_title = __( 'Powered by WordPress' ); + } + + /** + * Filter link URL of the header logo above login form. + * + * @since 2.1.0 + * + * @param string $login_header_url Login header logo URL. + */ + $login_header_url = apply_filters( 'login_headerurl', $login_header_url ); + /** + * Filter the title attribute of the header logo above login form. + * + * @since 2.1.0 + * + * @param string $login_header_title Login header logo title attribute. + */ + $login_header_title = apply_filters( 'login_headertitle', $login_header_title ); + + $classes = array( 'login-action-' . $action, 'wp-core-ui' ); + if ( wp_is_mobile() ) + $classes[] = 'mobile'; + if ( is_rtl() ) + $classes[] = 'rtl'; + if ( $interim_login ) { + $classes[] = 'interim-login'; + ?> + + + + +
+

+ add('error', $error); + unset($error); + } + + if ( $wp_error->get_error_code() ) { + $errors = ''; + $messages = ''; + foreach ( $wp_error->get_error_codes() as $code ) { + $severity = $wp_error->get_error_data($code); + foreach ( $wp_error->get_error_messages($code) as $error ) { + if ( 'message' == $severity ) + $messages .= ' ' . $error . "
\n"; + else + $errors .= ' ' . $error . "
\n"; + } + } + if ( ! empty( $errors ) ) { + /** + * Filter the error messages displayed above the login form. + * + * @since 2.1.0 + * + * @param string $errors Login error message. + */ + echo '
' . apply_filters( 'login_errors', $errors ) . "
\n"; + } + if ( ! empty( $messages ) ) { + /** + * Filter instructional messages displayed above the login form. + * + * @since 2.5.0 + * + * @param string $messages Login messages. + */ + echo '

' . apply_filters( 'login_messages', $messages ) . "

\n"; + } + } +} // End of login_header() + +/** + * Outputs the footer for the login page. + * + * @param string $input_id Which input to auto-focus + */ +function login_footer($input_id = '') { + global $interim_login; + + // Don't allow interim logins to navigate away from the page. + if ( ! $interim_login ): ?> +

+ + +
+ + + + + + +
+ + + + + + + add('empty_username', __('ERROR: Enter a username or e-mail address.')); + } else if ( strpos( $_POST['user_login'], '@' ) ) { + $user_data = get_user_by( 'email', trim( $_POST['user_login'] ) ); + if ( empty( $user_data ) ) + $errors->add('invalid_email', __('ERROR: There is no user registered with that email address.')); + } else { + $login = trim($_POST['user_login']); + $user_data = get_user_by('login', $login); + } + + /** + * Fires before errors are returned from a password reset request. + * + * @since 2.1.0 + */ + do_action( 'lostpassword_post' ); + + if ( $errors->get_error_code() ) + return $errors; + + if ( !$user_data ) { + $errors->add('invalidcombo', __('ERROR: Invalid username or e-mail.')); + return $errors; + } + + // redefining user_login ensures we return the right case in the email + $user_login = $user_data->user_login; + $user_email = $user_data->user_email; + + /** + * Fires before a new password is retrieved. + * + * @since 1.5.0 + * @deprecated 1.5.1 Misspelled. Use 'retrieve_password' hook instead. + * + * @param string $user_login The user login name. + */ + do_action( 'retreive_password', $user_login ); + /** + * Fires before a new password is retrieved. + * + * @since 1.5.1 + * + * @param string $user_login The user login name. + */ + do_action( 'retrieve_password', $user_login ); + + /** + * Filter whether to allow a password to be reset. + * + * @since 2.7.0 + * + * @param bool true Whether to allow the password to be reset. Default true. + * @param int $user_data->ID The ID of the user attempting to reset a password. + */ + $allow = apply_filters( 'allow_password_reset', true, $user_data->ID ); + + if ( ! $allow ) + return new WP_Error('no_password_reset', __('Password reset is not allowed for this user')); + else if ( is_wp_error($allow) ) + return $allow; + + // Generate something random for a password reset key. + $key = wp_generate_password( 20, false ); + + /** + * Fires when a password reset key is generated. + * + * @since 2.5.0 + * + * @param string $user_login The username for the user. + * @param string $key The generated password reset key. + */ + do_action( 'retrieve_password_key', $user_login, $key ); + + // Now insert the key, hashed, into the DB. + if ( empty( $wp_hasher ) ) { + require_once ABSPATH . 'wp-includes/class-phpass.php'; + $wp_hasher = new PasswordHash( 8, true ); + } + $hashed = $wp_hasher->HashPassword( $key ); + $wpdb->update( $wpdb->users, array( 'user_activation_key' => $hashed ), array( 'user_login' => $user_login ) ); + + $message = __('Someone requested that the password be reset for the following account:') . "\r\n\r\n"; + $message .= network_home_url( '/' ) . "\r\n\r\n"; + $message .= sprintf(__('Username: %s'), $user_login) . "\r\n\r\n"; + $message .= __('If this was a mistake, just ignore this email and nothing will happen.') . "\r\n\r\n"; + $message .= __('To reset your password, visit the following address:') . "\r\n\r\n"; + $message .= '<' . network_site_url("wp-login.php?action=rp&key=$key&login=" . rawurlencode($user_login), 'login') . ">\r\n"; + + if ( is_multisite() ) + $blogname = $GLOBALS['current_site']->site_name; + else + // The blogname option is escaped with esc_html on the way into the database in sanitize_option + // we want to reverse this for the plain text arena of emails. + $blogname = wp_specialchars_decode(get_option('blogname'), ENT_QUOTES); + + $title = sprintf( __('[%s] Password Reset'), $blogname ); + + /** + * Filter the subject of the password reset email. + * + * @since 2.8.0 + * + * @param string $title Default email title. + */ + $title = apply_filters( 'retrieve_password_title', $title ); + /** + * Filter the message body of the password reset mail. + * + * @since 2.8.0 + * + * @param string $message Default mail message. + * @param string $key The activation key. + */ + $message = apply_filters( 'retrieve_password_message', $message, $key ); + + if ( $message && !wp_mail( $user_email, wp_specialchars_decode( $title ), $message ) ) + wp_die( __('The e-mail could not be sent.') . "
\n" . __('Possible reason: your host may have disabled the mail() function.') ); + + return true; +} + +// +// Main +// + +$action = isset($_REQUEST['action']) ? $_REQUEST['action'] : 'login'; +$errors = new WP_Error(); + +if ( isset($_GET['key']) ) + $action = 'resetpass'; + +// validate action so as to default to the login screen +if ( !in_array( $action, array( 'postpass', 'logout', 'lostpassword', 'retrievepassword', 'resetpass', 'rp', 'register', 'login' ), true ) && false === has_filter( 'login_form_' . $action ) ) + $action = 'login'; + +nocache_headers(); + +header('Content-Type: '.get_bloginfo('html_type').'; charset='.get_bloginfo('charset')); + +if ( defined( 'RELOCATE' ) && RELOCATE ) { // Move flag is set + if ( isset( $_SERVER['PATH_INFO'] ) && ($_SERVER['PATH_INFO'] != $_SERVER['PHP_SELF']) ) + $_SERVER['PHP_SELF'] = str_replace( $_SERVER['PATH_INFO'], '', $_SERVER['PHP_SELF'] ); + + $url = dirname( set_url_scheme( 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF'] ) ); + if ( $url != get_option( 'siteurl' ) ) + update_option( 'siteurl', $url ); +} + +//Set a cookie now to see if they are supported by the browser. +setcookie(TEST_COOKIE, 'WP Cookie check', 0, COOKIEPATH, COOKIE_DOMAIN); +if ( SITECOOKIEPATH != COOKIEPATH ) + setcookie(TEST_COOKIE, 'WP Cookie check', 0, SITECOOKIEPATH, COOKIE_DOMAIN); + +/** + * Fires when the login form is initialized. + * + * @since 3.2.0 + */ +do_action( 'login_init' ); +/** + * Fires before a specified login form action. + * + * The dynamic portion of the hook name, $action, refers to the action + * that brought the visitor to the login form. Actions include 'postpass', + * 'logout', 'lostpassword', etc. + * + * @since 2.8.0 + */ +do_action( 'login_form_' . $action ); + +$http_post = ('POST' == $_SERVER['REQUEST_METHOD']); +$interim_login = isset($_REQUEST['interim-login']); + +switch ($action) { + +case 'postpass' : + require_once ABSPATH . 'wp-includes/class-phpass.php'; + $hasher = new PasswordHash( 8, true ); + + /** + * Filter the life span of the post password cookie. + * + * By default, the cookie expires 10 days from creation. To turn this + * into a session cookie, return 0. + * + * @since 3.7.0 + * + * @param int $expires The expiry time, as passed to setcookie(). + */ + $expire = apply_filters( 'post_password_expires', time() + 10 * DAY_IN_SECONDS ); + setcookie( 'wp-postpass_' . COOKIEHASH, $hasher->HashPassword( wp_unslash( $_POST['post_password'] ) ), $expire, COOKIEPATH ); + + wp_safe_redirect( wp_get_referer() ); + exit(); + +break; + +case 'logout' : + check_admin_referer('log-out'); + wp_logout(); + + $redirect_to = !empty( $_REQUEST['redirect_to'] ) ? $_REQUEST['redirect_to'] : 'wp-login.php?loggedout=true'; + wp_safe_redirect( $redirect_to ); + exit(); + +break; + +case 'lostpassword' : +case 'retrievepassword' : + + if ( $http_post ) { + $errors = retrieve_password(); + if ( !is_wp_error($errors) ) { + $redirect_to = !empty( $_REQUEST['redirect_to'] ) ? $_REQUEST['redirect_to'] : 'wp-login.php?checkemail=confirm'; + wp_safe_redirect( $redirect_to ); + exit(); + } + } + + if ( isset( $_GET['error'] ) ) { + if ( 'invalidkey' == $_GET['error'] ) + $errors->add( 'invalidkey', __( 'Sorry, that key does not appear to be valid.' ) ); + elseif ( 'expiredkey' == $_GET['error'] ) + $errors->add( 'expiredkey', __( 'Sorry, that key has expired. Please try again.' ) ); + } + + $lostpassword_redirect = ! empty( $_REQUEST['redirect_to'] ) ? $_REQUEST['redirect_to'] : ''; + /** + * Filter the URL redirected to after submitting the lostpassword/retrievepassword form. + * + * @since 3.0.0 + * + * @param string $lostpassword_redirect The redirect destination URL. + */ + $redirect_to = apply_filters( 'lostpassword_redirect', $lostpassword_redirect ); + + /** + * Fires before the lost password form. + * + * @since 1.5.1 + */ + do_action( 'lost_password' ); + + login_header(__('Lost Password'), '

' . __('Please enter your username or email address. You will receive a link to create a new password via email.') . '

', $errors); + + $user_login = isset($_POST['user_login']) ? wp_unslash($_POST['user_login']) : ''; + +?> + +
+

+ +

+ tags, before the hidden fields. + * + * @since 2.1.0 + */ + do_action( 'lostpassword_form' ); ?> + +

+
+ + + +get_error_code() === 'expired_key' ) + wp_redirect( site_url( 'wp-login.php?action=lostpassword&error=expiredkey' ) ); + else + wp_redirect( site_url( 'wp-login.php?action=lostpassword&error=invalidkey' ) ); + exit; + } + + $errors = new WP_Error(); + + if ( isset($_POST['pass1']) && $_POST['pass1'] != $_POST['pass2'] ) + $errors->add( 'password_reset_mismatch', __( 'The passwords do not match.' ) ); + + /** + * Fires before the password reset procedure is validated. + * + * @since 3.5.0 + * + * @param object $errors WP Error object. + * @param WP_User|WP_Error $user WP_User object if the login and reset key match. WP_Error object otherwise. + */ + do_action( 'validate_password_reset', $errors, $user ); + + if ( ( ! $errors->get_error_code() ) && isset( $_POST['pass1'] ) && !empty( $_POST['pass1'] ) ) { + reset_password($user, $_POST['pass1']); + login_header( __( 'Password Reset' ), '

' . __( 'Your password has been reset.' ) . ' ' . __( 'Log in' ) . '

' ); + login_footer(); + exit; + } + + wp_enqueue_script('utils'); + wp_enqueue_script('user-profile'); + + login_header(__('Reset Password'), '

' . __('Enter your new password below.') . '

', $errors ); + +?> +
+ + +

+ +

+

+ +

+ +
+

+ +
+ + +

+
+ + + +' . __('Register For This Site') . '

', $errors); +?> + +
+

+ +

+

+ +

+ +

+
+ +

+
+ + + +ID) ) { + $secure_cookie = true; + force_ssl_admin(true); + } + } + } + + if ( isset( $_REQUEST['redirect_to'] ) ) { + $redirect_to = $_REQUEST['redirect_to']; + // Redirect to https if user wants ssl + if ( $secure_cookie && false !== strpos($redirect_to, 'wp-admin') ) + $redirect_to = preg_replace('|^http://|', 'https://', $redirect_to); + } else { + $redirect_to = admin_url(); + } + + $reauth = empty($_REQUEST['reauth']) ? false : true; + + // If the user was redirected to a secure login form from a non-secure admin page, and secure login is required but secure admin is not, then don't use a secure + // cookie and redirect back to the referring non-secure admin page. This allows logins to always be POSTed over SSL while allowing the user to choose visiting + // the admin via http or https. + if ( !$secure_cookie && is_ssl() && force_ssl_login() && !force_ssl_admin() && ( 0 !== strpos($redirect_to, 'https') ) && ( 0 === strpos($redirect_to, 'http') ) ) + $secure_cookie = false; + + $user = wp_signon( '', $secure_cookie ); + + if ( empty( $_COOKIE[ LOGGED_IN_COOKIE ] ) ) { + if ( headers_sent() ) { + $user = new WP_Error( 'test_cookie', sprintf( __( 'ERROR: Cookies are blocked due to unexpected output. For help, please see this documentation or try the support forums.' ), + __( 'http://codex.wordpress.org/Cookies' ), __( 'https://wordpress.org/support/' ) ) ); + } elseif ( isset( $_POST['testcookie'] ) && empty( $_COOKIE[ TEST_COOKIE ] ) ) { + // If cookies are disabled we can't log in even with a valid user+pass + $user = new WP_Error( 'test_cookie', sprintf( __( 'ERROR: Cookies are blocked or not supported by your browser. You must enable cookies to use WordPress.' ), + __( 'http://codex.wordpress.org/Cookies' ) ) ); + } + } + + $requested_redirect_to = isset( $_REQUEST['redirect_to'] ) ? $_REQUEST['redirect_to'] : ''; + /** + * Filter the login redirect URL. + * + * @since 3.0.0 + * + * @param string $redirect_to The redirect destination URL. + * @param string $requested_redirect_to The requested redirect destination URL passed as a parameter. + * @param WP_User|WP_Error $user WP_User object if login was successful, WP_Error object otherwise. + */ + $redirect_to = apply_filters( 'login_redirect', $redirect_to, $requested_redirect_to, $user ); + + if ( !is_wp_error($user) && !$reauth ) { + if ( $interim_login ) { + $message = '

' . __('You have logged in successfully.') . '

'; + $interim_login = 'success'; + login_header( '', $message ); ?> + + + + + + +ID) && !is_super_admin( $user->ID ) ) + $redirect_to = user_admin_url(); + elseif ( is_multisite() && !$user->has_cap('read') ) + $redirect_to = get_dashboard_url( $user->ID ); + elseif ( !$user->has_cap('edit_posts') ) + $redirect_to = admin_url('profile.php'); + } + wp_safe_redirect($redirect_to); + exit(); + } + + $errors = $user; + // Clear errors if loggedout is set. + if ( !empty($_GET['loggedout']) || $reauth ) + $errors = new WP_Error(); + + if ( $interim_login ) { + if ( ! $errors->get_error_code() ) + $errors->add('expired', __('Session expired. Please log in again. You will not move away from this page.'), 'message'); + } else { + // Some parts of this script use the main login form to display a message + if ( isset($_GET['loggedout']) && true == $_GET['loggedout'] ) + $errors->add('loggedout', __('You are now logged out.'), 'message'); + elseif ( isset($_GET['registration']) && 'disabled' == $_GET['registration'] ) + $errors->add('registerdisabled', __('User registration is currently not allowed.')); + elseif ( isset($_GET['checkemail']) && 'confirm' == $_GET['checkemail'] ) + $errors->add('confirm', __('Check your e-mail for the confirmation link.'), 'message'); + elseif ( isset($_GET['checkemail']) && 'newpass' == $_GET['checkemail'] ) + $errors->add('newpass', __('Check your e-mail for your new password.'), 'message'); + elseif ( isset($_GET['checkemail']) && 'registered' == $_GET['checkemail'] ) + $errors->add('registered', __('Registration complete. Please check your e-mail.'), 'message'); + elseif ( strpos( $redirect_to, 'about.php?updated' ) ) + $errors->add('updated', __( 'You have successfully updated WordPress! Please log back in to experience the awesomeness.' ), 'message' ); + } + + /** + * Filter the login page errors. + * + * @since 3.6.0 + * + * @param object $errors WP Error object. + * @param string $redirect_to Redirect destination URL. + */ + $errors = apply_filters( 'wp_login_errors', $errors, $redirect_to ); + + // Clear any stale cookies. + if ( $reauth ) + wp_clear_auth_cookie(); + + login_header(__('Log In'), '', $errors); + + $user_login = ''; + if ( isset($_POST['log']) ) + $user_login = ( 'incorrect_password' == $errors->get_error_code() || 'empty_password' == $errors->get_error_code() ) ? esc_attr(wp_unslash($_POST['log'])) : ''; + $rememberme = ! empty( $_POST['rememberme'] ); +?> + +
+

+ +

+

+ +

+ +

+

+ + + + + + + + + + +

+
+ + + + + + + + + + + +<?php bloginfo('name'); ?> + + + + +
+

+ +configs->get_value('aiowps_unlock_request_secret_key'); + $submitted_encoded_string = base64_encode($_POST['aiowps-unlock-temp-string'].$unlock_secret_string); + if($submitted_encoded_string !== $unlock_encoded_info) + { + //Someone somehow landed on this page directly without clicking the unlock button on login form + echo '
ERROR: Unable to process your request because you tried to access this page directly.
'; + } + else if($display_form) + { + echo display_unlock_form(); + } +} //End if block + +if (isset($_POST['aiowps_wp_submit_unlock_request'])) +{ + //This catches the $_POST when someone submits the form from our special unlock request page where visitor enters email address + $errors = ''; + + $email = trim($_POST['aiowps_unlock_request_email']); + if (empty($email) || !is_email($email)) + { + $errors .= '

'.__('Please enter a valid email address','aiowpsecurity').'

'; + } + + if($errors){ + $display_form = true; + echo '
'.$errors.'
'; + echo display_unlock_form($email); + }else{ + $locked_user = get_user_by('email', $email); + if(!$locked_user){ + //user with this email does not exist in the system + $errors .= '

'.__('User account not found!','aiowpsecurity').'

'; + echo '
'.$errors.'
'; + }else{ + //Process unlock request + //Generate a special code and unlock url + $ip = AIOWPSecurity_Utility_IP::get_user_ip_address(); //Get the IP address of user + $ip_range = AIOWPSecurity_Utility_IP::get_sanitized_ip_range($ip); //Get the IP range of the current user + + $unlock_url = AIOWPSecurity_User_Login::generate_unlock_request_link($ip_range); + if (!$unlock_url){ + //No entry found in lockdown table with this IP range + $error_msg = '

'.__('Error: No locked entry was found in the DB with your IP address range!','aiowpsecurity').'

'; + echo '
'.$error_msg.'
'; + }else{ + //Send an email to the user + AIOWPSecurity_User_Login::send_unlock_request_email($email, $unlock_url); + echo '

An email has been sent to you with the unlock instructions.

'; + } + } + $display_form = false; + } +} +?> +
+ + + +You are here because you have been locked out due to too many incorrect login attempts.

+

Please enter your email address and you will receive an email with instructions on how to unlock yourself.

' +?> +
+
+

+ +

+

+ +

+
+configs->get_value('aiowps_site_lockout_msg'); +if(empty($aiowps_site_lockout_msg_raw)){ + $aiowps_site_lockout_msg_raw = '

This site is currently not available. Please try again later.

'; +} +$maintenance_msg = html_entity_decode($aiowps_site_lockout_msg_raw, ENT_COMPAT, "UTF-8"); +$maintenance_msg = apply_filters('the_content', $maintenance_msg); +?> + + + + + <?php bloginfo('name'); ?> + + + + + + +
+
+
+
+ +
+
+
+
+ + \ No newline at end of file diff --git a/all-in-one-wp-security/readme.txt b/all-in-one-wp-security/readme.txt new file mode 100644 index 0000000..287deb6 --- /dev/null +++ b/all-in-one-wp-security/readme.txt @@ -0,0 +1,414 @@ +=== All In One WP Security & Firewall === +Contributors: Tips and Tricks HQ, wpsolutions, Peter Petreski, Ruhul Amin, samuelaguilera +Donate link: https://www.tipsandtricks-hq.com +Tags: security, secure, Anti Virus, antivirus, ban, ban hacker, virus, firewall, firewall security, login, lockdown, htaccess, hack, malware, vulnerability, protect, protection, phishing, database, backup, plugin, sql injection, ssl, restrict, login captcha, bot, hotlink, 404 detection, admin, rename, all in one, scan, scanner, iframe, +Requires at least: 3.5 +Tested up to: 3.9.2 +Stable tag: 3.7.9.1 +License: GPLv3 + +A comprehensive, user-friendly, all in one WordPress security and firewall plugin for your site. + +== Description == += A COMPREHENSIVE, EASY TO USE, STABLE AND WELL SUPPORTED WORDPRESS SECURITY PLUGIN = + +WordPress itself is a very secure platform. However, it helps to add some extra security and firewall to your site by using a security plugin that enforces a lot of good security practices. + +The All In One WordPress Security plugin will take your website security to a whole new level. + +This plugin is designed and written by experts and is easy to use and understand. + +It reduces security risk by checking for vulnerabilities, and by implementing and enforcing the latest recommended WordPress security practices and techniques. + +https://www.youtube.com/watch?v=CJvCTlVtazA + +All In One WP Security also uses an unprecedented security points grading system to measure how well you are protecting your site based on the security features you have activated. + +Our security and firewall rules are categorized into "basic", "intermediate" and "advanced". This way you can apply the firewall rules progressively without breaking your site's functionality. + +The All In One WordPress Security plugin doesn't slow down your site and it is 100% free. + +Visit the [WordPress Security Plugin](https://www.tipsandtricks-hq.com/wordpress-security-and-firewall-plugin) page for more details. + +Below is a list of the security and firewall features offered in this plugin: + += User Accounts Security = +* Detect if there is a user account which has the default "admin" username and easily change the username to a value of your choice. +* The plugin will also detect if you have any WordPress user accounts which have identical login and display names. Having account's where display name is identical to login name is bad security practice because +you are making it 50% easier for hackers because they already know the login name. +* Password strength tool to allow you to create very strong passwords. + += User Login Security = +* Protect against "Brute Force Login Attack" with the Login Lockdown feature. Users with a certain IP address or range will be locked out of the system for a predetermined amount of time based on the configuration settings and you can also choose to be notified +via email whenever somebody gets locked out due to too many login attempts. + +* As the administrator you can view a list of all locked out users which are displayed in an easily readable and navigable table which also allows you to unlock individual or bulk IP addresses at the click of a button. +* Force logout of all users after a configurable time period +* Monitor/View failed login attempts which show the user's IP address, User ID/Username and Date/Time of the failed login attempt + +* Monitor/View the account activity of all user accounts on your system by keeping track of the username, IP address, login date/time, and logout date/time. +* Ability to automatically lockout IP address ranges which attempt to login with an invalid username. +* Ability to see a list of all the users who are currently logged into your site. +* Allows you to specify one or more IP addresses in a special whitelist. The whitelisted IP addresses will have access to your WP login page. +* Add captcha to WordPress Login form. +* Add captcha to the forgot password form of your WP Login system. + += User Registration Security = +* Enable manual approval of WordPress user accounts. If your site allows people to create their own accounts via the WordPress registration form, then you can minimize SPAM or bogus registrations by manually approving each registration. +* Ability to add captcha to the WordPress user registration page to protect you from spam user registration. + += Database Security = +* Easily the default WP prefix to a value of your choice with the click of a button. +* Schedule automatic backups and email notifications or make an instant DB backup whenever you want with one click. + += File System Security = +* Identify files or folders which have permission settings which are not secure and set the permissions to the recommend secure values with click of a button. +* Protect your PHP code by disabling file editing from the WordPress administration area. +* Easily view and monitor all host system logs from a single menu page and stay informed of any issues or problems occurring on your server so you can address them quickly. +* Prevent people from accessing the readme.html, license.txt and wp-config-sample.php files of your WordPress site. + += htaccess and wp-config.php File Backup and Restore = +* Easily backup your original .htaccess and wp-config.php files in case you will need to use them to restore broken functionality. +* Modify the contents of the currently active .htaccess or wp-config.php files from the admin dashboard with only a few clicks + += Blacklist Functionality = +* Ban users by specifying IP addresses or use a wild card to specify IP ranges. +* Ban users by specifying user agents. + += Firewall Functionality = + +This plugin allows you to easily add a lot of firewall protection to your site via htaccess file. An htaccess file is processed by your web server before any other code on your site. +So these firewall rules will stop malicious script(s) before it gets a chance to reach the WordPress code on your site. + +* Access control facility +* Instantly activate a selection of firewall settings ranging from basic, intermediate and advanced +* Enable the famous "5G Blacklist" Firewall rules courtesy of [Perishable Press](http://perishablepress.com/) +* Forbid proxy comment posting +* Disable trace and track +* Deny bad or malicious query strings +* Protect against Cross Site Scripting (XSS) by activating the comprehensive advanced character string filter. +or malicious bots who do not have a special cookie in their browser. You (the site admin) will know how to set this special cookie and be able to log into your site. +* WordPress PingBack Vulnerability Protection feature. This firewall feature allows the user to prohibit access to the xmlrpc.php file in order to protect against certain vulnerabilities in the pingback functionality. This is also helpful to block bots from constantly accessing the xmlrpc.php file and wasting your server resource. +* Ability to block fake Googlebots from crawling your site. +* Ability to prevent image hotlinking. Use this to prevent others from hotlinking your images. +* Ability to log all 404 events on your site. You can also choose to automatically block IP addresses that are hitting too many 404s. + += Brute force login attack prevention = +* Instantly block Brute Force Login Attacks via our special Cookie-Based Brute Force Login Prevention feature. This firewall functionality will block all login attempts from people and bots. +* Ability to add a simple math captcha to the WordPress login form to fight against brute force login attacks. +* Ability to hide admin login page. Rename your WordPress login page URL so that bots and hackers cannot access your real WordPress login URL. This feature allows you to change the default login page (wp-login.php) to something you configure. +* Ability to use Login Honeypot which will helps reduce brute force login attempts by robots. + += WhoIs Lookup = +* Perform a WhoIs lookup of a suspicious host or IP address and get full details. + += Security Scanner = +* The file change detection scanner can alert you if any files have changed in your WordPress system. You can then investigate and see if that was a legitimate change or some bad code was injected. +* Database scanner feature can be used to scan your database tables. It will look for any common suspicious-looking strings, javascript and html code in some of the WordPress core tables. + += Comment SPAM Security = +* Monitor the most active IP addresses which persistently produce the most SPAM comments and instantly block them with the click of a button. +* Prevent comments from being submitted if it doesn't originate from your domain (this should reduce some SPAM bot comment posting on your site). +* Add a captcha to your wordpress comment form to add security against comment spam. + += Front-end Text Copy Protection = +* Ability to disable the right click, text selection and copy option for your front-end. + += Regular updates and additions of new security features = +* WordPress Security is something that evolves over time. We will be updating the All In One WP Security plugin with new security features (and fixes if required) on a regular basis so you can rest assured that your site will be on the cutting edge of security protection techniques. + += Works with Most Popular WordPress Plugins = +* It should work smoothly with most popular WordPress plugins. + += Additional Features = +* Ability to remove the WordPress Generator Meta information from the HTML source of your site. +* Ability to prevent people from accessing the readme.html, license.txt and wp-config-sample.php files +* Ability to temporarily lock down the front end of your site from general visitors while you do various backend tasks (investigate security attacks, perform site upgrades, do maintenance work etc.) +* Ability to export/import the security settings. +* Prevent other sites from displaying your content via a frame or iframe. + += Plugin Support = +* If you have a question or problem with the All In One Security plugin, post it on the support forum and we will help you. + += Developers = +* If you are a developer and you need some extra hooks or filters for this plugin then let us know. +* Github repository - https://github.com/wp-plugins/all-in-one-wp-security-and-firewall + += Translations = +* All In One WP Security plugin can be translated to any language. + +Visit the [WordPress Security Plugin](https://www.tipsandtricks-hq.com/wordpress-security-and-firewall-plugin) page for more details. + +== Installation == + +To begin making your WordPress site more secure: + +1. Upload the 'all-in-one-wp-security.zip' file from the Plugins->Add New page in the WordPress administration panel. +2. Activate the plugin through the 'Plugins' menu in WordPress +3. Go to Settings menu under 'WP Security' and start activating the security features of the plugin. + +== Usage == + +Go to the settings menu after you activate the plugin and follow the instructions. + +== Screenshots == +Check the following page for screenshots: +https://www.tipsandtricks-hq.com/wordpress-security-and-firewall-plugin + +== Frequently Asked Questions == +Check the following page for F.A.Q (see the faq section): +https://www.tipsandtricks-hq.com/wordpress-security-and-firewall-plugin + +== Upgrade Notice == +None + +== Changelog == += 3.7.9.1 = +- Added captcha functionality for custom login form which is produced by the WP function: wp_login_form() +- Fixed a minor bug with the copy protection feature's JavaScript code. +- Tweaked file change scan algorithm to help prevent getMTime fatal runtime errors. +- Added a link to the github repository in the readme.txt file for developers. + += 3.7.9 = +- Fixed a small bug related to the cookie test in the Cookie Based Brute Force feature. + += 3.7.8 = +- Added new feature called Login Honeypot which will help reduce brute force login attempts by robots. (This can be found in the Brute Force menu) +- Added new feature to prevent other sites from displaying your content via a frame or iframe. (This can be found in the Miscellaneous menu) +- Added captcha feature for BuddyPress registration form. +- Added a new filter for the site lockout message so it can be customized. +- Added a new filter for template include of the site lockout feature. +- Temporarily deactivated the "DB Scan" feature. + += 3.7.7 = +- Improved DB prefix change code to make it more robust. +- Fixed a minor bug for the Rename Login page feature. +- Added check when processing rename login page to see if maintenance (lockout) mode enabled. Plugin will now display lockout message instead of 404 page if site lockout enabled. +- Made the Cookie Based Brute Force Prevention feature more secure by introducing a 10 digit random suffix to the test cookie name. + += 3.7.6 = +- Added ability to insert captcha in WordPress Multi Site registration form. +- Added a condition around the management permission constant. This will allow users to define a custom capability for this plugin's admin side via the wp-config file. This was submitted by Samuel Aguilera. +- Fixed a bug with the hidden login page feature. +- Fixed a small settings bug with the "block fake google bot" feature. + += 3.7.5 = +- Added a new DB scan feature. Go to the "Scanner" menu to use this new feature. +- Added new settings import/export feature. +- Modified user accounts feature to alert administrator if one or both "admin" or "Admin" usernames are being used. +- Added Persian language translation. The translation was submitted by Amir Mousavi Pour (me@ameer.ir). +- Small change to get_mysql_tables function to prevent fatal error when mysqli query is unsuccessful. +- Added Italian language translation. The translation was submitted by Marco Guglielmetti. + += 3.7.4 = +- Added a new feature to add copy protection for your front-end. You can find this feature under the "Miscellaneous" menu. +- Fixed comment captcha bug for multi-site. Now this feature can be activated/deactivated for subsites of a multisite installation. +- Added Hungarian language translation. The translation was submitted by Daniel Kocsis. +- Moved the custom login page feature's handling code to wp-loaded hook so other plugins that modify the login page can do their task before our one is triggered. This change was suggested by Mark Hudnall. +- Added German language translation. The translation was submitted by Manuel Fritsch. +- Updated the Brazilian language translation file. + + += 3.7.3 = +- Added Brazilian language translation. The translation was submitted by Sergio Siqueira. +- Added two new action hooks for plugin activation and deactivation time. +- Improved the get_user_ip_address() function so it handles cases when multiple addresses are returned due to proxy. +- Fixed the mis-alignment of login page which was broken by WP3.9 when rename login feature is used. +- WordPress 3.9 compatibility + += 3.7.2 = +- Added a PHP Info section in the system info interface to show some important PHP details of the server. +- Added a filter to allow the user to have a custom translation in a place (which will be loaded instead of the default one from the plugin). This change was submitted by Samuel Aguilera. +- Replaced myslqi fetch_all method with fetch_assoc to cover cases where some servers do not have the correct mysql drivers. +- Added a new filter to allow manipulation of the htaccess rules from your custom code. The name of the filter is 'aiowps_htaccess_rules_before_writing'. +- Added a "Delete All 404 Event Logs" button to purge all 404 logs from DB +- Added code to automatically send an email to the registrant when an account has been manually "Approved" from the User Registration menu. + += 3.7.1 = +- Fixed a minor bug: dashboard link was pointing to the wrong tab for the "Logged In Users" tab. +- Fix a bug with the login page captcha. The captcha wansn't shown if the rename login page feature was enabled at the same time. + += 3.7 = +- Added new feature - 404 detection. This allows you to log 404 events and block selected IPs. This feature can be found in the Firewall menu. +- Added new dashboard info box to display number of blocked IP addresses in the lockout table. +- Fixed bug where user could not access login page when maintenance mode and rename login page features were both active. +- Tweaked the hotlinking .htaccess directives to cover both http and https. +- Fixed code to prevent mysql errors due to some variables not having default value in failed login and lockdown tables +- Replaced deprecated PHP function mysql_query with mysqli. +- Added language file for Spanish language. The Spanish translation was done by Samuel Montoya. +- Added code to hide the "DB Prefix" menu for the non-main sites in multi-site installation + += 3.6 = +- Added a new feature to prevent image hot-linking. (See the "Prevent Hotlinks" tab in the firewall menu) +- Added a check in the Rename Login Page feature to prevent people from setting the slug to "wp-admin" +- Fixed a small bug with Login Lockdown feature. + += 3.5.1 = +- Fixed a bug where the cookie-based brute force directives were not being deleted from the .htaccess file when the Rename Login Page feature was being activated. + += 3.5 = +- Added new feature which will Block Fake Googlebots from crawling your site. Check the Firewall menu for this new feature. +- Added code to prevent users from having both the Rename Login Page and Cookie-Based Brute Force features active at the same time. +- Added some useful info boxes in the dashboard: 1) to inform the user if the cookie based brute force or rename login page features are active, 2) last 5 logins to your site. +- Fixed minor bug with .htaccess backup feature. +- Updated the from email address value used for sending backups and file change notification. Thanks to @TheAssurer for the tip. +- Updated the warning message for the disable index view feature. + + += 3.4 = +- Consolidated "Brute Force" features by moving all such features to the "Brute Force" menu. +- Improved the file change detection scan feature: Introduced a button allowing admin to view the file change results from the last scan and fixed small bug whereby the change detected flag was not being cleared for applicable cases. +- Fixed a small bug with "rename login page" (hide admin login) feature. +- Made wp-config.php and .htaccess file backups more secure. Thanks to @TheAssurer for the tip. +- Made the login code more robust by catering for cases where the "wp_login" action was not passing 2 parameters. + += 3.3 = +- Added a brand new brute force prevention feature - Rename Login Page. This feature can be found in the new menu item called "Brute Force". +- Modified the new unlock request feature so that the locked out user will only have to enter email address when they submit an unlock request. +- Replaced the deprecated PHP function "mysql_list_tables" with alternative code. +- Added warning message regarding WordPress iOS app when pingback protection feature in the firewall settings is active. +- Added Malware scan tab and information. +- Some minor html form and CSS corrections. + += 3.2 = +- Added new feature which allows users to generate an automated unlock request link via email when they get locked out because of the login lockdown feature. +- Added a check to ensure that user cannot enter 0 minutes in the Force Logout feature. +- Fixed translations so that various previously omitted strings can now be translated. +- Added a new filter before locking down a user's IP address - aiowps_before_lockdown. +- Generated a new translation (POT) file. + += 3.1 = +- Added a new feature that will allow you to add a captcha to the lost password form (useful if you are allowing user registration on your site). +- Added ability to specify a system log file in the "Host System Logs" tab of the "File System Security" menu +- Fixed a tab link bug. One link was going to the wrong menu tab. +- Updated the POT file of the plugin. + += 3.0 = +- Added a new feature which allows you to add captcha to the Wordpress user registration page. +- Added some more helpful comments and link to video tutorial in the brute force and white list features settings pages. + += 2.9 = +- Added new feature which automatically sets the status of newly registered wordpress user accounts to "pending" and allows manual approval by an administrator. +- Improved robustness of file change detection iteration code. +- WordPress 3.7 compatibility + += 2.8.1 = +- Improved the login captcha implementation +- Changed the management permission to manage_options + += 2.8 = +- Added a feature to insert a simple math captcha to the WordPress comment form (to reduce comment spam). Check the spam prevention menu for this new feature. +- Fixed a minor bug with bulk unlock/delete in user login menu +- Fixed a minor bug with math captcha logic. + += 2.7 = +- Added a simple math captcha functionality for the WP login page. This is another easy yet effective way to combat Brute Force Login Attacks. You can enable this new feature from the user login security menu. + += 2.6 = +- Added a new Login Whitelist feature. This feature enables you to specify one or more IP addresses in a special whitelist which will have access to your WP login page. +All other IP addresses trying to access your WP login page which are not in the whitelist will be automatically blocked. +- The IP address will also be included in the email that gets sent to the admin for the ip address lockout notification. +- Language file loading fix for Chinese language. +- Tweaked the code which creates a .htaccess file in the backup directory to ensure it gets run even if the directory already existed. +- Made DB backups more secure. +- Added more useful debug logs for .htaccess file manipulation failure scenarios. + += 2.5 = +- Added a new feature which will list the currently logged in users who have been active within the last 15 minutes. +- Added a new feature in settings menu which will disable all firewall rules and clear all applicable directives in the .htaccess file. +- Improved the way the wp-config.php file is handled when it contains an ending PHP tag "?>" (older sites that were using PHP4 earlier). + += 2.4 = +- Added new feature/checkbox which will instantly lockout IP address ranges which attempt to login with an invalid username. +- Fixed a bug in the Comment SPAM IP Monitoring page where trying to block one or more IPs was failing. +- Removed the word "config" from the list of bad query strings check (to add compatibility with a few more plugins) +- Added a notice in the dashboard menu to show you if there are any recent file changes that the plugin detected. +- Fixed bug with php File Editing feature. Code now also handles older style wp-config.php files which have the php end tag "?>" +- Fixed bug with "Disable All Security Features" button functionality. When clicked, this will now also make the appropriate changes to the .htacces and wp-config.php files if necessary. +- Changed the storage of backup files from the plugin's directory to the uploads directory. Also added a .htaccess file for security. +- Fixed the way user-agent strings were written to the .htacess file from the Blacklist feature. The code now will correctly identify and represent spaces and escaped chars. +- Fixed a bug related to sending backup to correct email address. + += 2.3 = +- Added new menu called Scanner with a new feature called File Change Detection. This feature will alert you if any files have changed, added or removed from your system. +- Fixed "Deny Bad Query Strings" rules to not break the ability to drag components in the WordPress "Appearance->Menus" page +- Fixed an activation time warning (on sites with WP_DEBUG option enabled) +- Re-implemented the wp-config.php file content backup feature. It now directly downloads the contents of the file to your computer. +- Multi-site enhancements: Suppressed access to configuration settings for features which are not allowed to be configured from subsites of multi-site installations. +- Fixed a bug with login lockdown feature. + += 2.2 = +- Added a new feature which will block some spambots from submitting comments. +- Moved Comment SPAM IP monitoring interface to the new "SPAM Prevention" menu. +- Fixed a bug with login lockdown feature for both multi and single site. +- Improved firewall feature for multi-site by making the "Firewall" menu available only for the main site and not the sub-sites. +- Added random prefix to backup file names. +- Fixed a bug for WP multi-site install where DB tables do not get created when new blog are created in the network. + += 2.1.1 = +- Fixed a version tagging issue. + += 2.1 = +- Fixed an issue with install time error on some sites for WordPress 3.6 +- Fixed some WP Debug related errors for WordPress 3.6 +- Replaced the deprecated $wpdb->escape() function calls with esc_sql() calls + += 2.0 = +- Fixed a bug for general DB backup functionality. +- Fixed multi-site DB backup - the plugin will now backup only the tables relevant for the sub-site in question. +- Added blank index.html files in various folders inside the plugin. +- Disabled the wp-config.php file backup feature until we find a more secure method of doing the backup. + += 1.9 = +- Added new WordPress PingBack Vulnerability Protection feature. This allows the user to prohibit access to the xmlrpc.php file in order to protect against certain vulnerabilities in the pingback functionality. +- Added a configuration item in the brute force login prevention feature to allow ajax functionality to work properly when this feature is enabled. +- Added a POT file for language translations. +- Made the DB Prefix feature more robust by adding a check to ensure that plugin can write to the wp-config.php file. This will prevent user from losing access to their site in cases where the system changed the prefix but not the entry in the wp-config.php file. +- Tightened the data validation for the cookie based brute force login feature to ensure that the user must enter a secret word which consists of alphanumeric characters. +- Added edit links to the user account list in the "User Acounts" menu. + += 1.8 = +- Moved the front end site lockout feature to a new menu called "Maintenance". +- Added a feature in the front-end lockout feature to allow people to specify their own message which will be displayed on the front-end to visitors who try to access the site when it is in lock out state. +- Fixed a bug in the front-end lockout feature by adding some checks which ensure that the admin will not get locked if the feature is still active and their login session expires or they log out. +- Added a widget in the dashboard menu to show the status of the "maintenance mode" feature. + += 1.7 = +- Added a new feature which is a password strength tool which calculates how easy it is for your chosen password to be cracked using a desktop PC and the appropriate SW. This tool should help you create strong passwords. +- Added a front-end general visitor lockout feature. This feature allows you to temporarily lock down the front end of your site while you do security investigation, site upgrades, tweaks etc. + += 1.6 = +- Added a new option in the cookie-based Brute Force Login Attack prevention feature to allow users to use this feature together with the WordPress's post/page password protection feature. +- Fixed a bug in the 5G firewall rules to so that the printed rules include the correct number of '\' characters. +- Fixed a minor bug in the "restore from backed up htaccess file" feature. +- Enhanced the "Save current wp-config.php file" feature so it will continue to work with all of the firewall rules active on the site. +- Added extra checks to account for some error scenarios caused on some servers when recursive file search is done. + += 1.5 = +- Added new feature - Cookie-based Brute Force Login Attack Prevention. Check under the "Firewall" menu for this new feature. + This feature will stop hackers in their tracks when they try to access your wp-admin or login pages. This feature will secure your WordPress backend by enforcing the requirement that anybody trying to access these pages will require a special cookie. + +- Fixed bug related to setting of default configuration for first-time plugin activation. + += 1.4 = +- Tweaked the "Deny Bad Query Strings" firewall rules so that plugin deletion and update operations from the WordPress plugins menu are not affected. +- Fixed a minor bug related to scheduled database backups. +- Added some extra default settings to be applied to the plugin's configuration pages upon activation for the first time. +- Plugin will now display a recommendation message if user sets scheduled backup frequency to less than 24 hours. + += 1.3 = +- Added a new feature to remove the WordPress Generator Meta information from the HTML source of your site. +- Tweaked the "Advanced Character String Filter" to fix issue which was affecting plugins such as "Admin Management Xtended" and also pages with keywords such as "password" in the URL. +- Updated one rule in the "Advanced Character String Filter" feature to make it compatible with W3 Total Cache Plugin's minify feature. +- Added a "Delete All Failed Login Records" option in the "Failed Login Records" tab. This will delete all entries in the failed logins table and will make it less tedious for users who get a lot of brute force attacks on their site. + += 1.2 = +- Moved the rules which disable index views from the "basic firewall" rules to the "additional rules" section. This will prevent any site breakage for +those who want to enable the basic firewall but do not have "AllowOverride" option enabled in their httpd.conf + += 1.1 = +- Added the following new feature: +- Prevent people from accessing the readme.html, license.txt and wp-config-sample.php files. + += 1.0 = +- First commit to the WP repository. diff --git a/all-in-one-wp-security/wp-security-core.php b/all-in-one-wp-security/wp-security-core.php new file mode 100644 index 0000000..1f77e2f --- /dev/null +++ b/all-in-one-wp-security/wp-security-core.php @@ -0,0 +1,272 @@ +load_configs(); + $this->define_constants(); + $this->includes(); + $this->loader_operations(); + + add_action('init', array(&$this, 'wp_security_plugin_init'), 0); + add_action('wp_loaded',array(&$this, 'aiowps_wp_loaded_handler')); + do_action('aiowpsecurity_loaded'); + } + + function plugin_url() + { + if ($this->plugin_url) return $this->plugin_url; + return $this->plugin_url = plugins_url( basename( plugin_dir_path(__FILE__) ), basename( __FILE__ ) ); + } + + function plugin_path() + { + if ($this->plugin_path) return $this->plugin_path; + return $this->plugin_path = untrailingslashit( plugin_dir_path( __FILE__ ) ); + } + + function load_configs() + { + include_once('classes/wp-security-config.php'); + $this->configs = AIOWPSecurity_Config::get_instance(); + } + + function define_constants() + { + define('AIO_WP_SECURITY_VERSION', $this->version); + define('AIO_WP_SECURITY_DB_VERSION', $this->db_version); + define('AIOWPSEC_WP_URL', site_url()); + define('AIO_WP_SECURITY_URL', $this->plugin_url()); + define('AIO_WP_SECURITY_PATH', $this->plugin_path()); + define('AIO_WP_SECURITY_BACKUPS_DIR_NAME', 'aiowps_backups'); + define('AIO_WP_SECURITY_BACKUPS_PATH', AIO_WP_SECURITY_PATH.'/backups'); + define('AIO_WP_SECURITY_LIB_PATH', AIO_WP_SECURITY_PATH.'/lib'); + if (!defined('AIOWPSEC_MANAGEMENT_PERMISSION')){//This will allow the user to define custom capability for this constant in wp-config file + define('AIOWPSEC_MANAGEMENT_PERMISSION', 'manage_options'); + } + define('AIOWPSEC_MENU_SLUG_PREFIX', 'aiowpsec'); + define('AIOWPSEC_MAIN_MENU_SLUG', 'aiowpsec'); + define('AIOWPSEC_SETTINGS_MENU_SLUG', 'aiowpsec_settings'); + define('AIOWPSEC_USER_ACCOUNTS_MENU_SLUG', 'aiowpsec_useracc'); + define('AIOWPSEC_USER_LOGIN_MENU_SLUG', 'aiowpsec_userlogin'); + define('AIOWPSEC_USER_REGISTRATION_MENU_SLUG', 'aiowpsec_user_registration'); + define('AIOWPSEC_DB_SEC_MENU_SLUG', 'aiowpsec_database'); + define('AIOWPSEC_FILESYSTEM_MENU_SLUG', 'aiowpsec_filesystem'); + define('AIOWPSEC_WHOIS_MENU_SLUG', 'aiowpsec_whois'); + define('AIOWPSEC_BLACKLIST_MENU_SLUG', 'aiowpsec_blacklist'); + define('AIOWPSEC_FIREWALL_MENU_SLUG', 'aiowpsec_firewall'); + define('AIOWPSEC_MAINTENANCE_MENU_SLUG', 'aiowpsec_maintenance'); + define('AIOWPSEC_SPAM_MENU_SLUG', 'aiowpsec_spam'); + define('AIOWPSEC_FILESCAN_MENU_SLUG', 'aiowpsec_filescan'); + define('AIOWPSEC_BRUTE_FORCE_MENU_SLUG', 'aiowpsec_brute_force'); + define('AIOWPSEC_MISC_MENU_SLUG', 'aiowpsec_misc'); + + global $wpdb; + define('AIOWPSEC_TBL_LOGIN_LOCKDOWN', $wpdb->prefix . 'aiowps_login_lockdown'); + define('AIOWPSEC_TBL_FAILED_LOGINS', $wpdb->prefix . 'aiowps_failed_logins'); + define('AIOWPSEC_TBL_USER_LOGIN_ACTIVITY', $wpdb->prefix . 'aiowps_login_activity'); + define('AIOWPSEC_TBL_GLOBAL_META_DATA', $wpdb->prefix . 'aiowps_global_meta'); + define('AIOWPSEC_TBL_EVENTS', $wpdb->prefix . 'aiowps_events'); + + } + + function includes() + { + //Load common files for everywhere + include_once('classes/wp-security-debug-logger.php'); + include_once('classes/wp-security-utility.php'); + include_once('classes/wp-security-utility-htaccess.php'); + include_once('classes/wp-security-utility-ip-address.php'); + include_once('classes/wp-security-utility-file.php'); + include_once('classes/wp-security-general-init-tasks.php'); + include_once('classes/wp-security-wp-loaded-tasks.php'); + + include_once('classes/wp-security-user-login.php'); + include_once('classes/wp-security-user-registration.php'); + include_once('classes/wp-security-captcha.php'); + include_once('classes/wp-security-backup.php'); + include_once('classes/wp-security-file-scan.php'); + include_once('classes/wp-security-cronjob-handler.php'); + include_once('classes/grade-system/wp-security-feature-item.php'); + include_once('classes/grade-system/wp-security-feature-item-manager.php'); + include_once('classes/wp-security-wp-footer-content.php'); + + if (is_admin()){ //Load admin side only files + include_once('classes/wp-security-configure-settings.php'); + include_once('admin/wp-security-admin-init.php'); + include_once('admin/general/wp-security-list-table.php'); + + } + else{ //Load front end side only files + } + } + + function loader_operations() + { + add_action('plugins_loaded',array(&$this, 'plugins_loaded_handler'));//plugins loaded hook + $this->debug_logger = new AIOWPSecurity_Logger(); + if(is_admin()){ + $this->admin_init = new AIOWPSecurity_Admin_Init(); + } + } + + static function activate_handler() + { + //Only runs when the plugin activates + include_once ('classes/wp-security-installer.php'); + AIOWPSecurity_Installer::run_installer(); + wp_schedule_event(time(), 'hourly', 'aiowps_hourly_cron_event'); //schedule an hourly cron event + //wp_schedule_event(time(), 'daily', 'aiowps_daily_cron_event'); //schedule an daily cron event + + do_action('aiowps_activation_complete'); + } + + static function deactivate_handler() + { + //Only runs with the pluign is deactivated + include_once ('classes/wp-security-deactivation-tasks.php'); + //AIOWPSecurity_Deactivation::run_deactivation_tasks(); + wp_clear_scheduled_hook('aiowps_hourly_cron_event'); + //wp_clear_scheduled_hook('aiowps_daily_cron_event'); + if (AIOWPSecurity_Utility::is_multisite_install()){ + delete_site_transient('users_online'); + } + else{ + delete_transient('users_online'); + } + + do_action('aiowps_deactivation_complete'); + } + + function db_upgrade_handler() + { + if(is_admin()){//Check if DB needs to be upgraded + if (get_option('aiowpsec_db_version') != AIO_WP_SECURITY_DB_VERSION) { + include_once ('classes/wp-security-installer.php'); + AIOWPSecurity_Installer::run_installer(); + } + } + } + + function plugins_loaded_handler() + { + //Runs when plugins_loaded action gets fired + if(is_admin()){ + //Do plugins_loaded operations for admin side + $this->db_upgrade_handler(); + } + $this->do_additional_plugins_loaded_tasks(); + } + + function wp_security_plugin_init() + { + //Set up localisation. First loaded overrides strings present in later loaded file + $locale = apply_filters( 'plugin_locale', get_locale(), 'aiowpsecurity' ); + load_textdomain( 'aiowpsecurity', WP_LANG_DIR . "/aiowpsecurity-$locale.mo" ); + load_plugin_textdomain('aiowpsecurity', false, dirname(plugin_basename(__FILE__ )) . '/languages/'); + + //Actions, filters, shortcodes goes here + $this->user_login_obj = new AIOWPSecurity_User_Login();//Do the user login operation tasks + $this->user_registration_obj = new AIOWPSecurity_User_Registration();//Do the user login operation tasks + $this->captcha_obj = new AIOWPSecurity_Captcha();//Do the captcha tasks + $this->backup_obj = new AIOWPSecurity_Backup();//Object to handle backup tasks + $this->scan_obj = new AIOWPSecurity_Scan();//Object to handle backup tasks + $this->cron_handler = new AIOWPSecurity_Cronjob_Handler(); + + add_action('wp_head',array(&$this, 'aiowps_header_content')); + add_action('wp_footer',array(&$this, 'aiowps_footer_content')); + + add_action('wp_login', array('AIOWPSecurity_User_Login', 'wp_login_action_handler'), 10, 2); + do_action('aiowps_force_logout_check'); + new AIOWPSecurity_General_Init_Tasks(); + } + + function aiowps_wp_loaded_handler() + { + new AIOWPSecurity_WP_Loaded_Tasks(); + } + + function aiowps_header_content() + { + //NOP + } + + function aiowps_footer_content() + { + new AIOWPSecurity_WP_Footer_Content(); + } + + function do_additional_plugins_loaded_tasks() + { + if(isset($_GET['aiowpsec_do_log_out'])) + { + wp_logout(); + if(isset($_GET['after_logout']))//Redirect to the after logout url directly + { + $after_logout_url = esc_url($_GET['after_logout']); + AIOWPSecurity_Utility::redirect_to_url($after_logout_url); + } + if(isset($_GET['al_additional_data']))//Inspect the payload and do redirect to login page with a msg and redirect url + { + $payload = strip_tags($_GET['al_additional_data']); + $decoded_payload = base64_decode($payload); + parse_str($decoded_payload); + if(!empty($redirect_to)){ + $login_url = AIOWPSecurity_Utility::add_query_data_to_url(wp_login_url(),'redirect_to',$redirect_to); + } + if(!empty($msg)){ + $login_url .= '&'.$msg; + } + if(!empty($login_url)){ + AIOWPSecurity_Utility::redirect_to_url($login_url); + } + } + } + } + + //This function will dynamically change the upload directory if the user is uploading a file from an aiowps page + function aiowps_set_upload_dir($path_data) + { + $output = array(); + $originating_url_parsed = parse_url($_SERVER['HTTP_REFERER']); + if(isset($originating_url_parsed['query'])){ + parse_str($originating_url_parsed['query'], $output); + + if (isset($output['referer'])){ + if ($output['referer'] == 'aiowpsec') { + $path_data['path'] = WP_CONTENT_DIR . "/" . AIO_WP_SECURITY_BACKUPS_DIR_NAME; + $path_data['url'] = content_url() . "/" . AIO_WP_SECURITY_BACKUPS_DIR_NAME; + } + } + } + return $path_data; + } + + function handle_upload( $fileinfo ) + { + remove_filter('upload_dir', array( &$this, 'aiowps_set_upload_dir' ) ); + return $fileinfo; + } + + +}//End of class + +}//End of class not exists check + +$GLOBALS['aio_wp_security'] = new AIO_WP_Security(); diff --git a/all-in-one-wp-security/wp-security.php b/all-in-one-wp-security/wp-security.php new file mode 100644 index 0000000..53ee0d1 --- /dev/null +++ b/all-in-one-wp-security/wp-security.php @@ -0,0 +1,41 @@ +Settings'; + array_unshift($links, $settings_link); + } + return $links; +} +add_filter('plugin_action_links', 'aiowps_show_plugin_settings_link', 10, 2 ); + +function aiowps_ms_handle_new_blog_creation($blog_id, $user_id, $domain, $path, $site_id, $meta ){ + global $wpdb; + if (is_plugin_active_for_network(__FILE__)) + { + if(!class_exists('AIOWPSecurity_Installer')){ + include_once('classes/wp-security-installer.php'); + } + $old_blog = $wpdb->blogid; + switch_to_blog($blog_id); + AIOWPSecurity_Installer::create_db_tables(); + switch_to_blog($old_blog); + } +} +add_action('wpmu_new_blog', 'aiowps_ms_handle_new_blog_creation', 10, 6); diff --git a/nbproject/project.properties b/nbproject/project.properties new file mode 100644 index 0000000..04e3d5e --- /dev/null +++ b/nbproject/project.properties @@ -0,0 +1,7 @@ +include.path=${php.global.include.path} +php.version=PHP_54 +source.encoding=UTF-8 +src.dir=. +tags.asp=false +tags.short=true +web.root=. diff --git a/nbproject/project.xml b/nbproject/project.xml new file mode 100644 index 0000000..7098b95 --- /dev/null +++ b/nbproject/project.xml @@ -0,0 +1,9 @@ + + + org.netbeans.modules.php.project + + + all-in-one-wordpress-security-git + + +