';
$msg .= __('New Plugin Name: ', "antihacker");
$msg .= $antihacker_new_plugin;
$msg .= ' ';
$msg .= __('Date', "antihacker");
$msg .= ': ';
$msg .= $dt;
$msg .= ' ';
$msg .= __('Domain', "antihacker");
$msg .= ': ';
$msg .= $dom;
$msg .= ' ';
$msg .= ' ';
$msg .= __('This email was sent from your website', "antihacker");
$msg .= ': ';
$msg .= $dom .' ';
$msg .= __('by Anti Hacker plugin.', "antihacker");
$msg .= ' ';
$email_from = 'wordpress@' . $dom;
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .= "From: " . $email_from . "\r\n" . 'Reply-To: ' . $ah_admin_email .
"\r\n" . 'X-Mailer: PHP/' . phpversion();
$to = $ah_admin_email;
$subject = __('Alert: New Plugin was installed at: ', "antihacker") . $dom;
wp_mail($to, $subject, $msg, $headers, '');
return 1;
}
$qpluginsnow = antihacker_q_plugins_now();
$qplugins = antihacker_q_plugins();
if ( ($qplugins == 0 and $qpluginsnow > 0) or ($qplugins > $qpluginsnow ) )
{
antihacker_save_name_plugins();
$qplugins = antihacker_q_plugins();
}
if ($qpluginsnow > $qplugins) {
$nplugins = get_site_option('antihacker_name_plugins', '');
$nplugins = explode(PHP_EOL, $nplugins);
$all_plugins = get_plugins();
$all_plugins_keys = array_keys($all_plugins);
if (count($all_plugins) < 1)
return;
$my_plugins_now = '';
$loopCtr = 0;
foreach ($all_plugins as $plugin_item) {
$plugin_title = $plugin_item['Name'];
$my_plugins_now[$loopCtr] = $plugin_title;
$loopCtr++;
}
$antihacker_new_plugin = '';
for ($i = 0; $i < $qpluginsnow; $i++) {
$plugin_name = $my_plugins_now[$i];
if ( ! in_array($plugin_name, $nplugins)) {
$antihacker_new_plugin = $plugin_name;
break;
}
}
add_action('plugins_loaded', 'antihacker_alert_plugin');
antihacker_save_name_plugins();
} // if ($qpluginsnow > $qplugins)
if ($qpluginsnow < $qplugins) {
antihacker_save_name_plugins();
}
} // End Report new plugin installed...
if(is_admin())
{
if(isset($_GET['page'])){
if ($_GET['page'] == 'anti-hacker')
{
add_filter('contextual_help', 'ah_contextual_help', 10, 3);
function ah_contextual_help($contextual_help, $screen_id, $screen)
{
$myhelp = '';
$myhelp .= __('Improve system security and help prevent unauthorized access to your account.', "antihacker");
$myhelp .= ' ';
$myhelp .= __('Read the StartUp guide at Anti Hacker Settings page.', "antihacker");
$myhelp .= ' ';
$myhelp .= __('Visit the', "antihacker");
$myhelp .= ' ';
$myhelp .= __('plugin site', "antihacker");
$myhelp .= ' ';
$myhelp .= __('for more details.', "antihacker");
$myhelp .= ' ';
$screen->add_help_tab(array(
'id' => 'wptuts-overview-tab',
'title' => __('Overview', 'plugin_domain'),
'content' => '
' . $myhelp . '
',
));
return $contextual_help;
}
}
}
}
function ahfindip()
{
$ip = '';
$headers = array(
'HTTP_CLIENT_IP', // Bill
'HTTP_X_REAL_IP', // Bill
'HTTP_X_FORWARDED', // Bill
'HTTP_FORWARDED_FOR', // Bill
'HTTP_FORWARDED', // Bill
'HTTP_X_CLUSTER_CLIENT_IP', //Bill
'HTTP_CF_CONNECTING_IP', // CloudFlare
'HTTP_X_FORWARDED_FOR', // Squid and most other forward and reverse proxies
'REMOTE_ADDR', // Default source of remote IP
);
for ( $x = 0; $x < 8; $x++ ) {
foreach ( $headers as $header ) {
$myheader = trim(strip_tags($_SERVER[$header]));
if(empty($myheader))
continue;
$ip = trim(strip_tags( $_SERVER[$header] ));
if ( empty( $ip ) ) {
continue;
}
if ( false !== ( $comma_index = strpos( strip_tags($_SERVER[$header]), ',' ) ) ) {
$ip = substr( $ip, 0, $comma_index );
}
// First run through. Only accept an IP not in the reserved or private range.
if($ip == '127.0.0.1')
{
$ip='';
continue;
}
if ( 0 === $x ) {
$ip = filter_var( $ip, FILTER_VALIDATE_IP, FILTER_FLAG_NO_RES_RANGE | FILTER_FLAG_NO_PRIV_RANGE );
} else {
$ip = filter_var( $ip, FILTER_VALIDATE_IP );
}
if ( ! empty( $ip ) ) {
break;
}
}
if ( ! empty( $ip ) ) {
break;
}
}
if (!empty($ip))
return $ip;
else
return 'unknow';
}
function ah_whitelisted($antihackerip, $amy_whitelist)
{
for ($i = 0; $i < count($amy_whitelist); $i++) {
if (trim($amy_whitelist[$i]) == $antihackerip)
return 1;
}
return 0;
}
function ah_successful_login($user_login)
{
global $amy_whitelist;
global $my_radio_all_logins;
global $antihackerip;
global $ah_admin_email;
if (ah_whitelisted($antihackerip, $amy_whitelist) and $my_radio_all_logins <> 'Yes' )
{ return 1;}
$dt = date("Y-m-d H:i:s");
$dom = strip_tags($_SERVER['SERVER_NAME']);
$msg = __('This email was sent from your website', "antihacker").' ';
$msg .= $dom. ' '. __('by the AntiHacker plugin.', "antihacker");
$msg .= ' ';
$msg .= __('Date', "antihacker") .': ' . $dt . ' ';
$msg .= __('Ip', "antihacker"). ': ' . $antihackerip . ' ';
$msg .= __('Domain', "antihacker").': ' . $dom . ' ';
$msg .= __('User', "antihacker") .': ' . $user_login;
$msg .= ' ';
$msg .= __('Add this IP to your withelist to stop this email and change your Notification Settings.', "antihacker");
$email_from = 'wordpress@'.$dom;
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .= "From: ".$email_from. "\r\n" . 'Reply-To: ' . $user_login . "\r\n" .
'X-Mailer: PHP/' . phpversion();
$to = $ah_admin_email;
$subject = __('Login Successful at', "antihacker").': '.$dom;
wp_mail( $to, $subject, $msg, $headers, '' );
return 1;
}
function ah_activ_message()
{
echo '';
$bd_msg = ' ';
$bd_msg .= '
';
$bd_msg .= __('Anti Hacker Plugin was activated!', "antihacker");
$bd_msg .= ' ';
$bd_msg .= '
';
$bd_msg .= __('For details and help, take a look at Anti Hacker at your left menu', "antihacker");
$bd_msg .= ' ';
$bd_msg .= ' ';
$bd_msg .= __('or click here', "antihacker");
$bd_msg .= ' ';
echo $bd_msg;
echo " ";
}
function ah_activated()
{
ob_start();
global $my_whitelist;
global $ah_admin_email;
add_option('ah_was_activated', '1');
update_option('ah_was_activated', '1');
$antihackerip = ahfindip() ;
if(is_admin())
{
if (empty($my_whitelist)) {
if ( get_site_option( 'my_whitelist') !== false ) {
$return = update_site_option('my_whitelist', $antihackerip);
}
else
{
$return = add_site_option('my_whitelist', $antihackerip);
}
}
}
$antihacker_installed = trim(get_option( 'antihacker_installed',''));
if(empty($antihacker_installed)){
add_option( 'antihacker_installed', time() );
update_option( 'antihacker_installed', time() );
}
ob_end_clean();
}
function ah_my_deactivation()
{
// require_once (ANTIHACKERPATH . "includes/feedback/feedback.php");
global $ah_admin_email, $antihackerip;
$current_user = wp_get_current_user();
$user_login = $current_user->user_login;
$dt = date("Y-m-d H:i:s");
$dom = strip_tags($_SERVER['SERVER_NAME']);
$url = $_SERVER['PHP_SELF'];
$msg = __('Alert: the Anti Hacker plugin was been deactivated from plugins page.', "antihacker");
$msg .= ' ';
$msg .= __('Date', "antihacker") .': ' . $dt . ' ';
$msg .= __('Ip', "antihacker"). ': ' . $antihackerip . ' ';
$msg .= __('Domain', "antihacker"). ': ' . $dom . ' ';
$msg .= __('User', "antihacker").': ' . $user_login;
$msg .= ' ';
$msg .= __('This email was sent from your website', "antihacker"). ' ' . $dom .' ';
$msg .= __('by Anti Hacker plugin.', "antihacker"). ' ';
$email_from = 'wordpress@' . $dom;
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .= "From: " . $email_from . "\r\n" . 'Reply-To: ' . $user_login . "\r\n" .
'X-Mailer: PHP/' . phpversion();
$to = $ah_admin_email;
$subject = __('Plugin Deactivated at', "antihacker") .': ' . $dom;
wp_mail($to, $subject, $msg, $headers, '');
return 1;
}
function ah_email_display()
{ ?>
echo __('My Wordpress user email:', "antihacker"); ?>
'1' )
{ return;}
$dt = date("Y-m-d H:i:s");
$dom = strip_tags($_SERVER['SERVER_NAME']);
$msg = __('This email was sent from your website', "antihacker");
$msg .= ': '.$dom.' ';
$msg .= __('by the AntiHacker plugin.', "antihacker");
$msg .= ' ';
$msg .= __('Date', "antihacker");
$msg .= ': ' . $dt . ' ';
$msg .= __('Ip', "antihacker").': ' . $antihackerip . ' ';
$msg .= __('Domain', "antihacker").': ' . $dom . ' ';
$msg .= __('User', "antihacker").': ' . $user_login;
$msg .= ' ';
$msg .= __('Failed login', "antihacker");
$msg .= ' ';
$msg .= ' ';
$msg .= __('You can stop emails at the Notifications Settings Tab.', "antihacker");
$msg .= ' ';
$msg .= __('Dashboard => Anti Hacker => Notifications Settings.', "antihacker");
$email_from = 'wordpress@'.$dom;
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .= "From: ".$email_from. "\r\n" . 'Reply-To: ' . $user_login . "\r\n" .
'X-Mailer: PHP/' . phpversion();
$to = $ah_admin_email;
$subject = __('Failed Login at:', "antihacker").' '.$dom;
mail( $to, $subject, $msg, $headers, '' );
return;
}
if (get_site_option('my_radio_xml_rpc', 'No') == 'Yes')
add_filter( 'xmlrpc_enabled', '__return_false' );
if (get_site_option('my_radio_xml_rpc', 'No') == 'Pingback')
add_filter( 'xmlrpc_methods', 'ahpremove_xmlrpc_pingback_ping' );
function ahpremove_xmlrpc_pingback_ping( $methods ) {
unset( $methods['pingback.ping'] );
return $methods;
} ;
/////////////////////////////////////////
// Disable Json WordPress Rest API (also embed from WordPress 4.7).
// Take a look our faq page (at our site) for details.'
function antihacker_after_inic()
{
$ah_current_WP_version = get_bloginfo('version');
function ah_Force_Auth_Error() {
add_filter( 'rest_authentication_errors', 'ah_only_allow_logged_in_rest_access' );
}
function ah_Disable_Via_Filters() {
// Filters for WP-API version 1.x
add_filter( 'json_enabled', '__return_false' );
add_filter( 'json_jsonp_enabled', '__return_false' );
// Filters for WP-API version 2.x
add_filter( 'rest_enabled', '__return_false' );
add_filter( 'rest_jsonp_enabled', '__return_false' );
// Remove REST API info from head and headers
remove_action( 'xmlrpc_rsd_apis', 'rest_output_rsd' );
remove_action( 'wp_head', 'rest_output_link_wp_head', 10 );
remove_action( 'template_redirect', 'rest_output_link_header', 11 );
}
function ah_only_allow_logged_in_rest_access( $access ) {
if( ! is_user_logged_in() ) {
// die('123');
return new WP_Error( 'rest_cannot_access', __( 'Only authenticated users can access API.', 'disable-json-api' ), array( 'status' => rest_authorization_required_code() ) );
}
return $access;
}
if ( version_compare( $ah_current_WP_version, '4.7', '>=' ) ) {
ah_Force_Auth_Error();
} else {
ah_Disable_Via_Filters();
}
}
$antihacker_rest_api = trim(get_site_option('antihacker_rest_api', 'No'));
if($antihacker_rest_api <> 'No')
add_action( 'plugins_loaded', 'antihacker_after_inic' );
if(is_admin())
{
if(get_option('ah_was_activated', '0') == '1')
{
add_action( 'admin_notices', 'ah_activ_message' );
$r = update_option('ah_was_activated', '0');
if ( ! $r )
add_option('ah_was_activated', '0');
}
}
function ah_debug_enabled()
{
echo '';
echo '';
echo __('Message from Anti Hacker Plugin','antihacker');
echo ': ';
echo __('Looks like Debug mode is enabled. (WP_DEBUG is true)','antihacker');
echo '. ';
echo __('if enabled on a production website, it might cause information disclosure, allowing malicious users to view errors and additional logging information', 'antihacker');
echo '. ';
echo __('Please, take a look in our site, FAQ page, item => Wordpress Debug Mode or disable this message at General Settings Tab. ', 'antihacker');
echo '
';
}
?>