Cómo recuperar conversaciones de WhatsApp que hemos borrado o desde un nuevo móvil

Cómo recuperar conversaciones de WhatsApp que hemos borrado o desde un nuevo móvil

Como casi todos los usuarios sabrán, la aplicación de mensajería cuenta con una función que permite hacer copias de seguridad de forma automática de forma diaria, semanal, mensual o simplemente hacerlas de forma manual. Para ello, sólo tenemos que abrir la aplicación, ir a Ajustes > Chats > Copia de seguridad e indicar dentro de los ajustes de Google Drive la frecuencia con la que queremos hacer las copias, si queremos que se realicen solo cuando estemos conectados a un WiFi para evitar consumir nuestros datos y si queremos que en esas copias se guarden también los vídeos compartidos a través de WhatsApp.

recuperar conversaciones de Whatsapp

De esta forma, con la frecuencia que hayamos indicado, WhatsApp realizará una copia de seguridad de nuestras conversaciones y que serán guardadas en Google Drive. Eso sí, es importante saber que una nueva copia de seguridad en Google Drive con la misma cuenta supone que se sobreescriba la anterior copia de seguridad, por lo que no es posible restaurar copias antiguas de conversaciones de WhatsApp desde Google Drive.

Si queremos recuperar mensajes borrados de WhatsApp recientemente, entonces podemos desinstalar WhatsApp del teléfono y al volver a instalarla, cuando verificamos el número indicar que queremos restaurar nuestros chats y archivos multimedia desde una copia de seguridad. Basta con pulsar sobre Restaurar para que se recupere la última copia de seguridad de WhatsApp en Google Drive y nos muestre todas las conversaciones de WhatsApp de la última copia.

recuperar conversaciones de whatsapp

De esta forma, podemos recuperar conversaciones de WhatsApp que hemos borrado fácilmente o bien pasar todas nuestras últimos chats a un nuevo teléfono. Eso sí, debemos usar la misma cuenta de Google Drive para que nos recupere la copia de seguridad. Sin duda, esta es la forma más sencilla de transferir nuestros archivos y mensajes de WhatsApp a un nuevo teléfono, pero si queremos, también podemos usar una copia de seguridad almacenada localmente en tu teléfono o tarjeta de memoria.

En este caso, será necesario llevar estos archivos al nuevo teléfono conectando el móvil viejo a un ordenador y copiando todo lo que tenemos bajo la carpeta WhatsApp dentro de nuestro almacenamiento interno o tarjeta de memoria para posteriormente pegarlo en el nuevo teléfono.

Si lo que necesitamos es recuperar una copia de seguridad de hace más tiempo que la que tenemos en Google Drive, debemos saber que en nuestro móvil se almacenan copias de seguridad de los últimos siete días. Sin embargo, recuperar estas conversaciones de WhatsApp necesita que hagamos un proceso mucho más manual.

recuperar conversaciones de whatsapp

Lo primero de todo es contar con un administrador de archivos en el teléfono y navegar hasta la ruta sdcard o almacenamiento interno/WhatsApp/Databases. Ahí veremos cómo nos aparecen una serie de archivos con un nombre de este estilo msgstore-AAAA-MM-DD.1.db.crypt12, donde cada fecha indica el día en el que se ha guardado la copia, y un archivo con el nombre msgstore.db.crypt12, que es el que se encargar de recuperar las copias de seguridad.

Por lo tanto, elegimos el archivo del día que queramos recuperar y lo renombramos con el nombre msgstore.db.crypt12. Una vez hecho esto, desinstalamos WhatsApp y a continuación, la volvemos a instalar en nuestro teléfono y restauramos la copia cuando nos lo indique la propia aplicación.

Si nuestro móvil cuenta con sistema operativo iOS, tus conversaciones se guardan en la nube de Apple (iCloud), de modo que tendremos que ir a Ajustes>iCloud y activar la opción Documentos y datos para acceder a las copias de seguridad. Después tendremos que realizar el mismo procedimiento que con Android.

Medidas para asegurar el servidor web Apache (Parte-4)

Creación de directorios ServerRoot

Esta directiva indica el directorio en el cual vive su instalación de Apache. Por defecto, se encuentra ubicada en etc/apache2 o etc/httpd. En condiciones normales, Apache es iniciado por el usuario root y cambia al usuario definido en la directiva User. Si usted ha de cambiar la ubicación del ServerRoot, entonces tendrá que cambiar los permisos correspondientes a este directorio para que solo root pueda hacer cambios.

  1. Digamos que decide ubicar su directorio ServerRoot en /usr/local/apache, este directorio contendrá los subdirectorios binconf y logs.
  2. Se recomienda que cree dichos directorios como root usando comandos similares a los siguientes:mkdir /usr/local/apache cd /usr/local/apache mkdir bin conf logs chown 0 . bin conf logs chgrp 0 . bin conf logs chmod 755 . bin conf logs
  3. Se asume que //usr y /usr/local son modificables únicamente por el usuario root. Cuando usted instala el ejecutable httpd, debe asegurarse de que también esté protegido:cp httpd /usr/local/apache/bin chown 0 /usr/local/apache/bin/httpd chgrp 0 /usr/local/apache/bin/httpd chmod 511 /usr/local/apache/bin/httpd

Asegurar tu servidor Web Apache con ModSecurity

1 Instalación

1.1 Debian

mod_security está disponible como un paquete Debian en los repositorios Debian por defecto, por lo tanto la instalación es tan simple como esto:

apt-get install libapache2-mod-security
a2enmod mod-security
/etc/init.d/apache2 force-reload

1.2 Ubuntu

La instalación es exactamente la misma que en Debian Sarge:

apt-get install libapache2-mod-security
a2enmod mod-security
/etc/init.d/apache2 force-reload

1.3 Fedora

En Fedora, puede instalar y activar mod_security de la siguiente manera:

yum install mod_security
/etc/init.d/httpd restart

Ahora debe encontrar el archivo /etc/httpd/conf.d/mod_security.conf que ya contiene una configuración básica de mod_security:

vi /etc/httpd/conf.d/mod_security.conf



# Example configuration file for the mod_security Apache module

LoadModule security_module modules/mod_security.so
 
<IfModule mod_security.c>
 
    # Turn the filtering engine On or Off
    SecFilterEngine On
 
    # The audit engine works independently and
    # can be turned On of Off on the per-server or
    # on the per-directory basis
    SecAuditEngine RelevantOnly
 
    # Make sure that URL encoding is valid
    SecFilterCheckURLEncoding On
 
    # Unicode encoding check
    SecFilterCheckUnicodeEncoding On
 
    # Only allow bytes from this range
    SecFilterForceByteRange 1 255
 
    # Cookie format checks.
    SecFilterCheckCookieFormat On
 
    # The name of the audit log file
    SecAuditLog logs/audit_log
 
    # Should mod_security inspect POST payloads
    SecFilterScanPOST On
 
    # Default action set
    SecFilterDefaultAction «deny,log,status:406»
 
    # Simple example filter
    # SecFilter 111
 
    # Prevent path traversal (..) attacks
    # SecFilter «\.\./»
 
    # Weaker XSS protection but allows common HTML tags
    # SecFilter «<( |\n)*script»
 
    # Prevent XSS atacks (HTML/Javascript injection)
    # SecFilter «<(.|\n)+>»
 
    # Very crude filters to prevent SQL injection attacks
    # SecFilter «delete[[:space:]]+from»
    # SecFilter «insert[[:space:]]+into»
    # SecFilter «select.+from»
 
    # Require HTTP_USER_AGENT and HTTP_HOST headers
    SecFilterSelective «HTTP_USER_AGENT|HTTP_HOST» «^$»
 
    # Only accept request encodings we know how to handle
    # we exclude GET requests from this because some (automated)
    # clients supply «text/html» as Content-Type
    SecFilterSelective REQUEST_METHOD «!^GET$» chain
    SecFilterSelective HTTP_Content-Type «!(^$|^application/x-www-form-urlencoded$|^multipart/form-data)»
 
    # Require Content-Length to be provided with
    # every POST request
    SecFilterSelective REQUEST_METHOD «^POST$» chain
    SecFilterSelective HTTP_Content-Length «^$»
 
    # Don’t accept transfer encodings we know we don’t handle
    # (and you don’t need it anyway)
    SecFilterSelective HTTP_Transfer-Encoding «!^$»
 
    # Some common application-related rules from
    # http://modsecrules.monkeydev.org/rules.php?safety=safe
 
    #Nuke Bookmarks XSS
    SecFilterSelective THE_REQUEST «/modules\.php\?name=Bookmarks\&file=(del_cat\&catname|del_mark\&markname|edit_cat\&catname|edit_cat\&catcomment|marks\&catname|uploadbookmarks\&category)=(<[[:space:]]*script|(http|https|ftp)\:/)»
 
    #Nuke Bookmarks Marks.php SQL Injection Vulnerability
    SecFilterSelective THE_REQUEST «modules\.php\?name=Bookmarks\&file=marks\&catname=.*\&category=.*/\*\*/(union|select|delete|insert)»
 
    #PHPNuke general XSS attempt
    #/modules.php?name=News&file=article&sid=1&optionbox=
    SecFilterSelective THE_REQUEST «/modules\.php\?*name=<[[:space:]]*script»
 
    # PHPNuke SQL injection attempt
    SecFilterSelective THE_REQUEST «/modules\.php\?*name=Search*instory=»
 
    #phpnuke sql insertion
    SecFilterSelective THE_REQUEST «/modules\.php*name=Forums.*file=viewtopic*/forum=.*\’/»
 
    # WEB-PHP phpbb quick-reply.php arbitrary command attempt
 
    SecFilterSelective THE_REQUEST «/quick-reply\.php» chain
    SecFilter «phpbb_root_path=»
 
    #Topic Calendar Mod for phpBB Cross-Site Scripting Attack
    SecFilterSelective THE_REQUEST «/calendar_scheduler\.php\?start=(<[[:space:]]*script|(http|https|ftp)\:/)»
 
    # phpMyAdmin: Safe
 
    #phpMyAdmin Export.PHP File Disclosure Vulnerability
    SecFilterSelective SCRIPT_FILENAME «export\.php$» chain
    SecFilterSelective ARG_what «\.\.»
 
    #phpMyAdmin path vln
    SecFilterSelective REQUEST_URI «/css/phpmyadmin\.css\.php\?GLOBALS\[cfg\]\[ThemePath\]=/etc»
 
</IfModule>
 

Des pues reiniciar el servidor apache

Cambiar el nombre del administrador admin por otro

Para ello abrimos en nuestro hosting  phpMyAdmin y ejecutar una consulta SQL en la base de datos adecuada para que el usuario “admin”, por ejemplo, pase a llamarse “Pepe” y que lo puedas utilizar posteriormente para logearte en el dashboard.

al dashboard de WordPress, UsuariosTu Perfil verás en el campo Nombre de usuario el que utilizas normalmente para logearte desde el formulario de acceso y que aparecerá semi apagado (gris claro) indicando que no es modificable desde este campo.

Cambiar el usuario de WordPress desde phpMyAdmin

Pongámosle remedio a esto haciéndolo desde el panel de Hosting (aquí cPanel), en el apartado Bases de Datos seleccionamos la herramienta phpMyAdmin.

Cambiar el usuario de WordPress desde phpMyAdmin

Una vez dentro clic para desplegar las bases de datos existentes en la columna de la izquierda y clic sobre la base de datos de la instalación en la que vamos a cambiar el username (si tienes varias bases de datos).

Cambiar el usuario de WordPress desde phpMyAdmin

Ahora en la parte superior veremos varias pestañas. Clic en la pestaña SQL donde veremos la siguiente caja para realizar consultas SQL.

Cambiar el usuario de WordPress desde phpMyAdmin

En esa caja escribimos (o copiamos y pegamos) la siguiente instrucción SQL para que luego se ejecute:

UPDATE wp_users SET user_login='Pepe' WHERE user_login='admin';

Nota: Deberás sustituir ‘Pepe’ por tu nombre de usuario nuevo y ‘admin’ por el nombre de usuario actual que tengas establecido. (en el ejemplo de la imagen inferior es Daniel)

Cambiar el usuario de WordPress desde phpMyAdmin

Para que la consulta se ejecute debes hacer clic en el botón inferior derecho Continuar.

Si todo ha ido bien deberá ver el siguiente resultado:

Cambiar el usuario de WordPress desde phpMyAdmin

Ahora solo te queda ir a tu dashboard a loguearte en tudominio.com/wp-admin y verificar si con el nuevo usuario accedes.

Después vas a UsuariosTu Perfil y verificas el nuevo nombre de usuario o ‘username’.

Cambiar el usuario de WordPress desde phpMyAdmin

Guía para asegurar tu wordpress(parte-3)

Protección por medio del archivo .htaccess

¿Para qué sirve el archivo .htaccess?

El archivo de texto permite al autor de páginas web establecer las propiedades seleccionadas del servidor. Además, no necesita acceso completo de administrador y solo afecta el comportamiento del servidor para el directorio y subdirectorio seleccionado en el servidor. WordPress básicamente lo usa para establecer el comportamiento de las URL generadas para que sean compatibles con los motores de búsqueda.

¿Dónde puedo encontrar el archivo .htaccess?

El archivo se encuentra en la carpeta raíz (root) de su alojamiento web. Simplemente inicie sesión en FTP con la ayuda del cliente FTP seleccionado y debería ver el archivo.

htaccess

A veces, no se puede ver el archivo después de iniciar sesión en un cliente FTP. En este caso, es suficiente forzar la visualización de archivos ocultos en la configuración del programa (habitualmente Total Commander, WinSCP o FileZilla).

Si aún no ve el archivo, puede subirlo manualmente al servidor, o simplemente haga clic en «Configuración»> «Enlaces permanentes» en la configuración de WordPress para cambiar la configuración a otra que no sea básica y guardar. Ahora ya debería ver el archivo en el servidor. A continuación, puede cambiar de nuevo los ajustes.

¿Cómo editar .htaccess?

Para editar el archivo, puede usar cualquier editor de texto desde el Bloc de notas al editor de desasrrollo PSPad.  Antes de editar el archivo, haga una copia de seguridad del archivo en su PC para poder restablecer la configuración en caso de problemas.

Ejemplos de configuraciones

Configurar el archivo .htacces es una forma de proteger nuestro sistema WordPress, anteriormente vimos algunas formas de proteger nuestro WordPress en Seguridad en Worrdpress, en esta ocasión vamos a ver algunas de las configuraciones que podemos utilizar en nuestro .htaccess para proteger nuestro sistema.

Algunas configuraciones pueden crear conflicto con configuraciones existentes o con vuestro servidor, así que haz una copia de tu archivo .htaccess antes de modificarlo.

Bloquear comentarios a peticiones no referenciadas

#bloquear comentarios a peticiones no referenciadas 
RewriteEngine On
RewriteCond %{REQUEST_METHOD} POST
RewriteCond %{REQUEST_URI} .wp-comments-post.php*
RewriteCond %{HTTP_REFERER} !.*tu_dominio.com.* [OR]
RewriteCond %{HTTP_USER_AGENT} ^$
RewriteRule (.*) ^http://%{REMOTE_ADDR}/$ [R=301,L]

Denegar acceso a wpconfig

#denegar acceso a wpconfig
<files wp-config.php>
order allow,deny
deny from all
</files>

Asegurar los plugins

#asegurar los plugins
<Files ~ "\.(js|css)$">
  order allow,deny
  allow from all
</Files>

Acceso a wp-login.php solo IPs permitidas

#acceso a wp-login.php solo IPs permitidas
<files wp-login.php>
order deny,allow
deny from all
allow from xxx.xxx.xxx.xxx
</files>

Bloquea y protege wp-content

#bloquea y protege wp-content
Order deny,allow
Deny from all
<Files ~ “.(xml|css|jpe?g|png|gif|js)$”>
Allow from all
</Files>

Bloquea todas las peticiones de user-agent

#bloquea todas las peticiones de user-agent
SetEnvIfNoCase user-Agent ^FrontPage [NC,OR]
SetEnvIfNoCase user-Agent ^Java.* [NC,OR]
SetEnvIfNoCase user-Agent ^Microsoft.URL [NC,OR]
SetEnvIfNoCase user-Agent ^MSFrontPage [NC,OR]
SetEnvIfNoCase user-Agent ^Offline.Explorer [NC,OR]
SetEnvIfNoCase user-Agent ^[Ww]eb[Bb]andit [NC,OR]
SetEnvIfNoCase user-Agent ^Zeus [NC]
Order Allow,Deny
Allow from all
Deny from env=bad_bot

Crea una página personalizada para cada tipo de error

#crea una página personalizada para cada tipo de error
ErrorDocument 401 /error/401.php
ErrorDocument 403 /error/403.php
ErrorDocument 404 /error/404.php
ErrorDocument 500 /error/500.php

Deshabilita la navegación por directorios de tu sitio

#deshabilita la navegación por directorios de tu sitio
Options All -Indexes

Protege el archivo .htaccess

#protege el archivo .htaccess
<Files .htaccess>
Order allow,deny
Deny from all
</Files>

Prevenir el hotlinking

#prevenir el hotlinking
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^http://(.+\.)?misitio\.com/ [NC]
RewriteCond %{HTTP_REFERER} !^$
RewriteRule .*\.(jpg|gif|bmp|png)$ http://hotlink.misitio.com/no_se_permite_hotlinking.jpg [L]

Proteger ataques DOS limitando el tamaño de subida de archivos

#proteger ataques DOS limitando el tamaño de subida de archivos  
LimitRequestBody 10240000 

Protege archivos vulnerables

#protege archivos vulnerables
<FilesMatch "^.*(error_log|wp-config\.php|php.ini|\.[hH][tT][aApP].*)$">
Order deny,allow
Deny from all
</FilesMatch>

Evita sql injection

#evita sql injection
RewriteEngine On
Options +FollowSymLinks
ServerSignature Off
RewriteCond %{REQUEST_METHOD} ^(HEAD|TRACE|DELETE|TRACK) [NC,OR]
RewriteCond %{THE_REQUEST} ^.*(\\r|\\n|%0A|%0D).* [NC,OR] 
RewriteCond %{HTTP_REFERER} ^(.*)(<|>|'|%0A|%0D|%27|%3C|%3E|).* [NC,OR]
RewriteCond %{HTTP_COOKIE} ^.*(<|>|'|%0A|%0D|%27|%3C|%3E|).* [NC,OR]
RewriteCond %{REQUEST_URI} ^/(,|;|:|<|>|">|"<|/|\\\.\.\\).{0,9999}.* [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^$ [OR]
RewriteCond %{HTTP_USER_AGENT} ^(java|curl|wget).* [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^.*(winhttp|HTTrack|clshttp|archiver|loader|email|harvest|extract|grab|miner).* [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^.*(libwww-perl|curl|wget|python|nikto|scan).* [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^.*(<|>|'|%0A|%0D|%27|%3C|%3E|).* [NC,OR]
RewriteCond %{QUERY_STRING} ^.*(;|<|>|'|"|\)|%0A|%0D|%22|%27|%3C|%3E|).*(/\*|union|select|insert|cast|set|declare|drop|update|md5|benchmark).* [NC,OR]
RewriteCond %{QUERY_STRING} ^.*(localhost|loopback|127\.0\.0\.1).* [NC,OR]RewriteCond %{QUERY_STRING} ^.*\.[A-Za-z0-9].* [NC,OR]
RewriteCond %{QUERY_STRING} ^.*(<|>|'|%0A|%0D|%27|%3C|%3E|).* [NC]
RewriteRule ^(.*)$ hack.cfm

Seguridad extra para php

#seguridad extra para php  
php_flag safe_mode on  
php_flag expose_php off  
php_flag display_errors off

Evita escaneos

#evitar escaneos
RewriteEngine On  
Options +FollowSymLinks 
RewriteCond %{HTTP_USER_AGENT} ^$ [OR]  
RewriteCond %{HTTP_USER_AGENT} ^(-|\.|') [OR]  
RewriteCond %{HTTP_USER_AGENT} ^(.*)(<|>|%3C|%3E)(.*) [NC,OR]  
RewriteCond %{HTTP_USER_AGENT} ^(java|curl|wget)(.*) [NC,OR]  
RewriteCond %{HTTP_USER_AGENT} ^(.*)(libwww-perl|libwwwperl|snoopy|curl|wget|winhttp|python|nikto|scan|clshttp|archiver|loader|email|harvest|fetch|extract|grab|miner|suck|reaper|leach)(.*) [NC,OR]  
RewriteCond %{REQUEST_URI} ^(/,|/;|/<|/>|/'|/`|/%2C|/%3C|/%3E|/%27|/////) [NC,OR]  
RewriteCond %{HTTP_REFERER} ^(.*)(%00|%08|%09|%0A|%0B|%0C|%0D|%0E|%0F|%2C|<|>|'|%3C|%3E|%26%23|%27|%60)(.*) [NC,OR]  
RewriteCond %{QUERY_STRING} ^(.*)(%00|%08|%09|%0A|%0B|%0C|%0D|%0E|%0F|%2C|%3C|%3E|%27|%26%23|%60)(.*) [NC,OR]  
RewriteCond %{QUERY_STRING} ^(.*)('|-|<|>|,|/|\\|\.a|\.c|\.t|\.d|\.p|\.i|\.e|\.j)(.*) [NC,OR]  
RewriteCond %{HTTP_COOKIE} ^(.*)(<|>|'|%3C|%3E|%27)(.*) [NC]  
RewriteRule ^(.*)$ error.php [NC]

No permitir acceso a .htaccess

#no permitir acceso a .htaccess  
<Files ~ “^.*\.([Hh][Tt][Aa])”>
order allow,deny
deny from all
satisfy all
</Files>

Guía para asegurar tu wordpress(parte-2)

1 Ocultar la versión de WordPress

La encargada de mostrar la versión de tu WordPress en tu web es la función wp_head(), que incluye una llamada a la función wp_generator().

Para ocultar esa información, tienes que incluir la siguiente línea en el archivo functions.php de tu WordPress:

 remove_action(‘wp_head’, ‘wp_generator’);

El archivo funtions.php se encuentra dentro de la carpeta de la plantilla. Dentro de la carpeta wp-content encontrarás el contenido de tu web que no está relacionado con el núcleo de WordPress entre ellas una carpeta llamada themes. La carpeta theemes aloja a su vez diferentes carpetas correspondiente a cada uno de los temas que tienes instalados. Debes buscar la carpeta del tema activo y dentro encontrarás el famoso archivo functions.php Para acceder a él puedes realizarlo a través de FTP o FTP Web en el caso de que dispongas de un hosting con navegador de archivos tipo Plesk o CPanel

Para acceder a él puedes realizarlo a través de FTP o FTP Web en el caso de que dispongas de un hosting con navegador de archivos tipo Plesk o CPanel.

Donde esta funcion php en WordPress

Dentro de la carpeta themes encontrarás una carpeta correspondiente a cada plantilla. Debes localizar la plantilla que estés usando en ese momento.

Una vez hayas localizado el tema, debes buscar el archivo functions.php dentro de la carpeta. Este es el archivo que deberás modificar. 

¿Cómo modificar el archivo functions.php en WordPress a través de CPANEL o FTP?

Antes de lamentarnos recuerda, debes hacer una copia de seguridad del archivo, para ello descargalo mediante FTP o tu Administrador del Archivos del hosting. Para modificar le archivo tienes dos opciones:

Si usas FTP debes descargarlo y abrirlo con un editor de código como por ejemplo Notepad++. Guardar el archivo en tu ordenador, borrar el original y volver a subirlo modificado.

En el caso de que dispongas de Plesk o CPanel podrás modificarlo mediante el Administrador de Archivos. Como truco te recomendamos que hagas los cambios pero no cierres el archivo en tu navegador. De esta maneras podrás usar las teclas de deshacer en tu sistema operativo para devolver al origen el archivo. 

Archivo functions.php editado con algunas funciones para WooCommerce

Por supuesto la función que quieras añadir al archivo functions.php de WordPress debes añadirla al final del código. Si lo añades en otro lugar puede que tu plantilla no funcione. Nunca jamás debes acabar el código con la etiqueta de cierre de PHP ?> o tu sitio web fallará. 

Generalmente un archivo funtions.php que no es correcto suele general un error 500. En este caso tendrás que reponer el código a su estado original, subiendo la copia de seguridad o eliminando el código que hayas añadido. 

Editar functions.php desde el escritorio de WordPress

Un método alternativo para añadir código al archivo funtions.php, el editor de temas de WordPress.

WordPress dispone de sus propios editores de temas y de plugins. Aunque un desarrollador normalmente modifica los archivo como hemos visto en el punto anterior es interesante que conozcas que existe este método alternativo que es sobre todo útil cuando tenemos que hacer pequeños cambios como pegar un código que ya tenemos la certeza que funciona correctamente en nuestro WordPress.

¡Ojo! debes tener mucho cuidado con modificar functions.pho mediante esta técnica ya que desde el editor de WordPress no podrás descargar copia de seguridad ni volver atrás. Es muy raro que algo que peguemos en funtions.php genere un error en el Escritorio de WP, por tanto en caso de que falle tu WP, debes volver al editor y borrar lo que pegaste, así de simple. 

Para editarlo entra en Apariencia > Editor y selecciona el archivo functions.php de la lista de la derecha. Tu archivo cargará y ya podrás editarlo. Si te da fallo al guardar, es normal, muchos hostings compartidos impiden por seguridad que se puedan modificar archivos directamente desde WordPress en este caso deberás hacer mediante CPanel o FTP. Sobre el Autor

2. Activa la actualización automática en tu WordPress

Puedes configurar las actualizaciones automáticas del núcleo de WordPress desde el fichero wp-config.php. Tan solo debes añadir las siguientes líneas para cada una de las configuraciones:

 //Todas las actualizaciones del núcleo desactivadas define( ‘WP_AUTO_UPDATE_CORE’, false ); //Todas las actualizaciones del núcleo activadas define( ‘WP_AUTO_UPDATE_CORE’, true ); //Sólo actualizaciones menores del núcleo activadas define( ‘WP_AUTO_UPDATE_CORE’, ‘minor’ );

Las actualizaciones de plugins y plantillas es mejor hacerlas de forma manual, ya que pueden ser más sensibles y podrían provocar errores en la web si no se verifica bien la compatibilidad con la versión de WordPress.

3.Modifica la url de login de tu WordPress

En webs realizadas con WordPress el acceso a la administración se realiza por defecto en la url http://midominio.com/wp-admin o http://midominio.com/wp-login.php

Una forma es, mediante .htaccess de impedir que wp-login.php pueda ser accesible si no gestionamos usuarios en WordPress y no se hace necesario disponer de formulario de acceso para los usuarios (muy recomendado) pues servicios como los comentarios se pueden externalizar para no depender del formulario nativo de comentarios de WordPress.

<Files wp-login.php>    ErrorDocument 401 default      AuthUserFile /home/<user>/.htpasswds/.htpasswd_user     AuthName «Acceso restringido»      AuthType Basic    Require valid-user </Files

 Es el de aprender a implementar mediante plugin la opción de desplazar mediante cambio de nombre el acceso de wp-admin de forma que se eviten que ataques de fuerza bruta contra el formulario de login tengan éxito, por oscuridad.

Haremos uso del plugin Move Login, con el cual cerraremos el acceso a /wp-login.php y crearemos nuevas url de acceso

Instalación de Move Login:

1.    Accedemos al dashboard de WordPress y realizamos una copia de seguridad.

2.    Verificamos que el archivo .htaccess tenga permisos de escritura 644.

3.    Vamos a Plugins, Añadir nuevo y buscamos “Move Login”.

4.    Instalamos el plugin y lo activamos.

5.    Accedemos a Ajustes, Move Login y lo configuramos.

Podemos establecer los nombres sustitutivos para el formulario “login”“logout”“register”“lostpassword” y “resetpass”. Deben ser nombres cortos, sin espacios, sin caracteres especiales o acentos que puedan luego dificultar su uso.

También es posible redireccionar a “Página no encontrada” (404) en caso de que se comentan errores de acceso (recomendado).

Si el plugin no puede escribir el archivo .htaccess de nuestra instalación, por problemas de permisos, deberemos editarlo desde el cPanel, Administrador de Archivos, Editor de Código o vía FTP para insertar manualmente el código propuesto por el plugin tras guardar los cambios en la configuración.

Lo normal es que dicho archivo tenga los permisos correctos (644) y que el plugin pueda añadir de forma automática el código, no obstante es bueno siempre verificarlo editando el archivo tras guardar los cambios en el plugin.

4. Protege los archivos que pueden comprometer la seguridad de tu web.

Existen diversos archivos que pueden comprometer la seguridad de WordPress.

Hay algunos archivos que se añaden con la instalación de WordPress, que son meramente informativos, pero cuya información puede ser útil para los atacantes

Existen diversos archivos que pueden comprometer la seguridad de WordPress. Por un lado, hay algunos archivos que se añaden con la instalación de WordPress, que son meramente informativos
Por otro lado, existen algunos archivos necesarios para el funcionamiento de WordPress, que no podemos eliminar, y que contienen información sensible. Es conveniente proteger estos archivos

En la raíz de la web solo deberíamos tener archivos con extensión php y el archivo .htaccess. El resto de archivos, con extensiones txt o html deberían ser eliminados, a menos que los hayamos añadido nosotros para algún cometido en particular, o se hayan instalado con algún plugin (normalmente ningún plugin debería dejar archivos en la raíz, pero puede que haya excepciones).

Los archivos que deberíamos eliminar son los siguientes (puede que no lo tengas todos):

  • license.txt
  • licencia.txt
  • readme.html


Para añadir una capa de seguridad adicional.debemos editar el archivo .htaccess y añadir al principio del mismo el siguiente código:

# proteger wpconfig.php
<files wp-config.php>
order allow,deny
deny from all
</files>

# proteger htaccess
<files .htaccess>
order allow,deny
deny from all
</files>

De esta manera, indicamos que se bloquee el acceso a ambos archivos de forma externa, solo siendo accesibles desde el propio servidor, que es justo lo que necesitamos.

5. Protege tu base de datos cambiando el prefijo de las tablas por defecto

Por defecto de las tablas de la base de datos que es: wp_ .

Lo recomendable es que cambies el prefijo por defecto al instalar el WordPress.

Si ya lo tienes instalado, puedes cambiar el prefijo fácilmente con el plugin Change DB Prefix

6. Protege el archivo wp-login.php

Esto solo debes hacerlo si los visitantes de tu web no necesitan identificarse como usuario.

Por ejemplo, en una tienda online no deberás proteger el archivo wp-login.php.

Este caso no lo he probado En este caso, deberemos editar el archivo .htaccess que tenemos en la raíz de nuestro sitio web, y añadir al comienzo del mismo un código como el siguiente (el archivo ya puede contener otro código que no hay que cambiar):

<files wp-login.php>
AuthType Basic
AuthName "Acceso restringido"
AuthUserFile "/home/NOMBRECUENTA/.htpasswds/public_html/passwd"
require valid-user
</files>

En el código anterior, /home/NOMBRECUENTA/.htpasswds/public_html/passwd sería la ruta al archivo que contiene el usuario y contraseña de acceso, en este caso llamado passwd. Es muy recomendable que este archivo se encuentre alojado fuera de la ruta donde se encuentran los archivos de la web, así evitaremos el acceso al mismo vía web.

En el archivo passwd deberemos colocar el usuario y contraseña, teniendo en cuenta que esta contraseña va encriptada. Para generar estos datos podemos utilizar una página como la siguiente: http://www.htaccesstools.com/htpasswd-generator/

Aquí veremos que después de poner el usuario y contraseña nos generará un código. Este código será el que deberemos poner dentro del archivo passwd, que deberá estar colocado en la ruta que hayamos configurado. Para el ejemplo anterior, la ruta sería /home/NOMBRECUENTA/.htpasswds/public_html

De esta forma, cuando accedamos a este archivo para iniciar sesión de usuario de WordPress, nos solicitará un usuario y contraseña adicional previo a la carga de la página.

Otra alternativa sería restringir el acceso al archivo solo a determinadas IPs (recuerda que deberías tener una IP fija para usar esta opción). Para ello, habrá que añadir un código como el siguiente al inicio del archivo .htaccess que hay en la raíz de la web:

<files wp-login.php>
order deny,allow
allow from 10.11.12.13
allow from 100.120.140.160
deny from all
</files>

En el ejemplo anterior, solo se permite el acceso al archivo wp-login.php para las IPs 10.11.12.13 y 100.120.140.160. Podemos añadir o eliminar líneas «allow from» para disponer de más o menos IPs con el acceso permitido.

7. Agrega una cabecera X-Content-Type

Con esta cabecera evitarás que haya usuarios que intenten suplantar archivos css o js por ejecutables.

Si enviamos la cabecera X-Content-Type-Options en la respuesta con el valor «nosniff», los navegadores que soportan esta cabecera (IE y Chrome), no cargan las hojas de estilos, ni los scripts (Javascript), cuyo Myme-type no sea el adecuado.

El aspecto de la cabecera es el siguiente:

X-Content-Type-Options: nosniff

La mejor forma de añadir esta cabecera sería añadiendo unas líneas de código al archivos functions.php del tema de WordPress que estemos usando.

Este archivo se encuentra en la ruta wp-content/themes/NOMBRE_TEMA, en donde NOMBRE_TEMA es el nombre del tema que tenemos activado. En primer lugar, haremos una copia de seguridad del archivo functions.php. Después lo editamos y añadimos el siguiente código al final del mismo:

add_action( 'send_headers', 'add_header_xcontenttype' );
function add_header_xcontenttype() {
header( 'X-Content-Type-Options: nosniff' );
}

Existen otras alternativas. Para implementar la cabecera en un servidor web Apache, se puede hacer usando el fichero .htaccess, añadiendo el siguiente código:

Header set X-Content-Type-Options nosniff

Con esta cabecera, se reduce el riesgo de que se produzca un ataque basado en confusión de tipos mime.

En general con la Cabecera X-Content-Type-Options evitaremos que se carguen hojas de estilo o scripts maliciosos.

Puedes leer más información en las páginas de ayuda de Microsoft MSDN.

Si queremos añadir otras cabeceras de seguridad a partir de cambios en el archivo functions.php, podemos hacerlo usando una única función, en lugar de añadir cada cabecera en una función distinta, aunque el funcionamiento sea similar. En el siguiente código de ejemplo, que habría que colocar al final del archivo functions.php, se añaden las cabeceras X-Content-Type-Options, X-Frame-Options y X-XSS-Protection:

add_action( 'send_headers', 'add_header_seguridad' );
function add_header_seguridad() {
header( 'X-Content-Type-Options: nosniff' );
header( 'X-Frame-Options: SAMEORIGIN' );
header( 'X-XSS-Protection: 1;mode=block' );
}

8. Instala algún plugin de seguridad para WordPress

Este tipo de plugins te ayudarán a aumentar la seguridad de distintas formas. te permiten desde proteger el acceso a la administración hasta revisar los archivos de tu WordPress en busca de código malicioso.

Existen multitud de opciones, como por ejemplo:

Si quieres conocer todas las características de Wordfence, te las mostramos en este artículo: Como mejorar la seguridad de WordPress con Wordfence Security.

Recuerda deshabilitar las estadísticas (tabla wfhits) para no sobrecargar tu WordPress.

Una opción interesante de Wordfence es la verificación de ficheros básicos de WordPress para comprobar si han sido modificados.

Ten precaución a la hora de configurar este tipo de plugins, ya que podrías bloquear tu propio acceso con estas herramientas.

Antes de instalar algún plugin de este tipo, haz una copia de seguridad. Así podrás volver al estado anterior en caso de problemas

Guía para asegurar tu wordpress(parte-1)

1-Cuidado con tu conexión a Internet

 Wifi gratis: alto precio en seguridad

¿Proxy? No, gracias.

SSL para encriptar datos

2. Usa contraseñas seguras

Dobla la seguridad usando la doble autenticación

Utiliza un doble factor de autenticación siempre que puedas, verás que configurarlo y empezar a usarlo es muy sencillo: 2FA CiberProtector

3. Tu equipo

 Sistema operativo y navegador actualizados

Antivirus y firewall

Control de usuarios

Control de accesos

Utiliza SFTP o FTPS de forma que tu tráfico cliente/servidor quede cifrado.

Aísla tu entorno de trabajo

Si solo dispones de un equipo físico de trabajo (computador), valora la posibilidad de trabajar con una máquina virtual

4 Cuidando de tu WordPress

Actualiza a la última tu WordPress!

Actualiza tus plugings

Utiliza solo los plugins que vayas a necesitar

Actualiza el tema a utilizar

 NUNCA utilices temas que hayas obtenidos desde gestores de descarga o páginas sospechosas: pueden venir hackeados de serie.

 Usuario admin no lo utilices

Lo mejor es que crees un nuevo usuario con privilegios de administrador (recuerda usar una contraseña segura).

Una vez hecho esto, cierra la sesión y vuelve a conectarte con el nuevo usuario que has creado.

Después accede al gestor de usuarios, edita el usuario “admin” y cambia sus privilegios de administrador por suscriptor o elimina directamente el usuario “admin”.

Para cambiar el usurio admin mediante phpMyadmin Para ello lo puedes ver desde la siguiente entrada

5. Realiza backups periódicos y automatizados

6. Limita los intentos de acceso fallidos

Puedes utilizar distintos plugins un ejemplo es  e BruteProtect

7. Protección adicional con Captcha y doble autenticación

Administración de WordPress

Te recomendamos proteger el acceso a la administración de tu WordPress con un formulario de autenticación con Captcha o un doble factor de autenticación como por ejemplo Latch.

 8 Asegúrate de mantener los usuarios imprescindibles y con privilegios mínimos.

9. Audita tu WordPress

Puedes comprobar la salud de tu WordPress con Google Safe Browsing: https://www.google.com/transparencyreport/safebrowsing/diagnostic/?hl=es

O también directamente en Google Console (antes Webmaster Tools): https://www.google.com/webmasters/tools/security-issues

Con wpdoctor podrás comprobar de forma automática si estás al día en muchos de los puntos tratados en esta guía:

 La primera línea de defensa: El Hosting

Usa un proveedor de hosting profesional

Solución para el error “Esta aplicación ha sido bloqueada para protegerte” en Windows 10

No es la mejor opción pero ante la necesidad podemos hacer uso de ella.

Para ello solo hemos de cambiar la directiva local que nos impide instalar nuestro programa.

Tenemos que acceder al Editor de directivas de grupo local.

Para ello presionamos Win + R para que aparezca el cuadro de diálogo Ejecutar, luego escribe gpedit.msc, y presiona Enter

En  el panel izquierdo del Editor de directivas de grupo local, hemos de localiza>Configuración del equipo> Configuración de Windows> Configuración de seguridad> Directivas locales> Opciones de seguridad.

En el panel derecho, haz doble clic en Control de cuentas de usuario: ejecute todos los administradores en Modo de aprobación de administrador.

Botón derecho hacemos clic y en propiedades  cambiamos la configuración de seguridad a Deshabilitado y haz clic en Aceptar.

Cerramos el Editor de directivas de grupo local y luego reiniciamos la computadora.

 

Datos obtenidos desde aquí