6. CURSO DRUPAL 7 AVANZADO
Caché : a clave en Drupal
● Caché OpCode PHP
● Caché de proxy inverso
● Caché de bases de datos
● Cachés de Drupal
7. CURSO DRUPAL 7 AVANZADO
Caché OpCode
● Fundamental en Drupal
● Non temos(ou non deberiamos) ter motivos para non implementar.
● APC, Xcache, eAcceleator => APC
● http://www.drupal.org/project/apc
8. CURSO DRUPAL 7 AVANZADO
Caché de proxy inverso
● Alivia considerablemente a carga dos servidores web.
● Nginx + Apache
● Varnish é o preferido pola comunidade Drupal
● Boost
https://github.com/perusio/drupal-with-nginx
https://www.drupal.org/project/varnish
https://www.drupal.org/project/boost
9. CURSO DRUPAL 7 AVANZADO
Caché de base de datos
● MySQL dispón das súas propias cachés. Let's go!
● Consultas: query_cache_size
● Operacións I/O do sistema arquivos : innodb_buffer_pool_size
● https://www.drupal.org/node/85768
10. CURSO DRUPAL 7 AVANZADO
memcached
● Sistema de caché baseado en memoria
● Funcionamento táboa hash distribuida
● Array asociativo clave => valor . Clave hasta 250 bytes e valores ata
1 MB.
● Integración “awesómica” en Drupal
● Podemos “cachear” bloques, views....
● https://www.drupal.org/project/memcache
14. CURSO DRUPAL 7 AVANZADO
Tip: Reducir o número de peticións HTTP
● HTTP protocolo cliente/servidor
● A maior número de peticións, maior tempo de espera
Solución:
● Combinar CSS nun único arquivo
● Combinar JS nun único arquivo
Tools
● Drupal core
● AdvAgg
15. CURSO DRUPAL 7 AVANZADO
Tip: Engadir Expires Header
● Expires Header fixa o tempo que debe pasar ata que un
cliente debe descargar de novo os compoñentes do
noso sitio web, por exemplo imaxes.
Solución
● Activar mod_expires. No arquivo .htaccess dunha instalación de
Drupal, a configuración de mod_expires é xenérica. Debemos tunear a
configuración
Tools
● Apache2 mod_expires
● Módulo advagg e expires
16. CURSO DRUPAL 7 AVANZADO
Tip: Comprimir componentes con GZIP
● Comprimir HTML, CSS y JS reduce considerablemente el
peso de nuestro sitio web
● Todos los navegadores* soportan compresión GZIP
Solución
● Activar mod_deflate
Tools
● Activado por defecto nunha instalación Apache2 en Debian
GNU/Linux 7.x
● mod_deflate.conf => DeflateCompressionLevel
17. CURSO DRUPAL 7 AVANZADO
Tip: Engadir Expires Header
● Expires Header fixa o tempo que debe pasar ata que un
cliente debe descargar de novo o contido.
Solución
● Activar e configurar mod_expires en Apache2
Tools
● Módulo expires o advagg
18. CURSO DRUPAL 7 AVANZADO
SEGURIDADE EN DRUPAL IV - CONSELLOS e MÓDULOS
● Manter tódolos compoñentes actualizados: ssoo + drupal
● Copias de seguridade controladas e verificadas
● https://www.drupal.org/security/secure-configuration
● Auditar sitio : https://www.drupal.org/project/seckit
● Sempre que sexa posible usar HTTPS
● Controlar a entrada de texto
● https://www.drupal.org/project/wysiwyg_filter
● https://www.drupal.org/project/better_formats
● check_plain en .module :)
● Non mostrar erros = drush variable-set error_level 0
19. CURSO DRUPAL 7 AVANZADO
SEGURIDADE EN DRUPAL
● Todo o software ten ou pode ter erros.
● Drupal é unha gran comunidade que aporta día a día melloras a nivel de
seguridade.
● A política de actualizacións de seguridade de Drupal é seria:
Drupal Security Team
● Releases do tipo BugFix libéranse o primeiro mércores de cada mes.
● Releases con correcións de vulnerabilidades son liberadas o terceiro
mércores de cada mes.
20. CURSO DRUPAL 7 AVANZADO
SEGURIDADE EN DRUPAL II - SECURITY TEAM
● Resolver os problemas de seguridade reportados polos Security Advisory
● Asistencia aos mantenedores de módulos en materias de seguridade
● Documentar cómo escribir código seguro
● Documentar cómo securizar os sitios web feitos con Drupal
● Axudar a manter segura a infraestrutura de Drupal.org
https://www.drupal.org/security-team
https://www.drupal.org/security/secure-configuration
https://www.drupal.org/writing-secure-code
21. CURSO DRUPAL 7 AVANZADO
SEGURIDADE EN DRUPAL III - REPORTE DE BUGS
● Metódo 1: Directamente a security.drupal.org (recomendado)
● Localizar o proxecto en Drupal.org
● Columna dereita "Report a security issue"
● A ligazón remite o reporte ao Issue Tracker de Security Team para análise
● Método 2: email security@drupal.org
● Enviar como mínimo
● Versión do core ou módulo afectada
● Pasos para reproducir o erro
● Patch para solucionalo
https://www.drupal.org/node/101494
22. CURSO DRUPAL 7 AVANZADO
SEGURIDADE EN DRUPAL IV - CONSELLOS e MÓDULOS
● Manter tódolos compoñentes actualizados: ssoo + drupal
● Copias de seguridade controladas e verificadas
● https://www.drupal.org/security/secure-configuration
● Auditar sitio : https://www.drupal.org/project/seckit
● Sempre que sexa posible usar HTTPS
● Controlar a entrada de texto
● https://www.drupal.org/project/wysiwyg_filter
● https://www.drupal.org/project/better_formats
● check_plain en .module :)
● Non mostrar erros = drush variable-set error_level 0
23. CURSO DRUPAL 7 AVANZADO
SEGURIDADE EN DRUPAL V - CONSELLOS e MÓDULOS
Seguridade nas comunicacións
● Secure by role(secrole)
● Permite servir páxinas por HTTPS configurados por roles
● Secure pages(securepages)
● Redirecciona a HTTPS
● Secure login(securelogin)
● Redirecciona a HTTPS o datos enviados polo formulario de inicio de sesión
● Encrypted Files(encrypted_files)
● Cifra os arquivos aportados polos usuarios vía “wrapper”
https://www.drupal.org/node/597728
24. CURSO DRUPAL 7 AVANZADO
SEGURIDADE EN DRUPAL VI - CONSELLOS e MÓDULOS
Seguridade nas sesións
● No anonymous sesion(non_anon)
● Deshabilita as sesións para usuarios anónimos
● Sesion limit(sesion_limit)
● Permite limitar o número de sesións simultáneas por usuario
● Auto log out(autologout)
● Pecha as sesións dos usuarios/as despois dun tempo de inactividade
https://www.drupal.org/node/597706
25. CURSO DRUPAL 7 AVANZADO
SEGURIDADE EN DRUPAL VII - CONSELLOS e MÓDULOS
Xestión de contrasinais
● Login security (login_security)
● Implementa opcións de seguridade nas operacións cotidianas de login nun
sitio web Drupal.
● Password policy (password_policy)
● Permite especificar a política de complexidade dos contrasinais
● Restrict password change (restrict_password_change)
● Engade novo permisos change other users passwords”
https://www.drupal.org/node/597706
26. CURSO DRUPAL 7 AVANZADO
SEGURIDADE EN DRUPAL VIII - CONSELLOS e MÓDULOS
Seguridade nas sesións
● Certificate login(certificatelogin)
● Permite a usuarios iniciar sesión usando un certificado dixital
● OAuth(oauth)
● Permite usar o API de autenticación de OAuth, fundamental se desexas
integrar Drupal con sitios como Google, Flickr, Twitter ou Yahoo!
● Duo Two Factor Authenticatión( duo )
● Permite usar DUO con Drupal => www.duosecurity.com
https://www.drupal.org/node/597706
27. CURSO DRUPAL 7 AVANZADO
SEGURIDADE EN DRUPAL IX - CONSELLOS e MÓDULOS
● Captcha( captcha )
● Protexe os formularios con proba para demostrar que eres humano”(Turing)
● Recaptcha( recaptcha )
● Implementación de Google Recaptcha
https://www.google.com/recaptcha/intro/index.html
● Mollom( mollom )
● Protexe os formularios permitindo identificar se o contido e ou non spam
baseandose non so no contido.
https://www.drupal.org/node/597706
SPAM
28. CURSO DRUPAL 7 AVANZADO
SEGURIDADE EN DRUPAL X - CONSELLOS e MÓDULOS
● IP Anonymize( ip_anon )
● Permite ocultar Ips de usuarios na bitácora de Drupal
● Invisimail( invisimail )
● Oculta emails a bots vía Javascript => mailto
● Encrypted text( encrypted_text )
● Crear un campo cuxos datos almacénanse cifrados na base de datos
https://www.drupal.org/node/597706
Privacidade
29. CURSO DRUPAL 7 AVANZADO
SEGURIDADE EN DRUPAL XI - CONSELLOS e MÓDULOS
Detectión e prevención
● MD5 Check( md5check )
● Xenerar sumas MD5 de módulos e comproba alteracións. Os reportes envíanse
como security error á bitácora do sistema
● Hacked ( hacked )
● Escanea a instalación de Drupal na busca de cambios en módulos e temas.
● Security( security )
● Security Information Report do sitio.
● Coder( coder )
● Módulo para desenvolvedores que axuda a atopar e depurar erros.
https://www.drupal.org/node/597706
30. CURSO DRUPAL 7 AVANZADO
SEGURIDADE EN DRUPAL XII - CONSELLOS e MÓDULOS
Aspectos legais
● Legal( legal )
● Mostra termos e condicións do rexistro no sitio
● Terms of use( terms_of_use )
● Similar ao módulo Legal pero a información almacénase nun módulo
https://www.drupal.org/node/597706