Home
> checklist for new wordpress websites for security enhancements
checklist for new wordpress websites for security enhancements
General Security Enhancements
Go to the WordPress dashboard
Click on the Updates section
Click on the Update Now button
Go to the Plugins section in the WordPress dashboard
Click on the Update Now link for each plugin
Repeat the same process for themes in the Appearance section
Go to the Plugins section in the WordPress dashboard
Deactivate and delete any unused plugins
Repeat the same process for themes in the Appearance section
Create a new user with administrator privileges
Login with the new user account
Delete the default 'admin' username
Use a combination of letters, numbers, and special characters
Avoid using common words or phrases
Consider using a password manager
Install a two-factor authentication plugin
Follow the setup instructions for the plugin
Enable two-factor authentication for all user accounts
Install a login attempt limiting plugin
Set a limit on the number of login attempts
Configure the plugin to block IP addresses after too many failed attempts
Add the following line of code to the wp-config.php file: define( 'DISALLOW_FILE_EDIT', true );
Save and upload the modified wp-config.php file
Create a .htaccess file in the root directory of your WordPress installation
Add rules to restrict access to sensitive files
Save and upload the .htaccess file
Go to the Plugins section in the WordPress dashboard
Click on the Add New button
Search for and install the Wordfence or Sucuri plugin
Website Configuration
Purchase an SSL certificate from a trusted provider
Install the SSL certificate on your web server
Update the website URL to use HTTPS
Install a backup plugin like UpdraftPlus
Configure the backup settings to run automatically and store backups offsite
Change file permissions to 644 for files and 755 for directories
Avoid using 777 permissions as it gives too much access
Access your website's root directory
Locate the .htaccess file
Add the following line to the .htaccess file: Options -Indexes
Install a security plugin like Wordfence
Disable XML-RPC in the plugin settings
Access your website's root directory
Locate the .htaccess file
Add the following lines to the .htaccess file for each directory: php_flag engine off
Access your website's root directory
Locate the .htaccess file
Add the following lines to the .htaccess file: Header always set X-Frame-Options DENY Header always set X-XSS-Protection "1; mode=block" Header always set X-Content-Type-Options nosniff
Access your website's root directory
Locate the .htaccess file
Add the following lines to the .htaccess file: Order Deny,Allow Deny from all Allow from xx.xx.xx.xx
Database Security
Access your WordPress files via FTP or cPanel
Open the wp-config.php file in a text editor
Locate the line that defines the $table_prefix variable
Change the prefix to a unique string
Access your database through phpMyAdmin or a similar tool
Create a new user with limited privileges
Grant only the necessary permissions to the user
Delete any unused or unnecessary users
Install a backup plugin like UpdraftPlus or BackupBuddy
Schedule regular backups of your database
Store backups in a secure location, such as an external drive or cloud storage
Test backups regularly to ensure they can be restored
Install a security plugin like Wordfence or Sucuri
Set up alerts for unusual database activity
Regularly review database logs for any suspicious behavior
Investigate and address any anomalies immediately
Use a plugin like WP Encrypt or WP Security Audit Log
Enable encryption for sensitive data fields
Regularly review encryption settings for any updates or changes
Ensure encryption keys are stored securely
Server Security
Install and configure a firewall to filter incoming and outgoing traffic.
Set up rules to block unauthorized access attempts.
Generate SSH key pairs for server access.
Disable password authentication and only allow key-based authentication.
Update server configuration to disable directory browsing.
Ensure sensitive directories are not accessible.
Regularly review server logs for any suspicious entries.
Set up alerts for unusual activities.
Use a reputable security tool to scan the server for malware.
Check for vulnerabilities in server software and address them.
Monitoring and Maintenance
Utilize monitoring tools like Sucuri or Wordfence to set up alerts
Configure email notifications for any security incidents
Schedule regular malware scans using security plugins
Run vulnerability scans using tools like WPScan or Nessus
Review user login attempts and IP addresses
Check for any unauthorized changes to files or settings
Conduct manual security audits to identify potential vulnerabilities
Perform penetration testing to simulate real-world attacks
Back up website files and database regularly
Create a detailed plan for restoring the website in case of a breach
Additional Security Measures
Add Content-Security-Policy header to HTTP response
Specify allowed sources for scripts, styles, images, fonts, etc.
Use CSP directives to restrict which resources can be loaded
Add Strict-Transport-Security header to HTTP response
Set max-age directive to specify how long the browser should remember HSTS
Include subdomains by adding includeSubDomains directive
Install a WAF plugin or service
Configure rules to block common attack patterns
Regularly monitor and update firewall rules
Perform security audits and vulnerability scans regularly
Stay informed about latest security threats and best practices
Update plugins, themes, and WordPress core regularly