SlideShare a Scribd company logo
Security 101
                ~ Improving the security of your WordPress installation ~




@manifestphil                                                           manifestbozeman.com
Why would anyone hack me?
   It's not personal, but there are
   several motivating factors…

   ■    For attention

   ■    Profit scams

   ■    Own one, own them all…

   ■    To steal information
                                                 "All I wanted was to sell my cupcakes online!"




Most website hacks are performed by automated computer programs, and are
not directed at your website personally. However, the bigger you are, the more
worthwhile it becomes for a hacker to invest time, energy and resources.
Favorite WordPress Security Breaches
  There are certain types of hacks that target WordPress specifically:
  ■   Defacement / Hacktavism

  ■   SEO Hijacking

  ■   Affiliate/Malicious Redirects

  ■   Backdoors

  ■   Drive-by Downloads




                      Don't become a Canadian pharmacy!
What is security, exactly?

  ■   Security is about risk reduction.
      There is no silver bullet.
  ■   Security is never absolute.
  ■   To think you will never be                                Security is all about not being an easy target.
      infected is like saying you'll
      never be sick.
  ■   Detection is the key!                    Sometimes security means simply
                                               having a plan for what we will do in a
                                               worst case scenario… Play "what if?"

                                               Security means different things for
                                               different types of organizations.




                                  Like tourists, it's best avoid being
                                  "that guy".
So what's the problem?

     ■     The ecosystem/environment
     ■     Access control
     ■     Software vulnerabilities
     ■     Extensibility




Keeping your installation current is the easiest
security improvement you can make.


               Feature

                                                   The Wordpress core is in fact very

    v3.5.1                           Security
                                                   secure. When an issue arises, the
                                                   core team is quick to patch the
                                                   vulnerability, and push that to end
       Major                                       users.
Start by securing your own computer…

      ■       Good, up-to-date antivirus software
      ■       Keep your own software up to date
      ■       Know where you're surfing the web


    And getting a good web host.

         ■      Not much you can do if you're using a shared host.
         ■      Consider a dedicated / VPS environment or go with a managed host.

●    What security does my host
     use?
●    What kind of reputation do
     they have?
●    What will they do if you get
     hacked?
                                    A managed WordPress host doesn't mean you'll be any safer, but it does mean
                                    you'll have resources to lean on.
Change your passwords… like yesterday.

  ■   Hard to guess. Hard for a brute force attack to succeed.
  ■   Avoid any combination of your name, company name, username,
      etc.
  ■   Don't use dictionary words; in any language.
  ■   Stop using the same password for everything. Email, DB, Admin, FTP.

   My daughter is Emery. 07152013 She likes dogs!

                  MdiE.07152013Sld!




   1Password                   KeyPassX
You need a backup plan. Or two.

  ■   Clean backups mean you never need to start from scratch.
  ■   Backup your database, content, themes.
       ○     Specialized installations may need more, e.g. custom plugins, .htaccess, etc.

  ■   Backup to multiple locations.
       ○     Backups stored on your primary server cannot be trusted.
       ○     Hard drives fail. Homes burn down. Offices are burglarized.

  ■   Backup frequency
       ○     Depends on how much work or information you stand to lose.

  ■   Manual vs. Automatic




  Backup Buddy - $75                       VaultPress - $15/mo.              WP to Dropbox - FREE
Control the access to your site.

  ■   Connect using sFTP, SSH or FTP-SSL.
  ■   Login to wp-admin using SSL (https:
                                                     Reading
      //mydomain.com/wp-admin)                       Recommendation
  ■   Your FTP username/password should              Check out the eBook,
                                                     Locking Down
      not be the same as your WordPress              WordPress, by Michael
      admin username/password.                       Pick.

  ■   Least Privileged                               It's available as a free
                                                     download at CodePoet.
      ○   Everyone doesn't need to be an admin.      com

      ○   Every user should have own access.
                                                     What's in a free
      ○   You don't need to log in as admin
                                                     theme?
      ○   The focus is on the role, not their name
                                                     When you search Google
      ○   Kill generic accounts                      for free or cheap themes
                                                     you're probably going to
  ■   Blacklist known bad bots and users
                                                     create a security
                                                     vulnerability.

                                                     Go with more reputable
                                                     sources.
Setting up your WordPress installation

  ■   Turn off directory listings                  Maintainability Tips

  ■   Kill PHP execution
                                                   If you have plugins installed
                                                   that you do not use, delete
                                                   them!
  ■   Deny access to wp-config.php
                                                   Did you purchase or download

  ■   Ensure file permissions are correct
                                                   a theme? Use child themes to
                                                   allow the main theme to be
                                                   updated without breaking your
      ○   Directories should be 755                layout.

      ○   Files should be 644

  ■   Properly configure wp-config                 Developer Tips

      ○   Disable theme/plugin editing via admin   Following WordPress code
                                                   standards when developing a
      ○   Force SSL for admin login and use        theme will ensure that client
                                                   updates don't break the site.
      ○   Add secret keys
                                                   Because you're a ninja-coder,
  ■   Remove the admin account
                                                   you can confidently allow your
                                                   customer access to keep
                                                   WordPress updated.
  ■   Change the database table prefix
                                                   Help your clients setup
  ■   Use trusted sources for themes and plugins   automatic backups, please!
Turn off Directory Listings




Where does it go?                 What does it do?
/.htaccess                        Prevents the Apache web server from displaying a list of all
                                  the files in a directory.
Should be added to the .
htaccess file in your WordPress
root directory.
Kill PHP Execution




Where does it go?                   What does it do?
/wp-content/uploads/.htaccess       Prevents PHP code from being executed in these two
/wp-includes/.htaccess              directories. Many backdoor access scripts disguise
                                    themselves in these locations.
If neither of these locations has
an existing .htaccess file, you
may need to create it.

Full instructions »
Deny access to wp-config.php




Where does it go?                            What does it do?
/.htaccess                                   Prevents any direct access by users to the wp-config.php file.

Full instructions »



For the extra cautious
You can also use Apache's .htaccess file to "whitelist" only certain IP addresses that should be allowed
to access your /wp-admin directory. Here's directions on how!
Disable editing via WP admin




Where does it go?   What does it do?
/wp-config.php      Removes the ability to edit theme or plugin files via the
                    WordPress admin panel.
Setup Unique Keys & Salts




Where does it go?                            What does it do?
/wp-config.php                               Ensures better encryption of information stored in your
                                             browser's cookies.




How do I get these keys?
Use the online generator and copy-paste them into your file.
Force SSL use for wp-admin




Where does it go?   What does it do?
/wp-config.php      Forces all WP Admin connections to be routed through SSL.
Hide login error messages




Where does it go?
/wp-content/themes/your-theme/functions.php



What does it do?
Prevents hackers from seeing whether the username or
password is incorrect.
Remove the WP version number




Where does it go?
/wp-content/themes/your-theme/functions.php



What does it do?
Removes the WordPress version number from the HTML
generated by your website. (And the RSS feed too!)



While you're at it…
Delete the readme.txt file and wp-config-sample.php files in
your WordPress root directory. You can safely delete the
install.php file located in your wp-admin folder as well.
Remove author username from comments




 Where does it go?
 /wp-content/themes/your-theme/functions.php



 What does it do?
 Prevents hackers from seeing the username of the post
 author.
Remove the admin account
                                           Steps
                                            1. Create a new user. The e-mail
                                                 address associated with each user
                                                 must be unique.
                                            2.   Click delete on the admin account.
                                                 You'll be presented with this screen.
                                            3.   Assign all of the posts to the new
                                                 user that you created and confirm
                                                 the deletion.
                                            4.   If needed, change your email address
                                                 back to your primary contact.




                Not geeky enough?
Alternatively, create a new user and run
           the following SQL command.
Change your database table prefix
Why you should care
Many SQL injection attacks assume that your
database prefix will be wp_

Don't make the hacker's job easy!



On a new installation
WordPress allows you to set the table prefix
when installing a new site.



On existing sites
You'll either need to change things in
the database and wp-config.php
directly, or use a plugin to help you.



For heaven's sake
Make a backup of your site
database before trying to
change table prefix names.
WordPress powers 22% of new active websites, in the U.S. It powers 17% of the
                                   top million websites in the world.

                                 Use the power of this vast community and


                      keep WordPress updated!



@manifestphil                                                                          manifestbozeman.com
Site Security Tools               Documentation, etc.
  ■   Securi Site Scanner           ■   WP Codex
  ■   Google Safe Browsing          ■   Perishable Press 5G Blacklist
  ■   Bots vs. Browsers             ■   How anyone can hack your
                                        WP site in less than 5 minutes
  ■   iSecLab.org - Wepawet
                                        (and what you can do…)
  ■   Unmask Parasites              ■   Protecting /wp-admin using
                                        Apache
                                    ■   Smashing Magazine
                                    ■   What to do if you're hacked
Plugin Recommendations
  ■   Limit Login Attempts
  ■   WP Security Scan
  ■   Duo Two-Factor
      Authentication          ■   WP File Monitor Plus

  ■   Theme Check             ■   Akismet
Resources for theme and plugin developers
  ■   Data validation and sanitization in WordPress
  ■   Andrew Nacin: Y U No Code Well
  ■   Understanding WordPress Capabilities and Nonces
  ■   WordPress Plugin Development Best Practices
  ■   StackExchange: WordPress Answers
  ■   WP Hackers Mailing List

More Related Content

PPTX
Webinar - Tips and Tricks on Website Security
PPTX
Thoughts on Defensive Development for Sitecore
PDF
Joomla! security jday2015
PDF
WordPress Security Best Practices 2019 Update
PPTX
Understanding word press security wwc-4-7-17
PPTX
WordPress Security Best Practices
PDF
Top Ten WordPress Security Tips for 2012
PPTX
WordPress Security - WordCamp phoenix 2013
Webinar - Tips and Tricks on Website Security
Thoughts on Defensive Development for Sitecore
Joomla! security jday2015
WordPress Security Best Practices 2019 Update
Understanding word press security wwc-4-7-17
WordPress Security Best Practices
Top Ten WordPress Security Tips for 2012
WordPress Security - WordCamp phoenix 2013

Viewers also liked (9)

PPT
Taller De Blogs
PPT
QuiéN Soy
PPS
Las mejores fotos del 2007
PPT
Ma
PPT
Subiendo ImáGenes A Una Entrada
PPS
Las Mejores Fotos
PPT
Creando Un Blog
PPT
Elliot standard presentation
PDF
Gem fall 2016 (2)
Taller De Blogs
QuiéN Soy
Las mejores fotos del 2007
Ma
Subiendo ImáGenes A Una Entrada
Las Mejores Fotos
Creando Un Blog
Elliot standard presentation
Gem fall 2016 (2)
Ad

Similar to WordPress Security 101 (20)

PDF
Secure wordpress
PDF
Introduction to WordPress Security
PPTX
Protect Your WordPress From The Inside Out
PDF
Introduction to WordPress Security
PPTX
WordPress Security Best Practices
PDF
Keep Your SIte Secure
PDF
Why WordPress Works
PPTX
40 WordPress Tips: Security, Engagement, SEO & Performance - SMX Sydney 2013
PPTX
Care and feeding of your website
PDF
I Have My WordPress Site Now What?
PDF
Word press beirut 9th meetup march
PPTX
WordPress Plugins and Security
PPTX
INTERNET SAFETY FOR KIDS
PDF
WordPress security & sanitation for beginners
PPTX
WordPress Optimization & Security - ThinkVisibility 2012, Leeds
PDF
WordPress security 101 - WP Jyväskylä Meetup 21.3.2017
PDF
WordPress Security Essentials WordCamp Denver 2012
PDF
Seravo.com: WordPress Security 101
PPTX
Neo word press meetup ehermits - how to keep your blog from being hacked 2012
PPTX
WordPress Optimization & Security - LAC 2013, London
Secure wordpress
Introduction to WordPress Security
Protect Your WordPress From The Inside Out
Introduction to WordPress Security
WordPress Security Best Practices
Keep Your SIte Secure
Why WordPress Works
40 WordPress Tips: Security, Engagement, SEO & Performance - SMX Sydney 2013
Care and feeding of your website
I Have My WordPress Site Now What?
Word press beirut 9th meetup march
WordPress Plugins and Security
INTERNET SAFETY FOR KIDS
WordPress security & sanitation for beginners
WordPress Optimization & Security - ThinkVisibility 2012, Leeds
WordPress security 101 - WP Jyväskylä Meetup 21.3.2017
WordPress Security Essentials WordCamp Denver 2012
Seravo.com: WordPress Security 101
Neo word press meetup ehermits - how to keep your blog from being hacked 2012
WordPress Optimization & Security - LAC 2013, London
Ad

Recently uploaded (20)

PDF
NewMind AI Monthly Chronicles - July 2025
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PPTX
Cloud computing and distributed systems.
PDF
Approach and Philosophy of On baking technology
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PPT
Teaching material agriculture food technology
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
Machine learning based COVID-19 study performance prediction
PDF
Electronic commerce courselecture one. Pdf
PDF
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PPTX
A Presentation on Artificial Intelligence
PDF
cuic standard and advanced reporting.pdf
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
NewMind AI Monthly Chronicles - July 2025
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Cloud computing and distributed systems.
Approach and Philosophy of On baking technology
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Teaching material agriculture food technology
Understanding_Digital_Forensics_Presentation.pptx
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Machine learning based COVID-19 study performance prediction
Electronic commerce courselecture one. Pdf
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
“AI and Expert System Decision Support & Business Intelligence Systems”
Chapter 3 Spatial Domain Image Processing.pdf
Dropbox Q2 2025 Financial Results & Investor Presentation
A Presentation on Artificial Intelligence
cuic standard and advanced reporting.pdf
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
The Rise and Fall of 3GPP – Time for a Sabbatical?
20250228 LYD VKU AI Blended-Learning.pptx

WordPress Security 101

  • 1. Security 101 ~ Improving the security of your WordPress installation ~ @manifestphil manifestbozeman.com
  • 2. Why would anyone hack me? It's not personal, but there are several motivating factors… ■ For attention ■ Profit scams ■ Own one, own them all… ■ To steal information "All I wanted was to sell my cupcakes online!" Most website hacks are performed by automated computer programs, and are not directed at your website personally. However, the bigger you are, the more worthwhile it becomes for a hacker to invest time, energy and resources.
  • 3. Favorite WordPress Security Breaches There are certain types of hacks that target WordPress specifically: ■ Defacement / Hacktavism ■ SEO Hijacking ■ Affiliate/Malicious Redirects ■ Backdoors ■ Drive-by Downloads Don't become a Canadian pharmacy!
  • 4. What is security, exactly? ■ Security is about risk reduction. There is no silver bullet. ■ Security is never absolute. ■ To think you will never be Security is all about not being an easy target. infected is like saying you'll never be sick. ■ Detection is the key! Sometimes security means simply having a plan for what we will do in a worst case scenario… Play "what if?" Security means different things for different types of organizations. Like tourists, it's best avoid being "that guy".
  • 5. So what's the problem? ■ The ecosystem/environment ■ Access control ■ Software vulnerabilities ■ Extensibility Keeping your installation current is the easiest security improvement you can make. Feature The Wordpress core is in fact very v3.5.1 Security secure. When an issue arises, the core team is quick to patch the vulnerability, and push that to end Major users.
  • 6. Start by securing your own computer… ■ Good, up-to-date antivirus software ■ Keep your own software up to date ■ Know where you're surfing the web And getting a good web host. ■ Not much you can do if you're using a shared host. ■ Consider a dedicated / VPS environment or go with a managed host. ● What security does my host use? ● What kind of reputation do they have? ● What will they do if you get hacked? A managed WordPress host doesn't mean you'll be any safer, but it does mean you'll have resources to lean on.
  • 7. Change your passwords… like yesterday. ■ Hard to guess. Hard for a brute force attack to succeed. ■ Avoid any combination of your name, company name, username, etc. ■ Don't use dictionary words; in any language. ■ Stop using the same password for everything. Email, DB, Admin, FTP. My daughter is Emery. 07152013 She likes dogs! MdiE.07152013Sld! 1Password KeyPassX
  • 8. You need a backup plan. Or two. ■ Clean backups mean you never need to start from scratch. ■ Backup your database, content, themes. ○ Specialized installations may need more, e.g. custom plugins, .htaccess, etc. ■ Backup to multiple locations. ○ Backups stored on your primary server cannot be trusted. ○ Hard drives fail. Homes burn down. Offices are burglarized. ■ Backup frequency ○ Depends on how much work or information you stand to lose. ■ Manual vs. Automatic Backup Buddy - $75 VaultPress - $15/mo. WP to Dropbox - FREE
  • 9. Control the access to your site. ■ Connect using sFTP, SSH or FTP-SSL. ■ Login to wp-admin using SSL (https: Reading //mydomain.com/wp-admin) Recommendation ■ Your FTP username/password should Check out the eBook, Locking Down not be the same as your WordPress WordPress, by Michael admin username/password. Pick. ■ Least Privileged It's available as a free download at CodePoet. ○ Everyone doesn't need to be an admin. com ○ Every user should have own access. What's in a free ○ You don't need to log in as admin theme? ○ The focus is on the role, not their name When you search Google ○ Kill generic accounts for free or cheap themes you're probably going to ■ Blacklist known bad bots and users create a security vulnerability. Go with more reputable sources.
  • 10. Setting up your WordPress installation ■ Turn off directory listings Maintainability Tips ■ Kill PHP execution If you have plugins installed that you do not use, delete them! ■ Deny access to wp-config.php Did you purchase or download ■ Ensure file permissions are correct a theme? Use child themes to allow the main theme to be updated without breaking your ○ Directories should be 755 layout. ○ Files should be 644 ■ Properly configure wp-config Developer Tips ○ Disable theme/plugin editing via admin Following WordPress code standards when developing a ○ Force SSL for admin login and use theme will ensure that client updates don't break the site. ○ Add secret keys Because you're a ninja-coder, ■ Remove the admin account you can confidently allow your customer access to keep WordPress updated. ■ Change the database table prefix Help your clients setup ■ Use trusted sources for themes and plugins automatic backups, please!
  • 11. Turn off Directory Listings Where does it go? What does it do? /.htaccess Prevents the Apache web server from displaying a list of all the files in a directory. Should be added to the . htaccess file in your WordPress root directory.
  • 12. Kill PHP Execution Where does it go? What does it do? /wp-content/uploads/.htaccess Prevents PHP code from being executed in these two /wp-includes/.htaccess directories. Many backdoor access scripts disguise themselves in these locations. If neither of these locations has an existing .htaccess file, you may need to create it. Full instructions »
  • 13. Deny access to wp-config.php Where does it go? What does it do? /.htaccess Prevents any direct access by users to the wp-config.php file. Full instructions » For the extra cautious You can also use Apache's .htaccess file to "whitelist" only certain IP addresses that should be allowed to access your /wp-admin directory. Here's directions on how!
  • 14. Disable editing via WP admin Where does it go? What does it do? /wp-config.php Removes the ability to edit theme or plugin files via the WordPress admin panel.
  • 15. Setup Unique Keys & Salts Where does it go? What does it do? /wp-config.php Ensures better encryption of information stored in your browser's cookies. How do I get these keys? Use the online generator and copy-paste them into your file.
  • 16. Force SSL use for wp-admin Where does it go? What does it do? /wp-config.php Forces all WP Admin connections to be routed through SSL.
  • 17. Hide login error messages Where does it go? /wp-content/themes/your-theme/functions.php What does it do? Prevents hackers from seeing whether the username or password is incorrect.
  • 18. Remove the WP version number Where does it go? /wp-content/themes/your-theme/functions.php What does it do? Removes the WordPress version number from the HTML generated by your website. (And the RSS feed too!) While you're at it… Delete the readme.txt file and wp-config-sample.php files in your WordPress root directory. You can safely delete the install.php file located in your wp-admin folder as well.
  • 19. Remove author username from comments Where does it go? /wp-content/themes/your-theme/functions.php What does it do? Prevents hackers from seeing the username of the post author.
  • 20. Remove the admin account Steps 1. Create a new user. The e-mail address associated with each user must be unique. 2. Click delete on the admin account. You'll be presented with this screen. 3. Assign all of the posts to the new user that you created and confirm the deletion. 4. If needed, change your email address back to your primary contact. Not geeky enough? Alternatively, create a new user and run the following SQL command.
  • 21. Change your database table prefix Why you should care Many SQL injection attacks assume that your database prefix will be wp_ Don't make the hacker's job easy! On a new installation WordPress allows you to set the table prefix when installing a new site. On existing sites You'll either need to change things in the database and wp-config.php directly, or use a plugin to help you. For heaven's sake Make a backup of your site database before trying to change table prefix names.
  • 22. WordPress powers 22% of new active websites, in the U.S. It powers 17% of the top million websites in the world. Use the power of this vast community and keep WordPress updated! @manifestphil manifestbozeman.com
  • 23. Site Security Tools Documentation, etc. ■ Securi Site Scanner ■ WP Codex ■ Google Safe Browsing ■ Perishable Press 5G Blacklist ■ Bots vs. Browsers ■ How anyone can hack your WP site in less than 5 minutes ■ iSecLab.org - Wepawet (and what you can do…) ■ Unmask Parasites ■ Protecting /wp-admin using Apache ■ Smashing Magazine ■ What to do if you're hacked Plugin Recommendations ■ Limit Login Attempts ■ WP Security Scan ■ Duo Two-Factor Authentication ■ WP File Monitor Plus ■ Theme Check ■ Akismet
  • 24. Resources for theme and plugin developers ■ Data validation and sanitization in WordPress ■ Andrew Nacin: Y U No Code Well ■ Understanding WordPress Capabilities and Nonces ■ WordPress Plugin Development Best Practices ■ StackExchange: WordPress Answers ■ WP Hackers Mailing List