PageRenderTime 53ms CodeModel.GetById 28ms RepoModel.GetById 0ms app.codeStats 1ms

/plugins/backupbuddy2/controllers/pages/malware_scan.php

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