3. INSTALACIÓN
• Mover wp-config.php a un nivel superior
• Alerta: No funciona cuando se ha instalado en un
subdirectorio (/public_html/miblog), o en un “add-on
domain” (/public_html/miblog.com
5. • Plugins para identificar vulnerabilidades
– WP Security Scan
• Verificación de contraseñas, permisos de
archivo, seguridad de la BD, etc
– Secure WordPress
• Remueve información no relevante para usuarios
que no son administradores, bloquea queries que
pueden ser dañinos para el sitio y elimina “pistas”
que puedan ayudar a eventuales crackers.
12. • Permisos de Archivo
– Todos los archivos deben ser propietarios del
usuario, y con permiso de escritura también.
– Cualquier archivo que necesite escritura
debería ser “group-owned” por la cuenta
utilizada por el web server.
13. – /
• El directorio raíz debería ser de escritura solamente para la
cuenta del usuario, excepto el .htaccess
– /wp-admin/
– /wp-includes/
• Permisos de escritura solamente para la cuenta del usuario
– /wp-content/themes/
• Si no se desea utilizar el editor de temas, dejar permisos de
escritura solamente para la cuenta de usuario.
– /wp-content/plugins/
• Del mismo modo anterior.
14. • wp-includes
– Existen scripts que no son puestos para ser
accedidos por el usuario. Se los puede
bloquear en el .htaccess
16. • Seguridad al desarrollar para WordPress
– “Desinfectar” inputs, codificar outputs
• Funciones como
– esc_url
– esc_url_raw
– wp_filter_kses
– esc_attr
– esc_html
– esc_textarea
• Si se utiliza $wpdb->insert, $wpdb->update, WP lo
hará por nosotros. Si se utiliza $wpdb-
>get_results, mejor utilizar $wpdb->prepare para
evitar injections.
17. • Utilizar wp_nounce y verificación URL
– wp_nonce_field('my_nonce', 'my_nonce_submit');
• Lo verificamos con
– wp_verify_nonce($_POST['my_nonce_submit'], 'my_nonce') );
• wp_nounce_url
– $nonced_url = wp_nonce_url('http://my_site.com?action=register
&id=123456', 'register_nonce');
• check_admin_referrer
– if(check_admin_referer('register_nonce')){