Hola buenos dias.
Hemos detectado a traves de Google Search Console que muchas fotos de nuestros productos aparecen como Referring link enlaces que no pertenecen a nuestra web como por ejemplo en el producto Luna Beberide Godello aparece el siguiente link en una de las fotos que tenemos de este producto;
https://www.glafur.com/?u=luna-beberide-godello-bierzo-2021-ff-kobJ8Zu5
Como podemos eliminar estos links que no pertenecen a nuestra web? Como podemos proteger nuestras fotos para que nadie enlace a ellas? Que repercusion tienen estos enlaces en nuestro SEO, ventas...? He intentado introducir el siguiente codigo en nuestro htaccess pero me da error 500;
/* Evitar hotlinking de imágenes en WordPress */
Reescribir Cond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?vinosyaguardientes.com [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?google.com [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?bing.com [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?yahoo.com [NC]
Regla de reescritura \.(jpg|jpeg|png|gif)$ - [F]
Que codigo deberia insertar para protegerme de Hotlinking?
Muchas gracias
Saludos
Jose Carlos
Contenido solo visible a usuarios registrados
Hola Jose Carlos.
Donde viste esos enlaces ?
Por defecto en los servidores de Webempresa se encuentra restringido el uso de Hotlinking
-> https://guias.webempresa.com/preguntas-frecuentes/hotlinking/
Puedes revisar lo siguiente:
Un saludo
Hola Pepe buenos dias.
Gracias por tu respuesta. Los hemos visto en Google Search Console en la informacion de diferentes productos concretamente en Referring link o pages. No sabia que el Hotlinking ya estaba activado por defecto.
Saludos
Jose Carlos
Hola Pepe buenos dias.
He revisado el link https://www.webempresa.com/blog/codigos-utiles-htaccess-para-wordpress.html#nbspPrevenir_el_hotlinking y me gustaria insertar el codigo que aparece para
Gracias
Saludos
Jose Carlos
Hola jose Carlos.
Para prevenir las inyecciones de SQL puedes añadir lo siguiente al principio o final del archivo .htaccess:
# Proteger de inyecciones SQL
<IfModule mod_rewrite.c>
RewriteEngine On
# Bloquear solicitudes con cadenas maliciosas comunes
RewriteCond %{QUERY_STRING} (\|%3E) [NC,OR]
RewriteCond %{QUERY_STRING} (\[|\]|\{|\}) [NC,OR]
RewriteCond %{QUERY_STRING} (union|select|insert|drop|update|delete|cast|create|modify|rename|alter|declare|benchmark|sleep) [NC,OR]
RewriteCond %{QUERY_STRING} (concat|convert|extractvalue|floor|group_concat|hex|ord|unhex|from_base64|to_base64|load_file|make_set) [NC,OR]
RewriteCond %{QUERY_STRING} (\/\*|\*\/|;|--|%23|%3D|%0A|%0D|%27|%22) [NC]
RewriteRule ^(.*)$ - [F,L]
# Bloquear solicitudes con cadenas PHP y otros scripts en la URL
RewriteCond %{QUERY_STRING} (\.php|\.\./|\./|\.sql|select.*from|0x[0-9A-F]+|GLOBALS|REQUEST) [NC,OR]
RewriteCond %{REQUEST_URI} (base64|localhost|mosconfig|environ|scanner|proc|passwd|boot.ini|echo.*kae|etc/passwd|self|webadmin|nmap|wget|curl|phpmyadmin|sqlmap|john|nikto|harvester|acunetix|wpscan|fimap|sqlninja|pma|netcraft|dnsmap|shodan|havij|jira) [NC,OR]
RewriteRule .* - [F,L]
</IfModule>
# Protección adicional para evitar la ejecución de archivos PHP en el directorio de subida
<FilesMatch "\.(php|php\..*)$">
SetHandler application/x-httpd-php
Order Deny,Allow
Deny from all
</FilesMatch>
# Deshabilitar la ejecución de scripts en el directorio de uploads
<Directory "/wp-content/uploads/">
<FilesMatch "\.(php|php\..*)$">
Order Deny,Allow
Deny from all
</FilesMatch>
</Directory>
Un saludo
Hola Pepe buenos dias.
El codigo que me indicas me da error 500.
El codigo que tenia ya en el htaccess y que no me da error es el siguiente;
# proteger contra inyecciones sql
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR]
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
RewriteRule ^(.*)$ index.php [F,L]
No se si es efectivo realmente este codigo y tampoco entiendo porque el otro me da error 500. He probado a insertarlo a el principio del archivo htaccess previamente quitando el codigo que ya tenia (el que te indico) y nada me da error 500.
Gracias por tu ayuda
Saludos
Jose Carlos
Hola Pepe buenos dias.
Solamente me admite el siguiente codigo;
# Bloquear solicitudes con cadenas maliciosas comunes
RewriteCond %{QUERY_STRING} (\|%3E) [NC,OR]
RewriteCond %{QUERY_STRING} (\[|\]|\{|\}) [NC,OR]
RewriteCond %{QUERY_STRING} (union|select|insert|drop|update|delete|cast|create|modify|rename|alter|declare|benchmark|sleep) [NC,OR]
RewriteCond %{QUERY_STRING} (concat|convert|extractvalue|floor|group_concat|hex|ord|unhex|from_base64|to_base64|load_file|make_set) [NC,OR]
RewriteCond %{QUERY_STRING} (\/\*|\*\/|;|--|%23|%3D|%0A|%0D|%27|%22) [NC]
RewriteRule ^(.*)$ - [F,L]
Los otros me da error 500 o Acceso no permitido
Gracias
Saludos
Jose Carlos
Hola Jose Carlos.
Prueba solo con esto:
Options +FollowSymLinks RewriteEngine On RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR] RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR] RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2}) RewriteRule ^(.*)$ index.php [F,L]
Un Saludo
Hola Pepe uenas tardes.
Asi lo he dejado solamente con el codigo que me indicas que es igual al que ya tenia. Porque no admite los otros codigos? Esta realmente protegido de igual forma con el nuevo codigo que me indicas para Bloquear solicitudes con cadenas maliciosas comunes, Bloquear solicitudes con cadenas PHP y otros scripts en la URL...
Options +FollowSymLinks RewriteEngine On RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR] RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR] RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2}) RewriteRule ^(.*)$ index.php [F,L]
Gracias
Saludos
Jose Carlos
Hola Jose,
Como te comenta Pepe, el codigo para prevenir inyeccione de scripts es ese:
# Prevenir inyecciones Scripts
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{QUERY_STRING} (<|%3C).*script.*(>|%3E) [NC,OR]
RewriteCond %{QUERY_STRING} GLOBALS(=|[|%[0-9A-Z]{0,2}) [OR]
RewriteCond %{QUERY_STRING} _REQUEST(=|[|%[0-9A-Z]{0,2})
RewriteRule ^(.*)$ index.php [F,L]
Tienes algunos otros mas en este github, pero ten en cuenta que estos es mejor probarlos en un entorno donde puedas restablecer el sitio en caso de cualquier error:
Contenido solo visible a usuarios registrados
Un saludo 🖐️