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

Version Description

  • Added options library using external file instead of the database
  • Modified API calls using custom HTTP request using Curl
  • Fixed core files marked as broken in a Windows server
  • Fixed pagination links in last and failed logins page
  • Fixed password with ampersands in email notification
  • Fixed whitelist hardening using the authz_core module
  • Removed unnecessary emails to reduce spam
  • Added constant to stop execution of admin init hooks
  • Added explanation for invalid emails and no MX records
  • Added link to open the form to insert the API key manually
  • Added more options in the IP discoverer setting
  • Added option to configure malware scanner timeout
  • Added option to configure the API communication protocol
  • Added option to reset the malware scanner cache
  • Added scheduled task and email alert for available updates
  • Added tool to block user accounts from attempting a login
  • Added tool to debug HTTP requests to the API services
  • Various minor adjustments and fixes
Download this release

Release Info

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

Code changes from version 1.7.17 to 1.7.18

Files changed (64) hide show
  1. inc/css/sucuri-scanner.min.css +1 -1
  2. inc/js/sucuri-scanner.min.js +1 -1
  3. inc/tpl/bsidebar.html.tpl +8 -5
  4. inc/tpl/corefiles.html.tpl +6 -0
  5. inc/tpl/firewall-auditlogs.html.tpl +1 -1
  6. inc/tpl/firewall-clearcache.html.tpl +1 -1
  7. inc/tpl/firewall-settings.html.tpl +1 -1
  8. inc/tpl/hardening-panel.html.tpl +4 -4
  9. inc/tpl/hardening-whitelist.html.tpl +1 -1
  10. inc/tpl/hardening.html.tpl +17 -1
  11. inc/tpl/hardening.snippet.tpl +1 -1
  12. inc/tpl/infosys-cronjobs.html.tpl +30 -35
  13. inc/tpl/infosys-errorlogs-flimit.html.tpl +24 -0
  14. inc/tpl/infosys-errorlogs-freader.html.tpl +61 -0
  15. inc/tpl/infosys-errorlogs-status.html.tpl +23 -0
  16. inc/tpl/infosys-errorlogs.html.tpl +4 -84
  17. inc/tpl/infosys-htaccess.html.tpl +1 -1
  18. inc/tpl/integrity-auditlogs.html.tpl +73 -13
  19. inc/tpl/integrity-modifiedfiles.html.tpl +1 -1
  20. inc/tpl/integrity.html.tpl +1 -1
  21. inc/tpl/lastlogins-all.html.tpl +1 -1
  22. inc/tpl/lastlogins-blockedusers.html.tpl +65 -0
  23. inc/tpl/lastlogins-blockedusers.snippet.tpl +10 -0
  24. inc/tpl/lastlogins-failedlogins.html.tpl +52 -32
  25. inc/tpl/lastlogins-failedlogins.snippet.tpl +3 -1
  26. inc/tpl/lastlogins.html.tpl +7 -0
  27. inc/tpl/notification-resetpwd.html.tpl +1 -1
  28. inc/tpl/posthack-resetpassword.html.tpl +1 -1
  29. inc/tpl/posthack-resetplugins.html.tpl +1 -1
  30. inc/tpl/posthack-resetplugins.snippet.tpl +3 -1
  31. inc/tpl/posthack-updates-notification.html.tpl +36 -0
  32. inc/tpl/posthack-updates.html.tpl +46 -0
  33. inc/tpl/posthack-updates.snippet.tpl +12 -0
  34. inc/tpl/posthack-updatesecretkeys.html.tpl +1 -1
  35. inc/tpl/posthack.html.tpl +7 -0
  36. inc/tpl/settings-alert.html.tpl +1 -1
  37. inc/tpl/settings-apiservice-protocol.html.tpl +105 -0
  38. inc/tpl/settings-apiservice-protocol.snippet.tpl +8 -0
  39. inc/tpl/settings-apiservice.html.tpl +3 -1
  40. inc/tpl/settings-corefiles-cache.html.tpl +42 -0
  41. inc/tpl/settings-corefiles-cache.snippet.tpl +6 -0
  42. inc/tpl/settings-corefiles-language.html.tpl +40 -0
  43. inc/tpl/settings-corefiles-status.html.tpl +42 -0
  44. inc/tpl/settings-general-apikey.html.tpl +16 -6
  45. inc/tpl/settings-general-datastorage.html.tpl +8 -0
  46. inc/tpl/settings-general.html.tpl +1 -1
  47. inc/tpl/settings-heartbeat.html.tpl +1 -1
  48. inc/tpl/settings-ignorerules.html.tpl +2 -2
  49. inc/tpl/settings-ignorescan-files.html.tpl +20 -0
  50. inc/tpl/settings-ignorescan-folders.html.tpl +59 -0
  51. inc/tpl/settings-ignorescan-status.html.tpl +25 -0
  52. inc/tpl/settings-ignorescan.html.tpl +8 -0
  53. inc/tpl/settings-ignorescan.snippet.tpl +8 -0
  54. inc/tpl/settings-ignorescanning.html.tpl +0 -95
  55. inc/tpl/settings-ignorescanning.snippet.tpl +0 -9
  56. inc/tpl/settings-scanner.html.tpl +15 -97
  57. inc/tpl/settings-selfhosting.html.tpl +1 -1
  58. inc/tpl/settings-sitecheck-cache.html.tpl +23 -0
  59. inc/tpl/settings-sitecheck-status.html.tpl +56 -0
  60. inc/tpl/settings-sitecheck-timeout.html.tpl +43 -0
  61. inc/tpl/settings-trustip.html.tpl +1 -1
  62. readme.txt +22 -2
  63. sucuri.php +2147 -931
  64. uninstall.php +6 -1
inc/css/sucuri-scanner.min.css CHANGED
@@ -1 +1 @@
1
- .sucuriscan-malware-payload,.sucuriscan-request-summary td+td,.sucuriscan-wraptext{word-break:break-all}.sucuriscan-wrap *,.sucuriscan-wrap :after,.sucuriscan-wrap :before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.sucuriscan-clearfix:after,.sucuriscan-clearfix:before{display:table;content:' '}.sucuriscan-clearfix:after{clear:both}.sucuriscan-hidden{display:none!important}.sucuriscan-opacity{opacity:.6}.sucuriscan-monospace{font-family:Menlo,Monaco,monospace,courier}.sucuriscan-ellipsis{overflow:hidden;display:inline-block;white-space:nowrap;text-overflow:ellipsis}.sucuriscan-pull-left{float:left}.sucuriscan-pull-right{float:right}.sucuriscan-list li{list-style:disc;margin:0 0 5px 15px}.sucuriscan-gradient,.sucuriscan-leftside #poststuff h3,.sucuriscan-maincontent .sucuriscan-table tr>th,.sucuriscan-modal-header{background-color:#f1f1f1;background-image:-webkit-gradient(linear,left top,left bottom,from(#f9f9f9),to(#ececec));background-image:-webkit-linear-gradient(top,#f9f9f9,#ececec);background-image:-moz-linear-gradient(top,#f9f9f9,#ececec);background-image:-ms-linear-gradient(top,#f9f9f9,#ececec);background-image:-o-linear-gradient(top,#f9f9f9,#ececec);background-image:linear-gradient(top,#f9f9f9,#ececec);filter:"progid: DXImageTransform.Microsoft.Gradient(startColorstr=#f9f9f9, endColorstr=#ececec)";-ms-filter:"progid: DXImageTransform.Microsoft.Gradient(startColorstr=#f9f9f9, endColorstr=#ececec)"}.wp-core-ui .button-success,.wp-core-ui .button-success.focus,.wp-core-ui .button-success.hover,.wp-core-ui .button-success:focus,.wp-core-ui .button-success:hover,.wp-core-ui .button.button-success.button-hero{-webkit-box-shadow:0 1px 0 #109900;-moz-box-shadow:0 1px 0 #109900;box-shadow:0 1px 0 #109900}.wp-core-ui .button-success,.wp-core-ui .button-success.focus,.wp-core-ui .button-success.hover,.wp-core-ui .button-success:focus,.wp-core-ui .button-success:hover{background:#8dcd5a;border-color:#48a325;box-shadow:0 1px 0 #109900;text-shadow:0 -1px 1px #109900,1px 0 1px #109900,0 1px 1px #109900,-1px 0 1px #109900}.wp-core-ui .button-success.focus,.wp-core-ui .button-success.hover,.wp-core-ui .button-success:focus,.wp-core-ui .button-success:hover{background:#69be48}.wp-core-ui .button-success.focus,.wp-core-ui .button-success:focus{border-color:#23500e}.wp-core-ui .button-success.active,.wp-core-ui .button-success.active:focus,.wp-core-ui .button-success.active:hover,.wp-core-ui .button-success:active{background:#47a61b;border-color:#358400}.wp-core-ui .button-success-disabled,.wp-core-ui .button-success.disabled,.wp-core-ui .button-success:disabled,.wp-core-ui .button-success[disabled]{color:#b2e794!important;background:#74ba29!important;border-color:#3f7f1b!important}.wp-core-ui .button-danger,.wp-core-ui .button-danger.focus,.wp-core-ui .button-danger.hover,.wp-core-ui .button-danger:focus,.wp-core-ui .button-danger:hover,.wp-core-ui .button.button-danger.button-hero{-webkit-box-shadow:0 1px 0 #99000e;-moz-box-shadow:0 1px 0 #99000e;box-shadow:0 1px 0 #99000e}.wp-core-ui .button-danger,.wp-core-ui .button-danger.focus,.wp-core-ui .button-danger.hover,.wp-core-ui .button-danger:focus,.wp-core-ui .button-danger:hover{background:#cd5050;border-color:#a52121;text-shadow:0 -1px 1px #99000e,1px 0 1px #99000e,0 1px 1px #99000e,-1px 0 1px #99000e}.wp-core-ui .button-danger.focus,.wp-core-ui .button-danger.hover,.wp-core-ui .button-danger:focus,.wp-core-ui .button-danger:hover{background:#be4242}.wp-core-ui .button-danger.focus,.wp-core-ui .button-danger:focus{border-color:#500e0e}.wp-core-ui .button-danger.active,.wp-core-ui .button-danger.active:focus,.wp-core-ui .button-danger.active:hover,.wp-core-ui .button-danger:active{background:#a61b1b;border-color:#840000}.wp-core-ui .button-danger-disabled,.wp-core-ui .button-danger.disabled,.wp-core-ui .button-danger:disabled,.wp-core-ui .button-danger[disabled]{color:#e79494!important;background:#ba2929!important;border-color:#7f1b1b!important}.wp-core-ui .sucuriscan-btnblock{display:block;width:100%;text-align:center}.sucuriscan-overlay{position:fixed;top:0;left:0;bottom:0;right:0;z-index:9990;background:#666;background:rgba(0,0,0,.5)}.sucuriscan-modal{position:absolute;top:25px;left:15%;z-index:9990;width:55%}.sucuriscan-modal-outside{position:relative;left:0;border:1px solid #ddd}.sucuriscan-modal-inside{background:#fff;padding:20px}.sucuriscan-modal-header{padding:0;border-bottom:1px solid #ddd}#poststuff h3.sucuriscan-modal-title,.sucuriscan-leftside #poststuff h3.sucuriscan-modal-title,.sucuriscan-modal-header .sucuriscan-modal-title{margin:0 0 0 10px;padding:0;float:left;line-height:38px;border-bottom:0}.sucuriscan-modal-header .sucuriscan-modal-logo{display:inline-block;float:left;margin-top:8px;margin-left:18px}.sucuriscan-modal-header .sucuriscan-modal-logo img{height:22px}.sucuriscan-modal-close{display:inline-block;position:absolute;top:0;right:0;font-size:16px;font-weight:700;text-decoration:none;line-height:38px;padding:0 15px;border-left:1px solid #ddd}.sucuriscan-modal-inside p:first-child{margin-top:0}.postbox .inside p:last-child,.sucuriscan-modal-inside p:last-child{margin-bottom:0}.sucuriscan-label,.sucuriscan-label-danger,.sucuriscan-label-default,.sucuriscan-label-error,.sucuriscan-label-info,.sucuriscan-label-notice,.sucuriscan-label-primary,.sucuriscan-label-success,.sucuriscan-label-unknown,.sucuriscan-label-warning{display:inline;font-size:75%;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;padding:.2em .6em .3em;border-radius:.25em}.sucuriscan-label-default,.sucuriscan-label-unknown{background:#777}.sucuriscan-label-danger,.sucuriscan-label-error{background:#d9534f}.sucuriscan-label-info,.sucuriscan-label-notice{background:#5bc0de}.sucuriscan-label-warning{background:#f0ad4e}.sucuriscan-label-success{background:#5cb85c}.sucuriscan-label-primary{background:#428bca}.sucuriscan-wrap{margin-top:20px}.sucuriscan-wrap .sucuriscan-maincontent{margin:20px 0}.sucuriscan-wrap .sucuriscan-leftside{width:73.5%;float:left}.sucuriscan-wrap .sucuriscan-onecolumn{width:100%}.sucuriscan-wrap .sucuriscan-sidebar{width:25%;float:right}.sucuriscan-wrap #warnings_hook{line-height:normal;padding:0}.sucuriscan-wrap .sucuriscan-navbar{padding-top:20px;padding-left:6px}.sucuriscan-wrap .sucuriscan-navbar .nav-tab{margin-right:0}.sucuriscan-footer,.sucuriscan-header{position:relative;min-width:255px;background:#333;margin:0;padding:10px;border-radius:4px}.sucuriscan-footer .sucuriscan-help{color:#fff;float:right;text-align:right}.sucuriscan-footer .sucuriscan-help p{line-height:38px;margin:0 10px 0 0;padding:0}.sucuriscan-wrap .sucuriscan-footer h2,.sucuriscan-wrap .sucuriscan-header h2,.sucuriscan-wrap .sucuriscan-logo{float:left;margin:0;padding:0}.sucuriscan-wrap .sucuriscan-logo{display:inline-block}.sucuriscan-wrap .sucuriscan-logo img{display:block}.sucuriscan-wrap .sucuriscan-footer h2,.sucuriscan-wrap .sucuriscan-header h2{color:#fff;line-height:38px;margin-left:10px;text-shadow:#000 0 1px 0}.sucuriscan-leftside #poststuff .postbox:last-child{margin-bottom:0}.sucuriscan-leftside #poststuff .postbox h3{margin:0;padding:10px;border-bottom:1px solid #ddd}.sucuriscan-maincontent abbr{text-decoration:underline;cursor:help}.wrap div.sucuriscan-setup-notice{background:#bbe8f5;margin:0 0 20px;padding:0;border:1px solid #bbb;border-radius:3px;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.wrap div.sucuriscan-setup-notice .sucuriscan-setup-image,.wrap div.sucuriscan-setup-notice .sucuriscan-setup-image img{border-radius:3px 0 0 3px}.wrap div.sucuriscan-setup-notice .sucuriscan-setup-image{background:#333;margin:-1px 0 -1px -1px;padding:7px 10px;border-right:1px solid transparent}.wrap div.sucuriscan-setup-notice .sucuriscan-setup-form{padding:4px 4px 4px 0}.wrap div.sucuriscan-setup-notice p{font-size:14px;line-height:20px;margin:0 0 0 10px;padding:7px 0}.wrap div.sucuriscan-setup-notice,.wrap div.sucuriscan-setup-notice .sucuriscan-setup-image{border-color:#4393ac}.wp-core-ui .button.sucuriscan-review-hero,.wp-core-ui .sucuriscan-review-hero{height:initial;line-height:36px;float:right;padding:0 20px}.sucuriscan-input-group>label{display:inline-block;border:1px solid #ddd;border-right:0;line-height:26px;float:left;padding:0 10px;background:#eee}.sucuriscan-input-group>input[type=text]{margin:0;padding-bottom:4px}.sucuriscan-input-group>select{vertical-align:initial;margin:0}.sucuriscan-table-setup td{vertical-align:top}.sucuriscan-table-setup .sucuriscan-description{font-size:12px;margin-top:10px}.sucuriscan-dismiss-setup{font-size:10px;line-height:28px}.sucuriscan-maincontent .sucuriscan-table{margin-top:12px}.sucuriscan-maincontent .sucuriscan-table tr>th{border-top:1px solid #e5e5e5;border-bottom:1px solid #e5e5e5}.sucuriscan-maincontent .sucuriscan-table tr:first-child th{border-top:0}.sucuriscan-maincontent .sucuriscan-table td.check-column{padding:8px 10px}.sucuriscan-maincontent .sucuriscan-striped-table tr:nth-child(even){background:#f5f5f5}.sucuriscan-table-double-title tr:first-child th,.sucuriscan-table-quad-title tr:first-child th,.sucuriscan-table-quad-title tr:first-child+tr th,.sucuriscan-table-quad-title tr:first-child+tr+tr th,.sucuriscan-table-triple-title tr:first-child th,.sucuriscan-table-triple-title tr:first-child+tr th{border-bottom:0}.sucuriscan-table-description{border-left-width:1px!important;box-shadow:none}.sucuriscan-table-description .inside{border-bottom:0!important}.widefat td.td-with-button{text-align:right;padding:3px 10px}.widefat td.td-with-button button{min-width:90px}.widefat td.td-with-button select{height:initial;line-height:initial;vertical-align:top;margin:0;padding:2px 0 3px}.widefat th.check-column{line-height:36px;padding:0}.widefat th.check-column input[type=checkbox]{margin:1px 0 0 10px}.sucuriscan-list-as-table{background:#fff;border:1px solid #e5e5e5}.sucuriscan-list-as-table li{line-height:30px;word-break:break-all;margin:0;padding:0 10px}.sucuriscan-list-as-table li:nth-child(odd){background:#f5f5f5}.sucuriscan-list-as-table-scrollable{height:300px;overflow:hidden;overflow-y:scroll}.sucuriscan-maincontent .thead-with-button{padding:5px 5px 5px 10px}.sucuriscan-maincontent .thead-with-button>span{display:inline-block;line-height:28px}.sucuriscan-maincontent .thead-with-button .input-text{line-height:26px}.sucuriscan-maincontent .thead-with-button select{margin:0;padding:0}.sucuriscan-maincontent .thead-topright-action{display:inline-block;float:right}.sucuriscan-ad{color:#fff;padding:20px;margin-bottom:20px}.sucuriscan-ad .sucuriscan-ad-btn,.sucuriscan-ad h3,.sucuriscan-ad h4{font-family:Arial,Helvetica,sans-serif;color:#fff;margin:0}.sucuriscan-ad h3{font-size:18px;font-weight:300}.sucuriscan-ad h4{font-size:22px;font-weight:700;margin-top:10px}.sucuriscan-ad .sucuriscan-ad-btn{display:block;font-size:13px;font-weight:700;text-align:center;text-decoration:none;text-transform:uppercase;margin-top:20px;padding:5px;border-radius:20px}.sucuriscan-ad .sucuriscan-ad-footer{margin-top:20px;margin-bottom:0}.sucuriscan-ad .sucuriscan-ad-footer ul{margin:0}.sucuriscan-ad .sucuriscan-ad-footer li{font-size:12px;color:#fff;list-style:disc;margin:0 0 0 16px}.sucuriscan-ad .sucuriscan-ad-footer li.featured{color:#fde44c}.sucuriscan-scanner-video{width:100%;background:#fff;border:1px solid #ddd}.sucuriscan-sidebar .sucuriscan-supportbtn{width:100%;height:initial;text-align:center;line-height:36px;margin-top:15px;padding:0}.wp-core-ui .sucuriscan-hide-ads{display:block;color:#666;font-size:11px;text-decoration:underline;margin-top:15px;padding:0}.wp-core-ui .sucuriscan-hide-ads:focus{color:#000;box-shadow:none}.sucuriscan-ad-firewall{background:#606e77}.sucuriscan-ad-firewall .sucuriscan-ad-btn{background:#606e77;border:1px solid #fff}.sucuriscan-ad-firewall .sucuriscan-ad-btn:hover{background:#85929b}.sucuriscan-ad-antivirus{background:#04833e;padding-bottom:0}.sucuriscan-ad-antivirus .sucuriscan-ad-website{display:block;text-decoration:none;margin-top:20px}.sucuriscan-ad-antivirus .sucuriscan-ad-website img{display:block;max-width:100%}.sucuriscan-ad-antivirus .sucuriscan-ad-btn{background-color:#e8840a;background-image:-webkit-gradient(linear,left top,left bottom,from(#e8840a),to(#ef7f02));background-image:-webkit-linear-gradient(top,#e8840a,#ef7f02);background-image:-moz-linear-gradient(top,#e8840a,#ef7f02);background-image:-ms-linear-gradient(top,#e8840a,#ef7f02);background-image:-o-linear-gradient(top,#e8840a,#ef7f02);background-image:linear-gradient(top,#e8840a,#ef7f02);filter:"progid: DXImageTransform.Microsoft.Gradient(startColorstr=#e8840a, endColorstr=#ef7f02)";-ms-filter:"progid: DXImageTransform.Microsoft.Gradient(startColorstr=#e8840a, endColorstr=#ef7f02)";box-shadow:inset 0 1px 1px #eaac3a;border:1px solid #d17301}div.sucuriscan-alert{position:relative;margin:0 0 20px}div.sucuriscan-alert>a.close{position:absolute;top:10px;right:10px;font-size:18px;font-weight:700;text-decoration:none}.sucuriscan-inline-alert,.sucuriscan-inline-alert-error,.sucuriscan-inline-alert-info,.sucuriscan-inline-alert-updated,.sucuriscan-inline-alert-warning{background:#fff;box-shadow:0 1px 1px 0 rgba(0,0,0,.1);padding:0;border-left:4px solid #ddd}.sucuriscan-inline-alert-error>p,.sucuriscan-inline-alert-info>p,.sucuriscan-inline-alert-updated>p,.sucuriscan-inline-alert-warning>p,.sucuriscan-inline-alert>p{margin:0;padding:8px 12px;border:1px solid #ddd;border-left:0}.sucuriscan-inline-alert,.sucuriscan-inline-alert-error,.sucuriscan-inline-alert-info,.sucuriscan-inline-alert-updated,.sucuriscan-inline-alert-warning{margin-bottom:10px}.postbox .inside .sucuriscan-inline-alert-error:last-child,.postbox .inside .sucuriscan-inline-alert-info:last-child,.postbox .inside .sucuriscan-inline-alert-updated:last-child,.postbox .inside .sucuriscan-inline-alert-warning:last-child,.postbox .inside .sucuriscan-inline-alert:last-child,.sucuriscan-tabs>ul li{margin-bottom:0}.sucuriscan-inline-alert-updated{border-left-color:#7ad03a}.sucuriscan-inline-alert-warning{border-left-color:#ffba00}.sucuriscan-inline-alert-error{border-left-color:#dd3d36}.sucuriscan-inline-alert-info{border-left-color:#2ea2cc}.sucuriscan-tabs>ul{margin:0}.sucuriscan-tabs>ul li,.sucuriscan-tabs>ul li>a{display:inline-block}.sucuriscan-tabs>ul li>a{background:#e5e5e5;font-size:13px;font-weight:700;color:#333;line-height:38px;text-decoration:none;padding:0 10px}.sucuriscan-tabs>ul li>a.sucuriscan-tab-active{background:#fff;border:1px solid #e1e1e1;border-bottom:0}.sucuriscan-tabs>ul li.sucuriscan-red-tab a{background:#ff8a83;color:#fff}.sucuriscan-tabs>ul li.sucuriscan-red-tab a.sucuriscan-tab-active{background:#dd3d36;border-color:#dd3d36}.sucuriscan-maincontent .sucuriscan-tab-containers>div>#poststuff,.sucuriscan-maincontent .sucuriscan-tab-containers>div>table{margin-top:0}.sucuriscan-getapi-div{background:#fff;margin:0 0 20px;border:1px solid #e5e5e5;border-radius:3px}.sucuriscan-getapi-div p{margin:0;padding:10px}.sucuriscan-getapi-form button.button-primary{width:100%;height:initial;line-height:30px;margin:0 0 -1px;padding:0;border-radius:0 0 3px 3px}.sucuriscan-malwarescan-message{margin-bottom:20px!important}.sucuriscan-loading{background:#fff;text-align:center;padding:30px 30px 15px;border:1px solid #ddd;border-radius:4px}.sucuriscan-loading h3,.sucuriscan-loading p{margin:0;padding:0}.sucuriscan-loading .title{font-size:28px;margin-bottom:10px}.sucuriscan-loading .description{font-size:16px}.sucuriscan-sitelogo{width:190px;height:100px;background:url(https://sitecheck.sucuri.net/images/sucuri-sprite.png) no-repeat;margin:0 auto}.sucuriscan-sitecheck-form{margin:20px 0 0}.sucuriscan-sitecheck-form .button.button-hero{padding:0 46px}.sucuriscan-loading .sucuriscan-sitecheck-disclaimer{text-align:justify;padding-top:20px;border-top:1px solid #ddd}.sucuriscan-auditlogs .sucuriscan-maxper-page,.sucuriscan-scanner-results .sucuriscan-malware-link{text-align:right}.sucuriscan-loading .sucuriscan-sitecheck-disclaimer p{font-size:10px}.sucuriscan-maincontent .sucuriscan-border{border:0;border-left:4px solid #ddd}.sucuriscan-maincontent .sucuriscan-border>.inside,.sucuriscan-maincontent .sucuriscan-border>h3{border-top:1px solid #e5e5e5;border-right:1px solid #e5e5e5}.sucuriscan-maincontent .sucuriscan-border>h3{border-bottom:0}.sucuriscan-maincontent .sucuriscan-border>.inside{margin-top:0!important;border-bottom:1px solid #ddd}.sucuriscan-maincontent .sucuriscan-border-good,.sucuriscan-maincontent .sucuriscan-border-success{border-left-color:#7ad03a}.sucuriscan-maincontent .sucuriscan-border-bad,.sucuriscan-maincontent .sucuriscan-border-danger{border-left-color:#dd3d36}.sucuriscan-maincontent .sucuriscan-border-info{border-left-color:#2ea2cc}.sucuriscan-maincontent .sucuriscan-cleanup-btn{margin:20px 0 0}.sucuriscan-scanner-results .sucuriscan-scanner-details tr:nth-child(even),.sucuriscan-scanner-results .sucuriscan-scanner-links tr:nth-child(even){background:#f5f5f5}.sucuriscan-scanner-results td.sucuriscan-border-bad{border-left-width:4px;border-left-style:solid}.sucuriscan-scanner-results .sucuriscan-malware-link a:hover{color:#fff}.sucuriscan-malware-payload{background:#f5f5f5;margin:-2px -15px -15px;padding:15px}.sucuriscan-maincontent .sucuriscan-auditlogs,.sucuriscan-maincontent .sucuriscan-corefiles,.sucuriscan-maincontent .sucuriscan-wordpress-outdated{margin-top:0;margin-bottom:20px}.sucuriscan-auditlogs .sucuriscan-list-as-table,.sucuriscan-maincontent .sucuriscan-auditlogs{margin-bottom:0}.sucuriscan-auditlogs .sucuriscan-label{display:inline-block;width:18px;text-transform:uppercase;line-height:13px;cursor:pointer;border-radius:50%}.sucuriscan-auditlogs .sucuriscan-auditlog-success,.sucuriscan-label-added{background:#5cb85c}.sucuriscan-auditlogs .sucuriscan-auditlog-debug{background:#c690ec}.sucuriscan-auditlogs .sucuriscan-auditlog-info{background:#5bc0de}.sucuriscan-auditlogs .sucuriscan-auditlog-notice{background:#428bca}.sucuriscan-auditlogs .sucuriscan-auditlog-warning,.sucuriscan-label-modified{background:#f0ad4e}.sucuriscan-auditlogs .sucuriscan-auditlog-error,.sucuriscan-label-removed{background:#f27d7d}.sucuriscan-auditlogs .sucuriscan-auditlog-critical{background:#000}.sucuriscan-maincontent .sucuriscan-audit-report{border-left-width:1px}.sucuriscan-audit-report .sucuriscan-report-row{margin-bottom:10px}.sucuriscan-audit-report .sucuriscan-report-row:last-child,.sucuriscan-maincontent .sucuriscan-corefiles{margin-bottom:0}.sucuriscan-audit-report .sucuriscan-report-chart{width:49%;border:1px solid #ddd}.sucuriscan-audit-report .sucuriscan-report-chart h4,.sucuriscan-audit-report .sucuriscan-report-chart h5{font-weight:400;text-align:center;margin:0}.sucuriscan-firewall-accesslog .sucuriscan-accesslog-label,.sucuriscan-request-summary tr td:first-child{font-weight:700}.sucuriscan-audit-report .sucuriscan-report-chart h4{font-size:18px;margin-top:10px}.sucuriscan-audit-report .sucuriscan-report-chart h5{font-size:12px;margin-top:5px}.sucuriscan-firewall-auditlogs .sucuriscan-denial-type,.sucuriscan-request-summary td{font-size:14px}.sucuriscan-maincontent .sucuriscan-audit-report .sucuriscan-inline-alert-info{margin-top:10px}.sucuriscan-status-type{display:inline-block;width:20px;background:#ddd;text-align:center;text-transform:uppercase;margin-right:10px;padding:0 3px;border:1px solid transparent;border-radius:3px}.sucuriscan-maincontent .sucuriscan-corefiles .sucuriscan-label{text-transform:capitalize}.sucuriscan-maincontent .sucuriscan-ignoredfiles{margin-top:0}.sucuriscan-ignore-file form{padding:0 10px 10px;border-bottom:1px solid #ddd;border-right:1px solid #ddd}.sucuriscan-ignore-file p{border-bottom:none}.sucuriscan-ignore-file-input{width:80%}.sucuriscan-ignore-file-button{width:18%}.sucuriscan-maincontent .sucuriscan-modifiedfiles .sucuriscan-ellipsis{width:100px}.sucuriscan-maincontent .sucuriscan-firewall-apikey{margin-bottom:10px}.sucuriscan-firewall-settings .sucuriscan-list-as-table{margin-top:4px;margin-bottom:4px}.sucuriscan-firewall-auditlogs .thead-with-button .button{width:65px}.sucuriscan-firewall-auditlogs .thead-with-button .input-text,.sucuriscan-firewall-auditlogs .thead-with-button select{width:250px}.sucuriscan-firewall-auditlogs .sucuriscan-denial-type-date{font-style:italic;color:#999}.sucuriscan-firewall-auditlogs .sucuriscan-alert,.wrap .sucuriscan-firewall-auditlogs .error,.wrap .sucuriscan-firewall-auditlogs .updated{background:#eee;border:1px solid #ddd;border-left-width:4px;margin:10px}.sucuriscan-firewall-accesslog .sucuriscan-accesslog-origin img{margin-right:6px}.sucuriscan-firewall-accesslog .sucuriscan-accesslog-datetime,.sucuriscan-firewall-accesslog .sucuriscan-accesslog-origin,.sucuriscan-firewall-accesslog .sucuriscan-accesslog-referer,.sucuriscan-firewall-accesslog .sucuriscan-accesslog-request,.sucuriscan-firewall-accesslog .sucuriscan-accesslog-signature,.sucuriscan-firewall-accesslog .sucuriscan-accesslog-target,.sucuriscan-firewall-accesslog .sucuriscan-accesslog-useragent{display:block;padding-left:30px}.sucuriscan-firewall-accesslog .sucuriscan-accesslog-origin{padding-left:0}.sucuriscan-request-summary{margin:-3px -15px -15px}.sucuriscan-hstatus{position:relative;margin:0 -12px;padding:10px 12px;border:1px solid transparent}.sucuriscan-hstatus-0{background-color:#f2dede;color:#a94442;border-color:#ebccd1}.sucuriscan-hstatus-1{background-color:#dff0d8;color:#3c763d;border-color:#d6e9c6}.sucuriscan-hstatus-2{background-color:#dee4f2;color:#4263a9;border-color:#ccd0eb}.sucuriscan-hstatus .button-primary,.sucuriscan-hstatus .button-secondary{position:absolute;top:5px;right:5px}.sucuriscan-hardening .postbox .inside pre{background:#eaeaea;padding:10px}.sucuriscan-hardening-whitelist form{margin-top:15px}.sucuriscan-hardening-whitelist form label{line-height:29px;font-size:12px;background-color:#eee;padding:0 10px;display:inline-block;border:1px solid #ddd;border-right:0}.sucuriscan-hardening-whitelist form input[type=text]{margin:0;padding:5px}.sucuriscan-hardening-whitelist form select{height:initial;padding:4px;margin:0}.sucuriscan-hardening-whitelist form .button,.sucuriscan-hardening-whitelist form input[type=text],.sucuriscan-hardening-whitelist form select{margin-right:5px}.sucuriscan-maincontent .sucuriscan-table.sucuriscan-hardening-whitelist-table{margin-top:0}.sucuriscan-lastlogin-outof{font-style:italic;color:#999;margin-right:10px}.sucuriscan-admins-lastlogins .sucuriscan-ellipsis{width:170px}.sucuriscan-admins-lastlogins td{padding:4px 8px}.sucuriscan-pattern-search-inputbox{margin-top:12px}.sucuriscan-pattern-search-inputbox .input-text{width:84.7777%;line-height:30px;margin:0 6px 0 0}.sucuriscan-pattern-search-inputbox .input-button{width:14%;height:initial;line-height:35px}.sucuriscan-pattern-search .sucuriscan-cleanup-btn{margin-top:12px}.sucuriscan-pattern-search table label{color:#999}.sucuriscan-pattern-search .sucuriscan-grep-text em{color:#ea3838}.sucuriscan-about ul{margin-left:20px}.sucuriscan-about ul li{list-style:outside}.sucuriscan-about li label{font-weight:700;vertical-align:initial}.sucuriscan-apikey-registered .sucuriscan-pull-right{width:400px}.sucuriscan-apikey-registered .sucuriscan-sitelogo{background-position:0 -17px;height:83px}.sucuriscan-setup-instructions .form-table{margin-top:15px}.sucuriscan-setup-instructions .form-table td{padding:0 0 12px}.sucuriscan-setup-instructions .form-table select{max-width:400px}.sucuriscan-pagination{display:inline-block;margin:0;padding:0;border-radius:4px}.sucuriscan-pagination>li{display:inline}.c3-tooltip td>span,.sucuriscan-maincontent .sucuriscan-settings form{display:inline-block}.sucuriscan-pagination>li>a,.sucuriscan-pagination>li>span{position:relative;background:#fff;color:#428bca;line-height:1.42857143;text-decoration:none;float:left;margin-left:-1px;padding:6px 12px;border:1px solid #ddd}.sucuriscan-pagination>li:first-child>a,.sucuriscan-pagination>li:first-child>span{margin-left:0;border-radius:4px 0 0 4px}.sucuriscan-pagination>li:last-child>a,.sucuriscan-pagination>li:last-child>span{border-radius:0 4px 4px 0}.sucuriscan-pagination>li>a.sucuriscan-pagination-active,.sucuriscan-pagination>li>a:hover{background:#0074a2;color:#fff}.sucuriscan_wpconfig_keys_updated textarea{width:100%;height:250px;background:#f5f5f5;font-size:12px;resize:vertical;margin:20px 0 0}.sucuriscan-maincontent .sucuriscan-last-logins,.sucuriscan-maincontent .sucuriscan-settings{margin-top:0}.sucuriscan-maincontent .sucuriscan-last-logins .sucuriscan-ellipsis{width:150px;line-height:inherit}.sucuriscan-maincontent .sucuriscan-full-textarea{width:100%;height:400px;line-height:normal;resize:vertical;padding:10px}.sucuriscan-maincontent .sucuriscan-settings .input-text,.sucuriscan-maincontent .sucuriscan-settings select{width:220px;margin:0}.sucuriscan-maincontent .sucuriscan-infosys-htaccess .inside .sucuriscan-inline-alert-updated,.sucuriscan-maincontent .sucuriscan-monitor-fpath{margin-bottom:10px}.sucuriscan-maincontent .sucuriscan-recipient-form{margin-top:10px}.sucuriscan-maincontent .sucuriscan-settings-ignorescanning,.sucuriscan-maincontent .sucuriscan-settings-notifications,.sucuriscan-maincontent .sucuriscan-settings-trustip,.sucuriscan-maincontent .sucuriscan-wpcron-list{margin-top:0}.sucuriscan-maincontent .sucuriscan-settings-notifications .dashicons-before:before{margin-right:5px}.sucuriscan-maincontent .sucuriscan-infosys-htaccess .inside{border-bottom:1px solid #ddd!important}.sucuriscan-maincontent .sucuriscan-errorlogs .inside .sucuriscan-inline-alert-error{margin-top:10px}.sucuriscan-maincontent .sucuriscan-subject-formats{margin:0}.sucuriscan-maincontent .sucuriscan-subject-formats input[type=text]{width:40%;margin-left:10px}.sucuriscan-flag{width:16px;height:11px;background:url(../images/flags.sprite.png) no-repeat}.sucuriscan-flag-ad{background-position:-16px 0}.sucuriscan-flag-ae{background-position:-32px 0}.sucuriscan-flag-af{background-position:-48px 0}.sucuriscan-flag-ag{background-position:-64px 0}.sucuriscan-flag-ai{background-position:-80px 0}.sucuriscan-flag-al{background-position:-96px 0}.sucuriscan-flag-am{background-position:-112px 0}.sucuriscan-flag-an{background-position:-128px 0}.sucuriscan-flag-ao{background-position:-144px 0}.sucuriscan-flag-ar{background-position:-160px 0}.sucuriscan-flag-as{background-position:-176px 0}.sucuriscan-flag-at{background-position:-192px 0}.sucuriscan-flag-au{background-position:-208px 0}.sucuriscan-flag-aw{background-position:-224px 0}.sucuriscan-flag-az{background-position:-240px 0}.sucuriscan-flag-ba{background-position:0 -11px}.sucuriscan-flag-bb{background-position:-16px -11px}.sucuriscan-flag-bd{background-position:-32px -11px}.sucuriscan-flag-be{background-position:-48px -11px}.sucuriscan-flag-bf{background-position:-64px -11px}.sucuriscan-flag-bg{background-position:-80px -11px}.sucuriscan-flag-bh{background-position:-96px -11px}.sucuriscan-flag-bi{background-position:-112px -11px}.sucuriscan-flag-bj{background-position:-128px -11px}.sucuriscan-flag-bm{background-position:-144px -11px}.sucuriscan-flag-bn{background-position:-160px -11px}.sucuriscan-flag-bo{background-position:-176px -11px}.sucuriscan-flag-br{background-position:-192px -11px}.sucuriscan-flag-bs{background-position:-208px -11px}.sucuriscan-flag-bt{background-position:-224px -11px}.sucuriscan-flag-bv{background-position:-240px -11px}.sucuriscan-flag-bw{background-position:0 -22px}.sucuriscan-flag-by{background-position:-16px -22px}.sucuriscan-flag-bz{background-position:-32px -22px}.sucuriscan-flag-ca{background-position:-48px -22px}.sucuriscan-flag-catalonia{background-position:-64px -22px}.sucuriscan-flag-cd{background-position:-80px -22px}.sucuriscan-flag-cf{background-position:-96px -22px}.sucuriscan-flag-cg{background-position:-112px -22px}.sucuriscan-flag-ch{background-position:-128px -22px}.sucuriscan-flag-ci{background-position:-144px -22px}.sucuriscan-flag-ck{background-position:-160px -22px}.sucuriscan-flag-cl{background-position:-176px -22px}.sucuriscan-flag-cm{background-position:-192px -22px}.sucuriscan-flag-cn{background-position:-208px -22px}.sucuriscan-flag-co{background-position:-224px -22px}.sucuriscan-flag-cr{background-position:-240px -22px}.sucuriscan-flag-cu{background-position:0 -33px}.sucuriscan-flag-cv{background-position:-16px -33px}.sucuriscan-flag-cw{background-position:-32px -33px}.sucuriscan-flag-cy{background-position:-48px -33px}.sucuriscan-flag-cz{background-position:-64px -33px}.sucuriscan-flag-de{background-position:-80px -33px}.sucuriscan-flag-dj{background-position:-96px -33px}.sucuriscan-flag-dk{background-position:-112px -33px}.sucuriscan-flag-dm{background-position:-128px -33px}.sucuriscan-flag-do{background-position:-144px -33px}.sucuriscan-flag-dz{background-position:-160px -33px}.sucuriscan-flag-ec{background-position:-176px -33px}.sucuriscan-flag-ee{background-position:-192px -33px}.sucuriscan-flag-eg{background-position:-208px -33px}.sucuriscan-flag-eh{background-position:-224px -33px}.sucuriscan-flag-england{background-position:-240px -33px}.sucuriscan-flag-er{background-position:0 -44px}.sucuriscan-flag-es{background-position:-16px -44px}.sucuriscan-flag-et{background-position:-32px -44px}.sucuriscan-flag-eu{background-position:-48px -44px}.sucuriscan-flag-fi{background-position:-64px -44px}.sucuriscan-flag-fj{background-position:-80px -44px}.sucuriscan-flag-fk{background-position:-96px -44px}.sucuriscan-flag-fm{background-position:-112px -44px}.sucuriscan-flag-fo{background-position:-128px -44px}.sucuriscan-flag-fr{background-position:-144px -44px}.sucuriscan-flag-ga{background-position:-160px -44px}.sucuriscan-flag-gb{background-position:-176px -44px}.sucuriscan-flag-gd{background-position:-192px -44px}.sucuriscan-flag-ge{background-position:-208px -44px}.sucuriscan-flag-gf{background-position:-224px -44px}.sucuriscan-flag-gg{background-position:-240px -44px}.sucuriscan-flag-gh{background-position:0 -55px}.sucuriscan-flag-gi{background-position:-16px -55px}.sucuriscan-flag-gl{background-position:-32px -55px}.sucuriscan-flag-gm{background-position:-48px -55px}.sucuriscan-flag-gn{background-position:-64px -55px}.sucuriscan-flag-gp{background-position:-80px -55px}.sucuriscan-flag-gq{background-position:-96px -55px}.sucuriscan-flag-gr{background-position:-112px -55px}.sucuriscan-flag-gs{background-position:-128px -55px}.sucuriscan-flag-gt{background-position:-144px -55px}.sucuriscan-flag-gu{background-position:-160px -55px}.sucuriscan-flag-gw{background-position:-176px -55px}.sucuriscan-flag-gy{background-position:-192px -55px}.sucuriscan-flag-hk{background-position:-208px -55px}.sucuriscan-flag-hm{background-position:-224px -55px}.sucuriscan-flag-hn{background-position:-240px -55px}.sucuriscan-flag-hr{background-position:0 -66px}.sucuriscan-flag-ht{background-position:-16px -66px}.sucuriscan-flag-hu{background-position:-32px -66px}.sucuriscan-flag-ic{background-position:-48px -66px}.sucuriscan-flag-id{background-position:-64px -66px}.sucuriscan-flag-ie{background-position:-80px -66px}.sucuriscan-flag-il{background-position:-96px -66px}.sucuriscan-flag-im{background-position:-112px -66px}.sucuriscan-flag-in{background-position:-128px -66px}.sucuriscan-flag-io{background-position:-144px -66px}.sucuriscan-flag-iq{background-position:-160px -66px}.sucuriscan-flag-ir{background-position:-176px -66px}.sucuriscan-flag-is{background-position:-192px -66px}.sucuriscan-flag-it{background-position:-208px -66px}.sucuriscan-flag-je{background-position:-224px -66px}.sucuriscan-flag-jm{background-position:-240px -66px}.sucuriscan-flag-jo{background-position:0 -77px}.sucuriscan-flag-jp{background-position:-16px -77px}.sucuriscan-flag-ke{background-position:-32px -77px}.sucuriscan-flag-kg{background-position:-48px -77px}.sucuriscan-flag-kh{background-position:-64px -77px}.sucuriscan-flag-ki{background-position:-80px -77px}.sucuriscan-flag-km{background-position:-96px -77px}.sucuriscan-flag-kn{background-position:-112px -77px}.sucuriscan-flag-kp{background-position:-128px -77px}.sucuriscan-flag-kr{background-position:-144px -77px}.sucuriscan-flag-kurdistan{background-position:-160px -77px}.sucuriscan-flag-kw{background-position:-176px -77px}.sucuriscan-flag-ky{background-position:-192px -77px}.sucuriscan-flag-kz{background-position:-208px -77px}.sucuriscan-flag-la{background-position:-224px -77px}.sucuriscan-flag-lb{background-position:-240px -77px}.sucuriscan-flag-lc{background-position:0 -88px}.sucuriscan-flag-li{background-position:-16px -88px}.sucuriscan-flag-lk{background-position:-32px -88px}.sucuriscan-flag-lr{background-position:-48px -88px}.sucuriscan-flag-ls{background-position:-64px -88px}.sucuriscan-flag-lt{background-position:-80px -88px}.sucuriscan-flag-lu{background-position:-96px -88px}.sucuriscan-flag-lv{background-position:-112px -88px}.sucuriscan-flag-ly{background-position:-128px -88px}.sucuriscan-flag-ma{background-position:-144px -88px}.sucuriscan-flag-mc{background-position:-160px -88px}.sucuriscan-flag-md{background-position:-176px -88px}.sucuriscan-flag-me{background-position:-192px -88px}.sucuriscan-flag-mg{background-position:-208px -88px}.sucuriscan-flag-mh{background-position:-224px -88px}.sucuriscan-flag-mk{background-position:-240px -88px}.sucuriscan-flag-ml{background-position:0 -99px}.sucuriscan-flag-mm{background-position:-16px -99px}.sucuriscan-flag-mn{background-position:-32px -99px}.sucuriscan-flag-mo{background-position:-48px -99px}.sucuriscan-flag-mp{background-position:-64px -99px}.sucuriscan-flag-mq{background-position:-80px -99px}.sucuriscan-flag-mr{background-position:-96px -99px}.sucuriscan-flag-ms{background-position:-112px -99px}.sucuriscan-flag-mt{background-position:-128px -99px}.sucuriscan-flag-mu{background-position:-144px -99px}.sucuriscan-flag-mv{background-position:-160px -99px}.sucuriscan-flag-mw{background-position:-176px -99px}.sucuriscan-flag-mx{background-position:-192px -99px}.sucuriscan-flag-my{background-position:-208px -99px}.sucuriscan-flag-mz{background-position:-224px -99px}.sucuriscan-flag-na{background-position:-240px -99px}.sucuriscan-flag-nc{background-position:0 -110px}.sucuriscan-flag-ne{background-position:-16px -110px}.sucuriscan-flag-nf{background-position:-32px -110px}.sucuriscan-flag-ng{background-position:-48px -110px}.sucuriscan-flag-ni{background-position:-64px -110px}.sucuriscan-flag-nl{background-position:-80px -110px}.sucuriscan-flag-no{background-position:-96px -110px}.sucuriscan-flag-np{background-position:-112px -110px}.sucuriscan-flag-nr{background-position:-128px -110px}.sucuriscan-flag-nu{background-position:-144px -110px}.sucuriscan-flag-nz{background-position:-160px -110px}.sucuriscan-flag-om{background-position:-176px -110px}.sucuriscan-flag-pa{background-position:-192px -110px}.sucuriscan-flag-pe{background-position:-208px -110px}.sucuriscan-flag-pf{background-position:-224px -110px}.sucuriscan-flag-pg{background-position:-240px -110px}.sucuriscan-flag-ph{background-position:0 -121px}.sucuriscan-flag-pk{background-position:-16px -121px}.sucuriscan-flag-pl{background-position:-32px -121px}.sucuriscan-flag-pm{background-position:-48px -121px}.sucuriscan-flag-pn{background-position:-64px -121px}.sucuriscan-flag-pr{background-position:-80px -121px}.sucuriscan-flag-ps{background-position:-96px -121px}.sucuriscan-flag-pt{background-position:-112px -121px}.sucuriscan-flag-pw{background-position:-128px -121px}.sucuriscan-flag-py{background-position:-144px -121px}.sucuriscan-flag-qa{background-position:-160px -121px}.sucuriscan-flag-re{background-position:-176px -121px}.sucuriscan-flag-ro{background-position:-192px -121px}.sucuriscan-flag-rs{background-position:-208px -121px}.sucuriscan-flag-ru{background-position:-224px -121px}.sucuriscan-flag-rw{background-position:-240px -121px}.sucuriscan-flag-sa{background-position:0 -132px}.sucuriscan-flag-sb{background-position:-16px -132px}.sucuriscan-flag-sc{background-position:-32px -132px}.sucuriscan-flag-scotland{background-position:-48px -132px}.sucuriscan-flag-sd{background-position:-64px -132px}.sucuriscan-flag-se{background-position:-80px -132px}.sucuriscan-flag-sg{background-position:-96px -132px}.sucuriscan-flag-sh{background-position:-112px -132px}.sucuriscan-flag-si{background-position:-128px -132px}.sucuriscan-flag-sk{background-position:-144px -132px}.sucuriscan-flag-sl{background-position:-160px -132px}.sucuriscan-flag-sm{background-position:-176px -132px}.sucuriscan-flag-sn{background-position:-192px -132px}.sucuriscan-flag-so{background-position:-208px -132px}.sucuriscan-flag-somaliland{background-position:-224px -132px}.sucuriscan-flag-sr{background-position:-240px -132px}.sucuriscan-flag-ss{background-position:0 -143px}.sucuriscan-flag-st{background-position:-16px -143px}.sucuriscan-flag-sv{background-position:-32px -143px}.sucuriscan-flag-sx{background-position:-48px -143px}.sucuriscan-flag-sy{background-position:-64px -143px}.sucuriscan-flag-sz{background-position:-80px -143px}.sucuriscan-flag-tc{background-position:-96px -143px}.sucuriscan-flag-td{background-position:-112px -143px}.sucuriscan-flag-tf{background-position:-128px -143px}.sucuriscan-flag-tg{background-position:-144px -143px}.sucuriscan-flag-th{background-position:-160px -143px}.sucuriscan-flag-tj{background-position:-176px -143px}.sucuriscan-flag-tk{background-position:-192px -143px}.sucuriscan-flag-tl{background-position:-208px -143px}.sucuriscan-flag-tm{background-position:-224px -143px}.sucuriscan-flag-tn{background-position:-240px -143px}.sucuriscan-flag-to{background-position:0 -154px}.sucuriscan-flag-tr{background-position:-16px -154px}.sucuriscan-flag-tt{background-position:-32px -154px}.sucuriscan-flag-tv{background-position:-48px -154px}.sucuriscan-flag-tw{background-position:-64px -154px}.sucuriscan-flag-tz{background-position:-80px -154px}.sucuriscan-flag-ua{background-position:-96px -154px}.sucuriscan-flag-ug{background-position:-112px -154px}.sucuriscan-flag-um{background-position:-128px -154px}.sucuriscan-flag-us{background-position:-144px -154px}.sucuriscan-flag-uy{background-position:-160px -154px}.sucuriscan-flag-uz{background-position:-176px -154px}.sucuriscan-flag-va{background-position:-192px -154px}.sucuriscan-flag-vc{background-position:-208px -154px}.sucuriscan-flag-ve{background-position:-224px -154px}.sucuriscan-flag-vg{background-position:-240px -154px}.sucuriscan-flag-vi{background-position:0 -165px}.sucuriscan-flag-vn{background-position:-16px -165px}.sucuriscan-flag-vu{background-position:-32px -165px}.sucuriscan-flag-wales{background-position:-48px -165px}.sucuriscan-flag-wf{background-position:-64px -165px}.sucuriscan-flag-ws{background-position:-80px -165px}.sucuriscan-flag-ye{background-position:-96px -165px}.sucuriscan-flag-yt{background-position:-112px -165px}.sucuriscan-flag-za{background-position:-128px -165px}.sucuriscan-flag-zanzibar{background-position:-144px -165px}.sucuriscan-flag-zm{background-position:-160px -165px}.sucuriscan-flag-zw{background-position:-176px -165px}.c3 svg{font:10px sans-serif}.c3 line,.c3 path{fill:none;stroke:#000}.c3 text{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.c3-bars path,.c3-event-rect,.c3-legend-item-tile,.c3-xgrid-focus,.c3-ygrid{shape-rendering:crispEdges}.c3-chart-arc path{stroke:#fff}.c3-chart-arc text{fill:#fff;font-size:13px}.c3-grid line{stroke:#aaa}.c3-grid text{fill:#aaa}.c3-xgrid,.c3-ygrid{stroke-dasharray:3 3}.c3-text.c3-empty{fill:gray;font-size:2em}.c3-line{stroke-width:1px}.c3-circle._expanded_{stroke-width:1px;stroke:#fff}.c3-selected-circle{fill:#fff;stroke-width:2px}.c3-bar{stroke-width:0}.c3-bar._expanded_{fill-opacity:.75}.c3-chart-arcs-title{dominant-baseline:middle;font-size:1.3em}.c3-target.c3-focused{opacity:1}.c3-target.c3-focused path.c3-line,.c3-target.c3-focused path.c3-step{stroke-width:2px}.c3-target.c3-defocused{opacity:.3!important}.c3-region{fill:#4682b4;fill-opacity:.1}.c3-brush .extent{fill-opacity:.1}.c3-legend-item{font-size:12px}.c3-legend-item-hidden{opacity:.15}.c3-legend-background{opacity:.75;fill:#fff;stroke:#d3d3d3;stroke-width:1}.c3-tooltip-container{z-index:10}.c3-tooltip{border-collapse:collapse;border-spacing:0;background-color:#fff;empty-cells:show;-webkit-box-shadow:7px 7px 12px -9px #777;-moz-box-shadow:7px 7px 12px -9px #777;box-shadow:7px 7px 12px -9px #777}.c3-tooltip tr{border:1px solid #CCC}.c3-tooltip th{background-color:#aaa;font-size:14px;padding:2px 5px;text-align:left;color:#FFF}.c3-tooltip td{font-size:13px;padding:3px 6px;background-color:#fff;border-left:1px dotted #999}.c3-tooltip td>span{width:10px;height:10px;margin-right:6px}.c3-tooltip td.value{text-align:right}.c3-area{stroke-width:0;opacity:.2}.c3-chart-arcs .c3-chart-arcs-background{fill:#e0e0e0;stroke:none}.c3-chart-arcs .c3-chart-arcs-gauge-unit{fill:#000;font-size:16px}.c3-chart-arcs .c3-chart-arcs-gauge-max,.c3-chart-arcs .c3-chart-arcs-gauge-min{fill:#777}.c3-chart-arc .c3-gauge-value{fill:#000}@media (max-width:510px){.wp-core-ui .button.sucuriscan-review-hero,.wp-core-ui .sucuriscan-review-hero{display:none}}@media (max-width:620px){.sucuriscan-tabs>ul li,.sucuriscan-tabs>ul li>a{display:block}.sucuriscan-getapi-form button.button-primary{line-height:40px}}@media (max-width:768px){.sucuriscan-wrap .sucuriscan-footer .sucuriscan-help,.sucuriscan-wrap .sucuriscan-footer .sucuriscan-logo,.sucuriscan-wrap .sucuriscan-leftside,.sucuriscan-wrap .sucuriscan-sidebar{float:none}.sucuriscan-wrap .sucuriscan-leftside,.sucuriscan-wrap .sucuriscan-sidebar{width:100%}.sucuriscan-wrap .sucuriscan-sidebar{margin-top:20px}.sucuriscan-wrap .sucuriscan-footer .sucuriscan-logo{display:table;margin:0 auto}}@media (max-width:920px){.sucuriscan-wrap .sucuriscan-navbar{padding-left:0;padding-right:0}.sucuriscan-wrap .sucuriscan-navbar .nav-tab{display:block;line-height:20px;margin:0}.sucuriscan-wrap .sucuriscan-navbar .nav-tab:last-child{border-bottom:1px solid #ccc}}@media (min-width:600px) and (max-width:1060px){.sucuriscan-wrap .sucuriscan-leftside,.sucuriscan-wrap .sucuriscan-sidebar{width:initial;float:none}.sucuriscan-wrap .sucuriscan-sidebar{margin-top:20px}.sucuriscan-wrap .sucuriscan-sidebar>div{width:49%;float:left;min-height:339px}.sucuriscan-wrap .sucuriscan-sidebar .sucuriscan-ad-antivirus{margin-left:2%}.sucuriscan-wrap .sucuriscan-scanner-video{height:450px}}.sucuriscan-maincontent #poststuff{min-width:initial;padding-top:0}.sucuriscan-maincontent .widefat tbody th.check-column{padding:6px 0 3px}.sucuriscan-maincontent .hardening-box .primary-secondary{margin:0 0 0 10px}.sucuriscan-maincontent hr{border:none;border-top:1px solid #999}.sucuriscan-maincontent table td>table{background:#fff}.sucuriscan-maincontent table td>table th{padding:4px 8px}
1
+ .sucuriscan-malware-payload,.sucuriscan-request-summary td+td,.sucuriscan-wraptext{word-break:break-all}.sucuriscan-wrap *,.sucuriscan-wrap:after,.sucuriscan-wrap:before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.sucuriscan-clearfix:after,.sucuriscan-clearfix:before{display:table;content:' '}.sucuriscan-clearfix:after{clear:both}.sucuriscan-hidden{display:none!important}.sucuriscan-opacity{opacity:.6}.sucuriscan-monospace{font-family:Menlo,Monaco,monospace,courier}.sucuriscan-ellipsis{overflow:hidden;display:inline-block;white-space:nowrap;text-overflow:ellipsis}.sucuriscan-pull-left{float:left}.sucuriscan-pull-right{float:right}.sucuriscan-list li{list-style:disc;margin:0 0 5px 15px}.sucuriscan-gradient,.sucuriscan-leftside #poststuff h3,.sucuriscan-leftside .sucuriscan-panelstuff h3,.sucuriscan-maincontent .sucuriscan-table tr>th,.sucuriscan-modal-header{background-color:#f1f1f1;background-image:-webkit-gradient(linear,left top,left bottom,from(#f9f9f9),to(#ececec));background-image:-webkit-linear-gradient(top,#f9f9f9,#ececec);background-image:-moz-linear-gradient(top,#f9f9f9,#ececec);background-image:-ms-linear-gradient(top,#f9f9f9,#ececec);background-image:-o-linear-gradient(top,#f9f9f9,#ececec);background-image:linear-gradient(top,#f9f9f9,#ececec);filter:"progid: DXImageTransform.Microsoft.Gradient(startColorstr=#f9f9f9, endColorstr=#ececec)";-ms-filter:"progid: DXImageTransform.Microsoft.Gradient(startColorstr=#f9f9f9, endColorstr=#ececec)"}.wp-core-ui .button-success,.wp-core-ui .button-success.focus,.wp-core-ui .button-success.hover,.wp-core-ui .button-success:focus,.wp-core-ui .button-success:hover,.wp-core-ui .button.button-success.button-hero{-webkit-box-shadow:0 1px 0 #109900;-moz-box-shadow:0 1px 0 #109900;box-shadow:0 1px 0 #109900}.wp-core-ui .button-success,.wp-core-ui .button-success.focus,.wp-core-ui .button-success.hover,.wp-core-ui .button-success:focus,.wp-core-ui .button-success:hover{background:#8dcd5a;border-color:#48a325;box-shadow:0 1px 0 #109900;text-shadow:0 -1px 1px #109900,1px 0 1px #109900,0 1px 1px #109900,-1px 0 1px #109900}.wp-core-ui .button-success.focus,.wp-core-ui .button-success.hover,.wp-core-ui .button-success:focus,.wp-core-ui .button-success:hover{background:#69be48}.wp-core-ui .button-success.focus,.wp-core-ui .button-success:focus{border-color:#23500e}.wp-core-ui .button-success.active,.wp-core-ui .button-success.active:focus,.wp-core-ui .button-success.active:hover,.wp-core-ui .button-success:active{background:#47a61b;border-color:#358400}.wp-core-ui .button-success-disabled,.wp-core-ui .button-success.disabled,.wp-core-ui .button-success:disabled,.wp-core-ui .button-success[disabled]{color:#b2e794!important;background:#74ba29!important;border-color:#3f7f1b!important}.wp-core-ui .button-danger,.wp-core-ui .button-danger.focus,.wp-core-ui .button-danger.hover,.wp-core-ui .button-danger:focus,.wp-core-ui .button-danger:hover,.wp-core-ui .button.button-danger.button-hero{-webkit-box-shadow:0 1px 0 #99000e;-moz-box-shadow:0 1px 0 #99000e;box-shadow:0 1px 0 #99000e}.wp-core-ui .button-danger,.wp-core-ui .button-danger.focus,.wp-core-ui .button-danger.hover,.wp-core-ui .button-danger:focus,.wp-core-ui .button-danger:hover{background:#cd5050;border-color:#a52121;text-shadow:0 -1px 1px #99000e,1px 0 1px #99000e,0 1px 1px #99000e,-1px 0 1px #99000e}.wp-core-ui .button-danger.focus,.wp-core-ui .button-danger.hover,.wp-core-ui .button-danger:focus,.wp-core-ui .button-danger:hover{background:#be4242}.wp-core-ui .button-danger.focus,.wp-core-ui .button-danger:focus{border-color:#500e0e}.wp-core-ui .button-danger.active,.wp-core-ui .button-danger.active:focus,.wp-core-ui .button-danger.active:hover,.wp-core-ui .button-danger:active{background:#a61b1b;border-color:#840000}.wp-core-ui .button-danger-disabled,.wp-core-ui .button-danger.disabled,.wp-core-ui .button-danger:disabled,.wp-core-ui .button-danger[disabled]{color:#e79494!important;background:#ba2929!important;border-color:#7f1b1b!important}.wp-core-ui .sucuriscan-btnblock{display:block;width:100%;text-align:center}.sucuriscan-overlay{position:fixed;top:0;left:0;bottom:0;right:0;z-index:9990;background:#666;background:rgba(0,0,0,.5)}.sucuriscan-modal{position:absolute;top:25px;left:15%;z-index:9990;width:65%}.sucuriscan-modal-outside{position:relative;left:0;border:1px solid #ddd}.sucuriscan-modal-inside{background:#fff;padding:20px}.sucuriscan-modal-header{padding:0;border-bottom:1px solid #ddd}#poststuff h3.sucuriscan-modal-title,.sucuriscan-leftside #poststuff h3.sucuriscan-modal-title,.sucuriscan-modal-header .sucuriscan-modal-title{margin:0 0 0 10px;padding:0;float:left;line-height:38px;border-bottom:0}.sucuriscan-modal-header .sucuriscan-modal-logo{display:inline-block;float:left;margin-top:8px;margin-left:18px}.sucuriscan-modal-header .sucuriscan-modal-logo img{height:22px}.sucuriscan-modal-close{display:inline-block;position:absolute;top:0;right:0;font-size:16px;font-weight:700;text-decoration:none;line-height:38px;padding:0 15px;border-left:1px solid #ddd}.sucuriscan-modal-inside p:first-child{margin-top:0}.sucuriscan-panelstuff .inside{margin:6px 0 0}.postbox .inside p:last-child,.sucuriscan-modal-inside p:last-child{margin-bottom:0}.sucuriscan-label,.sucuriscan-label-danger,.sucuriscan-label-default,.sucuriscan-label-error,.sucuriscan-label-info,.sucuriscan-label-notice,.sucuriscan-label-primary,.sucuriscan-label-success,.sucuriscan-label-unknown,.sucuriscan-label-warning{display:inline;font-size:75%;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;padding:.2em .6em .3em;border-radius:.25em}.sucuriscan-label-default,.sucuriscan-label-unknown{background:#777}.sucuriscan-label-danger,.sucuriscan-label-error{background:#d9534f}.sucuriscan-label-info,.sucuriscan-label-notice{background:#5bc0de}.sucuriscan-label-warning{background:#f0ad4e}.sucuriscan-label-success{background:#5cb85c}.sucuriscan-label-primary{background:#428bca}.sucuriscan-wrap{margin-top:20px}.sucuriscan-wrap .sucuriscan-maincontent{margin:20px 0}.sucuriscan-wrap .sucuriscan-leftside{width:73.5%;float:left}.sucuriscan-wrap .sucuriscan-onecolumn{width:100%}.sucuriscan-wrap .sucuriscan-sidebar{width:25%;float:right}.sucuriscan-wrap #warnings_hook{line-height:normal;padding:0}.sucuriscan-wrap .sucuriscan-navbar{padding-top:20px;padding-left:6px}.sucuriscan-wrap .sucuriscan-navbar .nav-tab{margin-right:0}.sucuriscan-footer,.sucuriscan-header{position:relative;min-width:255px;background:#333;margin:0;padding:10px;border-radius:4px}.sucuriscan-footer .sucuriscan-help{color:#fff;float:right;text-align:right}.sucuriscan-footer .sucuriscan-help p{line-height:38px;margin:0 10px 0 0;padding:0}.sucuriscan-wrap .sucuriscan-footer h2,.sucuriscan-wrap .sucuriscan-header h2,.sucuriscan-wrap .sucuriscan-logo{float:left;margin:0;padding:0}.sucuriscan-wrap .sucuriscan-logo{display:inline-block}.sucuriscan-wrap .sucuriscan-logo img{display:block}.sucuriscan-wrap .sucuriscan-footer h2,.sucuriscan-wrap .sucuriscan-header h2{color:#fff;line-height:38px;margin-left:10px;text-shadow:#000 0 1px 0}.sucuriscan-leftside #poststuff .postbox:last-child,.sucuriscan-leftside .sucuriscan-panelstuff .postbox:last-child{margin-bottom:0}.sucuriscan-leftside #poststuff .postbox h3,.sucuriscan-leftside .sucuriscan-panelstuff .postbox h3{margin:0;padding:10px;border-bottom:1px solid #ddd}.sucuriscan-maincontent abbr{text-decoration:underline;cursor:help}.wrap div.sucuriscan-setup-notice{background:#bbe8f5;margin:0 0 20px;padding:0;border:1px solid #bbb;border-radius:3px;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.wrap div.sucuriscan-setup-notice .sucuriscan-setup-image,.wrap div.sucuriscan-setup-notice .sucuriscan-setup-image img{border-radius:3px 0 0 3px}.wrap div.sucuriscan-setup-notice .sucuriscan-setup-image{background:#333;margin:-1px 0 -1px -1px;padding:7px 10px;border-right:1px solid transparent}.wrap div.sucuriscan-setup-notice .sucuriscan-setup-form{padding:4px 4px 4px 0}.wrap div.sucuriscan-setup-notice p{font-size:14px;line-height:20px;margin:0 0 0 10px;padding:7px 0}.wrap div.sucuriscan-setup-notice,.wrap div.sucuriscan-setup-notice .sucuriscan-setup-image{border-color:#4393ac}.wp-core-ui .button.sucuriscan-review-hero,.wp-core-ui .sucuriscan-review-hero{height:initial;line-height:36px;float:right;padding:0 20px}.sucuriscan-input-group>label{display:inline-block;border:1px solid #ddd;border-right:0;line-height:26px;float:left;padding:0 10px;background:#eee}.sucuriscan-input-group>input[type=text]{margin:0;padding-bottom:4px}.sucuriscan-input-group>select{vertical-align:initial;margin:0}.sucuriscan-table-setup td{vertical-align:top}.sucuriscan-table-setup .sucuriscan-description{font-size:12px;margin-top:10px}.sucuriscan-dismiss-setup{font-size:10px;line-height:28px}.sucuriscan-maincontent .sucuriscan-table{margin-top:12px}.sucuriscan-maincontent .sucuriscan-table tr>th{border-top:1px solid #e5e5e5;border-bottom:1px solid #e5e5e5}.sucuriscan-maincontent .sucuriscan-table tr:first-child th{border-top:0}.sucuriscan-maincontent .sucuriscan-table td.check-column{padding:8px 10px}.sucuriscan-maincontent .sucuriscan-striped-table tr:nth-child(even){background:#f5f5f5}.sucuriscan-table-double-title tr:first-child th,.sucuriscan-table-quad-title tr:first-child th,.sucuriscan-table-quad-title tr:first-child+tr th,.sucuriscan-table-quad-title tr:first-child+tr+tr th,.sucuriscan-table-triple-title tr:first-child th,.sucuriscan-table-triple-title tr:first-child+tr th{border-bottom:0}.sucuriscan-table-description{border-left-width:1px!important;box-shadow:none}.sucuriscan-table-description .inside{border-bottom:0!important}.widefat td.td-with-button{text-align:right;padding:3px 10px}.widefat td.td-with-button button{min-width:90px}.widefat td.td-with-button select{height:initial;line-height:initial;vertical-align:top;margin:0;padding:2px 0 3px}.widefat th.check-column{line-height:36px;padding:0}.widefat th.check-column input[type=checkbox]{margin:1px 0 0 10px}.sucuriscan-list-as-table{background:#fff;border:1px solid #e5e5e5}.sucuriscan-list-as-table li{line-height:30px;word-break:break-all;margin:0;padding:0 10px}.sucuriscan-list-as-table li:nth-child(odd){background:#f5f5f5}.sucuriscan-list-as-table-scrollable{height:300px;overflow:hidden;overflow-y:scroll}.sucuriscan-maincontent .thead-with-button{padding:5px 5px 5px 10px}.sucuriscan-maincontent .thead-with-button>span{display:inline-block;line-height:28px}.sucuriscan-maincontent .thead-with-button .input-text{line-height:26px}.sucuriscan-maincontent .thead-with-button select{margin:0;padding:0}.sucuriscan-maincontent .thead-topright-action{display:inline-block;float:right}.sucuriscan-ad{color:#fff;padding:20px;margin-bottom:20px}.sucuriscan-ad .sucuriscan-ad-btn,.sucuriscan-ad h3,.sucuriscan-ad h4{font-family:Arial,Helvetica,sans-serif;color:#fff;margin:0}.sucuriscan-ad h3{font-size:18px;font-weight:300}.sucuriscan-ad h4{font-size:22px;font-weight:700;margin-top:10px}.sucuriscan-ad .sucuriscan-ad-btn{display:block;font-size:13px;font-weight:700;text-align:center;text-decoration:none;text-transform:uppercase;margin-top:20px;padding:5px;border-radius:20px}.sucuriscan-ad .sucuriscan-ad-footer{margin-top:20px;margin-bottom:0}.sucuriscan-ad .sucuriscan-ad-footer ul{margin:0}.sucuriscan-ad .sucuriscan-ad-footer li{font-size:12px;color:#fff;list-style:disc;margin:0 0 0 16px}.sucuriscan-ad .sucuriscan-ad-footer li.featured{color:#fde44c}.sucuriscan-scanner-video{width:100%;background:#fff;border:1px solid #ddd}.sucuriscan-sidebar .sucuriscan-supportbtn{width:100%;height:initial;text-align:center;line-height:36px;margin-top:15px;padding:0}.sucuriscan-hide-ads{min-height:initial!important;margin-top:15px}.sucuriscan-hide-ads .button-link{text-decoration:underline}.sucuriscan-hide-ads-instructions{border:1px solid #ddd;background:#fff;margin-top:15px;padding:10px}.sucuriscan-hide-ads .button-link,.sucuriscan-hide-ads-instructions,.sucuriscan-hide-ads-instructions code{font-size:11px}.sucuriscan-hide-ads-instructions code{display:block;margin-top:5px}.sucuriscan-ad-firewall{background:#606e77}.sucuriscan-ad-firewall .sucuriscan-ad-btn{background:#606e77;border:1px solid #fff}.sucuriscan-ad-firewall .sucuriscan-ad-btn:hover{background:#85929b}.sucuriscan-ad-antivirus{background:#04833e;padding-bottom:0}.sucuriscan-ad-antivirus .sucuriscan-ad-website{display:block;text-decoration:none;margin-top:20px}.sucuriscan-ad-antivirus .sucuriscan-ad-website img{display:block;max-width:100%}.sucuriscan-ad-antivirus .sucuriscan-ad-btn{background-color:#e8840a;background-image:-webkit-gradient(linear,left top,left bottom,from(#e8840a),to(#ef7f02));background-image:-webkit-linear-gradient(top,#e8840a,#ef7f02);background-image:-moz-linear-gradient(top,#e8840a,#ef7f02);background-image:-ms-linear-gradient(top,#e8840a,#ef7f02);background-image:-o-linear-gradient(top,#e8840a,#ef7f02);background-image:linear-gradient(top,#e8840a,#ef7f02);filter:"progid: DXImageTransform.Microsoft.Gradient(startColorstr=#e8840a, endColorstr=#ef7f02)";-ms-filter:"progid: DXImageTransform.Microsoft.Gradient(startColorstr=#e8840a, endColorstr=#ef7f02)";box-shadow:inset 0 1px 1px #eaac3a;border:1px solid #d17301}div.sucuriscan-alert{position:relative;margin:0 0 20px}div.sucuriscan-alert>a.close{position:absolute;top:10px;right:10px;font-size:18px;font-weight:700;text-decoration:none}.sucuriscan-inline-alert,.sucuriscan-inline-alert-error,.sucuriscan-inline-alert-info,.sucuriscan-inline-alert-updated,.sucuriscan-inline-alert-warning{background:#fff;box-shadow:0 1px 1px 0 rgba(0,0,0,.1);padding:0;border-left:4px solid #ddd}.sucuriscan-inline-alert-error>p,.sucuriscan-inline-alert-info>p,.sucuriscan-inline-alert-updated>p,.sucuriscan-inline-alert-warning>p,.sucuriscan-inline-alert>p{margin:0;padding:8px 12px;border:1px solid #ddd;border-left:0}.sucuriscan-inline-alert,.sucuriscan-inline-alert-error,.sucuriscan-inline-alert-info,.sucuriscan-inline-alert-updated,.sucuriscan-inline-alert-warning{margin-bottom:10px}.postbox .inside .sucuriscan-inline-alert-error:last-child,.postbox .inside .sucuriscan-inline-alert-info:last-child,.postbox .inside .sucuriscan-inline-alert-updated:last-child,.postbox .inside .sucuriscan-inline-alert-warning:last-child,.postbox .inside .sucuriscan-inline-alert:last-child,.sucuriscan-tabs>ul li{margin-bottom:0}.sucuriscan-inline-alert-updated{border-left-color:#7ad03a}.sucuriscan-inline-alert-warning{border-left-color:#ffba00}.sucuriscan-inline-alert-error{border-left-color:#dd3d36}.sucuriscan-inline-alert-info{border-left-color:#2ea2cc}.sucuriscan-tabs>ul{margin:0}.sucuriscan-tabs>ul li,.sucuriscan-tabs>ul li>a{display:inline-block}.sucuriscan-tabs>ul li>a{background:#e5e5e5;font-size:13px;font-weight:700;color:#333;line-height:38px;text-decoration:none;padding:0 10px}.sucuriscan-tabs>ul li>a.sucuriscan-tab-active{background:#fff;border:1px solid #e1e1e1;border-bottom:0}.sucuriscan-tabs>ul li.sucuriscan-red-tab a{background:#ff8a83;color:#fff}.sucuriscan-tabs>ul li.sucuriscan-red-tab a.sucuriscan-tab-active{background:#dd3d36;border-color:#dd3d36}.sucuriscan-maincontent .sucuriscan-tab-containers>div>#poststuff,.sucuriscan-maincontent .sucuriscan-tab-containers>div>table,.sucuriscan-panelstuff{margin-top:0}.sucuriscan-getapi-div{background:#fff;margin:0 0 20px;border:1px solid #e5e5e5;border-radius:3px}.sucuriscan-getapi-div p{margin:0;padding:10px}.sucuriscan-getapi-form button.button-primary{width:100%;height:initial;line-height:30px;margin:0 0 -1px;padding:0;border-radius:0 0 3px 3px}.sucuriscan-malwarescan-message{margin-bottom:20px!important}.sucuriscan-loading{background:#fff;text-align:center;padding:30px 30px 15px;border:1px solid #ddd;border-radius:4px}.sucuriscan-loading h3,.sucuriscan-loading p{margin:0;padding:0}.sucuriscan-loading .title{font-size:28px;margin-bottom:10px}.sucuriscan-loading .description{font-size:16px}.sucuriscan-sitelogo{width:190px;height:100px;background:url(https://sitecheck.sucuri.net/images/sucuri-sprite.png) no-repeat;margin:0 auto}.sucuriscan-sitecheck-form{margin:20px 0 0}.sucuriscan-sitecheck-form .button.button-hero{padding:0 46px}.sucuriscan-loading .sucuriscan-sitecheck-disclaimer{text-align:justify;padding-top:20px;border-top:1px solid #ddd}.sucuriscan-auditlogs .sucuriscan-maxper-page,.sucuriscan-scanner-results .sucuriscan-malware-link{text-align:right}.sucuriscan-loading .sucuriscan-sitecheck-disclaimer p{font-size:10px}.sucuriscan-maincontent .sucuriscan-border{border:0;border-left:4px solid #ddd}.sucuriscan-maincontent .sucuriscan-border>.inside,.sucuriscan-maincontent .sucuriscan-border>h3{border-top:1px solid #e5e5e5;border-right:1px solid #e5e5e5}.sucuriscan-maincontent .sucuriscan-border>h3{border-bottom:0}.sucuriscan-maincontent .sucuriscan-border>.inside{margin-top:0!important;border-bottom:1px solid #ddd}.sucuriscan-maincontent .sucuriscan-border-good,.sucuriscan-maincontent .sucuriscan-border-success{border-left-color:#7ad03a}.sucuriscan-maincontent .sucuriscan-border-bad,.sucuriscan-maincontent .sucuriscan-border-danger{border-left-color:#dd3d36}.sucuriscan-maincontent .sucuriscan-border-info{border-left-color:#2ea2cc}.sucuriscan-maincontent .sucuriscan-cleanup-btn{margin:20px 0 0}.sucuriscan-scanner-results .sucuriscan-scanner-details tr:nth-child(even),.sucuriscan-scanner-results .sucuriscan-scanner-links tr:nth-child(even){background:#f5f5f5}.sucuriscan-scanner-results td.sucuriscan-border-bad{border-left-width:4px;border-left-style:solid}.sucuriscan-scanner-results .sucuriscan-malware-link a:hover{color:#fff}.sucuriscan-malware-payload{background:#f5f5f5;margin:-2px -15px -15px;padding:15px}.sucuriscan-maincontent .sucuriscan-auditlogs,.sucuriscan-maincontent .sucuriscan-corefiles,.sucuriscan-maincontent .sucuriscan-wordpress-outdated{margin-top:0;margin-bottom:20px}.sucuriscan-auditlogs .sucuriscan-list-as-table,.sucuriscan-maincontent .sucuriscan-auditlogs{margin-bottom:0}.sucuriscan-auditlogs .sucuriscan-pagination-loading{line-height:32px;color:#666}.sucuriscan-auditlogs .sucuriscan-label{display:inline-block;width:18px;text-transform:uppercase;line-height:13px;cursor:pointer;border-radius:50%}.sucuriscan-auditlogs .sucuriscan-auditlog-success,.sucuriscan-label-added{background:#5cb85c}.sucuriscan-auditlogs .sucuriscan-auditlog-debug{background:#c690ec}.sucuriscan-auditlogs .sucuriscan-auditlog-info{background:#5bc0de}.sucuriscan-auditlogs .sucuriscan-auditlog-notice{background:#428bca}.sucuriscan-auditlogs .sucuriscan-auditlog-warning,.sucuriscan-label-modified{background:#f0ad4e}.sucuriscan-auditlogs .sucuriscan-auditlog-error,.sucuriscan-label-removed{background:#f27d7d}.sucuriscan-auditlogs .sucuriscan-auditlog-critical{background:#000}.sucuriscan-maincontent .sucuriscan-audit-report{border-left-width:1px}.sucuriscan-audit-report .sucuriscan-report-row{margin-bottom:10px}.sucuriscan-audit-report .sucuriscan-report-row:last-child,.sucuriscan-maincontent .sucuriscan-corefiles{margin-bottom:0}.sucuriscan-audit-report .sucuriscan-report-chart{width:49%;border:1px solid #ddd}.sucuriscan-audit-report .sucuriscan-report-chart h4,.sucuriscan-audit-report .sucuriscan-report-chart h5{font-weight:400;text-align:center;margin:0}.sucuriscan-firewall-accesslog .sucuriscan-accesslog-label,.sucuriscan-request-summary tr td:first-child{font-weight:700}.sucuriscan-audit-report .sucuriscan-report-chart h4{font-size:18px;margin-top:10px}.sucuriscan-audit-report .sucuriscan-report-chart h5{font-size:12px;margin-top:5px}.sucuriscan-firewall-auditlogs .sucuriscan-denial-type,.sucuriscan-request-summary td{font-size:14px}.sucuriscan-maincontent .sucuriscan-audit-report .sucuriscan-inline-alert-info{margin-top:10px}.sucuriscan-status-type{display:inline-block;width:20px;background:#ddd;text-align:center;text-transform:uppercase;margin-right:10px;padding:0 3px;border:1px solid transparent;border-radius:3px}.sucuriscan-maincontent .sucuriscan-corefiles .sucuriscan-label{text-transform:capitalize}.sucuriscan-maincontent .sucuriscan-ignoredfiles{margin-top:0}.sucuriscan-maincontent .sucuriscan-modifiedfiles .sucuriscan-ellipsis{width:100px}.sucuriscan-maincontent .sucuriscan-firewall-apikey{margin-bottom:10px}.sucuriscan-firewall-settings .sucuriscan-list-as-table{margin-top:4px;margin-bottom:4px}.sucuriscan-firewall-auditlogs .thead-with-button .button{width:65px}.sucuriscan-firewall-auditlogs .thead-with-button .input-text,.sucuriscan-firewall-auditlogs .thead-with-button select{width:250px}.sucuriscan-firewall-auditlogs .sucuriscan-denial-type-date{font-style:italic;color:#999}.sucuriscan-firewall-auditlogs .sucuriscan-alert,.wrap .sucuriscan-firewall-auditlogs .error,.wrap .sucuriscan-firewall-auditlogs .updated{background:#eee;border:1px solid #ddd;border-left-width:4px;margin:10px}.sucuriscan-firewall-accesslog .sucuriscan-accesslog-origin img{margin-right:6px}.sucuriscan-firewall-accesslog .sucuriscan-accesslog-datetime,.sucuriscan-firewall-accesslog .sucuriscan-accesslog-origin,.sucuriscan-firewall-accesslog .sucuriscan-accesslog-referer,.sucuriscan-firewall-accesslog .sucuriscan-accesslog-request,.sucuriscan-firewall-accesslog .sucuriscan-accesslog-signature,.sucuriscan-firewall-accesslog .sucuriscan-accesslog-target,.sucuriscan-firewall-accesslog .sucuriscan-accesslog-useragent{display:block;padding-left:30px}.sucuriscan-firewall-accesslog .sucuriscan-accesslog-origin{padding-left:0}.sucuriscan-request-summary{margin:-3px -15px -15px}.sucuriscan-hstatus{position:relative;margin:0 -12px;padding:10px 12px;border:1px solid transparent}.sucuriscan-hstatus-0{background-color:#f2dede;color:#a94442;border-color:#ebccd1}.sucuriscan-hstatus-1{background-color:#dff0d8;color:#3c763d;border-color:#d6e9c6}.sucuriscan-hstatus-2{background-color:#dee4f2;color:#4263a9;border-color:#ccd0eb}.sucuriscan-hstatus .button-primary,.sucuriscan-hstatus .button-secondary{position:absolute;top:5px;right:5px}.sucuriscan-hardening-whitelist form{margin-top:15px}.sucuriscan-hardening-whitelist form label{line-height:29px;font-size:12px;background-color:#eee;padding:0 10px;display:inline-block;border:1px solid #ddd;border-right:0}.sucuriscan-hardening-whitelist form input[type=text]{margin:0;padding:5px}.sucuriscan-hardening-whitelist form select{height:initial;padding:4px;margin:0}.sucuriscan-hardening-whitelist form .button,.sucuriscan-hardening-whitelist form input[type=text],.sucuriscan-hardening-whitelist form select{margin-right:5px}.sucuriscan-maincontent .sucuriscan-table.sucuriscan-hardening-whitelist-table{margin-top:0}.sucuriscan-lastlogin-outof{font-style:italic;color:#999;margin-right:10px}.sucuriscan-admins-lastlogins .sucuriscan-ellipsis{width:170px}.sucuriscan-admins-lastlogins td{padding:4px 8px}.sucuriscan-pattern-search-inputbox{margin-top:12px}.sucuriscan-pattern-search-inputbox .input-text{width:84.7777%;line-height:30px;margin:0 6px 0 0}.sucuriscan-pattern-search-inputbox .input-button{width:14%;height:initial;line-height:35px}.sucuriscan-pattern-search .sucuriscan-cleanup-btn{margin-top:12px}.sucuriscan-pattern-search table label{color:#999}.sucuriscan-pattern-search .sucuriscan-grep-text em{color:#ea3838}.sucuriscan-updates .dashicons-before:before{margin-right:10px}.sucuriscan-updates .dashicons-admin-plugins{color:#32373c}.sucuriscan-updates .dashicons-admin-appearance{color:#d54e21}.sucuriscan-about ul{margin-left:20px}.sucuriscan-about ul li{list-style:outside}.sucuriscan-about li label{font-weight:700;vertical-align:initial}.sucuriscan-apikey-registered .sucuriscan-pull-right{width:400px}.sucuriscan-apikey-registered .sucuriscan-sitelogo{background-position:0 -17px;height:83px}.sucuriscan-setup-instructions .form-table{margin-top:15px}.sucuriscan-setup-instructions .form-table td{padding:0 0 12px}.sucuriscan-setup-instructions .form-table select{max-width:400px}.sucuriscan-pagination{display:inline-block;margin:0;padding:0;border-radius:4px}.sucuriscan-pagination>li{display:inline}.c3-tooltip td>span,.sucuriscan-maincontent .sucuriscan-settings form{display:inline-block}.sucuriscan-pagination>li>a,.sucuriscan-pagination>li>span{position:relative;background:#fff;color:#428bca;line-height:1.42857143;text-decoration:none;float:left;margin-left:-1px;padding:6px 12px;border:1px solid #ddd}.sucuriscan-pagination>li:first-child>a,.sucuriscan-pagination>li:first-child>span{margin-left:0;border-radius:4px 0 0 4px}.sucuriscan-pagination>li:last-child>a,.sucuriscan-pagination>li:last-child>span{border-radius:0 4px 4px 0}.sucuriscan-pagination>li>a.sucuriscan-pagination-active,.sucuriscan-pagination>li>a:hover{background:#0074a2;color:#fff}.sucuriscan_wpconfig_keys_updated textarea{width:100%;height:250px;background:#f5f5f5;font-size:12px;resize:vertical;margin:20px 0 0}.sucuriscan-maincontent .sucuriscan-last-logins,.sucuriscan-maincontent .sucuriscan-settings{margin-top:0}.sucuriscan-maincontent .sucuriscan-last-logins .sucuriscan-ellipsis{width:150px;line-height:inherit}.sucuriscan-maincontent .sucuriscan-full-textarea{width:100%;height:400px;line-height:normal;resize:vertical;padding:10px}.sucuriscan-maincontent .sucuriscan-settings .input-text,.sucuriscan-maincontent .sucuriscan-settings select{width:220px;margin:0}.sucuriscan-maincontent .sucuriscan-infosys-htaccess .inside .sucuriscan-inline-alert-updated,.sucuriscan-maincontent .sucuriscan-monitor-fpath{margin-bottom:10px}.sucuriscan-maincontent .sucuriscan-recipient-form{margin-top:10px}.sucuriscan-maincontent .sucuriscan-settings-ignorescanning,.sucuriscan-maincontent .sucuriscan-settings-notifications,.sucuriscan-maincontent .sucuriscan-settings-trustip,.sucuriscan-maincontent .sucuriscan-wpcron-list{margin-top:0}.sucuriscan-maincontent .sucuriscan-settings-notifications .dashicons-before:before{margin-right:5px}.sucuriscan-maincontent .sucuriscan-infosys-htaccess .inside{border-bottom:1px solid #ddd!important}.sucuriscan-maincontent .sucuriscan-errorlogs .inside .sucuriscan-inline-alert-error{margin-top:10px}.sucuriscan-maincontent .sucuriscan-subject-formats{margin:0}.sucuriscan-maincontent .sucuriscan-subject-formats input[type=text]{width:40%;margin-left:10px}.sucuriscan-flag{width:16px;height:11px;background:url(../images/flags.sprite.png) no-repeat}.sucuriscan-flag-ad{background-position:-16px 0}.sucuriscan-flag-ae{background-position:-32px 0}.sucuriscan-flag-af{background-position:-48px 0}.sucuriscan-flag-ag{background-position:-64px 0}.sucuriscan-flag-ai{background-position:-80px 0}.sucuriscan-flag-al{background-position:-96px 0}.sucuriscan-flag-am{background-position:-112px 0}.sucuriscan-flag-an{background-position:-128px 0}.sucuriscan-flag-ao{background-position:-144px 0}.sucuriscan-flag-ar{background-position:-160px 0}.sucuriscan-flag-as{background-position:-176px 0}.sucuriscan-flag-at{background-position:-192px 0}.sucuriscan-flag-au{background-position:-208px 0}.sucuriscan-flag-aw{background-position:-224px 0}.sucuriscan-flag-az{background-position:-240px 0}.sucuriscan-flag-ba{background-position:0 -11px}.sucuriscan-flag-bb{background-position:-16px -11px}.sucuriscan-flag-bd{background-position:-32px -11px}.sucuriscan-flag-be{background-position:-48px -11px}.sucuriscan-flag-bf{background-position:-64px -11px}.sucuriscan-flag-bg{background-position:-80px -11px}.sucuriscan-flag-bh{background-position:-96px -11px}.sucuriscan-flag-bi{background-position:-112px -11px}.sucuriscan-flag-bj{background-position:-128px -11px}.sucuriscan-flag-bm{background-position:-144px -11px}.sucuriscan-flag-bn{background-position:-160px -11px}.sucuriscan-flag-bo{background-position:-176px -11px}.sucuriscan-flag-br{background-position:-192px -11px}.sucuriscan-flag-bs{background-position:-208px -11px}.sucuriscan-flag-bt{background-position:-224px -11px}.sucuriscan-flag-bv{background-position:-240px -11px}.sucuriscan-flag-bw{background-position:0 -22px}.sucuriscan-flag-by{background-position:-16px -22px}.sucuriscan-flag-bz{background-position:-32px -22px}.sucuriscan-flag-ca{background-position:-48px -22px}.sucuriscan-flag-catalonia{background-position:-64px -22px}.sucuriscan-flag-cd{background-position:-80px -22px}.sucuriscan-flag-cf{background-position:-96px -22px}.sucuriscan-flag-cg{background-position:-112px -22px}.sucuriscan-flag-ch{background-position:-128px -22px}.sucuriscan-flag-ci{background-position:-144px -22px}.sucuriscan-flag-ck{background-position:-160px -22px}.sucuriscan-flag-cl{background-position:-176px -22px}.sucuriscan-flag-cm{background-position:-192px -22px}.sucuriscan-flag-cn{background-position:-208px -22px}.sucuriscan-flag-co{background-position:-224px -22px}.sucuriscan-flag-cr{background-position:-240px -22px}.sucuriscan-flag-cu{background-position:0 -33px}.sucuriscan-flag-cv{background-position:-16px -33px}.sucuriscan-flag-cw{background-position:-32px -33px}.sucuriscan-flag-cy{background-position:-48px -33px}.sucuriscan-flag-cz{background-position:-64px -33px}.sucuriscan-flag-de{background-position:-80px -33px}.sucuriscan-flag-dj{background-position:-96px -33px}.sucuriscan-flag-dk{background-position:-112px -33px}.sucuriscan-flag-dm{background-position:-128px -33px}.sucuriscan-flag-do{background-position:-144px -33px}.sucuriscan-flag-dz{background-position:-160px -33px}.sucuriscan-flag-ec{background-position:-176px -33px}.sucuriscan-flag-ee{background-position:-192px -33px}.sucuriscan-flag-eg{background-position:-208px -33px}.sucuriscan-flag-eh{background-position:-224px -33px}.sucuriscan-flag-england{background-position:-240px -33px}.sucuriscan-flag-er{background-position:0 -44px}.sucuriscan-flag-es{background-position:-16px -44px}.sucuriscan-flag-et{background-position:-32px -44px}.sucuriscan-flag-eu{background-position:-48px -44px}.sucuriscan-flag-fi{background-position:-64px -44px}.sucuriscan-flag-fj{background-position:-80px -44px}.sucuriscan-flag-fk{background-position:-96px -44px}.sucuriscan-flag-fm{background-position:-112px -44px}.sucuriscan-flag-fo{background-position:-128px -44px}.sucuriscan-flag-fr{background-position:-144px -44px}.sucuriscan-flag-ga{background-position:-160px -44px}.sucuriscan-flag-gb{background-position:-176px -44px}.sucuriscan-flag-gd{background-position:-192px -44px}.sucuriscan-flag-ge{background-position:-208px -44px}.sucuriscan-flag-gf{background-position:-224px -44px}.sucuriscan-flag-gg{background-position:-240px -44px}.sucuriscan-flag-gh{background-position:0 -55px}.sucuriscan-flag-gi{background-position:-16px -55px}.sucuriscan-flag-gl{background-position:-32px -55px}.sucuriscan-flag-gm{background-position:-48px -55px}.sucuriscan-flag-gn{background-position:-64px -55px}.sucuriscan-flag-gp{background-position:-80px -55px}.sucuriscan-flag-gq{background-position:-96px -55px}.sucuriscan-flag-gr{background-position:-112px -55px}.sucuriscan-flag-gs{background-position:-128px -55px}.sucuriscan-flag-gt{background-position:-144px -55px}.sucuriscan-flag-gu{background-position:-160px -55px}.sucuriscan-flag-gw{background-position:-176px -55px}.sucuriscan-flag-gy{background-position:-192px -55px}.sucuriscan-flag-hk{background-position:-208px -55px}.sucuriscan-flag-hm{background-position:-224px -55px}.sucuriscan-flag-hn{background-position:-240px -55px}.sucuriscan-flag-hr{background-position:0 -66px}.sucuriscan-flag-ht{background-position:-16px -66px}.sucuriscan-flag-hu{background-position:-32px -66px}.sucuriscan-flag-ic{background-position:-48px -66px}.sucuriscan-flag-id{background-position:-64px -66px}.sucuriscan-flag-ie{background-position:-80px -66px}.sucuriscan-flag-il{background-position:-96px -66px}.sucuriscan-flag-im{background-position:-112px -66px}.sucuriscan-flag-in{background-position:-128px -66px}.sucuriscan-flag-io{background-position:-144px -66px}.sucuriscan-flag-iq{background-position:-160px -66px}.sucuriscan-flag-ir{background-position:-176px -66px}.sucuriscan-flag-is{background-position:-192px -66px}.sucuriscan-flag-it{background-position:-208px -66px}.sucuriscan-flag-je{background-position:-224px -66px}.sucuriscan-flag-jm{background-position:-240px -66px}.sucuriscan-flag-jo{background-position:0 -77px}.sucuriscan-flag-jp{background-position:-16px -77px}.sucuriscan-flag-ke{background-position:-32px -77px}.sucuriscan-flag-kg{background-position:-48px -77px}.sucuriscan-flag-kh{background-position:-64px -77px}.sucuriscan-flag-ki{background-position:-80px -77px}.sucuriscan-flag-km{background-position:-96px -77px}.sucuriscan-flag-kn{background-position:-112px -77px}.sucuriscan-flag-kp{background-position:-128px -77px}.sucuriscan-flag-kr{background-position:-144px -77px}.sucuriscan-flag-kurdistan{background-position:-160px -77px}.sucuriscan-flag-kw{background-position:-176px -77px}.sucuriscan-flag-ky{background-position:-192px -77px}.sucuriscan-flag-kz{background-position:-208px -77px}.sucuriscan-flag-la{background-position:-224px -77px}.sucuriscan-flag-lb{background-position:-240px -77px}.sucuriscan-flag-lc{background-position:0 -88px}.sucuriscan-flag-li{background-position:-16px -88px}.sucuriscan-flag-lk{background-position:-32px -88px}.sucuriscan-flag-lr{background-position:-48px -88px}.sucuriscan-flag-ls{background-position:-64px -88px}.sucuriscan-flag-lt{background-position:-80px -88px}.sucuriscan-flag-lu{background-position:-96px -88px}.sucuriscan-flag-lv{background-position:-112px -88px}.sucuriscan-flag-ly{background-position:-128px -88px}.sucuriscan-flag-ma{background-position:-144px -88px}.sucuriscan-flag-mc{background-position:-160px -88px}.sucuriscan-flag-md{background-position:-176px -88px}.sucuriscan-flag-me{background-position:-192px -88px}.sucuriscan-flag-mg{background-position:-208px -88px}.sucuriscan-flag-mh{background-position:-224px -88px}.sucuriscan-flag-mk{background-position:-240px -88px}.sucuriscan-flag-ml{background-position:0 -99px}.sucuriscan-flag-mm{background-position:-16px -99px}.sucuriscan-flag-mn{background-position:-32px -99px}.sucuriscan-flag-mo{background-position:-48px -99px}.sucuriscan-flag-mp{background-position:-64px -99px}.sucuriscan-flag-mq{background-position:-80px -99px}.sucuriscan-flag-mr{background-position:-96px -99px}.sucuriscan-flag-ms{background-position:-112px -99px}.sucuriscan-flag-mt{background-position:-128px -99px}.sucuriscan-flag-mu{background-position:-144px -99px}.sucuriscan-flag-mv{background-position:-160px -99px}.sucuriscan-flag-mw{background-position:-176px -99px}.sucuriscan-flag-mx{background-position:-192px -99px}.sucuriscan-flag-my{background-position:-208px -99px}.sucuriscan-flag-mz{background-position:-224px -99px}.sucuriscan-flag-na{background-position:-240px -99px}.sucuriscan-flag-nc{background-position:0 -110px}.sucuriscan-flag-ne{background-position:-16px -110px}.sucuriscan-flag-nf{background-position:-32px -110px}.sucuriscan-flag-ng{background-position:-48px -110px}.sucuriscan-flag-ni{background-position:-64px -110px}.sucuriscan-flag-nl{background-position:-80px -110px}.sucuriscan-flag-no{background-position:-96px -110px}.sucuriscan-flag-np{background-position:-112px -110px}.sucuriscan-flag-nr{background-position:-128px -110px}.sucuriscan-flag-nu{background-position:-144px -110px}.sucuriscan-flag-nz{background-position:-160px -110px}.sucuriscan-flag-om{background-position:-176px -110px}.sucuriscan-flag-pa{background-position:-192px -110px}.sucuriscan-flag-pe{background-position:-208px -110px}.sucuriscan-flag-pf{background-position:-224px -110px}.sucuriscan-flag-pg{background-position:-240px -110px}.sucuriscan-flag-ph{background-position:0 -121px}.sucuriscan-flag-pk{background-position:-16px -121px}.sucuriscan-flag-pl{background-position:-32px -121px}.sucuriscan-flag-pm{background-position:-48px -121px}.sucuriscan-flag-pn{background-position:-64px -121px}.sucuriscan-flag-pr{background-position:-80px -121px}.sucuriscan-flag-ps{background-position:-96px -121px}.sucuriscan-flag-pt{background-position:-112px -121px}.sucuriscan-flag-pw{background-position:-128px -121px}.sucuriscan-flag-py{background-position:-144px -121px}.sucuriscan-flag-qa{background-position:-160px -121px}.sucuriscan-flag-re{background-position:-176px -121px}.sucuriscan-flag-ro{background-position:-192px -121px}.sucuriscan-flag-rs{background-position:-208px -121px}.sucuriscan-flag-ru{background-position:-224px -121px}.sucuriscan-flag-rw{background-position:-240px -121px}.sucuriscan-flag-sa{background-position:0 -132px}.sucuriscan-flag-sb{background-position:-16px -132px}.sucuriscan-flag-sc{background-position:-32px -132px}.sucuriscan-flag-scotland{background-position:-48px -132px}.sucuriscan-flag-sd{background-position:-64px -132px}.sucuriscan-flag-se{background-position:-80px -132px}.sucuriscan-flag-sg{background-position:-96px -132px}.sucuriscan-flag-sh{background-position:-112px -132px}.sucuriscan-flag-si{background-position:-128px -132px}.sucuriscan-flag-sk{background-position:-144px -132px}.sucuriscan-flag-sl{background-position:-160px -132px}.sucuriscan-flag-sm{background-position:-176px -132px}.sucuriscan-flag-sn{background-position:-192px -132px}.sucuriscan-flag-so{background-position:-208px -132px}.sucuriscan-flag-somaliland{background-position:-224px -132px}.sucuriscan-flag-sr{background-position:-240px -132px}.sucuriscan-flag-ss{background-position:0 -143px}.sucuriscan-flag-st{background-position:-16px -143px}.sucuriscan-flag-sv{background-position:-32px -143px}.sucuriscan-flag-sx{background-position:-48px -143px}.sucuriscan-flag-sy{background-position:-64px -143px}.sucuriscan-flag-sz{background-position:-80px -143px}.sucuriscan-flag-tc{background-position:-96px -143px}.sucuriscan-flag-td{background-position:-112px -143px}.sucuriscan-flag-tf{background-position:-128px -143px}.sucuriscan-flag-tg{background-position:-144px -143px}.sucuriscan-flag-th{background-position:-160px -143px}.sucuriscan-flag-tj{background-position:-176px -143px}.sucuriscan-flag-tk{background-position:-192px -143px}.sucuriscan-flag-tl{background-position:-208px -143px}.sucuriscan-flag-tm{background-position:-224px -143px}.sucuriscan-flag-tn{background-position:-240px -143px}.sucuriscan-flag-to{background-position:0 -154px}.sucuriscan-flag-tr{background-position:-16px -154px}.sucuriscan-flag-tt{background-position:-32px -154px}.sucuriscan-flag-tv{background-position:-48px -154px}.sucuriscan-flag-tw{background-position:-64px -154px}.sucuriscan-flag-tz{background-position:-80px -154px}.sucuriscan-flag-ua{background-position:-96px -154px}.sucuriscan-flag-ug{background-position:-112px -154px}.sucuriscan-flag-um{background-position:-128px -154px}.sucuriscan-flag-us{background-position:-144px -154px}.sucuriscan-flag-uy{background-position:-160px -154px}.sucuriscan-flag-uz{background-position:-176px -154px}.sucuriscan-flag-va{background-position:-192px -154px}.sucuriscan-flag-vc{background-position:-208px -154px}.sucuriscan-flag-ve{background-position:-224px -154px}.sucuriscan-flag-vg{background-position:-240px -154px}.sucuriscan-flag-vi{background-position:0 -165px}.sucuriscan-flag-vn{background-position:-16px -165px}.sucuriscan-flag-vu{background-position:-32px -165px}.sucuriscan-flag-wales{background-position:-48px -165px}.sucuriscan-flag-wf{background-position:-64px -165px}.sucuriscan-flag-ws{background-position:-80px -165px}.sucuriscan-flag-ye{background-position:-96px -165px}.sucuriscan-flag-yt{background-position:-112px -165px}.sucuriscan-flag-za{background-position:-128px -165px}.sucuriscan-flag-zanzibar{background-position:-144px -165px}.sucuriscan-flag-zm{background-position:-160px -165px}.sucuriscan-flag-zw{background-position:-176px -165px}.c3 svg{font:10px sans-serif}.c3 line,.c3 path{fill:none;stroke:#000}.c3 text{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.c3-bars path,.c3-event-rect,.c3-legend-item-tile,.c3-xgrid-focus,.c3-ygrid{shape-rendering:crispEdges}.c3-chart-arc path{stroke:#fff}.c3-chart-arc text{fill:#fff;font-size:13px}.c3-grid line{stroke:#aaa}.c3-grid text{fill:#aaa}.c3-xgrid,.c3-ygrid{stroke-dasharray:3 3}.c3-text.c3-empty{fill:gray;font-size:2em}.c3-line{stroke-width:1px}.c3-circle._expanded_{stroke-width:1px;stroke:#fff}.c3-selected-circle{fill:#fff;stroke-width:2px}.c3-bar{stroke-width:0}.c3-bar._expanded_{fill-opacity:.75}.c3-chart-arcs-title{dominant-baseline:middle;font-size:1.3em}.c3-target.c3-focused{opacity:1}.c3-target.c3-focused path.c3-line,.c3-target.c3-focused path.c3-step{stroke-width:2px}.c3-target.c3-defocused{opacity:.3!important}.c3-region{fill:#4682b4;fill-opacity:.1}.c3-brush .extent{fill-opacity:.1}.c3-legend-item{font-size:12px}.c3-legend-item-hidden{opacity:.15}.c3-legend-background{opacity:.75;fill:#fff;stroke:#d3d3d3;stroke-width:1}.c3-tooltip-container{z-index:10}.c3-tooltip{border-collapse:collapse;border-spacing:0;background-color:#fff;empty-cells:show;-webkit-box-shadow:7px 7px 12px -9px #777;-moz-box-shadow:7px 7px 12px -9px #777;box-shadow:7px 7px 12px -9px #777}.c3-tooltip tr{border:1px solid #CCC}.c3-tooltip th{background-color:#aaa;font-size:14px;padding:2px 5px;text-align:left;color:#FFF}.c3-tooltip td{font-size:13px;padding:3px 6px;background-color:#fff;border-left:1px dotted #999}.c3-tooltip td>span{width:10px;height:10px;margin-right:6px}.c3-tooltip td.value{text-align:right}.c3-area{stroke-width:0;opacity:.2}.c3-chart-arcs .c3-chart-arcs-background{fill:#e0e0e0;stroke:none}.c3-chart-arcs .c3-chart-arcs-gauge-unit{fill:#000;font-size:16px}.c3-chart-arcs .c3-chart-arcs-gauge-max,.c3-chart-arcs .c3-chart-arcs-gauge-min{fill:#777}.c3-chart-arc .c3-gauge-value{fill:#000}@media (max-width:510px){.wp-core-ui .button.sucuriscan-review-hero,.wp-core-ui .sucuriscan-review-hero{display:none}}@media (max-width:620px){.sucuriscan-tabs>ul li,.sucuriscan-tabs>ul li>a{display:block}.sucuriscan-getapi-form button.button-primary{line-height:40px}}@media (max-width:768px){.sucuriscan-wrap .sucuriscan-footer .sucuriscan-help,.sucuriscan-wrap .sucuriscan-footer .sucuriscan-logo,.sucuriscan-wrap .sucuriscan-leftside,.sucuriscan-wrap .sucuriscan-sidebar{float:none}.sucuriscan-wrap .sucuriscan-leftside,.sucuriscan-wrap .sucuriscan-sidebar{width:100%}.sucuriscan-wrap .sucuriscan-sidebar{margin-top:20px}.sucuriscan-wrap .sucuriscan-footer .sucuriscan-logo{display:table;margin:0 auto}}@media (max-width:920px){.sucuriscan-wrap .sucuriscan-navbar{padding-left:0;padding-right:0}.sucuriscan-wrap .sucuriscan-navbar .nav-tab{display:block;line-height:20px;margin:0}.sucuriscan-wrap .sucuriscan-navbar .nav-tab:last-child{border-bottom:1px solid #ccc}}@media (max-width:1170px){.sucuriscan-modal{width:76%;left:10%}}@media (min-width:600px) and (max-width:1060px){.sucuriscan-wrap .sucuriscan-leftside,.sucuriscan-wrap .sucuriscan-sidebar{width:initial;float:none}.sucuriscan-wrap .sucuriscan-sidebar{margin-top:20px}.sucuriscan-wrap .sucuriscan-sidebar>div{width:49%;float:left;min-height:339px}.sucuriscan-wrap .sucuriscan-sidebar .sucuriscan-ad-antivirus{margin-left:2%}.sucuriscan-wrap .sucuriscan-scanner-video{height:450px}}.sucuriscan-maincontent #poststuff,.sucuriscan-panelstuff{min-width:initial;padding-top:0}.sucuriscan-maincontent .widefat tbody th.check-column{padding:6px 0 3px}.sucuriscan-maincontent .hardening-box .primary-secondary{margin:0 0 0 10px}.sucuriscan-maincontent hr{border:none;border-top:1px solid #999}.sucuriscan-maincontent table td>table{background:#fff}.sucuriscan-maincontent table td>table th{padding:4px 8px}
inc/js/sucuri-scanner.min.js CHANGED
@@ -1 +1 @@
1
- function sucuriscan_alert_close(b){var a=document.getElementById("sucuriscan-alert-"+b);a.parentNode.removeChild(a)}jQuery(document).ready(function(c){c(".sucuriscan-modal-btn").on("click",function(e){e.preventDefault();var f=c(this).data("modalid");c("div."+f).removeClass("sucuriscan-hidden")});c(".sucuriscan-overlay, .sucuriscan-modal-close").on("click",function(e){e.preventDefault();c(".sucuriscan-overlay").addClass("sucuriscan-hidden");c(".sucuriscan-modal").addClass("sucuriscan-hidden")});if(c(".sucuriscan-tabs").length){var d="sucuriscan-hidden";var b="sucuriscan-tab-active";var a=location.href.split("#")[1];c(".sucuriscan-tabs > ul a").on("click",function(k){k.preventDefault();var h=c(this);var j=h.data("tabname");var f=c(".sucuriscan-tab-containers > #sucuriscan-"+j);if(f.length){var g=location.href.replace(location.hash,"");var i=g+"#"+j;window.history.pushState({},document.title,i);c(".sucuriscan-tabs > ul a").removeClass(b);c(".sucuriscan-tab-containers > div").addClass(d);h.addClass(b);f.removeClass(d)}});c(".sucuriscan-tab-containers > div").addClass(d);if(a!==undefined){c(".sucuriscan-tabs > ul li a").each(function(e,f){if(c(f).data("tabname")===a){c(f).trigger("click")}})}else{c(".sucuriscan-tabs > ul li:first-child a").trigger("click")}}c("body").on("click",".sucuriscan-corefiles .manage-column :checkbox",function(e){c(".sucuriscan-corefiles tbody :checkbox").each(function(g,h){var f=c(h).is(":checked");c(h).attr("checked",!f)})})});
1
+ function sucuriscan_alert_close(c){var b=document.getElementById("sucuriscan-alert-"+c);b.parentNode.removeChild(b)}jQuery(document).ready(function(f){f(".sucuriscan-modal-btn").on("click",function(a){a.preventDefault();var b=f(this).data("modalid");f("div."+b).removeClass("sucuriscan-hidden")});f(".sucuriscan-overlay, .sucuriscan-modal-close").on("click",function(a){a.preventDefault();f(".sucuriscan-overlay").addClass("sucuriscan-hidden");f(".sucuriscan-modal").addClass("sucuriscan-hidden")});if(f(".sucuriscan-tabs").length){var g="sucuriscan-hidden";var c="sucuriscan-tab-active";var e=location.href.split("#")[1];f(".sucuriscan-tabs > ul a").on("click",function(h){h.preventDefault();var a=f(this);var k=a.data("tabname");var j=f(".sucuriscan-tab-containers > #sucuriscan-"+k);if(j.length){var d=location.href.replace(location.hash,"");var b=d+"#"+k;window.history.pushState({},document.title,b);f(".sucuriscan-tabs > ul a").removeClass(c);f(".sucuriscan-tab-containers > div").addClass(g);a.addClass(c);j.removeClass(g)}});f(".sucuriscan-tab-containers > div").addClass(g);if(e!==undefined){f(".sucuriscan-tabs > ul li a").each(function(b,a){if(f(a).data("tabname")===e){f(a).trigger("click")}})}else{f(".sucuriscan-tabs > ul li:first-child a").trigger("click")}}f("body").on("click",".sucuriscan-reveal",function(a){a.preventDefault();var b=f(this).attr("data-target");f(".sucuriscan-"+b).removeClass("sucuriscan-hidden")});f("body").on("click",".sucuriscan-corefiles .manage-column :checkbox",function(){f(".sucuriscan-corefiles tbody :checkbox").each(function(b,a){var d=f(a).is(":checked");f(a).attr("checked",!d)})})});
inc/tpl/bsidebar.html.tpl CHANGED
@@ -58,10 +58,13 @@
58
<a href="https://wordpress.org/support/plugin/sucuri-scanner" target="_blank"
59
class="button button-primary sucuriscan-supportbtn">Visit Support Forum</a>
60
61
- <form action="%%SUCURI.URL.Settings%%" method="post">
62
- <input type="hidden" name="sucuriscan_page_nonce" value="%%SUCURI.PageNonce%%" />
63
- <input type="hidden" name="sucuriscan_ads_visibility" value="disable" />
64
- <button type="submit" class="button-link sucuriscan-hide-ads">Hide this column</button>
65
- </form>
66
67
</div>
58
<a href="https://wordpress.org/support/plugin/sucuri-scanner" target="_blank"
59
class="button button-primary sucuriscan-supportbtn">Visit Support Forum</a>
60
61
+ <div class="sucuriscan-hide-ads">
62
+ <button class="button-link sucuriscan-reveal"
63
+ data-target="hide-ads-instructions">Hide this column</button>
64
+ <div class="sucuriscan-hidden sucuriscan-hide-ads-instructions">
65
+ Add this to your wp-config.php file:<br>
66
+ <code>define('SUCURISCAN_HIDE_ADS', true);</code>
67
+ </div>
68
+ </div>
69
70
</div>
inc/tpl/corefiles.html.tpl CHANGED
@@ -12,6 +12,12 @@
12
</p>
13
</div>
14
15
<div class="sucuriscan-inline-alert-error sucuriscan-%%SUCURI.CoreFiles.FailureVisibility%%">
16
<p>
17
Error retrieving the <a href="%%SUCURI.CoreFiles.RemoteChecksumsURL%%" target="_blank">
12
</p>
13
</div>
14
15
+ <div class="sucuriscan-inline-alert-error sucuriscan-%%SUCURI.CoreFiles.DisabledVisibility%%">
16
+ <p>
17
+ The file scanner to check the integrity of the project is disabled.
18
+ </p>
19
+ </div>
20
+
21
<div class="sucuriscan-inline-alert-error sucuriscan-%%SUCURI.CoreFiles.FailureVisibility%%">
22
<p>
23
Error retrieving the <a href="%%SUCURI.CoreFiles.RemoteChecksumsURL%%" target="_blank">
inc/tpl/firewall-auditlogs.html.tpl CHANGED
@@ -1,5 +1,5 @@
1
2
- <div id="poststuff">
3
<div class="postbox">
4
<h3>Firewall Audit Logs</h3>
5
1
2
+ <div class="sucuriscan-panelstuff">
3
<div class="postbox">
4
<h3>Firewall Audit Logs</h3>
5
inc/tpl/firewall-clearcache.html.tpl CHANGED
@@ -1,5 +1,5 @@
1
2
- <div id="poststuff">
3
<div class="postbox">
4
<h3>Clear Cache</h3>
5
1
2
+ <div class="sucuriscan-panelstuff">
3
<div class="postbox">
4
<h3>Clear Cache</h3>
5
inc/tpl/firewall-settings.html.tpl CHANGED
@@ -1,5 +1,5 @@
1
2
- <div id="poststuff">
3
<div class="postbox">
4
<h3>Firewall Settings</h3>
5
1
2
+ <div class="sucuriscan-panelstuff">
3
<div class="postbox">
4
<h3>Firewall Settings</h3>
5
inc/tpl/hardening-panel.html.tpl CHANGED
@@ -1,12 +1,14 @@
1
2
- <div id="poststuff">
3
<form method="post">
4
<input type="hidden" name="sucuriscan_page_nonce" value="%%SUCURI.PageNonce%%" />
5
<input type="hidden" name="sucuriscan_run_hardening" value="1" />
6
7
%%%SUCURI.Hardening.Version%%%
8
9
- %%%SUCURI.Hardening.CloudProxy%%%
10
11
%%%SUCURI.Hardening.RemoveGenerator%%%
12
@@ -18,8 +20,6 @@
18
19
%%%SUCURI.Hardening.WpIncludes%%%
20
21
- %%%SUCURI.Hardening.PhpVersion%%%
22
-
23
%%%SUCURI.Hardening.SecretKeys%%%
24
25
%%%SUCURI.Hardening.Readme%%%
1
2
+ <div class="sucuriscan-panelstuff sucuriscan-hardening-boxes">
3
<form method="post">
4
<input type="hidden" name="sucuriscan_page_nonce" value="%%SUCURI.PageNonce%%" />
5
<input type="hidden" name="sucuriscan_run_hardening" value="1" />
6
7
+ %%%SUCURI.Hardening.CloudProxy%%%
8
+
9
%%%SUCURI.Hardening.Version%%%
10
11
+ %%%SUCURI.Hardening.PhpVersion%%%
12
13
%%%SUCURI.Hardening.RemoveGenerator%%%
14
20
21
%%%SUCURI.Hardening.WpIncludes%%%
22
23
%%%SUCURI.Hardening.SecretKeys%%%
24
25
%%%SUCURI.Hardening.Readme%%%
inc/tpl/hardening-whitelist.html.tpl CHANGED
@@ -1,5 +1,5 @@
1
2
- <div id="poststuff" class="sucuriscan-hardening-whitelist">
3
<div class="postbox sucuriscan-border sucuriscan-table-description">
4
<h3>Whitelist Blocked PHP Files</h3>
5
1
2
+ <div class="sucuriscan-panelstuff sucuriscan-hardening-whitelist">
3
<div class="postbox sucuriscan-border sucuriscan-table-description">
4
<h3>Whitelist Blocked PHP Files</h3>
5
inc/tpl/hardening.html.tpl CHANGED
@@ -1,8 +1,24 @@
1
2
<div class="sucuriscan-tabs">
3
<ul>
4
<li>
5
- <a href="#hardening" data-tabname="hardening">Hardening Options</a>
6
</li>
7
<li>
8
<a href="#whitelist" data-tabname="whitelist">Whitelist Blocked PHP Files</a>
1
2
<div class="sucuriscan-tabs">
3
+ <script type="text/javascript">
4
+ jQuery(document).ready(function ($) {
5
+ var total = $('.sucuriscan-hardening-boxes .postbox').length;
6
+ var applied = $('.sucuriscan-hardening-boxes .postbox .sucuriscan-hstatus-1').length;
7
+
8
+ $('#sucuriscan-hardening-stats').html(
9
+ '({{APPLIED}}/{{TOTAL}})'
10
+ .replace('{{TOTAL}}', total)
11
+ .replace('{{APPLIED}}', applied)
12
+ );
13
+ });
14
+ </script>
15
+
16
<ul>
17
<li>
18
+ <a href="#hardening" data-tabname="hardening">
19
+ <span>Hardening Options</span>
20
+ <em id="sucuriscan-hardening-stats">(Loading...)</em>
21
+ </a>
22
</li>
23
<li>
24
<a href="#whitelist" data-tabname="whitelist">Whitelist Blocked PHP Files</a>
inc/tpl/hardening.snippet.tpl CHANGED
@@ -5,7 +5,7 @@
5
<div class="inside">
6
%%%SUCURI.Hardening.Description%%%
7
8
- <div class="sucuriscan-hstatus sucuriscan-hstatus-%%SUCURI.Hardening.Status%%">
9
<input type="submit" name="%%SUCURI.Hardening.FieldName%%"
10
value="%%SUCURI.Hardening.FieldValue%%"
11
%%SUCURI.Hardening.FieldAttributes%%
5
<div class="inside">
6
%%%SUCURI.Hardening.Description%%%
7
8
+ <div class="sucuriscan-hstatus sucuriscan-hstatus-%%SUCURI.Hardening.Status%% sucuriscan-%%SUCURI.Hardening.StatusVisibility%%">
9
<input type="submit" name="%%SUCURI.Hardening.FieldName%%"
10
value="%%SUCURI.Hardening.FieldValue%%"
11
%%SUCURI.Hardening.FieldAttributes%%
inc/tpl/infosys-cronjobs.html.tpl CHANGED
@@ -1,6 +1,6 @@
1
2
- <div id="poststuff">
3
- <div class="postbox sucuriscan-border sucuriscan-table-description sucuriscan-%%SUCURI.IgnoreRules.TableVisibility%%">
4
<h3>Scheduled Tasks (%%SUCURI.Cronjobs.Total%% tasks)</h3>
5
6
<div class="inside">
@@ -20,34 +20,30 @@
20
required by the site to work correctly.
21
</p>
22
</div>
23
- </div>
24
- </div>
25
- </div>
26
-
27
- <form action="%%SUCURI.URL.Infosys%%#wordpress-cronjobs" method="post">
28
- <input type="hidden" name="sucuriscan_page_nonce" value="%%SUCURI.PageNonce%%" />
29
-
30
- <table class="wp-list-table widefat sucuriscan-table sucuriscan-wpcron-list">
31
- <thead>
32
- <tr>
33
- <th class="manage-column column-cb check-column">
34
- <label class="screen-reader-text" for="cb-select-all-1">Select All</label>
35
- <input id="cb-select-all-1" type="checkbox">
36
- </th>
37
- <th>Task</th>
38
- <th>Schedule</th>
39
- <th>Next due</th>
40
- <th>Arguments</th>
41
- </tr>
42
- </thead>
43
44
- <tbody>
45
- %%%SUCURI.Cronjobs.List%%%
46
- </tbody>
47
-
48
- <tfoot>
49
- <tr>
50
- <td colspan="5">
51
<label>
52
<select name="sucuriscan_cronjob_action">
53
<option value="">Choose action</option>
@@ -59,9 +55,8 @@
59
</select>
60
</label>
61
<button type="submit" class="button button-primary">Send action</button>
62
- </td>
63
- </tr>
64
- </tfoot>
65
- </table>
66
-
67
- </form>
1
2
+ <div class="sucuriscan-panelstuff">
3
+ <div class="postbox sucuriscan-border sucuriscan-table-description">
4
<h3>Scheduled Tasks (%%SUCURI.Cronjobs.Total%% tasks)</h3>
5
6
<div class="inside">
20
required by the site to work correctly.
21
</p>
22
</div>
23
24
+ <form action="%%SUCURI.URL.Infosys%%#wordpress-cronjobs" method="post">
25
+ <input type="hidden" name="sucuriscan_page_nonce" value="%%SUCURI.PageNonce%%" />
26
+
27
+ <table class="wp-list-table widefat sucuriscan-table sucuriscan-wpcron-list">
28
+ <thead>
29
+ <tr>
30
+ <th class="manage-column column-cb check-column">
31
+ <label class="screen-reader-text" for="cb-select-all-1">Select All</label>
32
+ <input id="cb-select-all-1" type="checkbox">
33
+ </th>
34
+ <th>Task</th>
35
+ <th>Schedule</th>
36
+ <th>Next due</th>
37
+ <th>Arguments</th>
38
+ </tr>
39
+ </thead>
40
+
41
+ <tbody>
42
+ %%%SUCURI.Cronjobs.List%%%
43
+ </tbody>
44
+ </table>
45
+
46
+ <div class="sucuriscan-recipient-form">
47
<label>
48
<select name="sucuriscan_cronjob_action">
49
<option value="">Choose action</option>
55
</select>
56
</label>
57
<button type="submit" class="button button-primary">Send action</button>
58
+ </div>
59
+ </form>
60
+ </div>
61
+ </div>
62
+ </div>
inc/tpl/infosys-errorlogs-flimit.html.tpl ADDED
@@ -0,0 +1,24 @@
1
+
2
+ <div class="postbox">
3
+ <h3>Error Logs - File Limit</h3>
4
+
5
+ <div class="inside">
6
+ <p>
7
+ If you are a developer, you may want to check the latest errors encountered by
8
+ the server before delete the log file, that way you can see where the application
9
+ is failing and fix the errors. Note that a log file may have thousand of lines,
10
+ so to prevent an overflow in the memory of the PHP interpreter the plugin limits
11
+ the process to the <strong>latest %%SUCURI.ErrorLogs.LogsLimit%% lines</strong>
12
+ inserted in the log file.
13
+ </p>
14
+
15
+ <form action="%%SUCURI.URL.Infosys%%#error-logs" method="post">
16
+ <input type="hidden" name="sucuriscan_page_nonce" value="%%SUCURI.PageNonce%%" />
17
+ <span class="sucuriscan-input-group">
18
+ <label>Error Logs - File Limit:</label>
19
+ <input type="text" name="sucuriscan_errorlogs_limit" class="input-text" placeholder="e.g. 30" />
20
+ </span>
21
+ <button type="submit" class="button-primary">Save</button>
22
+ </form>
23
+ </div>
24
+ </div>
inc/tpl/infosys-errorlogs-freader.html.tpl ADDED
@@ -0,0 +1,61 @@
1
+
2
+ <div class="postbox">
3
+ <h3>Error Logs - File Reader</h3>
4
+
5
+ <div class="inside">
6
+ <p>
7
+ Note that if the log file is not empty but the table is, it means that the
8
+ format of the logs used by the web server is not supported by the scanner,
9
+ you can try to increase the number of lines processed or ask your hosting
10
+ provider to change the format of the PHP error log generator.
11
+ </p>
12
+
13
+ <div class="sucuriscan-inline-alert-warning">
14
+ <p>
15
+ Note that only the main error log file <em>(usually located in the document
16
+ root)</em> will be read, parsed, and listed below, if there are more log files
17
+ in sub-directories they will be ignored.
18
+ </p>
19
+ </div>
20
+
21
+ <script type="text/javascript">
22
+ jQuery(function($){
23
+ $('.sucuriscan-errorlogs-list tbody').html(
24
+ '<tr><td colspan="5"><span>Loading <em>(may take '
25
+ + 'several seconds)</em>...</span></td></tr>'
26
+ );
27
+ $.post('%%SUCURI.AjaxURL.Settings%%', {
28
+ action: 'sucuriscan_infosys_ajax',
29
+ sucuriscan_page_nonce: '%%SUCURI.PageNonce%%',
30
+ form_action: 'get_error_logs',
31
+ }, function(data){
32
+ $('.sucuriscan-errorlogs-list tbody').html(data);
33
+ });
34
+ });
35
+ </script>
36
+
37
+ <table class="wp-list-table widefat sucuriscan-table sucuriscan-errorlogs-list">
38
+ <thead>
39
+ <tr>
40
+ <th width="100">Date Time</th>
41
+ <th width="50">Type</th>
42
+ <th>Error Message</th>
43
+ <th width="300">File</th>
44
+ <th width="50">Line</th>
45
+ </tr>
46
+ </thead>
47
+
48
+ <tbody>
49
+ </tbody>
50
+ </table>
51
+
52
+ <div class="sucuriscan-recipient-form">
53
+ <form action="%%SUCURI.URL.Hardening%%" method="post">
54
+ <input type="hidden" name="sucuriscan_page_nonce" value="%%SUCURI.PageNonce%%" />
55
+ <input type="hidden" name="sucuriscan_run_hardening" value="1" />
56
+ <input type="hidden" name="sucuriscan_harden_errorlog" value="Harden" />
57
+ <button type="submit" class="button-primary">Delete Logs</button>
58
+ </form>
59
+ </div>
60
+ </div>
61
+ </div>
inc/tpl/infosys-errorlogs-status.html.tpl ADDED
@@ -0,0 +1,23 @@
1
+
2
+ <div class="postbox">
3
+ <h3>Error Logs</h3>
4
+
5
+ <div class="inside">
6
+ <p>
7
+ Web servers like Apache, Nginx and others use files to record errors encountered
8
+ during the execution of a dynamic language or the server processes. Depending on
9
+ the configuration of the server, these files may be accessible from the web
10
+ opening a hole in your site to allow an attacker to gather sensitive information
11
+ of your project, so it is highly recommended to delete them.
12
+ </p>
13
+
14
+ <div class="sucuriscan-hstatus sucuriscan-hstatus-2">
15
+ <span>Ignore Scanning is %%SUCURI.ErrorLogs.Status%%</span>
16
+ <form action="%%SUCURI.URL.Infosys%%#error-logs" method="post">
17
+ <input type="hidden" name="sucuriscan_page_nonce" value="%%SUCURI.PageNonce%%" />
18
+ <input type="hidden" name="sucuriscan_parse_errorlogs" value="%%SUCURI.ErrorLogs.SwitchValue%%" />
19
+ <button type="submit" class="button-primary %%SUCURI.ErrorLogs.SwitchCssClass%%">%%SUCURI.ErrorLogs.SwitchText%%</button>
20
+ </form>
21
+ </div>
22
+ </div>
23
+ </div>
inc/tpl/infosys-errorlogs.html.tpl CHANGED
@@ -1,88 +1,8 @@
1
2
- <div id="poststuff">
3
- <div class="postbox sucuriscan-border sucuriscan-table-description sucuriscan-errorlogs">
4
- <h3>Error Logs</h3>
5
6
- <div class="inside">
7
8
- <p>
9
- Web servers like Apache, Nginx and others use files to record errors encountered
10
- during the execution of a dynamic language or the server processes. Depending on
11
- the configuration of the server, these files may be accessible from the web
12
- opening a hole in your site to allow an attacker to gather sensitive information
13
- of your project, so it is highly recommended to delete them.
14
- </p>
15
-
16
- <div class="sucuriscan-inline-alert-info">
17
- <p>
18
- If you are a developer, you may want to check the latest errors encountered by
19
- the server before delete the log file, that way you can see where the
20
- application is failing and fix the errors. Note that a log file may have
21
- thousand of lines, so to prevent an overflow in the memory of the PHP
22
- interpreter the plugin limits the process to the <strong>latest
23
- %%SUCURI.ErrorLog.LogsLimit%% lines</strong> inserted in the log file.
24
- </p>
25
- </div>
26
-
27
- <div class="sucuriscan-inline-alert-error sucuriscan-%%SUCURI.ErrorLog.DisabledVisibility%%">
28
- <p>
29
- The analysis of error logs is disabled, go to the <em>Scanner Settings</em>
30
- panel in the <em>Settings</em> page to enable it.
31
- </p>
32
- </div>
33
-
34
- <div class="sucuriscan-inline-alert-warning sucuriscan-%%SUCURI.ErrorLog.InvalidFormatVisibility%%">
35
- <p>
36
- Note that if the log file is not empty but the table is, it means that the
37
- format of the logs used by the web server is not supported by the scanner,
38
- you can try to increase the number of lines processed though from
39
- <a href="%%SUCURI.URL.Settings%%#scanner">here</a> in case that
40
- other lines have a different format which is very common on servers with
41
- mixed configurations.
42
- </p>
43
- </div>
44
-
45
- </div>
46
- </div>
47
</div>
48
-
49
- <table class="wp-list-table widefat sucuriscan-table sucuriscan-table-double-title sucuriscan-errorlogs-list">
50
- <thead>
51
- <tr>
52
- <th colspan="5" class="thead-with-button">
53
- <span>Error Logs (%%SUCURI.ErrorLog.FileSize%%)</span>
54
-
55
- <form action="%%SUCURI.URL.Hardening%%#error-logs" method="post" class="thead-topright-action">
56
- <input type="hidden" name="sucuriscan_page_nonce" value="%%SUCURI.PageNonce%%" />
57
- <input type="hidden" name="sucuriscan_run_hardening" value="1" />
58
- <input type="hidden" name="sucuriscan_harden_errorlog" value="Harden" />
59
- <button type="submit" class="button-primary">Delete logs</button>
60
- </form>
61
- </th>
62
- </tr>
63
-
64
- <tr>
65
- <th width="100">Date Time</th>
66
- <th width="50">Type</th>
67
- <th>Error Message</th>
68
- <th width="300">File</th>
69
- <th width="50">Line</th>
70
- </tr>
71
- </thead>
72
-
73
- <tbody>
74
- %%%SUCURI.ErrorLog.List%%%
75
-
76
- <tr class="sucuriscan-%%SUCURI.ErrorLog.InvalidFormatVisibility%%">
77
- <td colspan="5">
78
- <em>No valid logs in the last %%SUCURI.ErrorLog.LogsLimit%% lines of the error log file.</em>
79
- </td>
80
- </tr>
81
-
82
- <tr class="sucuriscan-%%SUCURI.ErrorLog.NoItemsVisibility%%">
83
- <td colspan="5">
84
- <em>No logs so far.</em>
85
- </td>
86
- </tr>
87
- </tbody>
88
- </table>
1
2
+ <div class="sucuriscan-panelstuff sucuriscan-general-errorlogs">
3
+ %%%SUCURI.ErrorLogs.Status%%%
4
5
+ %%%SUCURI.ErrorLogs.FileLimit%%%
6
7
+ %%%SUCURI.ErrorLogs.FileReader%%%
8
</div>
inc/tpl/infosys-htaccess.html.tpl CHANGED
@@ -1,5 +1,5 @@
1
2
- <div id="poststuff" class="sucuriscan-infosys-htaccess">
3
<div class="postbox sucuriscan-border sucuriscan-table-description">
4
<h3>Access File Integrity</h3>
5
1
2
+ <div class="sucuriscan-panelstuff sucuriscan-infosys-htaccess">
3
<div class="postbox sucuriscan-border sucuriscan-table-description">
4
<h3>Access File Integrity</h3>
5
inc/tpl/integrity-auditlogs.html.tpl CHANGED
@@ -1,11 +1,67 @@
1
2
<table class="wp-list-table widefat sucuriscan-table sucuriscan-table-double-title sucuriscan-auditlogs">
3
<thead>
4
<tr>
5
<th colspan="5" class="thead-with-button">
6
- <span>Audit Logs (%%SUCURI.AuditLogs.Count%% latest logs)</span>
7
<form action="%%SUCURI.URL.Settings%%" method="post"
8
- class="thead-topright-action sucuriscan-%%SUCURI.AuditLogs.EnableAuditReportVisibility%%">
9
<input type="hidden" name="sucuriscan_page_nonce" value="%%SUCURI.PageNonce%%" />
10
<input type="hidden" name="sucuriscan_audit_report" value="enable" />
11
<button type="submit" class="button-primary">Enable Audit Report</button>
@@ -23,20 +79,24 @@
23
</thead>
24
25
<tbody>
26
- %%%SUCURI.AuditLogs.List%%%
27
-
28
- <tr class="sucuriscan-%%SUCURI.AuditLogs.NoItemsVisibility%%">
29
<td colspan="5">
30
- <em>No logs so far.</em>
31
</td>
32
</tr>
33
34
- <tr class="sucuriscan-%%SUCURI.AuditLogs.PaginationVisibility%%">
35
- <td colspan="5">
36
- <ul class="sucuriscan-pagination">
37
- %%%SUCURI.AuditLogs.PaginationLinks%%%
38
</ul>
39
- </td>
40
- </tr>
41
- </tbody>
42
</table>
1
2
+ <script type="text/javascript">
3
+ jQuery(function ($) {
4
+ var sucuriscanLoadAuditLogs = function (page, reset) {
5
+ var url = '%%SUCURI.AjaxURL.Home%%';
6
+
7
+ if (page !== undefined && page > 0) {
8
+ url += '&paged=' + page;
9
+ }
10
+
11
+ if (reset === true) {
12
+ var loading = '<tr><td colspan="5"><em>Loading...</em></td></tr>';
13
+ $('.sucuriscan-auditlogs tbody').html(loading);
14
+ }
15
+
16
+ $('.sucuriscan-pagination-loading').html('Loading...');
17
+
18
+ $.post(url, {
19
+ action: 'sucuriscan_ajax',
20
+ sucuriscan_page_nonce: '%%SUCURI.PageNonce%%',
21
+ form_action: 'get_audit_logs',
22
+ }, function (data) {
23
+ if (data.content) {
24
+ $('.sucuriscan-auditlogs tbody').html(data.content);
25
+ $('.sucuriscan-pagination-loading').html('');
26
+ $('.sucuriscan-auditlogs-count').html('(' + data.count + ' latest logs)');
27
+
28
+ if (data.pagination !== '') {
29
+ $('.sucuriscan-auditlogs .sucuriscan-pagination').html(data.pagination);
30
+ }
31
+
32
+ if (data.enable_report) {
33
+ $('.sucuriscan-audit-report').removeClass('sucuriscan-hidden');
34
+ }
35
+ } else if (typeof data === 'object') {
36
+ $('.sucuriscan-auditlogs tbody').html(
37
+ '<tr><td colspan="5">Unrecoverable error</td></tr>');
38
+ } else {
39
+ $('.sucuriscan-auditlogs tbody').html(
40
+ '<tr><td colspan="5">' + data + '</td></tr>');
41
+ }
42
+ });
43
+ }
44
+
45
+ setTimeout(function () {
46
+ sucuriscanLoadAuditLogs(0, true);
47
+ }, 100);
48
+
49
+ $('.sucuriscan-auditlogs').on('click', '.sucuriscan-pagination-link', function (event) {
50
+ event.preventDefault();
51
+ sucuriscanLoadAuditLogs($(this).attr('data-page'));
52
+ });
53
+ });
54
+ </script>
55
+
56
<table class="wp-list-table widefat sucuriscan-table sucuriscan-table-double-title sucuriscan-auditlogs">
57
<thead>
58
<tr>
59
<th colspan="5" class="thead-with-button">
60
+ <span>Audit Logs</span>
61
+ <span class="sucuriscan-auditlogs-count">(Loading...)</span>
62
+
63
<form action="%%SUCURI.URL.Settings%%" method="post"
64
+ class="thead-topright-action sucuriscan-hidden sucuriscan-audit-report">
65
<input type="hidden" name="sucuriscan_page_nonce" value="%%SUCURI.PageNonce%%" />
66
<input type="hidden" name="sucuriscan_audit_report" value="enable" />
67
<button type="submit" class="button-primary">Enable Audit Report</button>
79
</thead>
80
81
<tbody>
82
+ <tr>
83
<td colspan="5">
84
+ <em>Loading...</em>
85
</td>
86
</tr>
87
+ </tbody>
88
89
+ <tfoot>
90
+ <td colspan="5">
91
+ <div class="sucuriscan-clearfix">
92
+ <ul class="sucuriscan-pull-left sucuriscan-pagination">
93
+ <!-- Populated via JavaScript -->
94
</ul>
95
+
96
+ <div class="sucuriscan-pull-right sucuriscan-pagination-loading">
97
+ <!-- Populated via JavaScript -->
98
+ </div>
99
+ </div>
100
+ </td>
101
+ </tfoot>
102
</table>
inc/tpl/integrity-modifiedfiles.html.tpl CHANGED
@@ -1,5 +1,5 @@
1
2
- <div id="poststuff">
3
<div class="postbox sucuriscan-border sucuriscan-table-description">
4
<h3>Modified Files</h3>
5
1
2
+ <div class="sucuriscan-panelstuff">
3
<div class="postbox sucuriscan-border sucuriscan-table-description">
4
<h3>Modified Files</h3>
5
inc/tpl/integrity.html.tpl CHANGED
@@ -1,5 +1,5 @@
1
2
- <div id="poststuff">
3
%%%SUCURI.WordpressVersion%%%
4
5
%%%SUCURI.CoreFiles%%%
1
2
+ <div class="sucuriscan-panelstuff">
3
%%%SUCURI.WordpressVersion%%%
4
5
%%%SUCURI.CoreFiles%%%
inc/tpl/lastlogins-all.html.tpl CHANGED
@@ -34,7 +34,7 @@
34
<tr class="sucuriscan-%%SUCURI.UserList.PaginationVisibility%%">
35
<td colspan="6">
36
<ul class="sucuriscan-pagination">
37
- %%SUCURI.UserList.Pagination%%
38
</ul>
39
</td>
40
</tr>
34
<tr class="sucuriscan-%%SUCURI.UserList.PaginationVisibility%%">
35
<td colspan="6">
36
<ul class="sucuriscan-pagination">
37
+ %%%SUCURI.UserList.Pagination%%%
38
</ul>
39
</td>
40
</tr>
inc/tpl/lastlogins-blockedusers.html.tpl ADDED
@@ -0,0 +1,65 @@
1
+
2
+ <div class="sucuriscan-panelstuff">
3
+ <div class="postbox sucuriscan-border sucuriscan-table-description">
4
+ <h3>Blocked Users</h3>
5
+
6
+ <div class="inside">
7
+ <p>
8
+ Any user login passing accross the built-in mechanism that WordPress provides to
9
+ authentication the session will be intercepted by the plugin and analyzed to see
10
+ if the username is in the list of blocked accounts, if yes then the request will
11
+ be stopped. No logs will be registered and no alerts will be sent to your email.
12
+ </p>
13
+
14
+ <div class="sucuriscan-inline-alert-info">
15
+ <p>
16
+ Take in consideration that this is not a 100% bulletproof mechanism
17
+ to block unwanted user authentications from malicious users. Depending
18
+ on the configuration of your website, installed plugins, installed
19
+ themes, and even the version of WordPress there might still be weak
20
+ points that automated tools can take advantage of to brute force the
21
+ user accounts registered in your website. <a target="_blank"
22
+ href="https://sucuri.net/website-firewall/?wp=bu">Install a firewall</a>
23
+ to have full protection and mitigate this and a myriad of other attacks.
24
+ </p>
25
+ </div>
26
+
27
+ <div class="sucuriscan-inline-alert-warning">
28
+ <p>Do not block existent accounts, they will lose access forever.</p>
29
+ </div>
30
+
31
+ <form method="post">
32
+ <input type="hidden" name="sucuriscan_page_nonce" value="%%SUCURI.PageNonce%%" />
33
+
34
+ <table class="wp-list-table widefat sucuriscan-table">
35
+ <thead>
36
+ <tr>
37
+ <th class="manage-column column-cb check-column">
38
+ <label class="screen-reader-text" for="cb-select-all-1">Select All</label>
39
+ <input id="cb-select-all-1" type="checkbox">
40
+ </th>
41
+ <th class="manage-column">Username</th>
42
+ <th class="manage-column">Blocked At</th>
43
+ <th class="manage-column">First Attempt</th>
44
+ <th class="manage-column">Last Attempt</th>
45
+ </tr>
46
+ </thead>
47
+
48
+ <tbody>
49
+ %%%SUCURI.BlockedUsers.List%%%
50
+
51
+ <tr class="sucuriscan-%%SUCURI.BlockedUsers.NoItemsVisibility%%">
52
+ <td colspan="5">
53
+ <em>The table is empty.</em>
54
+ </td>
55
+ </tr>
56
+ </tbody>
57
+ </table>
58
+
59
+ <div class="sucuriscan-recipient-form">
60
+ <button type="submit" class="button button-primary">Unblock User</button>
61
+ </div>
62
+ </form>
63
+ </div>
64
+ </div>
65
+ </div>
inc/tpl/lastlogins-blockedusers.snippet.tpl ADDED
@@ -0,0 +1,10 @@
1
+
2
+ <tr class="%%SUCURI.BlockedUsers.CssClass%%">
3
+ <td class="check-column">
4
+ <input type="checkbox" name="sucuriscan_unblock_user[]" value="%%SUCURI.BlockedUsers.Username%%">
5
+ </td>
6
+ <td><span class="sucuriscan-monospace">%%SUCURI.BlockedUsers.Username%%</span></td>
7
+ <td><em>%%SUCURI.BlockedUsers.BlockedAt%%</em></td>
8
+ <td><em>%%SUCURI.BlockedUsers.FirstAttempt%%</em></td>
9
+ <td><em>%%SUCURI.BlockedUsers.LastAttempt%%</em></td>
10
+ </tr>
inc/tpl/lastlogins-failedlogins.html.tpl CHANGED
@@ -1,7 +1,16 @@
1
2
- <div id="poststuff">
3
<div class="postbox sucuriscan-border sucuriscan-table-description">
4
- <h3>Failed logins</h3>
5
6
<div class="inside">
7
<p>
@@ -37,37 +46,48 @@
37
href="%%SUCURI.URL.Settings%%#general">general settings</a>
38
</p>
39
</div>
40
- </div>
41
- </div>
42
- </div>
43
44
- <table class="wp-list-table widefat sucuriscan-table sucuriscan-lastlogins-failed sucuriscan-%%SUCURI.IgnoreRules.TableVisibility%%">
45
- <thead>
46
- <tr>
47
- <th class="manage-column">&nbsp;</th>
48
- <th class="manage-column">User</th>
49
- <th class="manage-column">Password</th>
50
- <th class="manage-column">IP Address</th>
51
- <th class="manage-column">Date/Time</th>
52
- <th class="manage-column" width="300">User-Agent</th>
53
- </tr>
54
- </thead>
55
56
- <tbody>
57
- %%%SUCURI.FailedLogins.List%%%
58
59
- <tr class="sucuriscan-%%SUCURI.FailedLogins.NoItemsVisibility%%">
60
- <td colspan="6">
61
- <em>No logs so far.</em>
62
- </td>
63
- </tr>
64
65
- <tr class="sucuriscan-%%SUCURI.FailedLogins.PaginationVisibility%%">
66
- <td colspan="6">
67
- <ul class="sucuriscan-pagination">
68
- %%SUCURI.FailedLogins.PaginationLinks%%
69
- </ul>
70
- </td>
71
- </tr>
72
- </tbody>
73
- </table>
1
2
+ <div class="sucuriscan-panelstuff">
3
<div class="postbox sucuriscan-border sucuriscan-table-description">
4
+ <h3 class="thead-with-button">
5
+ <span>Failed logins</span>
6
+ <span class="thead-topright-action">
7
+ <form action="%%SUCURI.URL.Settings%%#scanner" method="post">
8
+ <input type="hidden" name="sucuriscan_page_nonce" value="%%SUCURI.PageNonce%%" />
9
+ <input type="hidden" name="sucuriscan_reset_logfile" value="failedlogins" />
10
+ <button type="submit" class="button button-primary">Reset logs</button>
11
+ </form>
12
+ </span>
13
+ </h3>
14
15
<div class="inside">
16
<p>
46
href="%%SUCURI.URL.Settings%%#general">general settings</a>
47
</p>
48
</div>
49
50
+ <form method="post">
51
+ <input type="hidden" name="sucuriscan_page_nonce" value="%%SUCURI.PageNonce%%" />
52
+
53
+ <table class="wp-list-table widefat sucuriscan-table sucuriscan-lastlogins-failed">
54
+ <thead>
55
+ <tr>
56
+ <th class="manage-column column-cb check-column">
57
+ <label class="screen-reader-text" for="cb-select-all-1">Select All</label>
58
+ <input id="cb-select-all-1" type="checkbox">
59
+ </th>
60
+ <th class="manage-column">User</th>
61
+ <th class="manage-column">Password</th>
62
+ <th class="manage-column">IP Address</th>
63
+ <th class="manage-column">Date/Time</th>
64
+ <th class="manage-column" width="300">User-Agent</th>
65
+ </tr>
66
+ </thead>
67
68
+ <tbody>
69
+ %%%SUCURI.FailedLogins.List%%%
70
71
+ <tr class="sucuriscan-%%SUCURI.FailedLogins.NoItemsVisibility%%">
72
+ <td colspan="6">
73
+ <em>No logs so far.</em>
74
+ </td>
75
+ </tr>
76
77
+ <tr class="sucuriscan-%%SUCURI.FailedLogins.PaginationVisibility%%">
78
+ <td colspan="6">
79
+ <ul class="sucuriscan-pagination">
80
+ %%%SUCURI.FailedLogins.PaginationLinks%%%
81
+ </ul>
82
+ </td>
83
+ </tr>
84
+ </tbody>
85
+ </table>
86
+
87
+ <div class="sucuriscan-recipient-form">
88
+ <button type="submit" class="button button-primary">Block Selected Users</button>
89
+ </div>
90
+ </form>
91
+ </div>
92
+ </div>
93
+ </div>
inc/tpl/lastlogins-failedlogins.snippet.tpl CHANGED
@@ -1,6 +1,8 @@
1
2
<tr class="%%SUCURI.FailedLogins.CssClass%%">
3
- <td>%%SUCURI.FailedLogins.Num%%</td>
4
<td><span class="sucuriscan-monospace">%%SUCURI.FailedLogins.Username%%</span></td>
5
<td><span class="sucuriscan-label-%%SUCURI.FailedLogins.PasswordColor%%">%%SUCURI.FailedLogins.Password%%</span></td>
6
<td><span class="sucuriscan-monospace">%%SUCURI.FailedLogins.RemoteAddr%%</span></td>
1
2
<tr class="%%SUCURI.FailedLogins.CssClass%%">
3
+ <td class="check-column">
4
+ <input type="checkbox" name="sucuriscan_block_user[]" value="%%SUCURI.FailedLogins.Username%%">
5
+ </td>
6
<td><span class="sucuriscan-monospace">%%SUCURI.FailedLogins.Username%%</span></td>
7
<td><span class="sucuriscan-label-%%SUCURI.FailedLogins.PasswordColor%%">%%SUCURI.FailedLogins.Password%%</span></td>
8
<td><span class="sucuriscan-monospace">%%SUCURI.FailedLogins.RemoteAddr%%</span></td>
inc/tpl/lastlogins.html.tpl CHANGED
@@ -13,6 +13,9 @@
13
<li>
14
<a href="#failed-logins" data-tabname="failed-logins">Failed Logins</a>
15
</li>
16
</ul>
17
18
<div class="sucuriscan-tab-containers">
@@ -31,5 +34,9 @@
31
<div id="sucuriscan-failed-logins">
32
%%%SUCURI.FailedLogins%%%
33
</div>
34
</div>
35
</div>
13
<li>
14
<a href="#failed-logins" data-tabname="failed-logins">Failed Logins</a>
15
</li>
16
+ <li>
17
+ <a href="#blocked-users" data-tabname="blocked-users">Blocked Users</a>
18
+ </li>
19
</ul>
20
21
<div class="sucuriscan-tab-containers">
34
<div id="sucuriscan-failed-logins">
35
%%%SUCURI.FailedLogins%%%
36
</div>
37
+
38
+ <div id="sucuriscan-blocked-users">
39
+ %%%SUCURI.BlockedUsers%%%
40
+ </div>
41
</div>
42
</div>
inc/tpl/notification-resetpwd.html.tpl CHANGED
@@ -7,5 +7,5 @@ has been reset for security reasons.<br>
7
You can use this temporary password to log in:
8
<span style="display:inline-block;background:#f5f5f5;padding:2px 6px;
9
font-family:Menlo, Monaco, monospace, serif;border:1px solid #ddd">
10
- %%SUCURI.ResetPassword.Password%%</span><br>
11
Please change your password after you log in.
7
You can use this temporary password to log in:
8
<span style="display:inline-block;background:#f5f5f5;padding:2px 6px;
9
font-family:Menlo, Monaco, monospace, serif;border:1px solid #ddd">
10
+ %%%SUCURI.ResetPassword.Password%%%</span><br>
11
Please change your password after you log in.
inc/tpl/posthack-resetpassword.html.tpl CHANGED
@@ -1,5 +1,5 @@
1
2
- <div id="poststuff" class="sucuriscan-reset-users-password">
3
<div class="postbox">
4
<div class="inside">
5
<form method="post">
1
2
+ <div class="sucuriscan-panelstuff sucuriscan-reset-users-password">
3
<div class="postbox">
4
<div class="inside">
5
<form method="post">
inc/tpl/posthack-resetplugins.html.tpl CHANGED
@@ -1,5 +1,5 @@
1
2
- <div id="poststuff" class="sucuriscan-reset-plugins">
3
<div class="postbox">
4
<div class="inside">
5
<form action="%%SUCURI.URL.Posthack%%#reset-plugins" method="post">
1
2
+ <div class="sucuriscan-panelstuff sucuriscan-reset-plugins">
3
<div class="postbox">
4
<div class="inside">
5
<form action="%%SUCURI.URL.Posthack%%#reset-plugins" method="post">
inc/tpl/posthack-resetplugins.snippet.tpl CHANGED
@@ -3,7 +3,9 @@
3
<td class="check-column">
4
<input type="checkbox" name="plugin_path[]" value="%%SUCURI.ResetPlugin.PluginPath%%" %%SUCURI.ResetPlugin.Disabled%% />
5
</td>
6
- <td>%%SUCURI.ResetPlugin.Plugin%%</td>
7
<td><span class="sucuriscan-monospace">%%SUCURI.ResetPlugin.Version%%</span></td>
8
<td><span class="sucuriscan-label-%%SUCURI.ResetPlugin.TypeClass%%">%%SUCURI.ResetPlugin.Type%%</span></td>
9
<td><span class="sucuriscan-label-%%SUCURI.ResetPlugin.StatusClass%%">%%SUCURI.ResetPlugin.Status%%</span></td>
3
<td class="check-column">
4
<input type="checkbox" name="plugin_path[]" value="%%SUCURI.ResetPlugin.PluginPath%%" %%SUCURI.ResetPlugin.Disabled%% />
5
</td>
6
+ <td>
7
+ <a href="%%SUCURI.ResetPlugin.Repository%%" target="_blank">%%SUCURI.ResetPlugin.Plugin%%</a>
8
+ </td>
9
<td><span class="sucuriscan-monospace">%%SUCURI.ResetPlugin.Version%%</span></td>
10
<td><span class="sucuriscan-label-%%SUCURI.ResetPlugin.TypeClass%%">%%SUCURI.ResetPlugin.Type%%</span></td>
11
<td><span class="sucuriscan-label-%%SUCURI.ResetPlugin.StatusClass%%">%%SUCURI.ResetPlugin.Status%%</span></td>
inc/tpl/posthack-updates-notification.html.tpl ADDED
@@ -0,0 +1,36 @@
1
+
2
+ <p>
3
+ WordPress has a big user base in the public Internet, this brings interest to
4
+ malicious people to find vulnerabilities in the code code, 3rd-party extensions,
5
+ and themes that other companies develop. You should keep every piece of code
6
+ installed in your website update to prevent attacks as soon as disclosed
7
+ vulnerabilities are patched.
8
+ </p>
9
+
10
+ <table border="1" cellspacing="1" cellpadding="5">
11
+ <thead>
12
+ <tr>
13
+ <th>Extension</th>
14
+ <th>Installed</th>
15
+ <th>Available</th>
16
+ <th>Tested With</th>
17
+ <th>&nbsp;</th>
18
+ </tr>
19
+ </thead>
20
+
21
+ <tbody>
22
+ %%%SUCURI.AvailableUpdates.Content%%%
23
+ </tbody>
24
+
25
+ <tfoot>
26
+ <tr>
27
+ <td colspan="5">
28
+ <p>
29
+ Update all extensions from your website's <a href="%%SUCURI.URL.Home%%">
30
+ admin panel</a>, and/or disable the email notifications for available
31
+ updates from the <a href="%%SUCURI.URL.Settings%%">settings</a> page.
32
+ </p>
33
+ </td>
34
+ </tr>
35
+ </tfoot>
36
+ </table>
inc/tpl/posthack-updates.html.tpl ADDED
@@ -0,0 +1,46 @@
1
+
2
+ <div class="sucuriscan-panelstuff sucuriscan-updates">
3
+ <div class="postbox">
4
+ <div class="inside">
5
+ <p>
6
+ WordPress has a big user base in the public Internet, this brings interest to
7
+ malicious people to find vulnerabilities in the code code, 3rd-party extensions,
8
+ and themes that other companies develop. You should keep every piece of code
9
+ installed in your website update to prevent attacks as soon as disclosed
10
+ vulnerabilities are patched.
11
+ </p>
12
+
13
+ <table class="wp-list-table widefat sucuriscan-table sucuriscan-updates-table">
14
+ <thead>
15
+ <tr>
16
+ <th class="manage-column">Extension</th>
17
+ <th class="manage-column">Installed</th>
18
+ <th class="manage-column">Available</th>
19
+ <th class="manage-column">Tested With</th>
20
+ <th class="manage-column">&nbsp;</th>
21
+ </tr>
22
+ </thead>
23
+
24
+ <tbody>
25
+ <tr>
26
+ <td colspan="5">
27
+ <span>Loading <em>(may take several seconds)</em>...</span>
28
+ </td>
29
+ </tr>
30
+ </tbody>
31
+ </table>
32
+
33
+ <script type="text/javascript">
34
+ jQuery(function($){
35
+ $.post('%%SUCURI.AjaxURL.Posthack%%', {
36
+ action: 'sucuriscan_posthack_ajax',
37
+ sucuriscan_page_nonce: '%%SUCURI.PageNonce%%',
38
+ form_action: 'get_available_updates',
39
+ }, function(data){
40
+ $('.sucuriscan-updates-table tbody').html(data);
41
+ });
42
+ });
43
+ </script>
44
+ </div>
45
+ </div>
46
+ </div>
inc/tpl/posthack-updates.snippet.tpl ADDED
@@ -0,0 +1,12 @@
1
+
2
+ <tr class="%%SUCURI.Update.CssClass%%">
3
+ <td>
4
+ <span class="dashicons-before dashicons-admin-%%SUCURI.Update.IconType%%">
5
+ <a href="%%SUCURI.Update.MarketUrl%%" target="_blank">%%SUCURI.Update.Extension%%</a>
6
+ </span>
7
+ </td>
8
+ <td><span class="sucuriscan-monospace">%%SUCURI.Update.Version%%</span></td>
9
+ <td><span class="sucuriscan-monospace">%%SUCURI.Update.NewVersion%%</span></td>
10
+ <td>%%SUCURI.Update.TestedWith%%</td>
11
+ <td><a href="%%SUCURI.Update.ArchiveUrl%%" target="_blank">download</a></td>
12
+ </tr>
inc/tpl/posthack-updatesecretkeys.html.tpl CHANGED
@@ -1,5 +1,5 @@
1
2
- <div id="poststuff" class="sucuriscan-update-security-keys">
3
<div class="postbox">
4
<div class="inside">
5
<p>
1
2
+ <div class="sucuriscan-panelstuff sucuriscan-update-security-keys">
3
<div class="postbox">
4
<div class="inside">
5
<p>
inc/tpl/posthack.html.tpl CHANGED
@@ -10,6 +10,9 @@
10
<li>
11
<a href="#reset-plugins" data-tabname="reset-plugins">Reset Plugins</a>
12
</li>
13
</ul>
14
15
<div class="sucuriscan-tab-containers">
@@ -24,5 +27,9 @@
24
<div id="sucuriscan-reset-plugins">
25
%%%SUCURI.ResetPlugins%%%
26
</div>
27
</div>
28
</div>
10
<li>
11
<a href="#reset-plugins" data-tabname="reset-plugins">Reset Plugins</a>
12
</li>
13
+ <li>
14
+ <a href="#updates" data-tabname="updates">Available Updates</a>
15
+ </li>
16
</ul>
17
18
<div class="sucuriscan-tab-containers">
27
<div id="sucuriscan-reset-plugins">
28
%%%SUCURI.ResetPlugins%%%
29
</div>
30
+
31
+ <div id="sucuriscan-updates">
32
+ %%%SUCURI.AvailableUpdates%%%
33
+ </div>
34
</div>
35
</div>
inc/tpl/settings-alert.html.tpl CHANGED
@@ -1,5 +1,5 @@
1
2
- <div id="poststuff">
3
%%%SUCURI.AlertSettings.Recipients%%%
4
5
%%%SUCURI.AlertSettings.Subject%%%
1
2
+ <div class="sucuriscan-panelstuff">
3
%%%SUCURI.AlertSettings.Recipients%%%
4
5
%%%SUCURI.AlertSettings.Subject%%%
inc/tpl/settings-apiservice-protocol.html.tpl ADDED
@@ -0,0 +1,105 @@
1
+
2
+ <div class="postbox">
3
+ <h3>API Communication Protocol</h3>
4
+
5
+ <div class="inside">
6
+ <p>
7
+ HTTPS is a protocol for secure communication over a computer network which is
8
+ widely used on the Internet. HTTPS consists of communication over Hypertext
9
+ Transfer Protocol (HTTP) within a connection encrypted by Transport Layer
10
+ Security or its predecessor, Secure Sockets Layer. The main motivation for HTTPS
11
+ is authentication of the visited website and protection of the privacy and
12
+ integrity of the exchanged data.
13
+ </p>
14
+
15
+ <div class="sucuriscan-inline-alert-info">
16
+ <p>
17
+ HTTPS provides authentication of the website and associated web server with
18
+ which one is communicating, which protects against <a target="_blank"
19
+ href="https://en.wikipedia.org/wiki/Man-in-the-middle_attack">man-in-the-middle
20
+ attacks</a>. Additionally, it provides bidirectional encryption of communications
21
+ between a client and server, which protects against eavesdropping and tampering
22
+ with and/or forging the contents of the communication. In practice, this provides
23
+ a reasonable guarantee that one is communicating with precisely the website that
24
+ one intended to communicate with (as opposed to an impostor), as well as ensuring
25
+ that the contents of communications between the user and site cannot be read or
26
+ forged by any third party.
27
+ </p>
28
+ </div>
29
+
30
+ <p>
31
+ More info at <a href="https://en.wikipedia.org/wiki/HTTPS" target="_blank">WikiPedia HTTPS</a>
32
+ </p>
33
+
34
+ <div class="sucuriscan-hstatus sucuriscan-hstatus-%%SUCURI.ApiProtocol.StatusNum%%">
35
+ <span>API Communication via HTTPS is %%SUCURI.ApiProtocol.Status%%</span>
36
+ <form action="%%SUCURI.URL.Settings%%#apiservice" method="post">
37
+ <input type="hidden" name="sucuriscan_page_nonce" value="%%SUCURI.PageNonce%%" />
38
+ <input type="hidden" name="sucuriscan_api_protocol" value="%%SUCURI.ApiProtocol.SwitchValue%%" />
39
+ <button type="submit" class="button-primary %%SUCURI.ApiProtocol.SwitchCssClass%%">%%SUCURI.ApiProtocol.SwitchText%%</button>
40
+ </form>
41
+ </div>
42
+
43
+ <script type="text/javascript">
44
+ jQuery(function ($) {
45
+ $('body').on('click', '#sucuriscan-debug-api-calls button', function (ev) {
46
+ ev.preventDefault();
47
+ var apiUnique;
48
+ var testedUrls = 0;
49
+ var button = $(this);
50
+ var apiUrls = $('#sucuriscan-debug-api-calls tbody :checkbox:checked');
51
+ var totalApiUrls = apiUrls.length;
52
+
53
+ button.attr('disabled', true);
54
+ button.html('Test API Calls &mdash; Loading...');
55
+ $('#sucuriscan-debug-api-calls tbody td > div').html('');
56
+
57
+ apiUrls.each(function (key, el) {
58
+ apiUnique = $(el).val();
59
+ $('#sucuriscan-api-' + apiUnique).html('Loading...');
60
+
61
+ $.post('%%SUCURI.AjaxURL.Settings%%', {
62
+ action: 'sucuriscan_settings_ajax',
63
+ sucuriscan_page_nonce: '%%SUCURI.PageNonce%%',
64
+ form_action: 'debug_api_call',
65
+ api_unique: apiUnique
66
+ }, function (data) {
67
+ testedUrls++;
68
+ $('#sucuriscan-api-' + data.unique).html(data.output);
69
+
70
+ if (testedUrls === totalApiUrls) {
71
+ button.attr('disabled', false);
72
+ button.html('Test API Calls');
73
+ }
74
+ });
75
+ });
76
+ });
77
+ });
78
+ </script>
79
+
80
+ <form id="sucuriscan-debug-api-calls" action="%%SUCURI.URL.Settings%%#apiservice" method="post">
81
+ <input type="hidden" name="sucuriscan_page_nonce" value="%%SUCURI.PageNonce%%" />
82
+
83
+ <table class="wp-list-table widefat sucuriscan-table">
84
+ <thead>
85
+ <tr>
86
+ <th class="manage-column column-cb check-column">
87
+ <label class="screen-reader-text" for="cb-select-all-1">Select All</label>
88
+ <input id="cb-select-all-1" type="checkbox">
89
+ </th>
90
+ <th class="manage-column" colspan="2">API URL <em>(URLs affected by this setting)</em></th>
91
+ </tr>
92
+ </thead>
93
+
94
+ <tbody>
95
+ %%%SUCURI.ApiProtocol.AffectedUrls%%%
96
+ </tbody>
97
+ </table>
98
+
99
+ <div class="sucuriscan-recipient-form">
100
+ <button type="submit" name="sucuriscan_debug_api_calls"
101
+ value="1" class="button-primary">Test API Calls</button>
102
+ </div>
103
+ </form>
104
+ </div>
105
+ </div>
inc/tpl/settings-apiservice-protocol.snippet.tpl ADDED
@@ -0,0 +1,8 @@
1
+
2
+ <tr class="%%SUCURI.ApiProtocol.CssClass%%">
3
+ <td class="check-column">
4
+ <input type="checkbox" name="sucuriscan_api_ids[]" value="%%SUCURI.ApiProtocol.ID%%" />
5
+ </td>
6
+ <td><span class="sucuriscan-monospace">%%SUCURI.ApiProtocol.URL%%</span></td>
7
+ <td><div id="sucuriscan-api-%%SUCURI.ApiProtocol.ID%%">&nbsp;</div></td>
8
+ </tr>
inc/tpl/settings-apiservice.html.tpl CHANGED
@@ -1,5 +1,5 @@
1
2
- <div id="poststuff" class="sucuriscan-general-apiservice">
3
%%%SUCURI.SettingsSection.ApiStatus%%%
4
5
%%%SUCURI.SettingsSection.ApiProxy%%%
@@ -7,4 +7,6 @@
7
%%%SUCURI.SettingsSection.ApiSSL%%%
8
9
%%%SUCURI.SettingsSection.ApiTimeout%%%
10
</div>
1
2
+ <div class="sucuriscan-panelstuff sucuriscan-general-apiservice">
3
%%%SUCURI.SettingsSection.ApiStatus%%%
4
5
%%%SUCURI.SettingsSection.ApiProxy%%%
7
%%%SUCURI.SettingsSection.ApiSSL%%%
8
9
%%%SUCURI.SettingsSection.ApiTimeout%%%
10
+
11
+ %%%SUCURI.SettingsSection.ApiProtocol%%%
12
</div>
inc/tpl/settings-corefiles-cache.html.tpl ADDED
@@ -0,0 +1,42 @@
1
+
2
+ <div class="postbox">
3
+ <h3>Core Integrity Checks - Marked As Fixed</h3>
4
+
5
+ <div class="inside">
6
+ <p>
7
+ The scanner is prone to inconsistencies due to the diversity of configurations
8
+ that a hosting provider may have in their servers, many of them add files in the
9
+ document root of the websites with information associated to 3rd-party services
10
+ that they offer or programs that they are running in their system. These files
11
+ will be flagged by the plugin as <em>"added"</em> because they are not part of
12
+ the official WordPress packages, but it is clear that they are false/positives.
13
+ Some of these files are being ignored by the plugin to reduce the noise in the
14
+ integrity checks, but there are many others that are not, you will have to
15
+ select them and mark them as fixed if you believe they are harmless, this action
16
+ will force the plugin to ignore them in future scans.
17
+ </p>
18
+
19
+ <div class="sucuriscan-hstatus sucuriscan-hstatus-2">
20
+ <span>Core Files Marked As Fixed: %%SUCURI.CoreFiles.CacheSize%% of data</span>
21
+ <form action="%%SUCURI.URL.Settings%%#scanner" method="post">
22
+ <input type="hidden" name="sucuriscan_page_nonce" value="%%SUCURI.PageNonce%%" />
23
+ <input type="hidden" name="sucuriscan_corefiles_cache" value="1" />
24
+ <button type="submit" class="button-primary">Reset Cache</button>
25
+ </form>
26
+ </div>
27
+
28
+ <table class="wp-list-table widefat sucuriscan-table sucuriscan-%%SUCURI.CoreFiles.TableVisibility%%">
29
+ <thead>
30
+ <tr>
31
+ <th>Reason</th>
32
+ <th>Ignored At</th>
33
+ <th>Line</th>
34
+ </tr>
35
+ </thead>
36
+
37
+ <tbody>
38
+ %%%SUCURI.CoreFiles.IgnoredFiles%%%
39
+ </tbody>
40
+ </table>
41
+ </div>
42
+ </div>
inc/tpl/settings-corefiles-cache.snippet.tpl ADDED
@@ -0,0 +1,6 @@
1
+
2
+ <tr class="%%SUCURI.IgnoredFile.CssClass%% sucuriscan-corefiles-%%SUCURI.IgnoredFile.UniqueId%%">
3
+ <td><span class="sucuriscan-label sucuriscan-label-%%SUCURI.IgnoredFile.StatusType%%">%%SUCURI.IgnoredFile.StatusType%%</span></td>
4
+ <td>%%SUCURI.IgnoredFile.IgnoredAt%%</td>
5
+ <td><span class="sucuriscan-monospace sucuriscan-wraptext">%%SUCURI.IgnoredFile.FilePath%%</span></td>
6
+ </tr>
inc/tpl/settings-corefiles-language.html.tpl ADDED
@@ -0,0 +1,40 @@
1
+
2
+ <div class="postbox">
3
+ <h3>Core Integrity Checks - Language</h3>
4
+
5
+ <div class="inside">
6
+ <p>
7
+ The information necessary to check the integrity of the core files is obtained
8
+ from the official <a href="http://codex.wordpress.org/WordPress.org_API"
9
+ target="_blank">WordPress API</a> using an endpoint that returns the checksums
10
+ of all the files associated to a version number. By default the API returns the
11
+ checksums for the English installation, and there is an optional parameter named
12
+ locale that accepts a valid abbreviation for a supported language. If your website
13
+ was not installed using the English package please choose the appropriate language
14
+ below.
15
+ </p>
16
+
17
+ <p>
18
+ <strong>Note:</strong> Not all the international language codes are supported by
19
+ WordPress's API, you must expect incompatibilities with the results of the core
20
+ integrity checks, if you see files that are being flagged as added even when they
21
+ are part of the official releases, files that are being flagged as deleted even
22
+ when they are part of the official releases, and/or files that are being flagged
23
+ as modified even when their content has not been modified please consider to
24
+ select the English locale, if the false positives are persistent then fill a
25
+ ticket reporting the issue.
26
+ </p>
27
+
28
+ <form action="%%SUCURI.URL.Settings%%#scanner" method="post">
29
+ <input type="hidden" name="sucuriscan_page_nonce" value="%%SUCURI.PageNonce%%" />
30
+ <span class="sucuriscan-input-group">
31
+ <label>WordPress Locale:</label>
32
+ <select name="sucuriscan_set_language">
33
+ %%%SUCURI.Integrity.LanguageDropdown%%%
34
+ </select>
35
+ </span>
36
+ <button type="submit" class="button-primary">Proceed</button>
37
+ <em>(WordPress Locale %%SUCURI.Integrity.WordPressLocale%%)</em>
38
+ </form>
39
+ </div>
40
+ </div>
inc/tpl/settings-corefiles-status.html.tpl ADDED
@@ -0,0 +1,42 @@
1
+
2
+ <div class="postbox">
3
+ <h3>Core Integrity Checks</h3>
4
+
5
+ <div class="inside">
6
+ <p>
7
+ This tool allows you to scan the core directories searching for added, modified,
8
+ and deleted files, there is no need to touch any of these core files so any
9
+ inconsistency notified after the scan must be considered as a high severity
10
+ warning as it may be a sign that a malicious person got access to the website
11
+ and was able to add malicious code, modify files to inject malware, and/or delete
12
+ important parts of the project.
13
+ </p>
14
+
15
+ <div class="sucuriscan-inline-alert-info">
16
+ <p>
17
+ Note that this tool does not checks for malicious code, for that you have to
18
+ use the <a href="%%SUCURI.URL.Scanner%%">Malware Scanner</a> instead.
19
+ </p>
20
+ </div>
21
+
22
+ <p>
23
+ This tool detects changes in the project core files using a list of checksums
24
+ that WordPress provides via their official API service, if a file in the website
25
+ has a different checksum then the plugin displays a warning saying that the file
26
+ was modified. If the file is listed in the data provided by WordPress but does
27
+ not exists in the website then the plugin displays a warning saying that the
28
+ file was deleted. If the plugin finds a file in one of the core directories that
29
+ is not listed in the checksums then it displays a warning saying that the file
30
+ was added.
31
+ </p>
32
+
33
+ <div class="sucuriscan-hstatus sucuriscan-hstatus-%%SUCURI.Integrity.StatusNum%%">
34
+ <span>Core Integrity Checks are %%SUCURI.Integrity.Status%%</span>
35
+ <form action="%%SUCURI.URL.Settings%%#scanner" method="post">
36
+ <input type="hidden" name="sucuriscan_page_nonce" value="%%SUCURI.PageNonce%%" />
37
+ <input type="hidden" name="sucuriscan_scan_checksums" value="%%SUCURI.Integrity.SwitchValue%%" />
38
+ <button type="submit" class="button-primary %%SUCURI.Integrity.SwitchCssClass%%">%%SUCURI.Integrity.SwitchText%%</button>
39
+ </form>
40
+ </div>
41
+ </div>
42
+ </div>
inc/tpl/settings-general-apikey.html.tpl CHANGED
@@ -40,12 +40,22 @@
40
</p>
41
</div>
42
43
- <div class="sucuriscan-hstatus sucuriscan-hstatus-0 sucuriscan-%%SUCURI.APIKey.RecoverVisibility%%">
44
- <div class="sucuriscan-monospace">Plugin API Key: %%SUCURI.APIKey%%</div>
45
- <form action="%%SUCURI.URL.Settings%%" method="post">
46
- <input type="hidden" name="sucuriscan_page_nonce" value="%%SUCURI.PageNonce%%" />
47
- <button type="submit" name="sucuriscan_recover_key" class="button-primary">Recover</button>
48
- </form>
49
</div>
50
51
<div class="sucuriscan-hstatus sucuriscan-hstatus-1 sucuriscan-%%SUCURI.APIKey.RemoveVisibility%%">
40
</p>
41
</div>
42
43
+ <div class="sucuriscan-%%SUCURI.APIKey.RecoverVisibility%%">
44
+ <div class="sucuriscan-hstatus sucuriscan-hstatus-0">
45
+ <div class="sucuriscan-monospace">Plugin API Key: %%SUCURI.APIKey%%</div>
46
+ <form action="%%SUCURI.URL.Settings%%" method="post">
47
+ <input type="hidden" name="sucuriscan_page_nonce" value="%%SUCURI.PageNonce%%" />
48
+ <button type="submit" name="sucuriscan_recover_key" class="button-primary">Recover Via E-mail</button>
49
+ </form>
50
+ </div>
51
+
52
+ <p>
53
+ If you don't have access to the e-mail address used to generate the
54
+ API key, but have a copy of the key at hand you can <a target="_self"
55
+ href="%%SUCURI.URL.Settings%%&recover">click this link</a> to activate
56
+ the plugin manually. Be aware that if the key is invalid the plugin will
57
+ delete it afterwards.
58
+ </p>
59
</div>
60
61
<div class="sucuriscan-hstatus sucuriscan-hstatus-1 sucuriscan-%%SUCURI.APIKey.RemoveVisibility%%">
inc/tpl/settings-general-datastorage.html.tpl CHANGED
@@ -32,6 +32,14 @@
32
</p>
33
</div>
34
35
<div class="sucuriscan-hstatus sucuriscan-hstatus-2">
36
<span class="sucuriscan-monospace">%%SUCURI.DatastorePath%%</span>
37
</div>
32
</p>
33
</div>
34
35
+ <div class="sucuriscan-inline-alert-info">
36
+ <p>
37
+ An alternative to this setting you can opt to set the directory path from the
38
+ WordPress configuration file using a constant named <em>"SUCURI_DATA_STORAGE"</em>
39
+ it must contain a valid and existing absolute directory path.
40
+ </p>
41
+ </div>
42
+
43
<div class="sucuriscan-hstatus sucuriscan-hstatus-2">
44
<span class="sucuriscan-monospace">%%SUCURI.DatastorePath%%</span>
45
</div>
inc/tpl/settings-general.html.tpl CHANGED
@@ -1,5 +1,5 @@
1
2
- <div id="poststuff" class="sucuriscan-general-settings">
3
%%%SUCURI.SettingsSection.ApiKey%%%
4
5
%%%SUCURI.SettingsSection.DataStorage%%%
1
2
+ <div class="sucuriscan-panelstuff sucuriscan-general-settings">
3
%%%SUCURI.SettingsSection.ApiKey%%%
4
5
%%%SUCURI.SettingsSection.DataStorage%%%
inc/tpl/settings-heartbeat.html.tpl CHANGED
@@ -1,5 +1,5 @@
1
2
- <div id="poststuff">
3
<div class="postbox sucuriscan-border sucuriscan-table-description">
4
<h3>Heartbeat</h3>
5
1
2
+ <div class="sucuriscan-panelstuff">
3
<div class="postbox sucuriscan-border sucuriscan-table-description">
4
<h3>Heartbeat</h3>
5
inc/tpl/settings-ignorerules.html.tpl CHANGED
@@ -1,5 +1,5 @@
1
2
- <div id="poststuff">
3
<div class="postbox sucuriscan-border sucuriscan-border-bad sucuriscan-%%SUCURI.IgnoreRules.MessageVisibility%%">
4
<h3>Ignore Alerts</h3>
5
@@ -15,7 +15,7 @@
15
</div>
16
</div>
17
18
- <div id="poststuff">
19
<div class="postbox sucuriscan-border sucuriscan-table-description sucuriscan-%%SUCURI.IgnoreRules.TableVisibility%%">
20
<h3>Ignore Alerts</h3>
21
1
2
+ <div class="sucuriscan-panelstuff">
3
<div class="postbox sucuriscan-border sucuriscan-border-bad sucuriscan-%%SUCURI.IgnoreRules.MessageVisibility%%">
4
<h3>Ignore Alerts</h3>
5
15
</div>
16
</div>
17
18
+ <div class="sucuriscan-panelstuff">
19
<div class="postbox sucuriscan-border sucuriscan-table-description sucuriscan-%%SUCURI.IgnoreRules.TableVisibility%%">
20
<h3>Ignore Alerts</h3>
21
inc/tpl/settings-ignorescan-files.html.tpl ADDED
@@ -0,0 +1,20 @@
1
+
2
+ <div class="postbox">
3
+ <h3>Ignore Scanning for Files</h3>
4
+
5
+ <div class="inside">
6
+ <p>
7
+ By default the file system scanner ignore the directories listed here. You can
8
+ use this panel to insert individual files or symbolic links in the list using
9
+ their absolute path. By aware that the form only accepts valid file paths,
10
+ wildcards are not allowed to prevent the misuse of this tool.
11
+ </p>
12
+
13
+ <form action="%%SUCURI.URL.Settings%%#ignorescanning" method="post">
14
+ <input type="hidden" name="sucuriscan_page_nonce" value="%%SUCURI.PageNonce%%" />
15
+ <input type="hidden" name="sucuriscan_ignorescanning_action" value="ignore" />
16
+ <input type="text" name="sucuriscan_ignorescanning_file" placeholder="e.g. /private/cert.crt" />
17
+ <button type="submit" class="button button-primary">Proceed</button>
18
+ </form>
19
+ </div>
20
+ </div>
inc/tpl/settings-ignorescan-folders.html.tpl ADDED
@@ -0,0 +1,59 @@
1
+
2
+ <div class="postbox">
3
+ <h3>Ignore Scanning for Folders</h3>
4
+
5
+ <div class="inside">
6
+ <p>
7
+ Selecting one or more directories from the list will force the plugin to ignore
8
+ the monitoring of the sub-folders and files inside these directories during the
9
+ execution of any of the file system scanners. This will applies to all the scanners
10
+ <em>(general scanner, modified files, integrity checks, error logs)</em>.
11
+ </p>
12
+
13
+ <script type="text/javascript">
14
+ jQuery(function($){
15
+ $('.sucuriscan-ignorescanning tbody').html(
16
+ '<tr><td colspan="3"><span>Loading <em>(may take '
17
+ + 'several seconds)</em>...</span></td></tr>'
18
+ );
19
+ $.post('%%SUCURI.AjaxURL.Settings%%', {
20
+ action: 'sucuriscan_settings_ajax',
21
+ sucuriscan_page_nonce: '%%SUCURI.PageNonce%%',
22
+ form_action: 'get_ignored_files',
23
+ }, function(data){
24
+ $('.sucuriscan-ignorescanning tbody').html(data);
25
+ });
26
+ });
27
+ </script>
28
+
29
+ <form action="%%SUCURI.URL.Settings%%#ignorescanning" method="post">
30
+ <input type="hidden" name="sucuriscan_page_nonce" value="%%SUCURI.PageNonce%%" />
31
+
32
+ <table class="wp-list-table widefat sucuriscan-table sucuriscan-ignorescanning">
33
+ <thead>
34
+ <th class="manage-column column-cb check-column">
35
+ <label class="screen-reader-text" for="cb-select-all-1">Select All</label>
36
+ <input id="cb-select-all-1" type="checkbox">
37
+ </th>
38
+ <th class="manage-column">Directory or File Path</th>
39
+ <th class="manage-column">Status</th>
40
+ </thead>
41
+
42
+ <tbody>
43
+ </tbody>
44
+ </table>
45
+
46
+ <div class="sucuriscan-recipient-form">
47
+ <label>
48
+ <select name="sucuriscan_ignorescanning_action">
49
+ <option value="">Choose action</option>
50
+ <option value="ignore">Ignore items</option>
51
+ <option value="unignore">Un-ignore items</option>
52
+ </select>
53
+ </label>
54
+
55
+ <button type="submit" class="button button-primary">Proceed</button>
56
+ </div>
57
+ </form>
58
+ </div>
59
+ </div>
inc/tpl/settings-ignorescan-status.html.tpl ADDED
@@ -0,0 +1,25 @@
1
+
2
+ <div class="postbox">
3
+ <h3>Ignore Scanning</h3>
4
+
5
+ <div class="inside">
6
+ <p>
7
+ If your project has too many directories and/or files it may cause the file
8
+ system scanners to fail, you may want to increase the maximum execution time of
9
+ the PHP scripts and the memory limit to allow the functions executed during the
10
+ file system scans to finish successfully. If you do not want or do not have
11
+ sufficient privileges to increase these values then you may want to skip some
12
+ directories, this will force the plugin to ignore the files inside these
13
+ folders.
14
+ </p>
15
+
16
+ <div class="sucuriscan-hstatus sucuriscan-hstatus-2">
17
+ <span>Ignore Scanning is %%SUCURI.IgnoreScan.Status%%</span>
18
+ <form action="%%SUCURI.URL.Settings%%#ignorescanning" method="post">
19
+ <input type="hidden" name="sucuriscan_page_nonce" value="%%SUCURI.PageNonce%%" />
20
+ <input type="hidden" name="sucuriscan_ignore_scanning" value="%%SUCURI.IgnoreScan.SwitchValue%%" />
21
+ <button type="submit" class="button-primary %%SUCURI.IgnoreScan.SwitchCssClass%%">%%SUCURI.IgnoreScan.SwitchText%%</button>
22
+ </form>
23
+ </div>
24
+ </div>
25
+ </div>
inc/tpl/settings-ignorescan.html.tpl ADDED
@@ -0,0 +1,8 @@
1
+
2
+ <div class="sucuriscan-panelstuff sucuriscan-general-scanner">
3
+ %%%SUCURI.SettingsSection.IgnoreScanStatus%%%
4
+
5
+ %%%SUCURI.SettingsSection.IgnoreScanFiles%%%
6
+
7
+ %%%SUCURI.SettingsSection.IgnoreScanFolders%%%
8
+ </div>
inc/tpl/settings-ignorescan.snippet.tpl ADDED
@@ -0,0 +1,8 @@
1
+
2
+ <tr class="%%SUCURI.IgnoreScan.CssClass%%">
3
+ <td class="check-column">
4
+ <input type="checkbox" name="sucuriscan_ignorescanning_dirs[]" value="%%SUCURI.IgnoreScan.DirectoryPath%%" />
5
+ </td>
6
+ <td><span class="sucuriscan-monospace sucuriscan-wraptext">%%SUCURI.IgnoreScan.DirectoryPath%%</span></td>
7
+ <td><span class="sucuriscan-label-%%SUCURI.IgnoreScan.IgnoredCssClass%%">%%SUCURI.IgnoreScan.IgnoredAtText%%</span></td>
8
+ </tr>
inc/tpl/settings-ignorescanning.html.tpl DELETED
@@ -1,95 +0,0 @@
1
-
2
- <div id="poststuff">
3
- <div class="postbox sucuriscan-border sucuriscan-table-description">
4
- <h3>Ignore Scanning</h3>
5
-
6
- <div class="inside">
7
- <p>
8
- If your project has too many directories and/or files it may cause the file
9
- system scanners to fail, you may want to increase the maximum execution time of
10
- the PHP scripts and the memory limit to allow the functions executed during the
11
- file system scans to finish successfully. If you do not want or do not have
12
- sufficient privileges to increase these values then you may want to skip some
13
- directories, this will force the plugin to ignore the files inside these
14
- folders.
15
- </p>
16
-
17
- <div class="sucuriscan-inline-alert-warning sucuriscan-%%SUCURI.IgnoreScanning.DisabledVisibility%%">
18
- <p>
19
- The feature to ignore directories during the file system scans is disabled, go
20
- to the <em>Scanner Settings</em> panel to enable it.
21
- </p>
22
- </div>
23
-
24
- <div class="sucuriscan-inline-alert-info sucuriscan-ignore-file">
25
- <p>
26
- You can also force the plugin to ignore specific files during the file system
27
- scans using this form, add the absolute path of the file or symbolic link that
28
- you want to skip. <strong>Note.</strong> You can not use wildcards to select
29
- multiple files following a pattern in their names, this is intentional to
30
- prevent the misuse of this tool.
31
- </p>
32
-
33
- <form action="%%SUCURI.URL.Settings%%#ignorescanning" method="post">
34
- <input type="hidden" name="sucuriscan_page_nonce" value="%%SUCURI.PageNonce%%" />
35
- <input type="hidden" name="sucuriscan_ignorescanning_action" value="ignore" />
36
- <input type="text" name="sucuriscan_ignorescanning_file"
37
- placeholder="e.g. /public_html/private/ssl_certificate.crt"
38
- class="sucuriscan-ignore-file-input" />
39
- <button type="submit" class="button button-primary
40
- sucuriscan-ignore-file-button">Proceed</button>
41
- </form>
42
- </div>
43
- </div>
44
- </div>
45
- </div>
46
-
47
- <form action="%%SUCURI.URL.Settings%%#ignorescanning" method="post">
48
- <input type="hidden" name="sucuriscan_page_nonce" value="%%SUCURI.PageNonce%%" />
49
-
50
- <table class="wp-list-table widefat sucuriscan-table sucuriscan-settings-ignorescanning">
51
- <thead>
52
- <th class="manage-column column-cb check-column">
53
- <label class="screen-reader-text" for="cb-select-all-1">Select All</label>
54
- <input id="cb-select-all-1" type="checkbox">
55
- </th>
56
- <th class="manage-column">&nbsp;</th>
57
- <th class="manage-column">Directory</th>
58
- <th class="manage-column" width="200">Ignored At</th>
59
- </thead>
60
-
61
- <tbody>
62
- %%%SUCURI.IgnoreScanning.ResourceList%%%
63
-
64
- <tr class="sucuriscan-%%SUCURI.IgnoreScanning.NoItemsVisibility%%">
65
- <td colspan="4">
66
- <em>List is empty.</em>
67
- </td>
68
- </tr>
69
- </tbody>
70
-
71
- <tfoot>
72
- <tr>
73
- <td colspan="4">
74
- <p>
75
- Selecting one or more directories from the list will force the plugin to ignore
76
- the monitoring of the sub-folders and files inside these directories during the
77
- execution of any of the file system scanners. This will applies to all the
78
- scanners <em>(general scanner, modified files, integrity checks, error
79
- logs)</em>.
80
- </p>
81
-
82
- <label>
83
- <select name="sucuriscan_ignorescanning_action">
84
- <option value="">Choose action</option>
85
- <option value="ignore">Ignore items</option>
86
- <option value="unignore">Un-ignore items</option>
87
- </select>
88
- </label>
89
-
90
- <button type="submit" class="button button-primary">Send action</button>
91
- </td>
92
- </tr>
93
- </tfoot>
94
- </table>
95
- </form>
inc/tpl/settings-ignorescanning.snippet.tpl DELETED
@@ -1,9 +0,0 @@
1
-
2
- <tr class="%%SUCURI.IgnoreScanning.CssClass%%">
3
- <td class="check-column">
4
- <input type="checkbox" name="sucuriscan_ignorescanning_dirs[]" value="%%SUCURI.IgnoreScanning.DirectoryPath%%" />
5
- </td>
6
- <td><span class="sucuriscan-label-%%SUCURI.IgnoreScanning.IgnoredCssClass%%">%%SUCURI.IgnoreScanning.IgnoredAtText%%</span></td>
7
- <td><span class="sucuriscan-monospace sucuriscan-wraptext">%%SUCURI.IgnoreScanning.DirectoryPath%%</span></td>
8
- <td>%%SUCURI.IgnoreScanning.IgnoredAt%%</td>
9
- </tr>
inc/tpl/settings-scanner.html.tpl CHANGED
@@ -1,5 +1,5 @@
1
2
- <div id="poststuff">
3
<div class="postbox sucuriscan-border sucuriscan-table-description">
4
<h3>Scanner Settings</h3>
5
@@ -91,30 +91,6 @@
91
</td>
92
</tr>
93
94
- <tr class="alternate">
95
- <td>FS Scanner, Core integrity checks</td>
96
- <td>%%SUCURI.ScanChecksumsStatus%%</td>
97
- <td class="td-with-button">
98
- <form action="%%SUCURI.URL.Settings%%#scanner" method="post">
99
- <input type="hidden" name="sucuriscan_page_nonce" value="%%SUCURI.PageNonce%%" />
100
- <input type="hidden" name="sucuriscan_scan_checksums" value="%%SUCURI.ScanChecksumsSwitchValue%%" />
101
- <button type="submit" class="button-primary %%SUCURI.ScanChecksumsSwitchCssClass%%">%%SUCURI.ScanChecksumsSwitchText%%</button>
102
- </form>
103
- </td>
104
- </tr>
105
-
106
- <tr>
107
- <td>FS Scanner, Ignore scanning</td>
108
- <td>%%SUCURI.IgnoreScanningStatus%%</td>
109
- <td class="td-with-button">
110
- <form action="%%SUCURI.URL.Settings%%#scanner" method="post">
111
- <input type="hidden" name="sucuriscan_page_nonce" value="%%SUCURI.PageNonce%%" />
112
- <input type="hidden" name="sucuriscan_ignore_scanning" value="%%SUCURI.IgnoreScanningSwitchValue%%" />
113
- <button type="submit" class="button-primary %%SUCURI.IgnoreScanningSwitchCssClass%%">%%SUCURI.IgnoreScanningSwitchText%%</button>
114
- </form>
115
- </td>
116
- </tr>
117
-
118
<tr class="alternate">
119
<td>FS Scanner, Error log files</td>
120
<td>%%SUCURI.ScanErrorlogsStatus%%</td>
@@ -127,66 +103,6 @@
127
</td>
128
</tr>
129
130
- <tr>
131
- <td>SiteCheck scanner</td>
132
- <td>%%SUCURI.SiteCheckScannerStatus%%</td>
133
- <td class="td-with-button">
134
- <form action="%%SUCURI.URL.Settings%%#scanner" method="post">
135
- <input type="hidden" name="sucuriscan_page_nonce" value="%%SUCURI.PageNonce%%" />
136
- <input type="hidden" name="sucuriscan_sitecheck_scanner" value="%%SUCURI.SiteCheckScannerSwitchValue%%" />
137
- <button type="submit" class="button-primary %%SUCURI.SiteCheckScannerSwitchCssClass%%">%%SUCURI.SiteCheckScannerSwitchText%%</button>
138
- </form>
139
- </td>
140
- </tr>
141
-
142
- <tr class="alternate">
143
- <td>SiteCheck counter</td>
144
- <td>%%SUCURI.SiteCheckCounter%% scans so far</td>
145
- <td class="td-with-button">
146
- <form action="%%SUCURI.URL.Scanner%%" method="post">
147
- <input type="hidden" name="sucuriscan_page_nonce" value="%%SUCURI.PageNonce%%" />
148
- <input type="hidden" name="sucuriscan_malware_scan" value="1" />
149
- <button type="submit" class="button-primary">Force scan</button>
150
- </form>
151
- </td>
152
- </tr>
153
-
154
- <tr>
155
- <td>Analyze error logs</td>
156
- <td>%%SUCURI.ParseErrorLogsStatus%%</td>
157
- <td class="td-with-button">
158
- <form action="%%SUCURI.URL.Settings%%#scanner" method="post">
159
- <input type="hidden" name="sucuriscan_page_nonce" value="%%SUCURI.PageNonce%%" />
160
- <input type="hidden" name="sucuriscan_parse_errorlogs" value="%%SUCURI.ParseErrorLogsSwitchValue%%" />
161
- <button type="submit" class="button-primary %%SUCURI.ParseErrorLogsSwitchCssClass%%">%%SUCURI.ParseErrorLogsSwitchText%%</button>
162
- </form>
163
- </td>
164
- </tr>
165
-
166
- <tr class="alternate">
167
- <td>Error logs limit</td>
168
- <td>Analyze last %%SUCURI.ErrorLogsLimit%% logs</td>
169
- <td class="td-with-button">
170
- <form action="%%SUCURI.URL.Settings%%#scanner" method="post">
171
- <input type="hidden" name="sucuriscan_page_nonce" value="%%SUCURI.PageNonce%%" />
172
- <input type="text" name="sucuriscan_errorlogs_limit" placeholder="Number of lines to analyze" class="input-text" />
173
- <button type="submit" class="button-primary">Change</button>
174
- </form>
175
- </td>
176
- </tr>
177
-
178
- <tr>
179
- <td>Reset core integrity logs</td>
180
- <td><span class="sucuriscan-monospace">%%SUCURI.IntegrityLogLife%% of data</span></td>
181
- <td class="td-with-button">
182
- <form action="%%SUCURI.URL.Settings%%#scanner" method="post">
183
- <input type="hidden" name="sucuriscan_page_nonce" value="%%SUCURI.PageNonce%%" />
184
- <input type="hidden" name="sucuriscan_reset_logfile" value="integrity" />
185
- <button type="submit" class="button-primary">Reset logs</button>
186
- </form>
187
- </td>
188
- </tr>
189
-
190
<tr class="alternate">
191
<td>Reset last login logs</td>
192
<td><span class="sucuriscan-monospace">%%SUCURI.LastLoginLogLife%% of data</span></td>
@@ -211,17 +127,19 @@
211
</td>
212
</tr>
213
214
- <tr class="alternate">
215
- <td>Reset sitecheck logs</td>
216
- <td><span class="sucuriscan-monospace">%%SUCURI.SiteCheckLogLife%% of data</span></td>
217
- <td class="td-with-button">
218
- <form action="%%SUCURI.URL.Settings%%#scanner" method="post">
219
- <input type="hidden" name="sucuriscan_page_nonce" value="%%SUCURI.PageNonce%%" />
220
- <input type="hidden" name="sucuriscan_reset_logfile" value="sitecheck" />
221
- <button type="submit" class="button-primary">Reset logs</button>
222
- </form>
223
- </td>
224
- </tr>
225
-
226
</tbody>
227
</table>
1
2
+ <div class="sucuriscan-panelstuff">
3
<div class="postbox sucuriscan-border sucuriscan-table-description">
4
<h3>Scanner Settings</h3>
5
91
</td>
92
</tr>
93
94
<tr class="alternate">
95
<td>FS Scanner, Error log files</td>
96
<td>%%SUCURI.ScanErrorlogsStatus%%</td>
103
</td>
104
</tr>
105