O documento discute estratégias e boas práticas para melhorar a segurança de sites WordPress. Algumas dicas incluem manter softwares atualizados, usar senhas fortes e autenticação de dois fatores, configurar corretamente o arquivo .htaccess e remover arquivos desnecessários para evitar vulnerabilidades. O objetivo é conscientizar sobre a importância da segurança e como o administrador do site, e não o WordPress em si, é o fator mais inseguro.
Boas práticas de programação com Object Calisthenics
WP WEEKEND 2015 - O word press é seguro. Inseguro é você.
1. WordPress é Seguro.
Inseguro é você.
Leandro Vieira / Fundador e CEO da Apiki
leandro@apiki.com
O WordPress é seguro. Inseguro é você. / apiki.com/wordpress-seguro
2. Não sou
especialista em Segurança
O WordPress é seguro. Inseguro é você. / apiki.com/wordpress-seguro
3. Empresa do Grupo iMasters, é a primeira empresa
brasileira especializada e focada única e exclusivamente
em WordPress.
Responsável por grandes cases no mercado para empresas
como Grupo Abril, Buscapé Company, Grupo Estadão, FIRJAN,
iMasters, Walmart, Wizard, E-Commerce Brasil, Saraiva,
Digitalks, VTEX, CENIBRA e outros.
Fundada em 2008, mantém escritórios em Minas Gerais na
cidade de Governador Valadares e em São Paulo na capital.
Com serviços e soluções especializadas em WordPress
organizados em produtos categorizados e certificados por
nossos clientes.
Apiki. Empresa orgulhosamente especializada em WordPress
com soluções certificadas por nossos clientes.
4. Clientes e amigos que nos renderam boas histórias para contar. Vamos construir a nossa?
Clientes
Apiki. Empresa orgulhosamente especializada em WordPress
com soluções certificadas por nossos clientes.
5. Clientes e amigos que nos renderam boas histórias para contar. Vamos construir a nossa?
Clientes
Apiki. Empresa orgulhosamente especializada em WordPress
com soluções certificadas por nossos clientes.
6. O WordPress não é
seguro …
ouço isso muito. Várias e repetidas vezes.
O WordPress é seguro. Inseguro é você. / apiki.com/wordpress-seguro
8. O WordPress é seguro.
Inseguro é você.
A iniciativa.
O WordPress é seguro. Inseguro é você. / apiki.com/wordpress-seguro
9. Sobre a iniciativa
• Um guia prático disponível em:
apiki.com/wordpress-seguro
• Conteúdo semanal sobre segurança disponível em: blog.apiki.com/
category/wordpressseguro. Mais de 30 e contando …
• Dezenas de dicas específicas de segurança;
• Entrevistas com especialistas;
• Palestras: Vitória/ES, Belo Horizonte/MG, São Paulo/SP, Itajubá/MG;
• Webinars;
• Workshop (Porto alegre/RS).
O WordPress é seguro. Inseguro é você. / apiki.com/wordpress-seguro
10. Segurança é processo.
Vamos conversar a respeito e compartilharei dicas
preciosas.
O WordPress é seguro. Inseguro é você. / apiki.com/wordpress-seguro
24. Você deveria usar
mais vezes
O WordPress é seguro. Inseguro é você. / apiki.com/wordpress-seguro
25. O WordPress é seguro. Inseguro é você. / apiki.com/wordpress-seguro
26. O WordPress é seguro. Inseguro é você. / apiki.com/wordpress-seguro
Vamos ver um exemplo prático de ataque de força bruta
27. Você deveria fazer
isso sempre …
O WordPress é seguro. Inseguro é você. / apiki.com/wordpress-seguro
28. @Atualizações
Core. Temas. Plugins. Sistema Operacional. Bibliotecas.
Tudo.
O WordPress é seguro. Inseguro é você.O WordPress é seguro. Inseguro é você. / apiki.com/wordpress-seguro
29. @Versão do WordPress
Remover? Ocultar? Deixar exposta?
O WordPress é seguro. Inseguro é você.O WordPress é seguro. Inseguro é você. / apiki.com/wordpress-seguro
30. @Usuário e senhas
“admin”. Senhas. Ataques. Desconexão.
O WordPress é seguro. Inseguro é você.O WordPress é seguro. Inseguro é você. / apiki.com/wordpress-seguro
31. @Usuário e senhas
O WordPress é seguro. Inseguro é você.O WordPress é seguro. Inseguro é você. / apiki.com/wordpress-seguro
32. @Usuários
O WordPress é seguro. Inseguro é você.O WordPress é seguro. Inseguro é você. / apiki.com/wordpress-seguro
• Sobre a listagem dos nomes de usuários;
• Feito através de Shell, Curl, Requisições manuais, WP Scan;
• Evite a listagem dos nomes de usuários;
• Dificulte os acessos de força bruta.
# Evita listagem dos nomes de usuários
RewriteCond %{REQUEST_URI} ^/$
RewriteCond %{QUERY_STRING} ^/?author=([0-9]*)
RewriteRule ^(.*)$ https://url-do-site.com/? [L,R=301]
33. @Usuário e senhas
O WordPress é seguro. Inseguro é você.O WordPress é seguro. Inseguro é você. / apiki.com/wordpress-seguro
https://api.wordpress.org/secret-key/1.1/salt/
34. @Autenticação de dois fatores
Quem é você. O que você tem. O que você sabe.
O WordPress é seguro. Inseguro é você.O WordPress é seguro. Inseguro é você. / apiki.com/wordpress-seguro
35. @Autenticação de dois fatores
O WordPress é seguro. Inseguro é você.O WordPress é seguro. Inseguro é você. / apiki.com/wordpress-seguro
37. @wp-config.php
• Manter o arquivo um nível acima do diretório público;
• Usar a permissão 400 (readonly) ou 600;
• No arquivo .htaccess fazer uso de diretiva para proteção do arquivo.
O WordPress é seguro. Inseguro é você.O WordPress é seguro. Inseguro é você. / apiki.com/wordpress-seguro
38. @Debug
O que os olhos não veem …
O WordPress é seguro. Inseguro é você.O WordPress é seguro. Inseguro é você. / apiki.com/wordpress-seguro
39. @Debug
/wp-content/debug.log
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
@ini_set( 'log_errors', 'On' );
define( 'WP_DEBUG_DISPLAY', false );
@ini_set( 'display_errors', 'Off' );
O WordPress é seguro. Inseguro é você.O WordPress é seguro. Inseguro é você. / apiki.com/wordpress-seguro
40. @Exclusão de arquivos
Hã?
O WordPress é seguro. Inseguro é você.O WordPress é seguro. Inseguro é você. / apiki.com/wordpress-seguro
43. @Verificações /
Backdoors
• /wp-content/uploads/ …
• alguma-coisa-nada-a-ver.php
• php5.php
• outra-coisa-estranha.php5
• single_x1.php4
• mais-coisa-esquisita.php4
• p.php
• 1.php
• 1.php5
• e a lista continua
O WordPress é seguro. Inseguro é você.O WordPress é seguro. Inseguro é você. / apiki.com/wordpress-seguro
44. @Verificações /
Backdoors
• Entender como e por que acontece;
• Sobre o mecanismo de upload do WordPress;
• Plugins e temas x API do Core;
• Dicas mágicas:
• Atualizações;
• Permissões corretas;
• Desabilitar o editor de Plugin e Tema;
• Bloquear execução de scripts PHP em /wp-content/
uploads.
O WordPress é seguro. Inseguro é você.O WordPress é seguro. Inseguro é você. / apiki.com/wordpress-seguro
45. @Permissões
400. 600. 644. 755.
O WordPress é seguro. Inseguro é você.O WordPress é seguro. Inseguro é você. / apiki.com/wordpress-seguro
46. @Permissões
O WordPress é seguro. Inseguro é você.
• 400/600 para o wp-config.php;
• 600 para o debug.log;
• 644 para os arquivos;
• 755 para os diretórios.
O WordPress é seguro. Inseguro é você. / apiki.com/wordpress-seguro
48. @Banco de Dados
Estrutura. Prefixo.
O WordPress é seguro. Inseguro é você.O WordPress é seguro. Inseguro é você. / apiki.com/wordpress-seguro
49. O WordPress é seguro. Inseguro é você.O WordPress é seguro. Inseguro é você. / apiki.com/wordpress-seguro
50. @Banco de Dados
wp_
O WordPress é seguro. Inseguro é você.O WordPress é seguro. Inseguro é você. / apiki.com/wordpress-seguro
51. @.htaccess
Mágico. Indexes. Debug. wp-config. wp-includes. Spam.
O WordPress é seguro. Inseguro é você.O WordPress é seguro. Inseguro é você. / apiki.com/wordpress-seguro
52. @.htaccess
#1
Options -Indexes
#2
<Files debug.log>
Order allow,deny
Deny from all
</Files>
#3
<files wp-config.php>
order allow,deny
deny from all
</files>
#4
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^wp-admin/includes/ - [F,L]
RewriteRule !^wp-includes/ - [S=3]
RewriteRule ^wp-includes/[^/]+.php$ - [F,L]
RewriteRule ^wp-includes/js/tinymce/langs/.+.php - [F,L]
RewriteRule ^wp-includes/theme-compat/ - [F,L]
</IfModule>
O WordPress é seguro. Inseguro é você.O WordPress é seguro. Inseguro é você. / apiki.com/wordpress-seguro
53. @.htaccess / Spam
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_METHOD} POST
RewriteCond %{REQUEST_URI} .(wp-comments-post|wp-login).php*
RewriteCond %{HTTP_REFERER} !.*example.com.* [OR]
RewriteCond %{HTTP_USER_AGENT} ^$
RewriteRule (.*) http://%{REMOTE_ADDR}/$ [R=301,L]
</ifModule>
O WordPress é seguro. Inseguro é você.O WordPress é seguro. Inseguro é você. / apiki.com/wordpress-seguro
54. @Full Path Disclosure
O WordPress é seguro. Inseguro é você.O WordPress é seguro. Inseguro é você. / apiki.com/wordpress-seguro
Full Path Disclosure (FPD). site-em-wp.com.br/wp-includes/rss-functions.php
55. @Full Path Disclosure
O WordPress é seguro. Inseguro é você.O WordPress é seguro. Inseguro é você. / apiki.com/wordpress-seguro
#4
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^wp-admin/includes/ - [F,L]
RewriteRule !^wp-includes/ - [S=3]
RewriteRule ^wp-includes/[^/]+.php$ - [F,L]
RewriteRule ^wp-includes/js/tinymce/langs/.+.php - [F,L]
RewriteRule ^wp-includes/theme-compat/ - [F,L]
</IfModule>
56. @Full Path Disclosure
O WordPress é seguro. Inseguro é você.O WordPress é seguro. Inseguro é você. / apiki.com/wordpress-seguro
<?php if ( !function_exists( 'add_action' ) ) exit; ?>
Em todos os arquivos de plugin e tema. A primeira linha de todas.
57. @Backups
Banco de dados. Arquivos. Redundância.
O WordPress é seguro. Inseguro é você.O WordPress é seguro. Inseguro é você. / apiki.com/wordpress-seguro
60. Muito obrigado o/
O WordPress é seguro. E você também.O WordPress é seguro. Inseguro é você. / apiki.com/wordpress-seguro
Leandro Vieira / Fundador e CEO da Apiki
leandro@apiki.com