WordPress.org

About

Security

Seguridade

Aprende máis sobre a seguridade do software principal de WordPress neste documento técnico gratuíto. Tamén podes descargalo en formato PDF.

Visión xeral

Este documento é unha análise e explicación do desenvolvemento do software base de WordPress e os seus procesos de seguridade relacionados, así como unha revisión da seguridade inherente construida directamente no software. Os responsables de decisións que evalúen WordPress como sistema de xestión de contidos ou ámbito de traballo para aplicacións web deberían empregar este documento na súa análise e toma de decisións, e os desenvolvedores deberían remitirse a el para familiarizarse coos compoñentes e boas prácticas de seguridade dosoftware.

A información deste documento está actualizada para a última versión estable do software, WordPress 4.9 á data da publicación, pero debería considerarse relevante tamén nas versións máis recentes do software xa que a compatibilidade con versións anteriores é un punto fundamental para o equipo de desenvolvemento de WordPress. As medidas de seguridade específicas e os cambios anotaranse a medida que se engadan ao software base en versións específicas. Recoméndase encarecidamente executar sempre a última versión estable de WordPress para asegurar a experiencia máis segura posible.

Resumo executivo

WordPress é un sistema dinámico de xestión de contidos de código aberto que se utiliza para impulsar millóns de webs, aplicacións web e blogs. Actualmente xestiona máis do 43% dos 10 millóns de webs máis visitadas de Internet. A usabilidade, a capacidade de ampliación e a madura comunidade de desenvolvemento de WordPress convírteno nunha opción popular e segura para webs de todos os tamaños.

Dende o seu inicio en 2003, WordPress foise fortalecendo continuamente para que o seu software base sexa capaz de detectar e mitigar ameazas comúns de seguridade, incluída a lista Top 10 identificada polo proxecto de seguridade de aplicacións da web aberta (OWASP) e as vulnerabilidades de seguridade máis comúns, como se explica neste documento.

O equipo de seguridade de WordPress, en colaboración co equipo líder de desenvolvemento de WordPress, y apoados pola comunidade global WordPress, traballa para identificar e resolver problemas de seguridade no software base dispoñible en WordPress.org para a súa distribución e instalación, así como en recomendar e documentar as mellores prácticas de seguridade para autores de plugins e temas.

Ós desenvolvedores e administradores de sitios deberían prestar especial atención ao emprego correcto das APIs e a configuración do servidor subxacente que foran orixe de vulnerabilidades comúns, así como asegurarse de que tódolos usuarios empregan contrasinais fortes para acceder a WordPress.

Visión xeral de WordPress

WordPress é un sistema de xestión de contidos (CMS) gratuíto e de código aberto. É o software de xestión de contidos máis utilizado no mundo e xestiona máis do 43% dos 10 millóns de webs máis importantes1, o que supón unha cota de mercado estimada do 62% de todas as webs que utilizan un CMS.

WordPress está liberado baixo a licenza General Public License (GPLv2 ou posterior), que proporciona catro liberdades fundamentais que poden ser consideradas a «carta de dereitos» de WordPress:

  1. A liberdade de executar o programa, con calquera propósito.
  2. A liberdade de estudar como funciona o programa, e de cambialo para que faga o que ti queiras.
  3. A liberdade de redistribuír.
  4. A liberdade de distribuir a outros copias das túas versións modificadas.

O equipo líder do núcleo de WordPress

O proxecto WordPress é unha meritocracia dirixida por un equipo de liderazgo principal e guiada polo seu co-creador e xefe de desenvolvemento, Matt Mullenweg. O equipo goberna tódolos aspectos do proxecto, incluíndo o desenvolvemento do núcleo, WordPress.org e as iniciativas da comunidad.

O equipo líder do núcleo está composto por Matt Mullenweg, cinco desenvolvedores líderes e máis dunha docena de desenvolvedores do núcleo que teñen acceso de validación permanente. Estes desenvolvedores teñen a autoridade final sobre as decisións técnicas, debates de arquitectura principal e esforzos de implementación.

WordPress ten moitos desenvolvedores colaboradores. Algúns deles son antiguos ou actuais validadores, e algúns é posible que sexan futuros validadores. Estes desenvolvedores colaboradores son colaboradores fiables e veteranos de WordPress, que gañaron un gran respecto entre os seus colegas. Cando se precisa, WordPress tamén ten validadores invitados, individuos aos que se lles concede acceso, ás veces para un compoñente específico, para tarefas temporais ou de probas.

Os desenvolvedores do núcleo e os colaboradores guían principalmente o desenvolvemento de WordPress. En cada versión centos de desenvolvedores contribúen ao código de WordPress. Estes colaboradores do núcleo son voluntarios que contribúen ao código base do núcleo nalgún modo.

O ciclo de versións de WordPress

Cada ciclo de versión de WordPress diríxeo un ou máis dos desenvolvedores do núcleo de WordPress. Un ciclo de versións normalmente remata ó redor de 4 meses dende a reunión inicial ata o lanzamento da versión.

Un ciclo de lanzamento segue o seguinte padrón2:

  • Fase 1: Líderes de planificación e do equipo de seguridade: Isto realízase na sala de chat #core de Slack. O líder da versión debate sobre as características da nova versión de WordPress. Os colaboradores de WordPress involúcranse no debate. O líder da versión identificará aos líderes do equipo para cada unha das características.
  • Fase 2: Comeza o traballo de desenvolvemento. Os líderes do equipo organizan os equipos e traballan nas características que se lles asignaron. Prográmanse charlas habituais para asegurar que o desenvolvemento sigue en marcha.
  • Fase 3: Beta. Lánzanse as betas, e pídese aos probadores de beta que comecen a informar de erros. A partir desta fase non se realizan máis propostas de novas melloras ou peticións de características. Anímase aos autores de plugins e temas a probar o seu código fronte a os futuros cambios.
  • Fase 4: Lista para o seu lanzamento. Hai un parón técnico para traducir os textos neste punto. O traballo céntrase só en repasos e bloqueos.
  • Fase 5: Lanzamento. Lánzase a versión de WordPress e está dispoñible para actualizar na administración de WordPress.

Numeración de versións e versións de seguridade

Unha versión maior de WordPress díctana a primeiras dúas secuencias. Por exemplo, 3.5 é unha versión maior, como lo son 3.6, 3.7 ou 4.0. Non hai un «WordPress 3» ou «WordPress 4» e cada versión maior é referida pola súa numeración, p.ex. «WordPress 3.9».

As versións maiores poden engadir novas características para o usuario e APIs para desenvolvedores. Anque normalmente no mundo do software, unha versión «maior» significa que se pode romper a retrocompatibilidade, WordPress esfórzase por non romper nunca a retrocompatibilidade. A retrocompatibilidade é unha das filosofías máis importantes do proxecto, co obxectivo de que as actualizacións sexan moito máis sinxelas tanto para os usuarios como para os desenvolvedores.

Unha versión menor de WordPress vén dictada polo terceiro número da secuencia. A versión 3.5.1 é unha versión menor, ao igual que a 3.4.23. As versións menores resérvanse para solucionar vulnerabilidades de seguridade e erros críticos. Dado que as novas versións de WordPress se publican con tanta frecuencia -o obxectivo é que cada 4-5 meses se publique unha versión maior, e que as versións menores se publiquen cando sexa necesario-, só se necesitan versións maiores e menores.

Compatibilidade con versións anteriores

O proxecto WordPress ten un forte compromiso coa compatibilidade con versións anteriores. Este compromiso significa que os temas, plugins e o código personalizado sigan funcionando cando se actualice o núcleo de WordPress, animando aos propietarios de sitios a manter actualizada a súa versión de WordPress á última versión segura.

WordPress e seguridade

O equipo de seguridade de WordPress

O equipo de seguridade de WordPress está formado por uns 50 expertos, entre desenvolvedores principais e investigadores de seguridade. Aproximadamente a metade son empregados de Automattic (creadores de WordPress.com, a primeira e maior plataforma de aloxamento de WordPress en Internet), e outros traballan no campo da seguridade web. O equipo consulta a investigadores de seguridade e a empresas de aloxamento coñecidas e de confianza3.

O equipo de seguridade de WordPress colabora a miúdo con outros equipos de seguridade para solucionar problemas en dependencias comúns, como a resolución da vulnerabilidade no analizador PHP XML, utilizado pola API XML-RPC que se inclúe con WordPress, en WordPress 3.9.24. A resolución desta vulnerabilidade foi o resultado dun esfuerzo conxunto dos equipos de seguridade de WordPress e Drupal.

Riscos, proceso e histórico de seguridade de WordPress

O equipo de seguridade de WordPress cre na divulgación responsable, alertando ao equipo de seguridade inmediatamente de calquera vulnerabilidade potencial. As posibles vulnerabilidades de seguridade pódense transmitir ao equipo de seguridade a través de WordPress HackerOne5. O equipo de seguridade comunícase entre si a través dunha canle privada de Slack, e traballa nun Trac privado para rastrexar, probar e solucionar erros e problemas de seguridade.

Cada informe de seguridade respóndese ao recibilo, e o equipo traballa para verificar a vulnerabilidade e determinar a súa severidade. Se se confirma, o equipo de seguridade entón planifica un parche para solucionar o problema, que pode lanzarse nunha próxima versión do software WordPress ou pode lanzarse como unha versión inmediata de seguridade, dependendo da severidade do problema.

Para un comunicado de seguridade inmediato, o equipo de seguridade publica un aviso no sitio de novas de WordPress.org6&nbspanunciando o lanzamento e detallando os cambios. No aviso recoñécese o mérito da revelación responsable dunha vulnerabilidade para fomentar e reforzar no futuro o envío continuado de información responsable.

Os administradores do software WordPress ven un aviso no escritorio do seu sitio para que actualicen cando hai unha nova versión dispoñible, e tra-las actualizacións manuales redirixese aos usuarios a unha pantalla de Acerca de WordPress con detalles dos cambios. Se os administradores teñen activas as actualizacións en segundo plano recibirán un correo electrónico despois de que se complete unha actualización.

Actualizacións automáticas en segundo plano para versións de seguridade

A partir da versión 3.7, WordPress introduciu actualizacións automáticas en segundo plano para todas as versións menores7, como por exemplo da 3.7.1 á 3.7.2. O equipo de seguridade de WordPress pode identificar, correxir e enviar melloras de seguridade automatizadas para WordPress sen que o propietario do sitio teña que facer nada, e a actualización de seguridade instalarase automaticamente.

Cando se lanza unha actualización de seguridade para a versión estable actual de WordPress, o equipo do núcleo tamén lanza actualizacións de seguridade para tódalas versións capaces de executar actualizacións en segundo plano (dende WordPress 3.7) para que estas versións anteriores, pero aínda recentes, de WordPress tamén reciban melloras de seguridade.

Os propietarios de sitios individuais poden optar por quitar as actualizacións automáticas en segundo plano mediante un sinxelo cambio no seu ficheiro de configuración, pero o equipo do núcleo recomenda encarecidamente manter activa a funcionalidade, así como executar a última versión estable de WordPress.

Top 10 2013 de OWASP

O proxecto de seguridade de aplicacións web abertas (OWASP) é unha comunidade en liña dedicada á seguridade das aplicacións web. A lista OWASP Top 108 céntrase na identificación dos riscos de seguridade de aplicacións máis graves para unha ampla gama de organizacións. Os 10 principais elementos selecciónanse e priorízanse en combinación con estimacións consensuadas de explotabilidade, detectabilidade e estimacións de impacto.

As seguintes seccións tratan sobre APIs, recursos e políticas que emprega WordPress para fortalecer o software base e plugins e temas de terceiros fronte a estes riscos potenciais.

A1 – Inxección

Existe un conxunto de funcións e API dispoñibles en WordPress para axudar aos desenvolvedores a asegurarse de que non se pode inxectar código non autorizado, e axudarlles a validar e sanear os datos. Hai documentación e boas prácticas dispoñibles9 sobre como usar estas APIs para protexer, validar ou sanear os datos entrantes e saíntes no HTML, URLs, cabeceiras HTTP, e ao interactuar coa base de datos e o sistema de arquivos. Os administradores tamén poden restrinxir aínda máis os tipos de arquivos que poden cargarse mediante filtros.

A2 – Xestión de identificación rota e de sesión

O software base de WordPress xestiona as contas de usuario, a identificación e detalles tales como o ID de usuario e o nome, e os contrasinais xestiónanse dende o servidor así como as cookies de identificación. Os contrasinais protéxense na base de datos empregando técnicas estándar de salt e dilatación. As sesións activas péchanse ao desconectar nas versións de WordPress a partir da 4.0.

A3 – Cross Site Scripting (XSS)

WordPress ofrece unha serie de funcións que poden axudar a garantir a seguridade dos datos subministrados polos usuarios10. Os usuarios de confianza, é dicir, os administradores e editores nunha instalación individual de WordPress, e os administradores de rede só en WordPress Multisite, poden publicar HTML ou JavaScript sen filtrar cando o necesiten, como por exemplo dentro dunha entrada ou dunha páxina. Os usuarios que non son de confianza e o contido enviado polos usuarios fíltrase por defecto para eliminar entidades perigosas, utilizando a biblioteca KSES a través da función wp_kses.

Como exemplo, o equipo do núcleo de WordPress deuse conta antes do lanzamento de WordPress 2.3 que a función the_search_query() estaba sendo mal utilizada pola maioría dos autores de temas, que non escapaban a saída da función para o seu uso en HTML. Nun caso moi raro de romper ligeramente a retrocompatibilidade, a saída da función cambiouse en WordPress 2.3 para ser pre-escapada.

A4 – Referencia directa a objetos inseguros

WordPress proporciona a miúdo referencias directas a obxectos, como identificadores numéricos únicos de contas de usuario ou contidos dispoñibles na URL ou en campos de formularios. Se ben estes identificadores revelan información directa do sistema, os amplos permisos e o sistema de control de acceso de WordPress impiden as solicitudes non autorizadas.

A5 – Mala configuración de seguridade

A maioría das operacións de configuración de seguridade de WordPress están limitadas a un único administrador autorizado. Os axustes por defecto para WordPress avalíanse continuamente a nivel do equipo do núcleo, e o equipo do núcleo de WordPress proporciona documentación e as mellores prácticas para reforzar a seguridade da configuración do servidor para executar un sitio WordPress11.

A6 – Revelación de datos sensibles

Os contrasinais das contas de usuario de WordPress cífranse con salt e hash segundo o framework portátil de cifrado de contrasinais de PHP12. O sistema de permisos de WordPress utilízase para controlar o acceso a información privada, como a información persoal dos usuarios rexistrados, as direccións de correo electrónico dos comentaristas, o contido publicado de forma privada, etc. En WordPress 3.7, incluíuse un medidor de seguridade de contrasinais no núcleo do software que proporciona información adicional aos usuarios que configuran os seus contrasinais e consellos para aumentar a seguridade. WordPress tamén dispón dun axuste de configuración opcional para esixir HTTPS.

A7 – Nivel de control de acceso a funcións non atopadas

WordPress comproba a correcta autorización e permisos de calquera nivel de petición acceso dunha función antes de executar a acción. O acceso ou visualización de URLs de administración, menús e páxinas sen a identificación adecuada está fortemente integrada co sistema de identificación para impedir acceso a usuarios sen autorización.

A8 – Cross Site Request Forgery / Peticións falsas en sitios cruzados (CSRF)

WordPress utiliza tokens criptográficos, chamados nonces13, para validar a intención das peticións de acción de usuarios autorizados para protexerse de posibles ameazas CSRF. WordPress proporciona unha API para a xeración destes tokens para crear e verificar tokens únicos e temporais, e o token limítase a un usuario específico, unha acción específica, un obxecto específico e un período de tempo específico, que se pode engadir aos formularios e URLs segundo sexa necesario. Ademais, todos os nonces invalídanse ao pechar a sesión.

A9 – Utilización de compoñentes con vulnerabilidades coñecidas

O equipo do núcleo de WordPress supervisa minuciosamente as poucas bibliotecas e frameworks incluídos cos que WordPress se integra para as funcionalidades básicas. No pasado, o equipo do núcleo realizou contribucións a varios compoñentes de terceiros para facelos máis seguros, como a actualización para solucionar unha vulnerabilidade entre sitios en TinyMCE en WordPress 3.5.2.14.

En caso necesario, o equipo do núcleo pode decidir bifurcar ou substituír compoñentes externos críticos, como cando a biblioteca SWFUpload substituíuse oficialmente pola biblioteca Plupload na versión 3.5.2, e o equipo de seguridade puxo a disposición unha bifurcación segura de SWFUpload.15 para os plugins que seguiron utilizando SWFUpload a curto prazo.

A10 – Redireccións e envíos sen validar

O sistema interno de control de acceso e identificación de WordPress protexerá contra os intentos de dirixir aos usuarios a destinos non desexados ou redireccionamientos automáticos. Esta funcionalidade tamén se pon a disposición dos desenvolvedores de plugins a través dunha API,, wp_safe_redirect()16.

Outros riscos e problemas de seguridade

Ataques de procesamento XXE (XML eXternal Entity / Entidade externa XML)

Ao procesar XML, WordPress desactiva a carga de entidades XML personalizadas para previr ataques de entidade externa e expansión de entidade. Máis alá da funcionalidade principal de PHP, WordPress non proporciona unha API de procesamento XML segura adicional para os autores de plugins.

Ataques SSRF (Server Side Request Forgery / Peticións falsas ao servidor)

As peticións HTTP enviadas por WordPress fíltranse para evitar accesos a bucle de retorno e direccións IP privadas. Adicionalmente, o acceso só se permite a certos portos HTTP estándar.

Seguridade de plugins e temas de WordPress

O tema por defecto

WordPress require un tema activo para amosar o contido visible na portada. O tema por defecto incluído no núcleo de WordPress (actualmente «Twenty Twenty-Three») revisouse e comprobouse intensamente por motivos de seguridade tanto polo equipo de desenvolvemento de temas como polo equipo de desenvolvemento do núcleo.

O tema por defecto pode servir de punto de comezo para o desenvolvemento de temas a medida, e os desenvolvedores poden crear un tema fillo que inclúa algunhas personalizacións aínda que dependan do tema por defecto a maior parte das funcionalidades e seguridade. O tema por defecto pode borralo un administrador fácilmente se non o precisa.

Repositorios de temas e plugins de WordPress.org

Hai aproximadamente máis de 50.000 plugins e máis de 5.000 temas listados no sitio WordPress.org. Estes temas e plugins son enviados para a súa inclusión e son manualmente revisados por voluntarios antes de estar dispoñibles no repositorio.

A inclusión de plugins e temas no repositorio non garante que estean libres de vulnerabilidades de seguridade. Os autores dos plugins poden consultar as directrices antes de envialos para a súa inclusión no repositorio.17, e hai unha ampla documentación sobre como facer desenvolvemento de temas WordPress18 dispoñible no sitio WordPress.org.

Cada plugin e tema ten a posibilidade de ser desenvolto continuamente polo propietario do plugin ou tema, e calquera arranxo ou característica posterior ou futuro desenvolvemento pode subirse ao directorio e facer que esté dispoñible para os usuarios con ese plugin ou tema instalado cunha descripción do que cambiou. Avísase aos administradores dos sitios dos plugins que teñen que actualizarse dende o escritorio de administración.

Cando o equipo de seguridade de WordPress descobre unha vulnerabilidade contacta co autor do plugin e traballan xuntos para solucionar e lanzar unha versión segura do plugin. Se hai algunha falta ou atraso na resposta por parte do autor do plugin ou se a vulnerabilidade é grave, o plugin/tema retírase do directorio público e, nalgúns casos, directamente arránxao e actualízao o equipo de seguridade.

O equipo de revisión de temas

O equipo de revisión de temas é un grupo de voluntarios, dirixido por membros clave e consolidados da comunidade de WordPress, que revisa e aproba os temas enviados para a súa inclusión no directorio oficial de temas de WordPress. O equipo de revisión de temas mantén as directrices oficiais de revisión de temas19, os datos das probas unitarias dos temas20, e os plugins de comprobación de temas21, e intenta involucrar e educar á comunidade de desenvolvedores de temas WordPress en aplicar boas prácticas no desenvolvemento de temas. A inclusión no grupo está moderada polos contribuidores principais do equipo de desenvolvemento de WordPress.

O perfil do provedor de aloxamento na seguridade de WordPress

WordPress pode instalarse en multitude de plataformas. Aínda que o núcleo de WordPress ofrece moitas garantías para operar unha aplicación web segura, que cubrimos neste documento, a configuración do sistema operativo e o software instalado no servidor web do aloxamento son igualmente importantes para manter aplicacións WordPress seguras.

Nota acerca de WordPress.com e a seguridade de WordPress

WordPress.com é a maior instalación de WordPress do mundo, e é propiedade e está xestionada por Automattic, Inc, fundada por Matt Mullenweg, cocreador do proxecto WordPress. WordPress.com funciona co software principal de WordPress e ten os seus propios procesos, riscos e solucións de seguridade.22. Este documento refírese á seguridade relativa ao software WordPress de código aberto, descargable e autoaloxado, dispoñible en WordPress.org e instalable en calquera servidor do mundo.

Apéndice

APIs do núcleo de WordPress

A interface de programación de aplicacións (API) do núcleo de WordPress consta de varias APIs individuais23, e cada unha cubre as funcións ás que está destinada, e para usarse nun conxunto dado de funcionalidades. Unidas, forman a interface do proxecto que permite que os plugins e os temas interactúen, alteren e amplíen a funcionalidade do núcleo de WordPress de maneira limpa e segura.

Aínda que cada API de WordPress ofrece as mellores prácticas e métodos estandarizados para interactuar e ampliar o software do núcleo de WordPress, as seguintes APIs de WordPress son as máis pertinentes para reforzar a seguridade de WordPress:

API da base de datos

A API de base de datos24, engadida en WordPress 0.71, ofrece o método correcto de acceso a datos como valores de nomes almacenados na capa da base de datos.

API do sistema de arquivos

A API do sistema de arquivos25, engadida en WordPress 2.626, creouse orixinalmente para a característica de actualizacións automáticas de WordPress. A API do sistema de arquivos abstrae a funcionalidade necesaria para facer que sexa segura a lectura e escritura de arquivos locais ao sistema de arquivos, nunha gran variedade de tipos de servidor.

O fai a través da clase WP_Filesystem_Base e varias subclases que implementan diferentes formas de conectarse ao sistema de arquivos local, dependendo da compatibilidade de cada servidor. Calquera tema ou plugin que necesite escribir arquivos localmente debería facelo usando a familia de clases WP_Filesystem.

HTTP API

A API HTTP 27, engadida en WordPress 2.728 e ampliada en WordPress 2.8, estandariza as peticións HTTP para WordPress. A API xestiona cookies, cifrado e descifrado gzip, descifrado de trozos ( se é HTTP 1.1), e varias outras implementacións do protocolo HTTP. A API estandariza as peticións, proba cada método antes de envialas e, baseándose na configuración do teu servidor, utiliza o método apropiado para realizar a petición.

Permisos e a API do usuario actual

A API de permisos e usuario actual29 é un conxunto de funcións que axudarán a verificar os permisos e a autoridade do usuario actual para realizar calquera tarefa ou operación que se solicite, e pode protexer aínda máis contra usuarios non autorizados que accedan ou realicen funcións máis alá das súas capacidades permitidas.

Licencia do manual de contenido

O texto deste documento (sen incluír o logotipo de WordPress ou a marca comercial) está licenciado baixo CC0 1.0 Universal (CC0 1.0) Dedicación ao dominio público. Podes copiar, modificar, distribuír e executar a obra, incluso con fins comerciais, todo sen pedir permiso.

Un agradecemento especial ao documento de seguridade de Drupal, que ofreceu algo de inspiración.

Lecturas adicionais


Coa autoría de Sara Rosso

Contribucións de Barry Abrahamson, Michael Adams, Jon Cave, Helen Hou-Sandí, Dion Hulse, Mo Jangda, Paul Maiorana

Version 1.0 Marzo 2015


Notas ó pé

[1] https://w3techs.com/, a decembro de 2019

[2] https://make.wordpress.org/core/handbook/about/release-cycle/

[3] https://make.wordpress.org/core/handbook/about/release-cycle/version-numbering/

[4] https://wordpress.org/news/2014/08/wordpress-3-9-2/

[5] https://hackerone.com/wordpress

[6] https://gl.wordpress.org/news/

[7] https://wordpress.org/news/2013/10/basie/

[8] https://www.owasp.org/index.php/Top_10_2013-Top_10

[9] https://developer.wordpress.org/apis/security/

[10] https://developer.wordpress.org/apis/security/data-validation/

[11] https://wordpress.org/support/article/hardening-wordpress/

[12] https://www.openwall.com/phpass/

[13] https://developer.wordpress.org/apis/security/nonces/

[14] https://wordpress.org/news/2013/06/wordpress-3-5-2/

[15] https://make.wordpress.org/core/2013/06/21/secure-swfupload/

[16] https://developer.wordpress.org/reference/functions/wp_safe_redirect/

[17] https://é.wordpress.org/plugins/developers/

[18] https://developer.wordpress.org/themes/getting-started/

[19] https://make.wordpress.org/themes/handbook/review/

[20] https://codex.wordpress.org/Theme_Unit_Test

[21] https://gl.wordpress.org/plugins/theme-check/

[22] https://automattic.com/security/

[23] https://codex.wordpress.org/WordPress_APIs

[24] https://developer.wordpress.org/apis/handbook/database/

[25] https://codex.wordpress.org/Filesystem_API

[26] https://wordpress.org/support/wordpress-version/version-2-6/

[27] https://developer.wordpress.org/plugins/http-api/

[28] https://wordpress.org/support/wordpress-version/version-2-7/

[29] https://developer.wordpress.org/reference/functions/current_user_can/