{"id":175886,"date":"2019-04-03T13:00:23","date_gmt":"2019-04-03T13:00:23","guid":{"rendered":"https:\/\/premium.wpmudev.org\/blog\/?p=175886"},"modified":"2019-04-10T19:45:58","modified_gmt":"2019-04-10T19:45:58","slug":"wordpress-security-best-practices","status":"publish","type":"post","link":"https:\/\/wpmudev.com\/blog\/wordpress-security-best-practices\/","title":{"rendered":"Hello, Hackers! Best Practices for WordPress Security"},"content":{"rendered":"<p>When talking about WordPress security, it feels like we&#8217;re left with 2 choices, devastating paranoia or ignorant bliss.<\/p>\n<p>With all the news of our personal information, usernames, passwords, and identities getting jacked and sold on the dark web, the topic of web security to a noobie sounds impossible.<\/p>\n<p>But after falling hard into the deep end of web security, I&#8217;ve discovered some \u201cnot-so-common-sense\u201d WordPress security best practices and pro tips (literally I talked to a pro) to help put your heart at ease. We&#8217;ll look at free tools and how to implement them on your websites and in your life.<\/p>\n<p>Maybe reality isn&#8217;t as depressing as we all fear.<\/p>\n<h3>WordPress Security For Dumb-Dumbs&#8230;Like Me<\/h3>\n<p>In episode 3 of Hello, WP!, <a href=\"https:\/\/shows.acast.com\/5be326c1d113a527262fa61e\/episodes\/5c48824af5538a1d35d967f4?\" rel=\"noopener\" target=\"_blank\">\u201cHello, Hackers!\u201d<\/a>, we took on the complexity of security in and around WordPress.<\/p>\n<p>If you haven&#8217;t listened to Hello, WP! yet, On the show we take on different topics by calling on the pros&#8230;kinda like your favorite true crime podcasts, but minus the crime.<\/p>\n<p>Anyway, for our Security episode, previous SiteLock employee (now GoDaddy employee), <a href=\"http:\/\/adamwwarner.com\" target=\"_blank\">Adam Warner<\/a>, joined me and shared 7 security best practices that I found extremely valuable. Adam and I had a much longer conversation than I could fit in the show, so I\u2019m bringing it here, with links, practical recommendations, and tips.<\/p>\n<p><em>Quick sidenote: outside of our podcast, Adam has done talks at several different WordCamps about these best practices. If you\u2019re interested in hearing more from him, <a href=\"https:\/\/wordpress.tv\/2019\/02\/02\/adam-warner-making-security-make-sense-to-clients-3\/\" target=\"_blank\">here\u2019s a session he did<\/a> at WordCamp Portland 2018.<\/em><\/p>\n<p>So what do you say? Let\u2019s jump in with best practice #1.<\/p>\n<h3>1. Backups<\/h3>\n<p>Backups allow you to travel back to your site\u2019s golden days if it ever experiences a breach *tosses salt over his left shoulder*. There are a whole lot of great tools out there to help you get the job done, but there\u2019s one especially important feature to look out for \u2013 off-site storage. Saving your backup files on a different server than your site will prevent the backups from being compromised in the event of a hack-attack.<\/p>\n<p>Depending on your budget, there are several free and paid plugins that make manually or automatically backing up your site very simple. Updraft Plus has a free version of there plugin that allows you to connect a <a href=\"https:\/\/www.dropbox.com\/\" target=\"_blank\">Dropbox<\/a> or <a href=\"https:\/\/www.google.com\/drive\/\" target=\"_blank\">Google Drive<\/a> folder.<\/p>\n<p>Or, if you\u2019re already a WPMU DEV member, <a href=\"https:\/\/wpmudev.com\/project\/snapshot\/\" target=\"_blank\">Snapshot Pro<\/a> has all the backup bells and whistles you need. Including 10GB of remote cloud storage (OOooO)!<\/p>\n<h3>2. Updates<\/h3>\n<p>Keeping with the times and running updates on themes, plugins, and WordPress core plays a pivotal role in maintaining your site\u2019s security. Sure, some updates only fix bugs or improve performance, but others patch security vulnerabilities. THIS is why using well-maintained products is so important because if a plugin sits untouched for too long it becomes more susceptible to intruders.<\/p>\n<p>If you\u2019re just running a site or two, like me, then logging into the WordPress admin and clicking \u201cUpdate Plugins\u201d isn\u2019t too much of a hassle. It becomes more problematic when you have a lot of sites to look after. If that\u2019s you, it might be time to consider a <a href=\"https:\/\/wpmudev.com\/hub-welcome\/\" target=\"_blank\">site management hub<\/a>.<\/p>\n<h3>3. Strong passwords<\/h3>\n<p>I\u2019m a \u201ckeep it simple, stupid\u201d kinda guy, and the whole \u201cstrong\u201d and \u201cunique\u201d passwords thing really throws a wrench in that. These days, our browsers and even WordPress make strong password suggestions. That\u2019s cool and all, but with all the accounts we have across emails, social media, and WordPress, the greater battle is remembering all of those strong and unique logins.<\/p>\n<p>Thankfully, there are a bunch of password managers out there that allow me to maintain my KISS lifestyle. <a href=\"https:\/\/www.lastpass.com\/\" target=\"_blank\">LastPass<\/a> has a free and paid version. <a href=\"https:\/\/1password.com\/\" target=\"_blank\">1Password<\/a> starts at $2.99. Both of these password managers can store, generate, and paste your powerful passwords on demand. All you have to remember is ONE \u201cmaster password\u201d.<\/p>\n<h3>4. Firewalls and Content Delivery Networks (CDNs)<\/h3>\n<p>Okay, when it comes to Firewalls, I can\u2019t\/won\u2019t suggest any free options (sorryboutit). Here\u2019s why:<\/p>\n<p>There are two types of firewalls, network firewalls, and web application firewalls (WAFs). Network firewalls happen on a hosting level, and quality hosting costs money!<\/p>\n<p>If you listened to the episode of \u201cHello, WP!\u201d that inspired this blog post, then you know that we aren\u2019t (or at least our CTO isn\u2019t) big fans of having WAFs in plugins. Firewalls stand between your site and its users by overseeing incoming and outgoing traffic&#8230;kinda like a fence around a house. Putting a firewall in a plugin is like putting a fence inside your house&#8230;and who does that? So for that reason, we don\u2019t include a firewall in our security plugin, Defender.<\/p>\n<p>Instead, we encourage the use of services like Cloudflare. <a href=\"https:\/\/www.cloudflare.com\/waf\/\" target=\"_blank\">Cloudflare offers a paid WAF<\/a> service that is constantly updated and monitored.<\/p>\n<div  class=\"wpdui-pic-regular  \">\n<figure class=\"wp-caption alignnone\" data-caption=\"true\"><img loading=\"lazy\" decoding=\"async\" class=\"attachment-600x600 size-600x600\" src=\"https:\/\/wpmudev.com\/blog\/wp-content\/uploads\/2019\/04\/cloudflare-waf-landing-page.png\" alt=\"Cloudflare WAF service landing page\" width=\"600\" height=\"360\" \/><figcaption class=\"wp-caption-text\">For real protection use a server-side WAF like Cloudflare.<\/figcaption><\/figure>\n<\/div>\n<h3>5. Monitoring<\/h3>\n<p>In some way, shape, or form monitoring is included in every one of these best practices. For example, you gotta monitor your website in order to keep up with updates, the internet must be monitored to maintain a strong firewall, and you use your strong and unique passwords in order to monitor your websites.<\/p>\n<p>Monitoring is key to running a tight ship, but if you\u2019re like me and know very little about code, or even if you&#8217;re not like me and are a coding wiz, running regular security scans help us tie up the loose ends, and alert us when things are running amuck. Our free security plugin, <a href=\"https:\/\/wpmudev.com\/free-plugins\/\" target=\"_blank\">Defender<\/a>, can run automatic malware scans, make security suggestions, checks code, and much more. Oh yeah&#8230;and he\u2019s free (incase you missed that)!<\/p>\n<p>You can also use a free site scanner like Sucuri&#8217;s free malware\/security specific scanner to find issues and stay ahead of vulnerabilities.<\/p>\n<h3>6. Two-Factor Authentication or 2FA<\/h3>\n<div  class=\"wpdui-pic-regular  \">\n<figure class=\"wp-caption alignnone\" data-caption=\"true\"><img loading=\"lazy\" decoding=\"async\" class=\"attachment-600x600 size-600x600\" src=\"https:\/\/wpmudev.com\/blog\/wp-content\/uploads\/2019\/04\/google-2-factor-authentication.png\" alt=\"Defender 2-step verification Google integration\" width=\"600\" height=\"360\" \/><figcaption class=\"wp-caption-text\">Use Defender to quickly setup Google&#8217;s 2-Step Verification on any WordPress site.<\/figcaption><\/figure>\n<\/div>\n<p>This probably goes without saying, but 2FA is when you verify an account by receiving a special number by call, text, or the like. Google is the master of 2FA. So I\u2019ll keep this simple, you can enable two-factor authentication for free on your WordPress site with our luchador friend mentioned above, <a href=\"https:\/\/wpmudev.com\/free-plugins\/\" target=\"_blank\">Defender<\/a>, or with a slew of other great plugins like Google Authenticator.<\/p>\n<h3>7. VPN or Virtual Private Networks<\/h3>\n<p>Prior to speaking with Adam, I had never heard of a VPN. But as one of those coffee-shop-dwelling hipsters and remote WordPress-ers&#8230;I should have been using one a long time ago! A VPN encrypts your data before the internet provider gets it.<\/p>\n<p>Without a VPN, a tech-savvy person with loose morals could hop on the same open wifi network as you, see what you\u2019re up to, and even access personal information. In recent years, internet browsers have begun to block non-private networks. If you browse with Google Chrome, you might be familiar with their block message that says, \u201cAttackers might be trying to steal your information from [domain] (for example, passwords, messages, or credit cards).\u201d<\/p>\n<p>If you\u2019re interested in implementing a VPN, <a href=\"https:\/\/www.tunnelbear.com\/\" target=\"_blank\">TunnelBear has a FREE plan<\/a> available. Not to mention&#8230;they also just have fun branding!<\/p>\n<p class=\"p1\">If you\u2019re able to stay within the\u00a0parameters of TunnelBear\u2019s free plan, go for it! But in most cases, using a free VPN is *not* a good idea. One study, done by\u00a0<span class=\"s1\"><a href=\"http:\/\/Top10VPN.com\" target=\"_blank\">Top10VPN.com<\/a>,\u00a0<\/span>has shown that many of them \u201cfeatured questionable permissions or functions buried in their source code that could potentially be used to spy on users.&#8221;<\/p>\n<h3>The Seven Wonders of Internet Security<\/h3>\n<p>In a way, engaging in internet security best practices are ways of following the golden rule. Create safe and secure websites for your users, because you want a safe a secure worldwide web!<\/p>\n<p>If this gets you excited, check out our <a href=\"https:\/\/wpmudev.com\/blog\/ultimate-guide-wordpress-security\/\" target=\"_blank\">Ultimate Guide to Security<\/a> and don&#8217;t miss a thing with our\u00a0<a href=\"https:\/\/wpmudev.com\/blog\/ultimate-wordpress-security-checklist\/\" target=\"_blank\">32-point WordPress security checklist<\/a>.<\/p>\n<p>Finally, take your WordPress security to the next level with our <a href=\"https:\/\/wpmudev.com\/security\/\" target=\"_blank\">ultimate premium security bundle<\/a>, backups, hosting and performance optimization. If your site\u2019s already been hacked we\u2019ll help you clean it up.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>When talking about WordPress security, it feels like we&#8217;re left with 2 choices, devastating paranoia or ignorant bliss. With all the news of our personal information, usernames, passwords, and identities getting jacked and sold on the dark web, the topic of web security to a noobie sounds impossible. But after falling hard into the deep [&hellip;]<\/p>\n","protected":false},"author":686960,"featured_media":175888,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"blog_reading_time":"","wds_primary_category":0,"wds_primary_tutorials_categories":0,"footnotes":""},"categories":[263],"tags":[10987,10810,10478,10821],"tutorials_categories":[],"class_list":["post-175886","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tutorials","tag-waf","tag-wordpress-security","tag-defender","tag-security"],"_links":{"self":[{"href":"https:\/\/wpmudev.com\/blog\/wp-json\/wp\/v2\/posts\/175886","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wpmudev.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wpmudev.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wpmudev.com\/blog\/wp-json\/wp\/v2\/users\/686960"}],"replies":[{"embeddable":true,"href":"https:\/\/wpmudev.com\/blog\/wp-json\/wp\/v2\/comments?post=175886"}],"version-history":[{"count":16,"href":"https:\/\/wpmudev.com\/blog\/wp-json\/wp\/v2\/posts\/175886\/revisions"}],"predecessor-version":[{"id":224373,"href":"https:\/\/wpmudev.com\/blog\/wp-json\/wp\/v2\/posts\/175886\/revisions\/224373"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wpmudev.com\/blog\/wp-json\/wp\/v2\/media\/175888"}],"wp:attachment":[{"href":"https:\/\/wpmudev.com\/blog\/wp-json\/wp\/v2\/media?parent=175886"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wpmudev.com\/blog\/wp-json\/wp\/v2\/categories?post=175886"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wpmudev.com\/blog\/wp-json\/wp\/v2\/tags?post=175886"},{"taxonomy":"tutorials_categories","embeddable":true,"href":"https:\/\/wpmudev.com\/blog\/wp-json\/wp\/v2\/tutorials_categories?post=175886"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}