iThemes Security (formerly Better WP Security) - Version 5.6.3

Version Description

  • Bug Fix: Removed the "Wget" user agent from the Hack Repair blacklist as it can block wp-cron jobs on some hosts.
    • Bug Fix: Fixed error "PHP message: PHP Fatal error: 'continue' not in the 'loop' or 'switch' context".
    • Enhancement: Added new Daily Digest email design.
Download this release

Release Info

Developer chrisjean
Plugin Icon 128x128 iThemes Security (formerly Better WP Security)
Version 5.6.3
Comparing to
See all releases

Code changes from version 5.6.2 to 5.6.3

better-wp-security.php CHANGED
@@ -6,7 +6,7 @@
6
  * Description: Take the guesswork out of WordPress security. iThemes Security offers 30+ ways to lock down WordPress in an easy-to-use WordPress security plugin.
7
  * Author: iThemes
8
  * Author URI: https://ithemes.com
9
- * Version: 5.6.2
10
  * Text Domain: better-wp-security
11
  * Network: True
12
  * License: GPLv2
6
  * Description: Take the guesswork out of WordPress security. iThemes Security offers 30+ ways to lock down WordPress in an easy-to-use WordPress security plugin.
7
  * Author: iThemes
8
  * Author URI: https://ithemes.com
9
+ * Version: 5.6.3
10
  * Text Domain: better-wp-security
11
  * Network: True
12
  * License: GPLv2
core/class-itsec-notify.php CHANGED
@@ -58,9 +58,6 @@ class ITSEC_Notify {
58
  * @return void
59
  */
60
  public function init() {
61
-
62
- global $itsec_globals, $itsec_lockout;
63
-
64
  if ( is_404() || ( ( ! defined( 'ITSEC_NOTIFY_USE_CRON' ) || false === ITSEC_NOTIFY_USE_CRON ) && get_site_transient( 'itsec_notification_running' ) !== false ) ) {
65
  return;
66
  }
@@ -69,120 +66,119 @@ class ITSEC_Notify {
69
  set_site_transient( 'itsec_notification_running', true, 3600 );
70
  }
71
 
72
- $messages = false;
73
- $has_lockouts = true; //assume a lockout has occured by default
74
 
75
- if ( isset( $this->queue['messages'] ) && sizeof( $this->queue['messages'] ) > 0 ) {
76
- $messages = $this->queue['messages'];
77
- }
78
 
79
- $host_count = sizeof( $itsec_lockout->get_lockouts( 'host', true ) );
80
- $user_count = sizeof( $itsec_lockout->get_lockouts( 'user', true ) );
 
 
 
 
 
 
 
81
 
82
- if ( $host_count == 0 && $user_count == 0 ) {
83
 
84
- $has_lockouts = false;
85
- $lockout_message = __( 'There have been no lockouts since the last email check.', 'better-wp-security' );
 
 
86
 
87
- } elseif ( $host_count === 0 && $user_count > 1 ) {
88
 
89
- $lockout_message = sprintf(
90
- '%s %s %s',
91
- __( 'There have been', 'better-wp-security' ),
92
- $user_count,
93
- __( 'users or usernames locked out for attempting to log in with incorrect credentials.', 'better-wp-security' )
94
- );
95
 
96
- } elseif ( $host_count === 0 && $user_count == 1 ) {
 
97
 
98
- $lockout_message = sprintf(
99
- '%s %s %s',
100
- __( 'There has been', 'better-wp-security' ),
101
- $user_count,
102
- __( 'user or username locked out for attempting to log in with incorrect credentials.', 'better-wp-security' )
103
- );
104
 
105
- } elseif ( $host_count == 1 && $user_count === 0 ) {
106
 
107
- $lockout_message = sprintf(
108
- '%s %s %s',
109
- __( 'There has been', 'better-wp-security' ),
110
- $host_count,
111
- __( 'host locked out.', 'better-wp-security' )
112
- );
113
 
114
- } elseif ( $host_count > 1 && $user_count === 0 ) {
115
 
116
- $lockout_message = sprintf(
117
- '%s %s %s',
118
- __( 'There have been', 'better-wp-security' ),
119
- $host_count,
120
- __( 'hosts locked out.', 'better-wp-security' )
121
- );
122
 
123
- } else {
 
124
 
125
- $lockout_message = sprintf(
126
- '%s %s %s %s %s %s %s',
127
- __( 'There have been', 'better-wp-security' ),
128
- $user_count + $host_count,
129
- __( 'lockout(s) including', 'better-wp-security' ),
130
- $user_count,
131
- __( 'user(s) and', 'better-wp-security' ),
132
- $host_count,
133
- __( 'host(s) locked out of your site.', 'better-wp-security' )
134
- );
135
 
 
 
 
 
136
  }
137
 
138
- if ( $has_lockouts !== false || $messages !== false ) {
139
 
140
- $module_message = '';
 
 
 
 
141
 
142
- if ( is_array( $messages ) ) {
 
 
143
 
144
- foreach ( $messages as $message ) {
145
 
146
- if ( is_string( $message ) ) {
147
- $module_message .= '<p>' . $message . '</p>';
148
- }
149
 
150
- }
151
-
152
- }
153
 
154
- $body = sprintf(
155
- '<p>%s,</p><p>%s <a href="%s">%s</a></p><p><strong>%s: </strong>%s</p>%s<p>%s %s</p><p>%s <a href="%s">%s</a>.</p>',
156
- __( 'Dear Site Admin', 'better-wp-security' ),
157
- __( 'The following is a summary of security related activity on your site. For details please visit', 'better-wp-security' ),
158
- wp_login_url( ITSEC_Core::get_logs_page_url() ),
159
- __( 'the security logs', 'better-wp-security' ),
160
- __( 'Lockouts', 'better-wp-security' ),
161
- $lockout_message,
162
- $module_message,
163
- __( 'This email was generated automatically by' ),
164
- $itsec_globals['plugin_name'],
165
- __( 'To change your email preferences please visit', 'better-wp-security' ),
166
- wp_login_url( ITSEC_Core::get_settings_page_url() ),
167
- __( 'the plugin settings', 'better-wp-security' )
168
- );
169
-
170
- //Setup the remainder of the email
171
- $subject = '[' . get_option( 'siteurl' ) . '] ' . __( 'Daily Security Digest', 'better-wp-security' );
172
- $subject = apply_filters( 'itsec_lockout_email_subject', $subject );
173
- $headers = 'From: ' . get_bloginfo( 'name' ) . ' <' . get_option( 'admin_email' ) . '>' . "\r\n";
174
-
175
- $this->send_mail( $subject, $body, $headers );
176
 
 
 
 
177
  }
178
 
 
179
  $this->queue = array(
180
- 'last_sent' => $itsec_globals['current_time_gmt'],
181
  'messages' => array(),
182
  );
183
 
184
  update_site_option( 'itsec_message_queue', $this->queue );
185
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
186
  }
187
 
188
  /**
@@ -190,7 +186,6 @@ class ITSEC_Notify {
190
  *
191
  * @since 4.5
192
  *
193
- * @param int $type 1 for lockout or 2 for custom message
194
  * @param null|array $body Custom message information to send
195
  *
196
  * @return bool whether the message was successfully enqueue or sent
58
  * @return void
59
  */
60
  public function init() {
 
 
 
61
  if ( is_404() || ( ( ! defined( 'ITSEC_NOTIFY_USE_CRON' ) || false === ITSEC_NOTIFY_USE_CRON ) && get_site_transient( 'itsec_notification_running' ) !== false ) ) {
62
  return;
63
  }
66
  set_site_transient( 'itsec_notification_running', true, 3600 );
67
  }
68
 
 
 
69
 
70
+ return $this->send_daily_digest();
71
+ }
 
72
 
73
+ /**
74
+ * Send the daily digest email.
75
+ *
76
+ * @since 2.6.0
77
+ *
78
+ * @return
79
+ */
80
+ public function send_daily_digest() {
81
+ global $itsec_lockout;
82
 
 
83
 
84
+ require_once( ITSEC_Core::get_core_dir() . 'lib/class-itsec-mailer.php' );
85
+ $mail = new ITSEC_Mail();
86
+ $mail->add_header( esc_html__( 'Daily Security Digest', 'better-wp-security' ), sprintf( wp_kses( __( 'Your Daily Security Digest for <b>%s</b>', 'better-wp-security' ), array( 'b' => array() ) ), date_i18n( get_option( 'date_format' ) ) ) );
87
+ $mail->add_info_box( sprintf( wp_kses( __( 'The following is a summary of security related activity on your site: <b>%s</b>', 'better-wp-security' ), array( 'b' => array() ) ), get_option( 'siteurl' ) ) );
88
 
 
89
 
90
+ $mail->add_section_heading( esc_html__( 'Lockouts', 'better-wp-security' ), 'lock' );
 
 
 
 
 
91
 
92
+ $host_count = sizeof( $itsec_lockout->get_lockouts( 'host', true ) );
93
+ $user_count = sizeof( $itsec_lockout->get_lockouts( 'user', true ) );
94
 
95
+ if ( $host_count > 0 || $user_count > 0 ) {
96
+ $mail->add_lockouts_summary( 2, 1 );
97
+ } else {
98
+ $mail->add_text( esc_html__( 'No lockouts since the last email check.', 'better-wp-security' ) );
99
+ }
 
100
 
 
101
 
102
+ if ( is_array( $this->queue ) && ! empty( $this->queue['messages'] ) && is_array( $this->queue['messages'] ) ) {
103
+ if ( in_array( 'file-change', $this->queue['messages'] ) ) {
104
+ $mail->add_section_heading( esc_html__( 'File Changes', 'better-wp-security' ), 'folder' );
105
+ $mail->add_text( esc_html__( 'File changes detected on the site.', 'better-wp-security' ) );
106
+ }
 
107
 
108
+ $messages = array();
109
 
110
+ foreach ( $this->queue['messages'] as $message ) {
111
+ if ( 'file-change' === $message ) {
112
+ continue;
113
+ }
 
 
114
 
115
+ $messages[] = $message;
116
+ }
117
 
118
+ if ( ! empty( $messages ) ) {
119
+ $mail->add_section_heading( esc_html__( 'Messages', 'better-wp-security' ), 'message' );
 
 
 
 
 
 
 
 
120
 
121
+ foreach ( $messages as $message ) {
122
+ $mail->add_text( $message );
123
+ }
124
+ }
125
  }
126
 
 
127
 
128
+ $mail->add_details_box( sprintf( wp_kses( __( 'For more details, <a href="%s"><b>visit your security logs</b></a>', 'better-wp-security' ), array( 'a' => array( 'href' => array() ), 'b' => array() ) ), ITSEC_Core::get_logs_page_url() ) );
129
+ $mail->add_divider();
130
+ $mail->add_large_text( esc_html__( 'Is your site as secure as it could be?', 'better-wp-security' ) );
131
+ $mail->add_text( esc_html__( 'Ensure your site is using recommended settings and features with a security check.', 'better-wp-security' ) );
132
+ $mail->add_button( esc_html__( 'Run a Security Check ✓', 'better-wp-security' ), ITSEC_Core::get_security_check_page_url() );
133
 
134
+ if ( defined( 'ITSEC_DEBUG' ) && true === ITSEC_DEBUG ) {
135
+ $mail->add_text( sprintf( esc_html__( 'Debug info (source page): %s', 'better-wp-security' ), esc_url( $_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"] ) ) );
136
+ }
137
 
138
+ $mail->add_footer();
139
 
 
 
 
140
 
141
+ $raw_recipients = ITSEC_Modules::get_setting( 'global', 'notification_email' );
142
+ $recipients = array();
 
143
 
144
+ foreach ( $raw_recipients as $recipient ) {
145
+ $recipient = trim( $recipient );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
146
 
147
+ if ( is_email( $recipient ) ) {
148
+ $recipients[] = $recipient;
149
+ }
150
  }
151
 
152
+
153
  $this->queue = array(
154
+ 'last_sent' => ITSEC_Core::get_current_time_gmt(),
155
  'messages' => array(),
156
  );
157
 
158
  update_site_option( 'itsec_message_queue', $this->queue );
159
 
160
+
161
+ $subject = sprintf( esc_html__( '[%s] Daily Security Digest', 'better-wp-security' ), esc_url( get_option( 'siteurl' ) ) );
162
+
163
+ return $mail->send( $recipients, $subject );
164
+ }
165
+
166
+ /**
167
+ * Used by the File Change Detection module to tell the notification system about found file changes.
168
+ *
169
+ * @since 2.6.0
170
+ *
171
+ * @return null
172
+ */
173
+ public function register_file_change() {
174
+ // Until a better system can be devised, use the message queue to store this flag.
175
+
176
+ if ( in_array( 'file-change', $this->queue['messages'] ) ) {
177
+ return;
178
+ }
179
+
180
+ $this->queue['messages'][] = 'file-change';
181
+ update_site_option( 'itsec_message_queue', $this->queue );
182
  }
183
 
184
  /**
186
  *
187
  * @since 4.5
188
  *
 
189
  * @param null|array $body Custom message information to send
190
  *
191
  * @return bool whether the message was successfully enqueue or sent
core/history.txt CHANGED
@@ -429,3 +429,8 @@
429
  Security Fix: Updated log output to prevent specific kinds of logged requests from displaying without sanitization. Thanks to Slavco Mihajloski for contacting us about this issue.
430
  Bug Fix: Corrected a settings description typo in Global Settings.
431
  Bug Fix: Fixed bug that could result in issues authenticating over XML-RPC when the WordPress Tweaks > Multiple Authentication Attempts per XML-RPC Request setting is set to "Block".
 
 
 
 
 
429
  Security Fix: Updated log output to prevent specific kinds of logged requests from displaying without sanitization. Thanks to Slavco Mihajloski for contacting us about this issue.
430
  Bug Fix: Corrected a settings description typo in Global Settings.
431
  Bug Fix: Fixed bug that could result in issues authenticating over XML-RPC when the WordPress Tweaks > Multiple Authentication Attempts per XML-RPC Request setting is set to "Block".
432
+ 2.5.7 - 2016-10-10 - Chris Jean
433
+ Bug Fix: Removed the "Wget" user agent from the Hack Repair blacklist as it can block wp-cron jobs on some hosts.
434
+ Enhancement: Added new Daily Digest email design.
435
+ 2.5.8 - 2016-10-10 - Chris Jean
436
+ Bug Fix: Fixed error "PHP message: PHP Fatal error: 'continue' not in the 'loop' or 'switch' context".
core/lib/class-itsec-mailer.php ADDED
@@ -0,0 +1,153 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ final class ITSEC_Mail {
4
+ private $content = '';
5
+ private $template_path = '';
6
+
7
+ public function __construct() {
8
+ $this->template_path = dirname( __FILE__ ) . '/mail-templates/';
9
+ }
10
+
11
+ public function add_header( $title, $banner_title ) {
12
+ $header = $this->get_template( 'header.html' );
13
+
14
+ $replacements = array(
15
+ 'lang' => esc_attr( get_bloginfo( 'language' ) ),
16
+ 'charset' => esc_attr( get_bloginfo( 'charset' ) ),
17
+ 'title_tag' => $title,
18
+ 'banner_title' => $banner_title,
19
+ 'title' => $title,
20
+ );
21
+
22
+ $this->content .= $this->replace_all( $header, $replacements );
23
+ }
24
+
25
+ private function replace( $content, $variable, $value ) {
26
+ return preg_replace( '/{{ \$' . preg_quote( $variable, '/' ) . ' }}/', $value, $content );
27
+ }
28
+
29
+ private function replace_all( $content, $replacements ) {
30
+ foreach ( $replacements as $variable => $value ) {
31
+ $content = preg_replace( '/{{ \$' . preg_quote( $variable, '/' ) . ' }}/', $value, $content );
32
+ }
33
+
34
+ return $content;
35
+ }
36
+
37
+ public function add_footer() {
38
+ $footer = '';
39
+
40
+ if ( ! ITSEC_Core::is_pro() ) {
41
+ $callout = $this->get_template( 'pro-callout.html' );
42
+
43
+ $replacements = array(
44
+ 'two_factor' => esc_html__( 'Want two-factor authentication, scheduled malware scanning, ticketed support and more?', 'better-wp-security' ),
45
+ 'get_pro' => esc_html__( 'Get iThemes Security Pro', 'better-wp-security' ),
46
+ 'why_pro' => sprintf( wp_kses( __( 'Why go Pro? <a href="%s">Check out the Free/Pro comparison chart.</a>', 'better-wp-security' ), array( 'a' => array( 'href' => array() ) ) ), esc_url( 'https://ithemes.com/security/why-go-pro/' ) ),
47
+ );
48
+
49
+ $footer .= $this->replace_all( $callout, $replacements );
50
+ }
51
+
52
+ $footer .= $this->get_template( 'footer.html' );
53
+
54
+ $replacements = array(
55
+ 'security_resources' => esc_html__( 'Security Resources', 'better-wp-security' ),
56
+ 'articles' => esc_html__( 'Articles', 'better-wp-security' ),
57
+ 'articles_content' => sprintf( wp_kses( __( 'Read the latest in WordPress Security news, tips, and updates on <a href="%s">iThemes Blog</a>.', 'better-wp-security' ), array( 'a' => array( 'href' => array() ) ) ), esc_url( 'https://ithemes.com/category/wordpress-security/' ) ),
58
+ 'tutorials' => esc_html__( 'Tutorials', 'better-wp-security' ),
59
+ 'tutorials_content' => sprintf( wp_kses( __( 'Make the most of iThemes Security features with our <a href="%s">free iThemes Security tutorials</a>.', 'better-wp-security' ), array( 'a' => array( 'href' => array() ) ) ), esc_url( 'https://ithemes.com/tutorial/category/ithemes-security/' ) ),
60
+ 'help_and_support' => esc_html__( 'Help & Support', 'better-wp-security' ),
61
+ 'documentation' => esc_html__( 'Documentation', 'better-wp-security' ),
62
+ 'documentation_content' => sprintf( wp_kses( __( 'Read iThemes Security documentation and Frequently Asked Questions on <a href="%s">the Codex</a>.', 'better-wp-security' ), array( 'a' => array( 'href' => array() ) ) ), esc_url( 'http://ithemes.com/codex/page/IThemes_Security' ) ),
63
+ 'support' => esc_html__( 'Support', 'better-wp-security' ),
64
+ 'pro' => esc_html__( 'Pro', 'better-wp-security' ),
65
+ 'support_content' => sprintf( wp_kses( __( 'Pro customers can contact <a href="%s">iThemes Helpdesk</a> for help. Our support team answers questions Monday – Friday, 8am – 5pm (CST).', 'better-wp-security' ), array( 'a' => array( 'href' => array() ) ) ), esc_url( 'https://members.ithemes.com/panel/helpdesk.php' ) ),
66
+ 'security_settings_link' => esc_url( ITSEC_Core::get_settings_page_url() ),
67
+ 'unsubscribe_link_text' => esc_html__( 'This email was generated by the iThemes Security plugin.', 'better-wp-security' ) . '<br>' . esc_html__( 'To unsubscribe from these updates, visit the Settings page in the iThemes Security plugin menu.', 'better-wp-security' ),
68
+ 'security_guide' => esc_html__( 'Free WordPress Security Guide', 'better-wp-security' ),
69
+ 'security_guide_content' => sprintf( wp_kses( __( 'Learn simple WordPress security tips — including 3 kinds of security your site needs and 4 best security practices for keeping your WordPress site safe with our <a href="%s">free guide</a>.', 'better-wp-security' ), array( 'a' => array( 'href' => array() ) ) ), esc_url( 'https://ithemes.com/publishing/wordpress-security/' ) ),
70
+
71
+ );
72
+
73
+ $footer = $this->replace_all( $footer, $replacements );
74
+
75
+ $this->content .= $footer;
76
+ }
77
+
78
+ public function add_text( $content ) {
79
+ $module = $this->get_template( 'text.html' );
80
+ $module = $this->replace( $module, 'content', $content );
81
+
82
+ $this->content .= $module;
83
+ }
84
+
85
+ public function add_divider() {
86
+ $this->content .= $this->get_template( 'divider.html' );
87
+ }
88
+
89
+ public function add_large_text( $content ) {
90
+ $module = $this->get_template( 'large-text.html' );
91
+ $module = $this->replace( $module, 'content', $content );
92
+
93
+ $this->content .= $module;
94
+ }
95
+
96
+ public function add_info_box( $content ) {
97
+ $module = $this->get_template( 'info-box.html' );
98
+ $module = $this->replace( $module, 'content', $content );
99
+
100
+ $this->content .= $module;
101
+ }
102
+
103
+ public function add_details_box( $content ) {
104
+ $module = $this->get_template( 'details-box.html' );
105
+ $module = $this->replace( $module, 'content', $content );
106
+
107
+ $this->content .= $module;
108
+ }
109
+
110
+ public function add_section_heading( $content, $icon_type ) {
111
+ $icon_url = "https://ithemes.com/email_images/itsec-icon-$icon_type.png";
112
+
113
+ $heading = $this->get_template( 'section-heading.html' );
114
+ $heading = $this->replace_all( $heading, compact( 'content', 'icon_url' ) );
115
+
116
+ $this->content .= $heading;
117
+ }
118
+
119
+ public function add_lockouts_summary( $user_count, $host_count ) {
120
+ $lockouts = $this->get_template( 'lockouts-table.html' );
121
+
122
+ $replacements = array(
123
+ 'users_text' => esc_html__( 'Users', 'better-wp-security' ),
124
+ 'hosts_text' => esc_html__( 'Hosts', 'better-wp-security' ),
125
+ 'user_count' => $user_count,
126
+ 'host_count' => $host_count,
127
+ );
128
+
129
+ $lockouts = $this->replace_all( $lockouts, $replacements );
130
+
131
+ $this->content .= $lockouts;
132
+ }
133
+
134
+ public function add_button( $link_text, $href ) {
135
+ $module = $this->get_template( 'module-button.html' );
136
+ $module = preg_replace( '/{{ \$href }}/', $href, $module );
137
+ $module = preg_replace( '/{{ \$link_text }}/', $link_text, $module );
138
+
139
+ $this->content .= $module;
140
+ }
141
+
142
+ public function get_content() {
143
+ return $this->content;
144
+ }
145
+
146
+ public function send( $to, $subject ) {
147
+ return wp_mail( $to, $subject, $this->content, array( 'Content-Type: text/html; charset=UTF-8' ) );
148
+ }
149
+
150
+ private function get_template( $template ) {
151
+ return file_get_contents( $this->template_path . $template );
152
+ }
153
+ }
core/lib/mail-templates/details-box.html ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <tr>
2
+ <td class="details-box-container" align="center" valign="top" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;padding-top: 20px;padding-bottom: 20px;">
3
+ <table border="0" cellpadding="0" cellspacing="0" width="100%" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">
4
+ <tr>
5
+ <td align="center" valign="top" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">
6
+ <table class="details-box container" border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;background-color: #E4EEF7;border: 1px solid #CDCECE;">
7
+ <tr>
8
+ <td class="section-padding" align="center" valign="top" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;padding-top: 20px;padding-right: 20px;padding-left: 20px;">
9
+ <table border="0" cellpadding="0" cellspacing="0" width="100%" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">
10
+ <tr>
11
+ <td class="container-cell" valign="top" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;color: #6A6A6A;font-family: Helvetica;font-size: 16px;line-height: 150%;text-align: center;padding-bottom: 20px;">
12
+ {{ $content }}
13
+ </td>
14
+ </tr>
15
+ </table>
16
+ </td>
17
+ </tr>
18
+ </table>
19
+ </td>
20
+ </tr>
21
+ </table>
22
+ </td>
23
+ </tr>
core/lib/mail-templates/divider.html ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <tr>
2
+ <td class="divider" align="center" valign="top" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">
3
+ <table border="0" cellpadding="0" cellspacing="0" width="100%" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">
4
+ <tr>
5
+ <td align="center" valign="top" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">
6
+ <table class="container" border="0" cellpadding="0" cellspacing="0" width="450" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">
7
+ <tr>
8
+ <td class="section-padding" align="center" valign="top" width="450" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;padding-top: 20px;padding-right: 20px;padding-left: 20px;">
9
+ <table class="divider-border" border="0" cellpadding="0" cellspacing="0" width="100%" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;border-top-width: 1px;border-top-style: solid;border-top-color: #E8E8E8;">
10
+ <tr>
11
+ <td class="container-cell" valign="top" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;color: #404040;font-family: Helvetica;font-size: 16px;line-height: 1px;text-align: center;padding-bottom: 20px;width: 450px;">
12
+ &nbsp;
13
+ </td>
14
+ </tr>
15
+ </table>
16
+ </td>
17
+ </tr>
18
+ </table>
19
+ </td>
20
+ </tr>
21
+ </table>
22
+ </td>
23
+ </tr>
core/lib/mail-templates/footer.html ADDED
@@ -0,0 +1,218 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <tr>
2
+ <td class="footer-heading" align="center" valign="top" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">
3
+ <table border="0" cellpadding="0" cellspacing="0" width="100%" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">
4
+ <tr>
5
+ <td align="center" valign="top" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">
6
+ <table class="container" border="0" cellpadding="0" cellspacing="0" width="600" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">
7
+ <tr>
8
+ <td class="section-padding" align="center" valign="top" width="600" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;padding-top: 20px;padding-right: 20px;padding-left: 20px;">
9
+ <table border="0" cellpadding="0" cellspacing="0" width="100%" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">
10
+ <tr>
11
+ <td class="container-cell" valign="top" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;color: #404040;font-family: Helvetica;font-size: 16px;line-height: 150%;text-align: center;padding-bottom: 20px;">
12
+ <h2 style="color: #002030;font-family: Helvetica;font-size: 26px;font-weight: bold;line-height: 150%;margin: 0;padding: 0;text-align: center;">{{ $security_resources }}</h2>
13
+ </td>
14
+ </tr>
15
+ </table>
16
+ </td>
17
+ </tr>
18
+ </table>
19
+ </td>
20
+ </tr>
21
+ </table>
22
+ </td>
23
+ </tr>
24
+ <tr>
25
+ <td align="center" valign="top" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">
26
+ <table border="0" cellpadding="0" cellspacing="0" width="100%" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">
27
+ <tr>
28
+ <td align="center" valign="top" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">
29
+ <table class="container" border="0" cellpadding="0" cellspacing="0" width="600" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">
30
+ <tr>
31
+ <td class="section-padding" valign="top" width="600" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;padding-top: 20px;padding-right: 20px;padding-left: 20px;">
32
+ <table class="container" align="left" border="0" cellpadding="0" cellspacing="0" width="260" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">
33
+ <tr>
34
+ <td class="container-cell" valign="top" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;color: #404040;font-family: Helvetica;font-size: 16px;line-height: 150%;text-align: center;padding-bottom: 20px;">
35
+ <img class="preserve-ratio" src="http://ithemes.com/email_images/itsec-article-icon.png" style="max-width: 61px;border: 0;outline: none;text-decoration: none;-ms-interpolation-mode: bicubic;height: auto;" width="61" alt="" align="center">
36
+ <br>
37
+ <h4 style="color: #202020;font-family: Helvetica;font-size: 20px;font-weight: bold;line-height: 150%;margin: 0;padding: 0;text-align: center;">
38
+ <a href="https://ithemes.com/category/wordpress-security/" target="_blank" style="-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;color: #0084CB;font-family: Helvetica;font-size: 16px;line-height: 150%;text-align: center;text-decoration: none;">{{ $articles }}</a>
39
+ </h4>
40
+ <br>
41
+ <p style="-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;font-family: Helvetica;font-size: 16px;line-height: 150%;margin-top: 10px;margin-right: 0;margin-bottom: 10px;margin-left: 0;padding: 0;text-align: center;">{{ $articles_content }}</p>
42
+ </td>
43
+ </tr>
44
+ </table>
45
+ <table class="container" align="right" border="0" cellpadding="0" cellspacing="0" width="260" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">
46
+ <tr>
47
+ <td class="container-cell container-cell-bottom" valign="top" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;color: #404040;font-family: Helvetica;font-size: 16px;line-height: 150%;text-align: center;padding-bottom: 20px;">
48
+ <img class="preserve-ratio" src="http://ithemes.com/email_images/itsec-video-icon.png" style="max-width: 61px;border: 0;outline: none;text-decoration: none;-ms-interpolation-mode: bicubic;height: auto;" width="61" alt="" align="center">
49
+ <br>
50
+ <h4 style="color: #202020;font-family: Helvetica;font-size: 20px;font-weight: bold;line-height: 150%;margin: 0;padding: 0;text-align: center;">
51
+ <a href="https://ithemes.com/tutorial/category/ithemes-security/" target="_blank" style="-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;color: #0084CB;font-family: Helvetica;font-size: 16px;line-height: 150%;text-align: center;text-decoration: none;">{{ $tutorials }}</a>
52
+ </h4>
53
+ <br>
54
+ <p style="-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;font-family: Helvetica;font-size: 16px;line-height: 150%;margin-top: 10px;margin-right: 0;margin-bottom: 10px;margin-left: 0;padding: 0;text-align: center;">{{ $tutorials_content }}</p>
55
+ </td>
56
+ </tr>
57
+ </table>
58
+ </td>
59
+ </tr>
60
+ </table>
61
+ </td>
62
+ </tr>
63
+ </table>
64
+ </td>
65
+ </tr>
66
+ <tr>
67
+ <td class="divider" align="center" valign="top" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">
68
+ <table border="0" cellpadding="0" cellspacing="0" width="100%" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">
69
+ <tr>
70
+ <td align="center" valign="top" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">
71
+ <table class="container" border="0" cellpadding="0" cellspacing="0" width="450" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">
72
+ <tr>
73
+ <td class="section-padding" align="center" valign="top" width="450" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;padding-top: 20px;padding-right: 20px;padding-left: 20px;">
74
+ <table class="divider-border" border="0" cellpadding="0" cellspacing="0" width="100%" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;border-top-width: 1px;border-top-style: solid;border-top-color: #E8E8E8;">
75
+ <tr>
76
+ <td class="container-cell" valign="top" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;color: #404040;font-family: Helvetica;font-size: 16px;line-height: 1px;text-align: center;padding-bottom: 20px;width: 450px;">
77
+ &nbsp;
78
+ </td>
79
+ </tr>
80
+ </table>
81
+ </td>
82
+ </tr>
83
+ </table>
84
+ </td>
85
+ </tr>
86
+ </table>
87
+ </td>
88
+ </tr>
89
+ <tr>
90
+ <td class="footer-heading" align="center" valign="top" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">
91
+ <table border="0" cellpadding="0" cellspacing="0" width="100%" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">
92
+ <tr>
93
+ <td align="center" valign="top" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">
94
+ <table class="container" border="0" cellpadding="0" cellspacing="0" width="600" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">
95
+ <tr>
96
+ <td class="section-padding" align="center" valign="top" width="600" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;padding-top: 20px;padding-right: 20px;padding-left: 20px;">
97
+ <table border="0" cellpadding="0" cellspacing="0" width="100%" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">
98
+ <tr>
99
+ <td class="container-cell" valign="top" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;color: #404040;font-family: Helvetica;font-size: 16px;line-height: 150%;text-align: center;padding-bottom: 20px;">
100
+ <h2 style="color: #002030;font-family: Helvetica;font-size: 26px;font-weight: bold;line-height: 150%;margin: 0;padding: 0;text-align: center;">{{ $help_and_support }}</h2>
101
+ </td>
102
+ </tr>
103
+ </table>
104
+ </td>
105
+ </tr>
106
+ </table>
107
+ </td>
108
+ </tr>
109
+ </table>
110
+ </td>
111
+ </tr>
112
+ <tr>
113
+ <td align="center" valign="top" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">
114
+ <table border="0" cellpadding="0" cellspacing="0" width="100%" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">
115
+ <tr>
116
+ <td align="center" valign="top" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">
117
+ <table class="container" border="0" cellpadding="0" cellspacing="0" width="600" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">
118
+ <tr>
119
+ <td class="section-padding" valign="top" width="600" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;padding-top: 20px;padding-right: 20px;padding-left: 20px;">
120
+ <table class="container" align="left" border="0" cellpadding="0" cellspacing="0" width="260" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">
121
+ <tr>
122
+ <td class="container-cell" valign="top" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;color: #404040;font-family: Helvetica;font-size: 16px;line-height: 150%;text-align: center;padding-bottom: 20px;">
123
+ <img class="preserve-ratio" src="http://ithemes.com/email_images/itsec-documentation-icon.png" style="max-width: 62px;border: 0;outline: none;text-decoration: none;-ms-interpolation-mode: bicubic;height: auto;" width="62" alt="" align="center">
124
+ <br>
125
+ <h4 style="color: #202020;font-family: Helvetica;font-size: 20px;font-weight: bold;line-height: 150%;margin: 0;padding: 0;text-align: center;">
126
+ <a href="http://ithemes.com/codex/page/IThemes_Security" target="_blank" style="-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;color: #0084CB;font-family: Helvetica;font-size: 16px;line-height: 150%;text-align: center;text-decoration: none;">{{ $documentation }}</a>
127
+ </h4>
128
+ <br>
129
+ <p style="-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;font-family: Helvetica;font-size: 16px;line-height: 150%;margin-top: 10px;margin-right: 0;margin-bottom: 10px;margin-left: 0;padding: 0;text-align: center;">{{ $documentation_content }}</p>
130
+ </td>
131
+ </tr>
132
+ </table>
133
+ <table class="container" align="right" border="0" cellpadding="0" cellspacing="0" width="260" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">
134
+ <tr>
135
+ <td class="container-cell container-cell-bottom" valign="top" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;color: #404040;font-family: Helvetica;font-size: 16px;line-height: 150%;text-align: center;padding-bottom: 20px;">
136
+ <img class="preserve-ratio" src="http://ithemes.com/email_images/itsec-support-icon.png" style="max-width: 62px;border: 0;outline: none;text-decoration: none;-ms-interpolation-mode: bicubic;height: auto;" width="62" alt="" align="center">
137
+ <br>
138
+ <h4 style="color: #202020;font-family: Helvetica;font-size: 20px;font-weight: bold;line-height: 150%;margin: 0;padding: 0;text-align: center;">
139
+ <a href="https://members.ithemes.com/panel/helpdesk.php" target="_blank" style="-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;color: #0084CB;font-family: Helvetica;font-size: 16px;line-height: 150%;text-align: center;text-decoration: none;">{{ $support }}</a>
140
+ <span class="pro-flag" style="background-color: #FFCC00;color: #000000;font-size: 10px;display: inline-block;padding: 3px;line-height: 1;position: relative;bottom: 10px;text-transform: uppercase;">{{ $pro }}</span>
141
+ </h4>
142
+ <br>
143
+ <p style="-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;font-family: Helvetica;font-size: 16px;line-height: 150%;margin-top: 10px;margin-right: 0;margin-bottom: 10px;margin-left: 0;padding: 0;text-align: center;">{{ $support_content }}</p>
144
+ </td>
145
+ </tr>
146
+ </table>
147
+ </td>
148
+ </tr>
149
+ </table>
150
+ </td>
151
+ </tr>
152
+ </table>
153
+ </td>
154
+ </tr>
155
+ <tr>
156
+ <td id="security-guide" valign="top" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">
157
+ <table border="0" cellpadding="0" cellspacing="0" width="100%" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">
158
+ <tr>
159
+ <td align="center" valign="top" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">
160
+ <table id="security-guide-container" class="container" border="0" cellpadding="0" cellspacing="0" width="600" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;border: 1px solid #CDCECE;background-color: #D3E8E9;">
161
+ <tr>
162
+ <td class="section-padding" valign="top" width="600" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;padding-top: 20px;padding-right: 20px;padding-left: 20px;">
163
+ <table class="container" align="left" border="0" cellpadding="0" cellspacing="0" width="104" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">
164
+ <tr>
165
+ <td class="section-padding-bottom" align="left" valign="top" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;padding-bottom: 20px;">
166
+ <img class="preserve-ratio" src="https://ithemes.com/email_images/wp-security-book-cropped.png" style="max-width: 84px;border: 0;outline: none;text-decoration: none;-ms-interpolation-mode: bicubic;height: auto;" width="84" alt="" align="center">
167
+ </td>
168
+ </tr>
169
+ </table>
170
+ <table class="container" align="right" border="0" cellpadding="0" cellspacing="0" width="454" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">
171
+ <tr>
172
+ <td class="container-cell" valign="top" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;color: #6C6C6C;font-family: Helvetica;font-size: 16px;line-height: 150%;text-align: left;padding-bottom: 20px;">
173
+ <h4 style="color: #6C6C6C;font-family: Helvetica;font-size: 18px;font-weight: bold;line-height: 150%;margin: 0;padding: 0;text-align: left;padding-bottom: 10px;">{{ $security_guide }}</h4>
174
+ {{ $security_guide_content }}
175
+ </td>
176
+ </tr>
177
+ </table>
178
+ </td>
179
+ </tr>
180
+ </table>
181
+ </td>
182
+ </tr>
183
+ </table>
184
+ </td>
185
+ </tr>
186
+ <tr>
187
+ <td id="footer-source-details" valign="top" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">
188
+ <table border="0" cellpadding="0" cellspacing="0" width="100%" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">
189
+ <tr>
190
+ <td align="center" valign="top" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">
191
+ <table class="container" border="0" cellpadding="0" cellspacing="0" width="600" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">
192
+ <tr>
193
+ <td class="section-padding" align="center" valign="top" width="600" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;padding-top: 20px;padding-right: 20px;padding-left: 20px;">
194
+ <table border="0" cellpadding="0" cellspacing="0" width="100%" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">
195
+ <tr>
196
+ <td class="container-cell" valign="top" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;color: #404040;font-family: Helvetica;font-size: 16px;line-height: 200%;text-align: center;padding-bottom: 0;padding-top: 60px;">
197
+ <img class="preserve-ratio" src="http://ithemes.com/email_images/itsec-footer-logo.png" style="max-width: 50px;border: 0;outline: none;text-decoration: none;-ms-interpolation-mode: bicubic;height: auto;" width="50" alt="" align="center"><br>
198
+ <br>
199
+ <a href="{{ $security_settings_link }}" style="-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;color: #0084CB;font-family: Helvetica;font-size: 11px;line-height: 200%;text-align: center;text-decoration: none;font-weight: bold;">{{ $unsubscribe_link_text }}</a>
200
+ </td>
201
+ </tr>
202
+ </table>
203
+ </td>
204
+ </tr>
205
+ </table>
206
+ </td>
207
+ </tr>
208
+ </table>
209
+ </td>
210
+ </tr>
211
+ </table>
212
+ </td>
213
+ </tr>
214
+ </table>
215
+ </center>
216
+ </body>
217
+
218
+ </html>
core/lib/mail-templates/header.html ADDED
@@ -0,0 +1,164 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
+ <html xmlns="http://www.w3.org/1999/xhtml" lang="{{ $lang }}">
3
+
4
+ <head>
5
+ <meta http-equiv="Content-Type" content="text/html; charset={{ $charset }}">
6
+ <title>{{ $title_tag }}</title>
7
+ <meta name="viewport" content="width=device-width">
8
+
9
+ <style type="text/css">
10
+ /* From: https://litmus.com/community/learning/13-foundations-email-coding-101 */
11
+
12
+ /* GENERAL STYLE RESETS */
13
+ body,#body-table,#body-cell{height:100%!important;width:100%!important;margin:0;padding:0;}
14
+ img,aimg{border:0;outline:none;text-decoration:none;}
15
+ .imageFix{display:block;}
16
+ table,td{border-collapse:collapse;border-spacing:0;}
17
+
18
+ /* CLIENT-SPECIFIC RESETS */
19
+ .ReadMsgBody{width:100%;}
20
+ .ExternalClass{width:100%;}
21
+ .ExternalClass,.ExternalClass p,.ExternalClass span,.ExternalClass font,.ExternalClass td,.ExternalClass div{line-height:100%;}
22
+ table,td{mso-table-lspace:0pt;mso-table-rspace:0pt;}
23
+ img{-ms-interpolation-mode:bicubic;}
24
+ body,table,td,p,a,li,blockquote{-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;}
25
+
26
+
27
+ h1,h2,h3,h4,h5,h6{color:#202020;font-family:Helvetica;font-size:20px;font-weight:bold;line-height:150%;margin:0;padding:0;text-align:center;}
28
+ p{font-family:Helvetica;font-size:16px;line-height:150%;margin-top:10px;margin-right:0;margin-bottom:10px;margin-left:0;padding:0;text-align:center;}
29
+ a{color:#0084CB;font-family:Helvetica;font-size:16px;line-height:150%;text-align:center;text-decoration:none;}
30
+ img{height:auto;}
31
+
32
+ body,#body-table{background-color:#FFFFFF;}
33
+ #body-cell{padding-bottom:20px;}
34
+ .section-padding{padding-top:20px;padding-right:20px;padding-left:20px;}
35
+ .section-padding-bottom{padding-bottom:20px;}
36
+ .container-cell{color:#404040;font-family:Helvetica;font-size:16px;line-height:150%;text-align:center;padding-bottom:20px;}
37
+ #top-banner{background-color:#FFCE08;}
38
+ #top-banner .container-cell{color:#413F39;font-size:13px;}
39
+ #top-logo .container-cell{padding-top:20px;}
40
+ #title-container h1{font-size:34px;}
41
+ .info-box{padding-top:20px;padding-bottom:20px;}
42
+ .info-box .container{border:1px solid #CDCECE;background-color:#F2F2F2;}
43
+ .info-box .section-padding{padding-top:40px;padding-right:40px;padding-left:40px;}
44
+ .info-box .container-cell{padding-bottom:40px;}
45
+ .info-box .info-icon{width:33px;height:23px;vertical-align:middle;}
46
+ .section-heading .container-cell{padding-bottom:0;}
47
+ .section-heading h4{color:#0084CB;font-size:16px;}
48
+ .section-heading h4 img{padding-top:2px;padding-right:5px;vertical-align:top;}
49
+ .lockouts-table .container.left-column{margin-right:60px;}
50
+ .lockouts-table h4{color:#ACAAAA;font-size:16px;font-weight:normal;}
51
+ .lockouts-table p{color:#505050;font-size:30px;font-weight:bold;}
52
+ .large-text h4{color:#505050;margin-bottom:10px;}
53
+ .details-box-container{padding-top:20px;padding-bottom:20px;}
54
+ .details-box{background-color:#E4EEF7;border:1px solid #CDCECE;}
55
+ .details-box .container-cell{color:#6A6A6A;}
56
+ .divider .divider-border{border-top-width:1px;border-top-style:solid;border-top-color:#E8E8E8;}
57
+ .divider .container-cell{line-height:1px;padding-bottom:20px;width:450px;}
58
+ .module-button .border-radius{-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;}
59
+ .module-button a{background-color:#FFCD08;border:1px solid #FFCD08;color:#2E280E;display:inline-block;font-size:18px;font-weight:bold;line-height:100%;padding-top:20px;padding-right:30px;padding-bottom:20px;padding-left:30px;}
60
+ .pro-callout{padding-top:20px;}
61
+ .pro-callout-background{background-color:#0B1A23;}
62
+ .pro-callout .section-padding{padding-top:40px;}
63
+ .pro-callout .two-factor{color:#FFFFFF;margin-top:20px;margin-bottom:20px;}
64
+ .pro-callout .module-button a{font-size:30px;}
65
+ .pro-callout .why-pro{color:#999999;font-style:italic;margin-top:20px;margin-bottom:20px;}
66
+ .footer-heading h2{color:#002030;font-size:26px;}
67
+ .pro-flag{background-color:#FFCC00;color:#000000;font-size:10px;display:inline-block;padding:3px;line-height:1;position:relative;bottom:10px;text-transform:uppercase;}
68
+ #security-guide-container{border:1px solid #CDCECE;background-color:#D3E8E9;}
69
+ #security-guide .container-cell{color:#6C6C6C;text-align:left;}
70
+ #security-guide h4{color:#6C6C6C;font-size:18px;padding-bottom:10px;text-align:left;}
71
+ #security-guide a{font-weight:bold;}
72
+ #footer-source-details .container-cell{line-height:200%;padding-top:60px;padding-bottom:0;}
73
+ #footer-source-details a{font-size:11px;font-weight:bold;line-height:200%;}
74
+
75
+ @media only screen and (max-width:600px){
76
+ body{width:100% !important;min-width:100% !important;}
77
+ #body-cell{padding:10px !important;}
78
+ #main-container, .container{width:100% !important;}
79
+ .preserve-ratio{height:auto !important;width:100% !important;}
80
+ .container-cell-bottom{padding-top:20px !important;}
81
+ .lockouts-table .container{width:auto !important;}
82
+ }
83
+
84
+ @media only screen and (max-width:450px){
85
+ .divider .container-cell{width:auto !important;}
86
+ }
87
+ </style>
88
+ </head>
89
+
90
+ <body style="margin: 0;padding: 0;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;background-color: #FFFFFF;height: 100%!important;width: 100%!important;">
91
+ <center>
92
+ <table id="body-table" border="0" cellpadding="0" cellspacing="0" height="100%" width="100%" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;margin: 0;padding: 0;background-color: #FFFFFF;height: 100%!important;width: 100%!important;">
93
+ <tr>
94
+ <td id="body-cell" align="center" valign="top" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;margin: 0;padding: 0;padding-bottom: 20px;height: 100%!important;width: 100%!important;">
95
+ <table id="main-container" border="0" cellpadding="0" cellspacing="0" width="100%" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">
96
+ <tr>
97
+ <td id="top-banner" align="center" valign="top" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;background-color: #FFCE08;">
98
+ <table border="0" cellpadding="0" cellspacing="0" width="100%" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">
99
+ <tr>
100
+ <td align="center" valign="top" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">
101
+ <table class="container" border="0" cellpadding="0" cellspacing="0" width="600" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">
102
+ <tr>
103
+ <td class="section-padding" align="center" valign="top" width="600" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;padding-top: 20px;padding-right: 20px;padding-left: 20px;">
104
+ <table border="0" cellpadding="0" cellspacing="0" width="100%" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">
105
+ <tr>
106
+ <td class="container-cell" valign="top" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;color: #413F39;font-family: Helvetica;font-size: 13px;line-height: 150%;text-align: center;padding-bottom: 20px;">
107
+ {{ $banner_title }}
108
+ </td>
109
+ </tr>
110
+ </table>
111
+ </td>
112
+ </tr>
113
+ </table>
114
+ </td>
115
+ </tr>
116
+ </table>
117
+ </td>
118
+ </tr>
119
+ <tr>
120
+ <td id="top-logo" align="center" valign="top" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">
121
+ <table border="0" cellpadding="0" cellspacing="0" width="100%" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">
122
+ <tr>
123
+ <td align="center" valign="top" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">
124
+ <table class="container" border="0" cellpadding="0" cellspacing="0" width="600" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">
125
+ <tr>
126
+ <td class="section-padding" align="center" valign="top" width="600" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;padding-top: 20px;padding-right: 20px;padding-left: 20px;">
127
+ <table border="0" cellpadding="0" cellspacing="0" width="100%" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">
128
+ <tr>
129
+ <td class="container-cell" valign="top" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;color: #404040;font-family: Helvetica;font-size: 16px;line-height: 150%;text-align: center;padding-bottom: 20px;padding-top: 20px;">
130
+ <img class="preserve-ratio" src="https://ithemes.com/email_images/itsec-pro-logo-300x127.png" style="max-width: 300px;border: 0;outline: none;text-decoration: none;-ms-interpolation-mode: bicubic;height: auto;" width="300" height="127" alt="" align="center">
131
+ </td>
132
+ </tr>
133
+ </table>
134
+ </td>
135
+ </tr>
136
+ </table>
137
+ </td>
138
+ </tr>
139
+ </table>
140
+ </td>
141
+ </tr>
142
+ <tr>
143
+ <td id="title-container" align="center" valign="top" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">
144
+ <table border="0" cellpadding="0" cellspacing="0" width="100%" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">
145
+ <tr>
146
+ <td align="center" valign="top" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">
147
+ <table class="container" border="0" cellpadding="0" cellspacing="0" width="600" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">
148
+ <tr>
149
+ <td class="section-padding" align="center" valign="top" width="600" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;padding-top: 20px;padding-right: 20px;padding-left: 20px;">
150
+ <table border="0" cellpadding="0" cellspacing="0" width="100%" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">
151
+ <tr>
152
+ <td class="container-cell" valign="top" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;color: #404040;font-family: Helvetica;font-size: 16px;line-height: 150%;text-align: center;padding-bottom: 20px;">
153
+ <h1 style="color: #202020;font-family: Helvetica;font-size: 34px;font-weight: bold;line-height: 150%;margin: 0;padding: 0;text-align: center;">{{ $title }}</h1>
154
+ </td>
155
+ </tr>
156
+ </table>
157
+ </td>
158
+ </tr>
159
+ </table>
160
+ </td>
161
+ </tr>
162
+ </table>
163
+ </td>
164
+ </tr>
core/lib/mail-templates/index.php ADDED
@@ -0,0 +1 @@
 
1
+ <?php // Silence is golden.
core/lib/mail-templates/info-box.html ADDED
@@ -0,0 +1,24 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <tr>
2
+ <td class="info-box" align="center" valign="top" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;padding-top: 20px;padding-bottom: 20px;">
3
+ <table border="0" cellpadding="0" cellspacing="0" width="100%" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">
4
+ <tr>
5
+ <td align="center" valign="top" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">
6
+ <table class="container" border="0" cellpadding="0" cellspacing="0" width="600" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;border: 1px solid #CDCECE;background-color: #F2F2F2;">
7
+ <tr>
8
+ <td class="section-padding" align="center" valign="top" width="600" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;padding-top: 40px;padding-right: 40px;padding-left: 40px;">
9
+ <table border="0" cellpadding="0" cellspacing="0" width="100%" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">
10
+ <tr>
11
+ <td class="container-cell" valign="top" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;color: #404040;font-family: Helvetica;font-size: 16px;line-height: 150%;text-align: center;padding-bottom: 40px;">
12
+ <img class="info-icon" src="http://ithemes.com/email_images/itsec-info-icon.png" alt="" align="center" width="33" height="23" style="border: 0;outline: none;text-decoration: none;-ms-interpolation-mode: bicubic;height: 23px;width: 33px;vertical-align: middle;">
13
+ {{ $content }}
14
+ </td>
15
+ </tr>
16
+ </table>
17
+ </td>
18
+ </tr>
19
+ </table>
20
+ </td>
21
+ </tr>
22
+ </table>
23
+ </td>
24
+ </tr>
core/lib/mail-templates/large-text.html ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <tr>
2
+ <td class="large-text" align="center" valign="top" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">
3
+ <table border="0" cellpadding="0" cellspacing="0" width="100%" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">
4
+ <tr>
5
+ <td align="center" valign="top" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">
6
+ <table class="container" border="0" cellpadding="0" cellspacing="0" width="600" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">
7
+ <tr>
8
+ <td class="section-padding" align="center" valign="top" width="600" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;padding-top: 20px;padding-right: 20px;padding-left: 20px;">
9
+ <table border="0" cellpadding="0" cellspacing="0" width="100%" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">
10
+ <tr>
11
+ <td class="container-cell" valign="top" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;color: #404040;font-family: Helvetica;font-size: 16px;line-height: 150%;text-align: center;padding-bottom: 20px;">
12
+ <h4 style="color: #505050;font-family: Helvetica;font-size: 20px;font-weight: bold;line-height: 150%;margin: 0;padding: 0;text-align: center;margin-bottom: 10px;">{{ $content }}</h4>
13
+ </td>
14
+ </tr>
15
+ </table>
16
+ </td>
17
+ </tr>
18
+ </table>
19
+ </td>
20
+ </tr>
21
+ </table>
22
+ </td>
23
+ </tr>
core/lib/mail-templates/lockouts-table.html ADDED
@@ -0,0 +1,32 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <tr>
2
+ <td class="lockouts-table" align="center" valign="top" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">
3
+ <table border="0" cellpadding="0" cellspacing="0" width="100%" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">
4
+ <tr>
5
+ <td align="center" valign="top" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">
6
+ <table class="container" border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">
7
+ <tr>
8
+ <td class="section-padding" valign="top" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;padding-top: 20px;padding-right: 20px;padding-left: 20px;">
9
+ <table class="container left-column" align="left" border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;margin-right: 60px;">
10
+ <tr>
11
+ <td class="container-cell" valign="top" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;color: #404040;font-family: Helvetica;font-size: 16px;line-height: 150%;text-align: center;padding-bottom: 20px;">
12
+ <h4 style="color: #ACAAAA;font-family: Helvetica;font-size: 16px;font-weight: normal;line-height: 150%;margin: 0;padding: 0;text-align: center;">{{ $users_text }}</h4>
13
+ <p style="-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;font-family: Helvetica;font-size: 30px;line-height: 150%;margin-top: 10px;margin-right: 0;margin-bottom: 10px;margin-left: 0;padding: 0;text-align: center;color: #505050;font-weight: bold;">{{ $user_count }}</p>
14
+ </td>
15
+ </tr>
16
+ </table>
17
+ <table class="container right-column" align="right" border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">
18
+ <tr>
19
+ <td class="container-cell" valign="top" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;color: #404040;font-family: Helvetica;font-size: 16px;line-height: 150%;text-align: center;padding-bottom: 20px;">
20
+ <h4 style="color: #ACAAAA;font-family: Helvetica;font-size: 16px;font-weight: normal;line-height: 150%;margin: 0;padding: 0;text-align: center;">{{ $hosts_text }}</h4>
21
+ <p style="-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;font-family: Helvetica;font-size: 30px;line-height: 150%;margin-top: 10px;margin-right: 0;margin-bottom: 10px;margin-left: 0;padding: 0;text-align: center;color: #505050;font-weight: bold;">{{ $host_count }}</p>
22
+ </td>
23
+ </tr>
24
+ </table>
25
+ </td>
26
+ </tr>
27
+ </table>
28
+ </td>
29
+ </tr>
30
+ </table>
31
+ </td>
32
+ </tr>
core/lib/mail-templates/module-button.html ADDED
@@ -0,0 +1,29 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <tr>
2
+ <td align="center" valign="top" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">
3
+ <table border="0" cellpadding="0" cellspacing="0" width="100%" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">
4
+ <tr>
5
+ <td align="center" valign="top" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">
6
+ <table class="container" border="0" cellpadding="0" cellspacing="0" width="600" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">
7
+ <tr>
8
+ <td class="section-padding section-padding-bottom" align="center" valign="top" width="600" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;padding-top: 20px;padding-right: 20px;padding-left: 20px;padding-bottom: 20px;">
9
+ <table width="100%" border="0" cellspacing="0" cellpadding="0" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">
10
+ <tr>
11
+ <td style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">
12
+ <table class="module-button" border="0" cellspacing="0" cellpadding="0" align="center" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">
13
+ <tr>
14
+ <td class="border-radius" align="center" bgcolor="#FFCD08" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;-webkit-border-radius: 5px;-moz-border-radius: 5px;border-radius: 5px;">
15
+ <a class="border-radius" href="{{ $href }}" target="_blank" style="-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;color: #2E280E;font-family: Helvetica;font-size: 18px;line-height: 100%;text-align: center;text-decoration: none;background-color: #FFCD08;border: 1px solid #FFCD08;display: inline-block;font-weight: bold;padding-top: 20px;padding-right: 30px;padding-bottom: 20px;padding-left: 30px;-webkit-border-radius: 5px;-moz-border-radius: 5px;border-radius: 5px;">{{ $link_text }}</a>
16
+ </td>
17
+ </tr>
18
+ </table>
19
+ </td>
20
+ </tr>
21
+ </table>
22
+ </td>
23
+ </tr>
24
+ </table>
25
+ </td>
26
+ </tr>
27
+ </table>
28
+ </td>
29
+ </tr>
core/lib/mail-templates/pro-callout.html ADDED
@@ -0,0 +1,38 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <tr>
2
+ <td class="pro-callout" align="center" valign="top" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;padding-top: 20px;">
3
+ <table class="pro-callout-background" border="0" cellpadding="0" cellspacing="0" width="100%" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;background-color: #0B1A23;">
4
+ <tr>
5
+ <td align="center" valign="top" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">
6
+ <table border="0" cellpadding="0" cellspacing="0" width="600" class="container" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">
7
+ <tr>
8
+ <td align="center" valign="top" width="600" class="section-padding" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;padding-top: 40px;padding-right: 20px;padding-left: 20px;">
9
+ <table border="0" cellpadding="0" cellspacing="0" width="100%" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">
10
+ <tr>
11
+ <td valign="top" class="container-cell" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;color: #404040;font-family: Helvetica;font-size: 16px;line-height: 150%;text-align: center;padding-bottom: 20px;">
12
+ <img class="preserve-ratio" src="http://ithemes.com/email_images/itsec-pro-logo-no-text-100x118.png" style="max-width: 100px;border: 0;outline: none;text-decoration: none;-ms-interpolation-mode: bicubic;height: auto;" width="100" alt="" align="center">
13
+ <p class="two-factor" style="-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;font-family: Helvetica;font-size: 16px;line-height: 150%;margin-top: 20px;margin-right: 0;margin-bottom: 20px;margin-left: 0;padding: 0;text-align: center;color: #FFFFFF;">{{ $two_factor }}</p>
14
+ <table width="100%" border="0" cellspacing="0" cellpadding="0" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">
15
+ <tr>
16
+ <td style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">
17
+ <table class="module-button" border="0" cellspacing="0" cellpadding="0" align="center" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">
18
+ <tr>
19
+ <td class="border-radius" align="center" bgcolor="#FFCD08" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;-webkit-border-radius: 5px;-moz-border-radius: 5px;border-radius: 5px;">
20
+ <a href="https://ithemes.com/security/#plugin-pricing" target="_blank" class="border-radius" style="-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;color: #2E280E;font-family: Helvetica;font-size: 30px;line-height: 100%;text-align: center;text-decoration: none;background-color: #FFCD08;border: 1px solid #FFCD08;display: inline-block;font-weight: bold;padding-top: 20px;padding-right: 30px;padding-bottom: 20px;padding-left: 30px;-webkit-border-radius: 5px;-moz-border-radius: 5px;border-radius: 5px;">{{ $get_pro }}</a>
21
+ </td>
22
+ </tr>
23
+ </table>
24
+ </td>
25
+ </tr>
26
+ </table>
27
+ <p class="why-pro" style="-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;font-family: Helvetica;font-size: 16px;line-height: 150%;margin-top: 20px;margin-right: 0;margin-bottom: 20px;margin-left: 0;padding: 0;text-align: center;color: #999999;font-style: italic;">{{ $why_pro }}</p>
28
+ </td>
29
+ </tr>
30
+ </table>
31
+ </td>
32
+ </tr>
33
+ </table>
34
+ </td>
35
+ </tr>
36
+ </table>
37
+ </td>
38
+ </tr>
core/lib/mail-templates/section-heading.html ADDED
@@ -0,0 +1,26 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <tr>
2
+ <td class="section-heading" align="center" valign="top" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">
3
+ <table border="0" cellpadding="0" cellspacing="0" width="100%" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">
4
+ <tr>
5
+ <td align="center" valign="top" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">
6
+ <table class="container" border="0" cellpadding="0" cellspacing="0" width="600" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">
7
+ <tr>
8
+ <td class="section-padding" align="center" valign="top" width="600" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;padding-top: 20px;padding-right: 20px;padding-left: 20px;">
9
+ <table border="0" cellpadding="0" cellspacing="0" width="100%" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">
10
+ <tr>
11
+ <td class="container-cell" valign="top" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;color: #404040;font-family: Helvetica;font-size: 16px;line-height: 150%;text-align: center;padding-bottom: 0;">
12
+ <h4 style="color: #0084CB;font-family: Helvetica;font-size: 16px;font-weight: bold;line-height: 150%;margin: 0;padding: 0;text-align: center;">
13
+ <img src="{{ $icon_url }}" alt="" align="center" style="border: 0;outline: none;text-decoration: none;-ms-interpolation-mode: bicubic;height: auto;padding-top: 2px;padding-right: 5px;vertical-align: top;">
14
+ {{ $content }}
15
+ </h4>
16
+ </td>
17
+ </tr>
18
+ </table>
19
+ </td>
20
+ </tr>
21
+ </table>
22
+ </td>
23
+ </tr>
24
+ </table>
25
+ </td>
26
+ </tr>
core/lib/mail-templates/text.html ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <tr>
2
+ <td align="center" valign="top" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">
3
+ <table border="0" cellpadding="0" cellspacing="0" width="100%" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">
4
+ <tr>
5
+ <td align="center" valign="top" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">
6
+ <table class="container" border="0" cellpadding="0" cellspacing="0" width="600" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">
7
+ <tr>
8
+ <td class="section-padding" align="center" valign="top" width="600" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;padding-top: 20px;padding-right: 20px;padding-left: 20px;">
9
+ <table border="0" cellpadding="0" cellspacing="0" width="100%" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;">
10
+ <tr>
11
+ <td class="container-cell" valign="top" style="border-collapse: collapse;border-spacing: 0;mso-table-lspace: 0pt;mso-table-rspace: 0pt;-ms-text-size-adjust: 100%;-webkit-text-size-adjust: 100%;color: #404040;font-family: Helvetica;font-size: 16px;line-height: 150%;text-align: center;padding-bottom: 20px;">
12
+ {{ $content }}
13
+ </td>
14
+ </tr>
15
+ </table>
16
+ </td>
17
+ </tr>
18
+ </table>
19
+ </td>
20
+ </tr>
21
+ </table>
22
+ </td>
23
+ </tr>
core/modules/ban-users/lists/hackrepair-apache.inc CHANGED
@@ -120,7 +120,6 @@ RewriteCond %{HTTP_USER_AGENT} "^Website Quester" [NC,OR]
120
  RewriteCond %{HTTP_USER_AGENT} "^WebStripper" [NC,OR]
121
  RewriteCond %{HTTP_USER_AGENT} "^WebWhacker" [NC,OR]
122
  RewriteCond %{HTTP_USER_AGENT} "^WebZIP" [NC,OR]
123
- RewriteCond %{HTTP_USER_AGENT} "^Wget" [NC,OR]
124
  RewriteCond %{HTTP_USER_AGENT} "^Widow" [NC,OR]
125
  RewriteCond %{HTTP_USER_AGENT} "^WPScan" [NC,OR]
126
  RewriteCond %{HTTP_USER_AGENT} "^WWW\-Mechanize" [NC,OR]
120
  RewriteCond %{HTTP_USER_AGENT} "^WebStripper" [NC,OR]
121
  RewriteCond %{HTTP_USER_AGENT} "^WebWhacker" [NC,OR]
122
  RewriteCond %{HTTP_USER_AGENT} "^WebZIP" [NC,OR]
 
123
  RewriteCond %{HTTP_USER_AGENT} "^Widow" [NC,OR]
124
  RewriteCond %{HTTP_USER_AGENT} "^WPScan" [NC,OR]
125
  RewriteCond %{HTTP_USER_AGENT} "^WWW\-Mechanize" [NC,OR]
core/modules/ban-users/lists/hackrepair-litespeed.inc CHANGED
@@ -120,7 +120,6 @@ RewriteCond %{HTTP_USER_AGENT} "^Website Quester" [NC,OR]
120
  RewriteCond %{HTTP_USER_AGENT} "^WebStripper" [NC,OR]
121
  RewriteCond %{HTTP_USER_AGENT} "^WebWhacker" [NC,OR]
122
  RewriteCond %{HTTP_USER_AGENT} "^WebZIP" [NC,OR]
123
- RewriteCond %{HTTP_USER_AGENT} "^Wget" [NC,OR]
124
  RewriteCond %{HTTP_USER_AGENT} "^Widow" [NC,OR]
125
  RewriteCond %{HTTP_USER_AGENT} "^WPScan" [NC,OR]
126
  RewriteCond %{HTTP_USER_AGENT} "^WWW\-Mechanize" [NC,OR]
120
  RewriteCond %{HTTP_USER_AGENT} "^WebStripper" [NC,OR]
121
  RewriteCond %{HTTP_USER_AGENT} "^WebWhacker" [NC,OR]
122
  RewriteCond %{HTTP_USER_AGENT} "^WebZIP" [NC,OR]
 
123
  RewriteCond %{HTTP_USER_AGENT} "^Widow" [NC,OR]
124
  RewriteCond %{HTTP_USER_AGENT} "^WPScan" [NC,OR]
125
  RewriteCond %{HTTP_USER_AGENT} "^WWW\-Mechanize" [NC,OR]
core/modules/ban-users/lists/hackrepair-nginx.inc CHANGED
@@ -119,7 +119,6 @@ if ($http_user_agent ~* "^Website Quester"){return 403;}
119
  if ($http_user_agent ~* "^WebStripper"){return 403;}
120
  if ($http_user_agent ~* "^WebWhacker"){return 403;}
121
  if ($http_user_agent ~* "^WebZIP"){return 403;}
122
- if ($http_user_agent ~* "^Wget"){return 403;}
123
  if ($http_user_agent ~* "^Widow"){return 403;}
124
  if ($http_user_agent ~* "^WPScan"){return 403;}
125
  if ($http_user_agent ~* "^WWW\-Mechanize"){return 403;}
119
  if ($http_user_agent ~* "^WebStripper"){return 403;}
120
  if ($http_user_agent ~* "^WebWhacker"){return 403;}
121
  if ($http_user_agent ~* "^WebZIP"){return 403;}
 
122
  if ($http_user_agent ~* "^Widow"){return 403;}
123
  if ($http_user_agent ~* "^WPScan"){return 403;}
124
  if ($http_user_agent ~* "^WWW\-Mechanize"){return 403;}
core/modules/ban-users/settings-page.php CHANGED
@@ -2,27 +2,27 @@
2
 
3
  final class ITSEC_Ban_Users_Settings_Page extends ITSEC_Module_Settings_Page {
4
  private $script_version = 1;
5
-
6
-
7
  public function __construct() {
8
  $this->id = 'ban-users';
9
  $this->title = __( 'Banned Users', 'better-wp-security' );
10
  $this->description = __( 'Block specific IP addresses and user agents from accessing the site.', 'better-wp-security' );
11
  $this->type = 'recommended';
12
-
13
  parent::__construct();
14
  }
15
-
16
  protected function render_description( $form ) {
17
-
18
  ?>
19
  <p><?php _e( 'This feature allows you to completely ban hosts and user agents from your site without having to manage any configuration of your server. Any IP addresses or user agents found in the lists below will not be allowed any access to your site.', 'better-wp-security' ); ?></p>
20
  <?php
21
-
22
  }
23
-
24
  protected function render_settings( $form ) {
25
-
26
  ?>
27
  <table class="form-table itsec-settings-section">
28
  <tr>
@@ -30,7 +30,7 @@ final class ITSEC_Ban_Users_Settings_Page extends ITSEC_Module_Settings_Page {
30
  <td>
31
  <?php $form->add_checkbox( 'default' ); ?>
32
  <label for="itsec-ban-users-default"><?php _e( 'Enable HackRepair.com\'s blacklist feature', 'better-wp-security' ); ?></label>
33
- <p class="description"><?php printf( __( 'As a getting-started point you can include the excellent blacklist developed by Jim Walker of <a href="%s" target="_blank">HackRepair.com</a>.', 'better-wp-security' ), 'http://hackrepair.com/blog/how-to-block-bots-from-seeing-your-website-bad-bots-and-drive-by-hacks-explained' ); ?></p>
34
  </td>
35
  </tr>
36
  <tr>
@@ -72,7 +72,7 @@ final class ITSEC_Ban_Users_Settings_Page extends ITSEC_Module_Settings_Page {
72
  </tr>
73
  </table>
74
  <?php
75
-
76
  }
77
  }
78
 
2
 
3
  final class ITSEC_Ban_Users_Settings_Page extends ITSEC_Module_Settings_Page {
4
  private $script_version = 1;
5
+
6
+
7
  public function __construct() {
8
  $this->id = 'ban-users';
9
  $this->title = __( 'Banned Users', 'better-wp-security' );
10
  $this->description = __( 'Block specific IP addresses and user agents from accessing the site.', 'better-wp-security' );
11
  $this->type = 'recommended';
12
+
13
  parent::__construct();
14
  }
15
+
16
  protected function render_description( $form ) {
17
+
18
  ?>
19
  <p><?php _e( 'This feature allows you to completely ban hosts and user agents from your site without having to manage any configuration of your server. Any IP addresses or user agents found in the lists below will not be allowed any access to your site.', 'better-wp-security' ); ?></p>
20
  <?php
21
+
22
  }
23
+
24
  protected function render_settings( $form ) {
25
+
26
  ?>
27
  <table class="form-table itsec-settings-section">
28
  <tr>
30
  <td>
31
  <?php $form->add_checkbox( 'default' ); ?>
32
  <label for="itsec-ban-users-default"><?php _e( 'Enable HackRepair.com\'s blacklist feature', 'better-wp-security' ); ?></label>
33
+ <p class="description"><?php printf( __( 'As a getting-started point you can include the blacklist developed by Jim Walker of <a href="%s" target="_blank">HackRepair.com</a>.', 'better-wp-security' ), 'http://hackrepair.com/blog/how-to-block-bots-from-seeing-your-website-bad-bots-and-drive-by-hacks-explained' ); ?></p>
34
  </td>
35
  </tr>
36
  <tr>
72
  </tr>
73
  </table>
74
  <?php
75
+
76
  }
77
  }
78
 
core/modules/file-change/scanner.php CHANGED
@@ -65,7 +65,7 @@ final class ITSEC_File_Change_Scanner {
65
  if ( ! self::$instance ) {
66
  self::$instance = new self;
67
  }
68
-
69
  return self::$instance->execute_file_check( $scheduled_call, $return_data );
70
  }
71
 
@@ -213,6 +213,12 @@ final class ITSEC_File_Change_Scanner {
213
  'changed' => $files_changed,
214
  );
215
 
 
 
 
 
 
 
216
  update_site_option( $db_field, $current_files );
217
 
218
  //Cleanup variables when we're done with them
@@ -306,7 +312,7 @@ final class ITSEC_File_Change_Scanner {
306
  return -1; //An error occured
307
 
308
  }
309
-
310
  return -1;
311
 
312
  }
@@ -601,17 +607,8 @@ final class ITSEC_File_Change_Scanner {
601
 
602
  $changed = $email_details[0] + $email_details[1] + $email_details[2];
603
 
604
- if ( 0 < $changed ) {
605
-
606
- $message = sprintf(
607
- '<strong>%s:</strong> %s %s.',
608
- __( 'File changes detected', 'better-wp-security' ),
609
- $itsec_globals['plugin_name'],
610
- __( 'detected file changes on your system', 'better-wp-security' )
611
- );
612
-
613
- $itsec_notify->notify( $message );
614
-
615
  }
616
 
617
  }
65
  if ( ! self::$instance ) {
66
  self::$instance = new self;
67
  }
68
+
69
  return self::$instance->execute_file_check( $scheduled_call, $return_data );
70
  }
71
 
213
  'changed' => $files_changed,
214
  );
215
 
216
+ $this->settings['latest_changes'] = array(
217
+ 'added' => count( $files_added ),
218
+ 'removed' => count( $files_removed ),
219
+ 'changed' => count( $files_changed ),
220
+ );
221
+
222
  update_site_option( $db_field, $current_files );
223
 
224
  //Cleanup variables when we're done with them
312
  return -1; //An error occured
313
 
314
  }
315
+
316
  return -1;
317
 
318
  }
607
 
608
  $changed = $email_details[0] + $email_details[1] + $email_details[2];
609
 
610
+ if ( $changed > 0 ) {
611
+ $itsec_notify->register_file_change();
 
 
 
 
 
 
 
 
 
612
  }
613
 
614
  }
core/modules/file-change/settings.php CHANGED
@@ -4,13 +4,13 @@ final class ITSEC_File_Change_Settings extends ITSEC_Settings {
4
  public function get_id() {
5
  return 'file-change';
6
  }
7
-
8
  public function get_defaults() {
9
  return array(
10
- 'split' => false,
11
- 'method' => 'exclude',
12
- 'file_list' => array(),
13
- 'types' => array(
14
  '.jpg',
15
  '.jpeg',
16
  '.png',
@@ -18,11 +18,12 @@ final class ITSEC_File_Change_Settings extends ITSEC_Settings {
18
  '.mo',
19
  '.po'
20
  ),
21
- 'email' => true,
22
- 'notify_admin' => true,
23
- 'last_run' => 0,
24
- 'last_chunk' => false,
25
- 'show_warning' => false,
 
26
  );
27
  }
28
  }
4
  public function get_id() {
5
  return 'file-change';
6
  }
7
+
8
  public function get_defaults() {
9
  return array(
10
+ 'split' => false,
11
+ 'method' => 'exclude',
12
+ 'file_list' => array(),
13
+ 'types' => array(
14
  '.jpg',
15
  '.jpeg',
16
  '.png',
18
  '.mo',
19
  '.po'
20
  ),
21
+ 'email' => true,
22
+ 'notify_admin' => true,
23
+ 'last_run' => 0,
24
+ 'last_chunk' => false,
25
+ 'show_warning' => false,
26
+ 'latest_changes' => array(),
27
  );
28
  }
29
  }
history.txt CHANGED
@@ -552,3 +552,7 @@
552
  Bug Fix: Fixed bug that could result in issues authenticating over XML-RPC when the WordPress Tweaks > Multiple Authentication Attempts per XML-RPC Request setting is set to "Block".
553
  Misc: Added placeholder for the Version Management module of iThemes Security Pro.
554
  Misc: Updated build number to trigger some updates.
 
 
 
 
552
  Bug Fix: Fixed bug that could result in issues authenticating over XML-RPC when the WordPress Tweaks > Multiple Authentication Attempts per XML-RPC Request setting is set to "Block".
553
  Misc: Added placeholder for the Version Management module of iThemes Security Pro.
554
  Misc: Updated build number to trigger some updates.
555
+ 5.6.3 - 2016-10-11 - Chris Jean
556
+ Bug Fix: Removed the "Wget" user agent from the Hack Repair blacklist as it can block wp-cron jobs on some hosts.
557
+ Bug Fix: Fixed error "PHP message: PHP Fatal error: 'continue' not in the 'loop' or 'switch' context".
558
+ Enhancement: Added new Daily Digest email design.
readme.txt CHANGED
@@ -1,9 +1,9 @@
1
  === iThemes Security (formerly Better WP Security) ===
2
  Contributors: ithemes, chrisjean, gerroald, mattdanner
3
  Tags: security, security plugin, malware, hack, secure, block, SSL, admin, htaccess, lockdown, login, protect, protection, anti virus, attack, injection, login security, maintenance, permissions, prevention, authentication, administration, password, brute force, ban, permissions, bots, user agents, xml rpc, security log
4
- Requires at least: 4.1
5
  Tested up to: 4.6.1
6
- Stable tag: 5.6.2
7
  License: GPLv2 or later
8
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
9
 
@@ -188,6 +188,11 @@ Free support may be available with the help of the community in the <a href="htt
188
 
189
  == Changelog ==
190
 
 
 
 
 
 
191
  = 5.6.2 =
192
  * Security Fix: Fixed issue where a locked out but not yet blacklisted IP/user could receive different HTTP headers when testing a valid username/password combination. Thanks Leon Atkinson of 18INT for contacting us about this issue.
193
  * Security Fix: Updated log output to prevent specific kinds of logged requests from displaying without sanitization. Thanks to Slavco Mihajloski for contacting us about this issue.
@@ -1579,119 +1584,5 @@ This release is a complete rewrite from the ground up. Special thanks to Cory Mi
1579
 
1580
  == Upgrade Notice ==
1581
 
1582
- = 5.6.2 =
1583
- Version 5.6.2 contains important security updates and bug fixes. It is important to update immediately.
1584
-
1585
- = 5.6.1 =
1586
- Version 5.6.1 contains bug fixes and PHP 7 compatibility changes. It is recommended for all users.
1587
-
1588
- = 5.6.0 =
1589
- Version 5.6.0 contains a new feature to quickly apply recommended settings. It is recommended for all users.
1590
-
1591
- = 5.5.0 =
1592
- Version 5.5.0 contains important bug fixes, a new File Permissions feature, and numerous enhancements. It is recommended for all users.
1593
-
1594
- = 5.4.5 =
1595
- Version 5.4.5 contains a bug fix that fixes the listing of tables to exclude from database backups when "Backup Full Database" is enabled.
1596
-
1597
- = 5.4.4 =
1598
- Version 5.4.4 contains a bug fix that addresses problems some users had when upgrading.
1599
-
1600
- = 5.4.3 =
1601
- Version 5.4.3 contains a bug fix that can prevent script issues in some browsers.
1602
-
1603
- = 5.4.2 =
1604
- Version 5.4.2 contains import bug fixes for Multisite.
1605
-
1606
- = 5.4.1 =
1607
- Version 5.4.1 contains import bug fixes for sites on nginx servers and brings back display of 404 errors in the logs.
1608
-
1609
- = 5.4.0 =
1610
- Version 5.4.0 provides an all new, easier to use interface as well as speed and performance improvements. Upgrade now!
1611
-
1612
- = 5.3.7 =
1613
- Version 5.3.6 contains a bugfix that fixes compatability with WordPress SEO and is recommended for all users.
1614
-
1615
- = 5.3.6 =
1616
- Version 5.3.6 contains minor bugfixes and a small security fix and is recommended for all users.
1617
-
1618
- = 5.3.5 =
1619
- Version 5.3.5 contains minor bugfixes and enhancements and is recommended for all users.
1620
-
1621
- = 5.3.4 =
1622
- Version 5.3.4 contains minor bugfixes and enhancements and is recommended for all users.
1623
-
1624
- = 4.6.8 =
1625
- Version 4.6.8 contains minor bugfixes and enhancements and is recommended for all users.
1626
-
1627
- = 4.6.6 =
1628
- Version 4.6.6 contains minor bugfixes and is recommended for all users.
1629
-
1630
- = 4.6.2 =
1631
- Version 4.6.2 contains new features and enhancements and is recommended for all users.
1632
-
1633
- = 4.5.10 =
1634
- Version 4.5.10 contains minor bugfixes and is recommended for all users.
1635
-
1636
- = 4.5.8 =
1637
- Version 4.5.8 contains minor bugfixes and enhancements and is recommended for all users.
1638
-
1639
- = 4.5.6 =
1640
- Version 4.5.6 contains a minor bugfix and is recommended for all users.
1641
-
1642
- = 4.5.2 =
1643
- Version 4.5.2 is a feature and bug-fix release addressing numerous minor bugs affecting some users. It is recommended for all users.
1644
-
1645
- = 4.4.23 =
1646
- Version 4.4.23 contains a security update and is recommended for all users.
1647
-
1648
- = 4.4.21 =
1649
- Version 4.4.21 contains a fix to an issue that affects daylight savings time as well as other minor bug fixes. It is recommended for all users.
1650
-
1651
- = 4.4.20 =
1652
- Version 4.4.20 contains a minor bugfix and is recommended for all users.
1653
-
1654
- = 4.4.18 =
1655
- Version 4.4.18 contains a minor bugfix and is recommended for all users.
1656
-
1657
- = 4.4.16 =
1658
- Version 4.4.16 is a bug-fix release addressing numerous minor bugs affecting some users. It is recommended for all users.
1659
-
1660
- = 4.4.15 =
1661
- Version 4.4.15 is a bug-fix release addressing numerous minor bugs affecting some users. It is recommended for all users.
1662
-
1663
- = 4.4.13 =
1664
- Version 4.4.13 is a bug-fix release addressing numerous minor bugs affecting some users. It is recommended for all users.
1665
-
1666
- = 4.4.11 =
1667
- Version 4.4.11 is a bug-fix release addressing numerous minor bugs affecting some users. It is recommended for all users.
1668
-
1669
- = 4.4.9 =
1670
- Version 4.4.9 is a bugfix release for the free version and contains new features for pro users. It is a recommended update for all users.
1671
-
1672
- = 4.4.6 =
1673
- Version 4.4.6 adds new features, enhancements, bug fixes and more. It is recommended for all users.
1674
-
1675
- = 4.3.11 =
1676
- Version 4.3.11 contains a security fix and should be installed by all users.
1677
-
1678
- = 4.3.9 =
1679
- Version 4.3.9 is a bug-fix release addressing numerous minor bugs affecting some users. It is recommended for all users.
1680
-
1681
- = 4.3.7 =
1682
- Version 4.3.7 adds malware scheduling and other features as well as numerous minor bugfixes and enhancements. It is recommended for all users.
1683
-
1684
- = 4.3.3 =
1685
- Version 4.3.3 adds malware scheduling and other features as well as numerous minor bugfixes and enhancements. It is recommended for all users.
1686
-
1687
- = 4.2.15 =
1688
- Version 4.2.15 delivers fixes for minor bugs experienced by some users.
1689
-
1690
- = 4.2.13 =
1691
- Version 4.2.13 delivers fixes for minor bugs experienced by some users.
1692
-
1693
- = 4.2.8 =
1694
- Version 4.2.8 delivers fixes for minor bugs and some enhancements including the ability to whitelist file types in 404 detection.
1695
-
1696
- = 4.2.6 =
1697
- Better WP Security is now iThemes Security with new features and a greatly improved code base. We recommend disabling Better WP Security before upgrading to 4.2.6 if you are not already on 4.0 or greater.
1
  === iThemes Security (formerly Better WP Security) ===
2
  Contributors: ithemes, chrisjean, gerroald, mattdanner
3
  Tags: security, security plugin, malware, hack, secure, block, SSL, admin, htaccess, lockdown, login, protect, protection, anti virus, attack, injection, login security, maintenance, permissions, prevention, authentication, administration, password, brute force, ban, permissions, bots, user agents, xml rpc, security log
4
+ Requires at least: 4.2
5
  Tested up to: 4.6.1
6
+ Stable tag: 5.6.3
7
  License: GPLv2 or later
8
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
9
 
188
 
189
  == Changelog ==
190
 
191
+ = 5.6.3 =
192
+ * Bug Fix: Removed the "Wget" user agent from the Hack Repair blacklist as it can block wp-cron jobs on some hosts.
193
+ * Bug Fix: Fixed error "PHP message: PHP Fatal error: 'continue' not in the 'loop' or 'switch' context".
194
+ * Enhancement: Added new Daily Digest email design.
195
+
196
  = 5.6.2 =
197
  * Security Fix: Fixed issue where a locked out but not yet blacklisted IP/user could receive different HTTP headers when testing a valid username/password combination. Thanks Leon Atkinson of 18INT for contacting us about this issue.
198
  * Security Fix: Updated log output to prevent specific kinds of logged requests from displaying without sanitization. Thanks to Slavco Mihajloski for contacting us about this issue.
1584
 
1585
  == Upgrade Notice ==
1586
 
1587
+ = 5.6.3 =
1588
+ Version 5.6.3 contains bug fixes and a renewed Daily Digest email design. It is recommended for all users.