⏲️ Estimated reading time: 4 min
Transform your WordPress in WordPress Security Site, crucial to prevent hacks, malware infections, data breaches, and unauthorized access.
This guide provides essential security scanning functions to help you identify and mitigate potential vulnerabilities before they become serious threats. You will learn how to detect malware, check for unauthorized modifications in core files, scan for weak administrator passwords, and ensure your plugins and themes are up to date. By implementing these security measures, you can fortify your website against cyberattacks and maintain a safe online presence.
1. Scanning WordPress Core Files for Changes
Hackers often modify core WordPress files. This function checks for any unauthorized changes:
function check_wp_core_integrity() {
require_once ABSPATH . 'wp-admin/includes/file.php';
$checksums = get_core_checksums(get_bloginfo('version'), get_locale());
if (!$checksums) {
return "Failed to retrieve WordPress checksums.";
}
foreach ($checksums as $file => $checksum) {
$file_path = ABSPATH . $file;
if (file_exists($file_path)) {
$file_contents = file_get_contents($file_path);
if (md5($file_contents) !== $checksum) {
echo "Modified file detected: " . esc_html($file) . "<br>";
}
} else {
echo "Missing file detected: " . esc_html($file) . "<br>";
}
}
}
add_action('admin_notices', 'check_wp_core_integrity');

2. Scanning for Malware in WordPress Files
This function detects suspicious code patterns that might indicate malware infection.
function scan_malware_in_files($directory) {
$suspicious_patterns = [
'/eval\(/i', '/base64_decode\(/i', '/shell_exec\(/i', '/system\(/i'
];
$files = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($directory));
foreach ($files as $file) {
if ($file->isFile() && preg_match('/\.(php|js)$/', $file->getFilename())) {
$content = file_get_contents($file->getPathname());
foreach ($suspicious_patterns as $pattern) {
if (preg_match($pattern, $content)) {
echo "Suspicious code found in: " . esc_html($file->getPathname()) . "<br>";
break;
}
}
}
}
}
// Run malware scan on the wp-content directory
scan_malware_in_files(WP_CONTENT_DIR);
3. Checking for Outdated Plugins and Themes
Outdated plugins and themes pose a security risk. This function checks if updates are needed.
function check_outdated_plugins_and_themes() {
$plugins = get_plugins();
$update_plugins = get_site_transient('update_plugins');
foreach ($plugins as $plugin_file => $plugin_info) {
if (isset($update_plugins->response[$plugin_file])) {
echo "Plugin Update Needed: " . esc_html($plugin_info['Name']) . "<br>";
}
}
$themes = wp_get_themes();
$update_themes = get_site_transient('update_themes');
foreach ($themes as $theme) {
$theme_slug = $theme->get_stylesheet();
if (isset($update_themes->response[$theme_slug])) {
echo "Theme Update Needed: " . esc_html($theme->get('Name')) . "<br>";
}
}
}
add_action('admin_notices', 'check_outdated_plugins_and_themes');
4. Checking for Weak Admin Passwords
This function helps identify weak passwords used by administrator accounts.
function check_weak_admin_passwords() {
$users = get_users(['role' => 'administrator']);
foreach ($users as $user) {
$password = 'testpassword'; // Replace with a real password check
$strength = wp_check_password($password, $user->user_pass, $user->ID);
if ($strength) {
echo "Weak password detected for admin user: " . esc_html($user->user_login) . "<br>";
}
}
}
add_action('admin_notices', 'check_weak_admin_passwords');
5. Checking File Permissions for Security Risks
Incorrect file permissions can expose your website to attacks. This function scans for potential risks.
function check_file_permissions() {
$paths = [
ABSPATH => '755',
WP_CONTENT_DIR => '755',
WP_CONTENT_DIR . '/uploads' => '755',
WP_CONTENT_DIR . '/themes' => '755',
WP_CONTENT_DIR . '/plugins' => '755',
ABSPATH . 'wp-config.php' => '600',
];
foreach ($paths as $path => $recommended) {
if (file_exists($path)) {
$permissions = substr(sprintf('%o', fileperms($path)), -3);
if ($permissions !== $recommended) {
echo "Incorrect permissions for $path: Expected $recommended, Found $permissions<br>";
}
}
}
}
add_action('admin_notices', 'check_file_permissions');
Conclusion
Using these security scanning functions will help detect vulnerabilities, malware, outdated plugins, and weak passwords in WordPress. However, for advanced security, consider using plugins like Wordfence, Sucuri Security, or iThemes Security. Keep your WordPress installation updated, use strong passwords, and regularly monitor your website for threats.
Tags:
WordPress Security, WordPress Scanning, Malware Detection, Plugin Security, File Integrity Check, Weak Passwords, WordPress Hardening, Secure WordPress, WordPress Plugins, Cybersecurity
Only logged-in users can submit reports.
Discover more from HelpZone
Subscribe to get the latest posts sent to your email.