PageRenderTime 48ms CodeModel.GetById 24ms RepoModel.GetById 1ms app.codeStats 0ms

/plugins/backupbuddy/controllers/pages/malware_scan.php

https://gitlab.com/mattswann/launch-housing
PHP | 263 lines | 213 code | 42 blank | 8 comment | 59 complexity | 243ab9e29d83b49476b4c25bbf6c850c MD5 | raw file
  1. <?php
  2. backupbuddy_core::schedule_single_event( time(), 'housekeeping', array() );
  3. update_option( '_transient_doing_cron', 0 );
  4. spawn_cron( time() + 150 );
  5. //do_action_ref_array( 'backupbuddy_cron', array( 'housekeeping', array() ) );
  6. //echo 'update options: ';
  7. //update_option( 'spamshield_count', 'testing2' );
  8. if ( ! defined( 'pluginbuddy_importbuddy' ) ) {
  9. pb_backupbuddy::$ui->title( __( 'Malware Scan', 'it-l10n-backupbuddy' ) );
  10. pb_backupbuddy::disalert( 'it-security_ad','<b>Is your site locked down & secure?</b><br> Check out <a href="http://ithemes.com/security/?utm_source=BackupBuddy%20Malware%20Scan%20Page&utm_medium=bub%20link&utm_campaign=itsec%20%2B%20bub" target="_blank">iThemes Security Pro</a>, for the do-it-yourself WP security toolbox, or have the website security professionals at <a href="http://ithemes.com/sucuri?utm_medium=bub%20link&utm_campaign=sucuri%20%2B%20bub">Sucuri</a> do it for you.' );
  11. $url = home_url();
  12. } else {
  13. $url = str_replace( $_SERVER['QUERY_STRING'], '', $_SERVER['REQUEST_URI'] );
  14. $url = str_replace( basename( $url ) , '', $url );
  15. $url = 'http://' . $_SERVER['HTTP_HOST'] . $url;
  16. }
  17. ?>
  18. <style type="text/css">
  19. .inside label {
  20. display: block;
  21. vertical-align: top;
  22. width: 140px;
  23. font-weight: bold;
  24. }
  25. </style>
  26. <?php
  27. pb_backupbuddy::$ui->start_metabox( __( 'Malware Scan URL', 'it-l10n-backupbuddy' ), true, 'width: 100%;' );
  28. ?>
  29. <?php echo $url; ?>
  30. <?php
  31. $continue_1 = true;
  32. if ( $url == 'http://localhost' ) {
  33. _e('ERROR: You are currently running your site locally. Your site must be internet accessible to scan.', 'it-l10n-backupbuddy' );
  34. $continue_1 = false;
  35. }
  36. if ( $continue_1 === true ) {
  37. if ( !empty( $_GET['refresh'] ) ) {
  38. delete_transient( 'pb_backupbuddy_malwarescan' );
  39. }
  40. //echo '<br />Scanning `' . $url . '`.<br /><br />';
  41. if ( !defined( 'pluginbuddy_importbuddy' ) ) {
  42. $scan = get_transient( 'pb_backupbuddy_malwarescan' );
  43. } else {
  44. $scan = false;
  45. }
  46. if ( false === $scan ) {
  47. ?>
  48. <div id="pb_backupbuddy_malwarescanloading">
  49. <table><tr><td><img src="<?php echo pb_backupbuddy::plugin_url(); ?>/images/loading_large.gif" /></td><td><h1>&nbsp;<?php _e('Scanning for Malware... Please wait...', 'it-l10n-backupbuddy' );?></h1></td></tr></table>
  50. </div>
  51. <?php
  52. flush();
  53. $scan = wp_remote_get(
  54. 'http://sitecheck.sucuri.net/scanner/?scan=' . urlencode( $url ) . '&serialized&clear=true',
  55. array(
  56. 'method' => 'GET',
  57. 'timeout' => 45,
  58. 'redirection' => 5,
  59. 'httpversion' => '1.0',
  60. 'blocking' => true,
  61. 'headers' => array(),
  62. 'body' => null,
  63. 'cookies' => array()
  64. )
  65. );
  66. if ( is_wp_error( $scan ) ) {
  67. pb_backupbuddy::alert( __('ERROR #24452. Unable to load Malware Scan results. Details:', 'it-l10n-backupbuddy' ). ' ' . $scan->get_error_message(), true );
  68. $scan = 'N;';
  69. } else {
  70. $scan = $scan['body'];
  71. set_transient( 'pb_backupbuddy_malwarescan', $scan, 60*60*1 ); // 1 hour cache.
  72. }
  73. ?>
  74. <script type="text/javascript">
  75. jQuery(document).ready(function() {
  76. jQuery('#pb_backupbuddy_malwarescanloading').slideToggle();
  77. });
  78. </script>
  79. <?php
  80. }
  81. $continue_2 = true;
  82. if ( substr( $scan, 0, 2 ) == 'N;' ) {
  83. echo __('An error was encountered attempting to scan this site.','it-l10n-backupbuddy' ), '<br />';
  84. echo __('An internet connection is required and this site must be accessible on the public internet.', 'it-l10n-backupbuddy' );
  85. echo '<br>';
  86. $scan = array();
  87. $continue_2 = false;
  88. } else {
  89. $scan = maybe_unserialize( $scan );
  90. //echo '<pre>';
  91. //print_r( $scan );
  92. //echo '</pre>';
  93. }
  94. }
  95. pb_backupbuddy::$ui->end_metabox();
  96. ?>
  97. <?php
  98. if ( $continue_2 === true ) {
  99. function lined_array( $array ) {
  100. if ( is_array( $array ) ) {
  101. foreach( $array as $array_key => $array_item ) {
  102. if ( is_array( $array_item ) ) {
  103. $array[$array_key] = lined_array( $array_item );
  104. }
  105. }
  106. //return implode( '<br />', $array );
  107. $return = '';
  108. foreach( $array as $array_item ) {
  109. $return .= $array_item . '<br />';
  110. }
  111. return $return;
  112. } else {
  113. if ( empty( $array ) ) {
  114. return '<i>'.__('none', 'it-l10n-backupbuddy' ).'</i><br />';
  115. } else {
  116. return $array . '<br />';
  117. }
  118. }
  119. }
  120. if ( !empty( $scan['MALWARE'] ) && ( $scan['MALWARE'] != 'E' ) ) {
  121. echo '<table><tr><td><img src="' . pb_backupbuddy::plugin_url() . '/images/warning.png" style="width: 92px; height: 92px;" /></td><td><h1>', __('Warning: Possible Malware Detected!', 'it-l10n-backupbuddy' ), '</h1>',__('See details below.', 'it-l10n-backupbuddy' ), '</td></tr></table>';
  122. }
  123. ?>
  124. <div class="postbox-container" style="width: 100%; min-width: 750px;">
  125. <div class="metabox-holder">
  126. <div class="meta-box-sortables">
  127. <div id="breadcrumbslike" class="postbox">
  128. <div class="handlediv" title="<?php _e('Click to toggle', 'it-l10n-backupbuddy' );?>"><br /></div>
  129. <h3 class="hndle"><span><?php _e('Malware Detection', 'it-l10n-backupbuddy' );?></span></h3>
  130. <div class="inside">
  131. <label><?php _e('Malware', 'it-l10n-backupbuddy' );?></label>
  132. <?php
  133. if ( !empty( $scan['MALWARE']['WARN'] ) ) { // Malware found.
  134. echo lined_array( $scan['MALWARE']['WARN'] );
  135. backupbuddy_core::addNotification( 'malware_found', 'Malware detected on `' . $url . '`.', 'A malware scan was run on the site and detected malware.', array(), true ); // Urgent
  136. } else { // No malware found.
  137. echo '<i>', __('none', 'it-l10n-backupbuddy' ), '</i><br />';
  138. backupbuddy_core::addNotification( 'malware_not_found', 'No malware detected on `' . $url . '`.', 'A malware scan was run on the site and did not detect malware.' );
  139. } ?><br />
  140. </div>
  141. </div>
  142. <div id="breadcrumbslike" class="postbox">
  143. <div class="handlediv" title="<?php _e('Click to toggle', 'it-l10n-backupbuddy' );?>"><br /></div>
  144. <h3 class="hndle"><span><?php _e('Web server details', 'it-l10n-backupbuddy' );?></span></h3>
  145. <div class="inside">
  146. <label><?php _e('Site', 'it-l10n-backupbuddy' );?></label> <?php if ( !empty( $scan['SCAN']['SITE'] ) ) { echo lined_array( $scan['SCAN']['SITE'] ); } else { echo '<i>', __('none', 'it-l10n-backupbuddy' ),'</i><br />'; } ?><br />
  147. <label><?php _e('Hostname', 'it-l10n-backupbuddy' );?></label> <?php if ( !empty( $scan['SCAN']['DOMAIN'] ) ) { echo lined_array( $scan['SCAN']['DOMAIN'] ); } else { echo '<i>',__('none', 'it-l10n-backupbuddy' ),'</i><br />'; } ?><br />
  148. <label><?php _e('IP Address', 'it-l10n-backupbuddy' );?></label> <?php if ( !empty( $scan['SCAN']['IP'] ) ) { echo lined_array( $scan['SCAN']['IP'] ); } else { echo '<i>',__('none', 'it-l10n-backupbuddy' ),'</i><br />'; } ?><br />
  149. <label><?php _e('System details', 'it-l10n-backupbuddy' );?></label> <?php if ( !empty( $scan['SYSTEM']['NOTICE'] ) ) { echo lined_array( $scan['SYSTEM']['NOTICE'] ); } else { echo '<i>', __('none','it-l10n-backupbuddy' ), '</i><br />'; } ?><br />
  150. <label><?php _e('Information', 'it-l10n-backupbuddy' );?></label> <?php if ( !empty( $scan['SYSTEM']['INFO'] ) ) { echo lined_array( $scan['SYSTEM']['INFO'] ); } else { echo '<i>', __('none', 'it-l10n-backupbuddy' ), '</i><br />'; } ?><br />
  151. </div>
  152. </div>
  153. <div id="breadcrumbslike" class="postbox">
  154. <div class="handlediv" title="Click to toggle"><br /></div>
  155. <h3 class="hndle"><span><?php _e('Web application', 'it-l10n-backupbuddy' );?></span></h3>
  156. <div class="inside">
  157. <label><?php _e('Details', 'it-l10n-backupbuddy' );?></label> <?php if ( !empty( $scan['WEBAPP']['INFO'] ) ) { echo lined_array( $scan['WEBAPP']['INFO'] ); } else { echo '<i>', __('none', 'it-l10n-backupbuddy' ),'</i><br />'; } ?><br />
  158. <label><?php _e('Versions', 'it-l10n-backupbuddy' );?></label> <?php if ( !empty( $scan['WEBAPP']['VERSION'] ) ) { echo lined_array( $scan['WEBAPP']['VERSION'] ); } else { echo '<i>',__('none', 'it-l10n-backupbuddy' ),'</i><br />'; } ?><br />
  159. <label><?php _e('Notices', 'it-l10n-backupbuddy' );?></label> <?php if ( !empty( $scan['WEBAPP']['NOTICE'] ) ) { echo lined_array( $scan['WEBAPP']['NOTICE'] ); } else { echo '<i>', __('none', 'it-l10n-backupbuddy' ), '</i><br />'; } ?><br />
  160. <label><?php _e('Errors', 'it-l10n-backupbuddy' );?></label> <?php if ( !empty( $scan['WEBAPP']['ERROR'] ) ) { echo lined_array( $scan['WEBAPP']['ERROR'] ); } else { echo '<i>',__('none', 'it-l10n-backupbuddy' ),'</i><br />'; } ?><br />
  161. <label><?php _e('Warnings', 'it-l10n-backupbuddy' );?></label> <?php if ( !empty( $scan['WEBAPP']['WARN'] ) ) { echo lined_array( $scan['WEBAPP']['WARN'] ); } else { echo '<i>', __('none', 'it-l10n-backupbuddy' ), '</i><br />'; } ?><br />
  162. </div>
  163. </div>
  164. <div id="breadcrumbslike" class="postbox">
  165. <div class="handlediv" title="<?php _e('Click to toggle', 'it-l10n-backupbuddy' );?>"><br /></div>
  166. <h3 class="hndle"><span><?php _e('Links', 'it-l10n-backupbuddy' );?></span></h3>
  167. <div class="inside">
  168. <?php if ( !empty( $scan['LINKS']['URL'] ) ) { echo lined_array( $scan['LINKS']['URL'] ); } else { echo '<i>', __('none', 'it-l10n-backupbuddy' ), '</i><br />'; } ?>
  169. </div>
  170. </div>
  171. <div id="breadcrumbslike" class="postbox">
  172. <div class="handlediv" title="<?php _e('Click to toggle', 'it-l10n-backupbuddy' );?>"><br /></div>
  173. <h3 class="hndle"><span><?php _e('Local Javascript', 'it-l10n-backupbuddy' );?></span></h3>
  174. <div class="inside">
  175. <?php if ( !empty( $scan['LINKS']['JSLOCAL'] ) ) { echo lined_array( $scan['LINKS']['JSLOCAL'] ); } else { echo '<i>', __('none', 'it-l10n-backupbuddy' ),'</i><br />'; } ?>
  176. </div>
  177. </div>
  178. <div id="breadcrumbslike" class="postbox">
  179. <div class="handlediv" title="<?php _e('Click to toggle', 'it-l10n-backupbuddy' );?>"><br /></div>
  180. <h3 class="hndle"><span><?php _e('External Javascript', 'it-l10n-backupbuddy' );?></span></h3>
  181. <div class="inside">
  182. <?php if ( !empty( $scan['LINKS']['JSEXTERNAL'] ) ) { echo lined_array( $scan['LINKS']['JSEXTERNAL'] ); } else { echo '<i>', __('none', 'it-l10n-backupbuddy' ), '</i><br />'; } ?>
  183. </div>
  184. </div>
  185. <div id="breadcrumbslike" class="postbox">
  186. <div class="handlediv" title="<?php _e('Click to toggle', 'it-l10n-backupbuddy' );?>"><br /></div>
  187. <h3 class="hndle"><span><?php _e('Iframes Included', 'it-l10n-backupbuddy' );?></span></h3>
  188. <div class="inside">
  189. <?php if ( !empty( $scan['LINKS']['IFRAME'] ) ) { echo lined_array( $scan['LINKS']['IFRAME'] ); } else { echo '<i>', __('none', 'it-l10n-backupbuddy' ), '</i><br />'; } ?>
  190. </div>
  191. </div>
  192. <div id="breadcrumbslike" class="postbox">
  193. <div class="handlediv" title="<?php _e('Click to toggle', 'it-l10n-backupbuddy' );?>"><br /></div>
  194. <h3 class="hndle"><span><?php _e('Blacklisting Status', 'it-l10n-backupbuddy' );?></span></h3>
  195. <div class="inside">
  196. <?php if ( !empty( $scan['BLACKLIST']['INFO'] ) ) { echo lined_array( $scan['BLACKLIST']['INFO'] ); } else { echo '<i>', __('none', 'it-l10n-backupbuddy' ), '</i><br />'; } ?>
  197. </div>
  198. </div>
  199. </div>
  200. </div>
  201. </div>
  202. <br /><br /><br /><br />
  203. <div style="color: #AFAFAF; width: 793px;">
  204. <a href="<?php
  205. if ( defined( 'pluginbuddy_importbuddy' ) ) {
  206. echo page_link( 'malware_scan', 'view_malware' );
  207. } else {
  208. if ( is_network_admin() ) {
  209. echo network_admin_url( 'admin.php' );
  210. } else {
  211. echo admin_url( 'admin.php' );
  212. }
  213. echo '?page=pb_backupbuddy_malware_scan';
  214. }
  215. ?>&refresh=true" class="button-secondary"><?php _e('Perform New Scan Now', 'it-l10n-backupbuddy' );?></a>
  216. <span class="description" style="vertical-align: -4px;">&nbsp;&nbsp;&nbsp;<?php _e('Malware scan results are cached for one hour.', 'it-l10n-backupbuddy' );?></span>
  217. </div>
  218. <br /><br />
  219. <?php
  220. }
  221. ?>