Asegurar WordPress a través de .htaccess

wordpress-security1

Asegurar nuestra instalación de WordPress debe ser una de las prioridades, especialmente cuando tu sitio web empieza a generar cierta cantidad de tráfico pues “robots” están en constante explotación de la más mínima vulnerabilidad para convertir nuestra instalación de WordPress en un sitio inseguro para tus visitantes.

El método de seguridad que uso y recomiendo es a través de “.htaccess“, pues éste archivo (que para muchos puede ser insignificante) nos ayuda a restringir y garantizar accesos así como administrar las direcciones de WordPress para que se vean “bonitas”.

Denegar el acceso al archivo wp-config.php

A través de la siguiente modificación al archivo “.htaccess” que se encuentra en la raíz de nuestra instalación de WordPress denegaremos cualquier tipo de acceso a éste archivo.

/.htaccess
# Denegar el acceso al archivo wp-config.php
<Files wp-config.php>
  order allow,deny
  deny from all
</Files>

Denegar el acceso a los archivos .htaccess

Seguimos modificando el archivo “.htaccess” ubicado en la raíz de nuestra instalación de WordPress, ésta ves para protegernos de cualquier intención de acceso a nuestros archivos “.htaccess”, éste código lo que hace es proteger todo archivo cuyo extensión inicie con “hta“.

/.htaccess
# Denegar el acceso a los archivos .htaccess
<Files ~ "^.*\.([Hh][Tt][Aa])">
  order allow,deny
  deny from all
  satisfy all
</Files>

Evitar la navegación en las carpetas de WordPress

La siguiente línea evitará que cualquier usuario o bot revise las carpetas de tu instalación de WordPress, de ésta manera evitas que sepan que plugins tienes instalados, por lo tanto determinar a que eres vulnerable.

/.htaccess
# Denegar la navegación a través de los directorios de WordPress
Options All -Indexes

Solo a las extensiones necesarias

Terminamos ya con el archivo “.htaccess” ubicado en la raíz de nuestra instalación de WordPress, ahora pasamos a a la carpeta “wp-content” que almacena todos los plugins, plantillas, imágenes, etc. Entonces como ésta carpeta contiene mucha información únicamente permitiremos el acceso a archivos que contengas las extensiones específicadas a continuación.

/wp-content/.htaccess
# Permitir el acceso únicamente a los siguientes archivos de wp-content
Order deny,allow
Deny from all
<Files ~ ".(xml|css|js|jpe?g|png|gif|pdf|docx|rtf|odf|zip|rar|svg|woff|ttf|eot)$">
  Allow from all
</Files>

Denegar la ejecución de archivos .php

Los ataques son originados a partir de la vulneración de archivos “.php”, ya sea a través de método “POST o GET” logran inyectar código en éstos archivos y por lo tanto dañar muchos archivos más de nuestra instalación de WordPress. Así denegaremos cualquier ejecución de los archivos “.php”.

Primero bloquearemos cualquier archivo “.php” ubicado en la carpeta “/wp-content/uploads”.

/wp-content/uploads/.htaccess
# Denegar la ejecución de archivos .php
<Files *.php>
  deny from all
</Files>

Además bloquear los archivos “.php” ubicados en la carpeta “/wp-includes”.

/wp-includes/.htaccess
# Denegar la ejecución de archivos .php
<Files *.php>
  deny from all
</Files>

Denegar el acceso a los archivos de wp-includes

Ésto es una extensión a lo ya dicho en el punto anterior, y permite reforzar la seguridad de la carpeta wp-includes.

/wp-includes/.htaccess
# Retringir todo acceso a wp-includes
<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteBase /
  RewriteRule ^wp-admin/includes/ - [F,L]
  RewriteRule !^wp-includes/ - [S=3]
  RewriteRule ^wp-includes/[^/]+\.php$ - [F,L]
  RewriteRule ^wp-includes/js/tinymce/langs/.+\.php - [F,L]
  RewriteRule ^wp-includes/theme-compat/ - [F,L]
</IfModule>

Compacto

Si deseas puedes descargar el siguiente archivo “.zip” que contiene todos los archivos “.htaccess” disgredados por carpetas de la manera que corresponde.
Descargar muestra .htaccess

Si conoces algún método adicional de protección y necesitas ayuda, déjanos un comentario.

Etiquetas:

YouTube estará solucionando el famoso problema de “301” reproducciones

301

El día de hoy Google ha realizado un anuncio que ha hecho a muchos creadores y productores de contenido muy felices pues estaría solucionando el problema de “301” reproducciones por un dato más exacto de reproducciones realizadas.

A través de un anuncio de la cuenta oficial en Twitter de YouTube, ahora todos los videos mostrarán un conteo real de todas las reproducciones que la compañía asegura como reproducciones por personas reales, pero no incluirá reproducciones de robots, las cuales pasarán a través de un proceso de verificación.

Remover el irritante y poco informativo “301” es una señal de que la compañía es capaz de diferenciar entre reproducciones de personas y reproducciones de sistemas automatizados. El famoso contador de “301” ha sido usado como un punto de referencia a través del cual se empieza a verificar que las reproducciones son auténticas o no.

Para una compañía que vende publicidad a grandes empresas esta distinción es de suma importancia.

Para visitantes, no significa mucho, sin embargo, para los creadores significa que no tendrán que esperar mucho para saber que tanto impacto ha tenido su video.

Etiquetas:

OpenDNS como herramienta de control parental para el hogar

opendns

Lo confieso, dependo mucho de internet y no me gustaría tener ningún tipo de limitación de acceso al contenido pero considero que hubiese sido muy bueno tener ese filtro y cuando el momento llegue y tenga que formar una familia ¿cuáles serán mis medidas para proteger a mi familia?

Internet es la herramienta más poderosa que tenemos cerca a nuestras manos, millones de millones de bytes de información de todo tipo, información verdadera e información falsa, el juicio final que define si creemos o no en la información que recibimos está en cada uno de los usuarios que recibió dicha información. Adultos o jóvenes tenemos la capacidad de diferenciar y tomar una decisión, pero ¿qué hay acerca de los menores?

En diversas oportunidades, me he tomado la molestia de leer los comentarios que diversas personas realizan en las publicaciones que los medios locales (de Perú) hacen en Facebook y cada vez que son noticias de espectáculos el  ~95% de los comentarios es para quejarse al respecto y el mensaje suele ser el mismo “protección al menor”. Algunos lo expresan con minúsculas y otros con mayúsculas pero el mensaje es el mismo.

¿Depende de ellos o depende de nosotros?

El pedido es siempre el mismo “que la información cambie”, y hasta cierto punto estoy de acuerdo pero aquí uno de los datos más importantes:

2015-07-31_22-45-39

Exacto, menores de 13 años no deben utilizar Facebook y lo dice en sus términos legales. Entonces si eres padre de familia preocúpate por que se cumpla esto y haz respetar este tratado. Además no debemos promover que se rompa ésta regla. Facebook es una fuente donde circula mucha información buena y mala, pero más allá de que Facebook puede ser un peligro, el mayor peligro son los enlaces que se encuentran en las redes sociales, y este contenido el que debe ser filtrado y es aquí donde empieza la labor de “OpenDNS” como una herramienta para el control de contenido para el hogar.

¿Gratuito o de pago?

Con OpenDNS puedes obtener seguridad para tu hogar de manera gratuita también puedes obtener mayores parámetros de filtración y configuración pagando únicamente $19.95 Dólares Americanos al año lo que serían S/. 65.00 Nuevos Soles (menos de S/.6.00 Nuevos Soles mensuales) por una herramienta que además de brindarte excelentes filtros de contenido también te protege de la información que es descargada a cada uno de tus aparatos electrónicos.

¿Qué otros beneficios obtengo al usar OpenDNS?

  • Seguridad
    • Administra más de 70 billones de peticiones diariamente, más del 2% de toda la internet con un 100% de uptime.
    • Todo el contenido que pasa a través del servidor DNS está encriptado.
    • Alertas ante accesos a sitios no-seguros.
  • Confianza
    • Personal técnico las 24 horas del día, los 7 días de la semana.
    • Servidores de respaldo, a pesar de que diversos servidores caigan siempre habrán servidores de respaldo.
    • En caso de que un dominio se encuentre mal configurado, OpenDNS te dará un mensaje de que “Las DNS han expirado” en vez de un mensaje de error.
  • Velocidad
    • Uno de los cachés más grandes del mundo de DNS. De ésta manera de obtiene una respuesta inmediata ante una solicitud.
    • Un enrutado que permite un acceso más rápido.
    • Integrado con servidores de contenido estático.
Etiquetas:

Especificaciones y requisitos de Windows 10

w10

Windows 10 es el nuevo sistema operativo de Microsoft que será lanzado el 29 Julio del 2015, éste nuevo sistema operativo ser más fácil de utilizar con un aumento de velocidad de desempeño así como nueva funcionalidades.

Los requisitos necesarios para que instales este nuevo sistema operativo son los siguientes:

  • SO más reciente: Asegúrate de que estás ejecutando la última versión, ya sea Windows 7 SP1 o Windows 8.1 Update.
  • Procesador: Un procesador a 1 GHz o más rápido o SoC
  • RAM: 1 gigabyte (GB) para 32 bits o 2 GB para 64 bits
  • Espacio en disco duro: 16 GB para un SO de 32 bits o 20 GB para un SO de 64 bits
  • Tarjeta gráfica: DirectX 9 o posterior con un controlador WDDM 1.0
  • Pantalla: 1024 x 600

Notas importantes

  • La posibilidad de actualización de un dispositivo depende de otros factores más allá de las especificaciones del sistema. Por ejemplo, la compatibilidad de los controladores, el firmware y las aplicaciones, y de las características, con independencia de que el dispositivo cumpla o no las especificaciones mínimas del sistema para Windows 10.
  • Si tu PC o tableta usa actualmente Windows 7 SP1 o Windows 8.1 Update, puedes comprobar si cumple los requisitos necesarios; para ello, usa ‘Comprobar mi PC’ en la aplicación Get Windows 10.
  • Las aplicaciones, los archivos y las configuraciones se migrarán como parte de la actualización; sin embargo, puede que algunas aplicaciones o configuraciones no se migren.
  • En el caso de las aplicaciones antivirus y antimalware, Windows comprobará durante la actualización si tu suscripción antivirus o antimalware está actualizada. Windows desinstalará la aplicación y conservará las configuraciones. Una vez completada la actualización, Windows instalará la última versión disponible con las configuraciones establecidas antes de la actualización. Si tu suscripción no está actualizada, la actualización habilitará Windows Defender.
  • Puede que antes de la actualización se quiten algunas aplicaciones del fabricante.
  • En el caso de algunas aplicaciones de terceros, la aplicación “Get Windows 10” analizará si son compatibles. Si hay algún problema conocido que impida la actualización, se te notificará la lista de aplicaciones que tienen problemas conocidos. Si eliges aceptar, se quitarán las aplicaciones del sistema antes de realizar la actualización. Asegúrate de hacer una copia de la lista antes de aceptar la eliminación de las aplicaciones.

Sección de características obsoletas

  • Si tienes Windows 7 Home Premium, Windows 7 Professional, Windows 7 Ultimate, Windows 8 Pro con Media Center o Windows 8.1 Pro con Media Center e instalas Windows 10, se eliminará Windows Media Center.
  • Para ver DVDs se requiere un software de reproducción independiente.
  • Los gadgets de escritorio de Windows 7 se quitarán como parte de la instalación de Windows 10.
  • Los usuarios de Windows 10 Home tendrán disponibles las actualizaciones de Windows Update automáticamente.
  • Los juegos Solitario, Buscaminas y Corazones que vienen preinstalados en Windows 7 se quitarán como parte de la instalación de la actualización a Windows 10. Microsoft ha lanzado sus propias versiones de Solitario y Buscaminas, y ahora se llaman “Colección de solitarios de Microsoft” y “Buscaminas de Microsoft”.
  • Si tienes una unidad de disco conectada a través de USB, necesitarás descargar el último controlador de Windows Update o del sitio web del fabricante.
  • Si tienes Windows Live Essentials instalado en el sistema, se quitará la aplicación OneDrive y se reemplazará con la versión de bandeja de entrada de OneDrive.

Requisitos adicionales para usar algunas características

  • Cortana solo está disponible actualmente en Windows 10 para Estados Unidos, Reino Unido, China, Francia, Italia, Alemania y España.
  • El reconocimiento de voz variará según el micrófono del dispositivo. Para tener una experiencia de voz mejor, necesitarás:
    • Micrófono de alta calidad
    • Controlador de hardware con la geometría de varios micrófonos expuesta
  • Windows Hello requiere una cámara por infrarrojos con iluminación especializada para el reconocimiento facial o la detección del iris, o un lector de huellas dactilares compatible con el Marco biométrico de Windows.
  • Continuum está disponible en todas las ediciones de Windows 10 si activas y desactivas manualmente el “modo tableta” en el Centro de actividades. Las tabletas y los equipos 2 en 1 con indicadores GPIO o los que tengan un indicador de portátil o tableta táctil podrán configurarse para entrar automáticamente en el “modo tableta”.
  • Se puede hacer streaming de música y vídeo a través de Xbox Music o Xbox Video en determinadas regiones. Para ver la lista más actualizada de regiones, visita el sitio web de Xbox en Windows.
  • La autenticación en dos fases requiere el uso de un PIN, equipo biométrico (lector de huellas dactilares o cámara por infrarrojos con iluminación), o un teléfono con capacidades WiFi o Bluetooth.
  • El número de aplicaciones que se pueden acoplar dependerá de la resolución mínima de la aplicación.
  • Para el uso táctil, necesitas una tableta o un monitor que sea compatible con la función Multitáctil (más información)
  • Para algunas características es necesaria una cuenta Microsoft
  • Acceso a Internet (pueden aplicarse tarifas adicionales del proveedor de acceso a Internet)
  • Para un arranque seguro se requiere firmware compatible con UEFI v2.3.1 Errata B y con la entidad de certificación de Microsoft Windows en la base de datos de firmas UEFI
  • Algunos administradores de TI pueden habilitar Inicio de sesión seguro (Ctrl + Alt + Supr) antes de que aparezca la pantalla de inicio de sesión. En las tabletas sin teclado, puede que sea necesaria una tableta con el botón Windows porque la combinación de teclas en una tableta es el botón Windows + botón de encendido.
  • Es posible que algunos juegos y programas requieran tarjetas gráficas compatibles con DirectX 10 o superior para un rendimiento óptimo
  • BitLocker To Go requiere una unidad flash USB (solo para Windows 10 Pro).
  • BitLocker requiere el Módulo de plataforma segura (TPM) 1.2, TPM 2.0 o una unidad flash USB (solo para Windows 10 Pro y Windows 10 Enterprise)
  • Cliente Hyper-V requiere un sistema de 64 bits con servicios de traducción de direcciones de segundo nivel (SLAT) y 2 GB de RAM adicionales (solo para Windows 10 Pro y Windows 10 Enterprise).
  • Miracast requiere un adaptador de pantalla que sea compatible con el Modelo de controladores de pantalla de Windows (WDDM) 1.3 y un adaptador Wi-Fi que admita Wi-Fi Direct.
  • La impresión directa por Wi-Fi requiere un adaptador Wi-Fi que admita Wi-Fi Direct y un dispositivo compatible con la impresión directa por Wi-Fi.
  • Para instalar un sistema operativo de 64 bits en un PC de 64 bits, el procesador tiene que ser compatible con CMPXCHG16b, PrefetchW y LAHF/SAHF.
  • InstantGo solo funciona con equipos diseñados para el modo de espera conectado.
  • El cifrado de dispositivo requiere un PC con InstantGo y TPM 2.0.
Etiquetas:

Procesar etiquetas personalizadas de plantilla dentro de un campo en Django

django-logo-positive

 

Hace una horas mientras programaba se presentó la necesidad de que Django sea capaz de procesar etiquetas personalizadas de plantilla (custom template tag en inglés) que se encuentra dentro del campo de un modelo.

Estuve buscando mucho por diferentes lugares la solución hasta que la encontré y es la siguiente:

Estructura de los archivos

Usaré el ejemplo común de Django, que tiene la siguiente estructura de archivos:

polls/
    __init__.py
    models.py
    templatetags/
        __init__.py
        poll_extras.py
    views.py

Entonces el archivo poll_extras.py que contiene todas nuestras etiquetas personalizadas, agregaremos una nueva:

polls/templatetags/poll_extras.py
'''
En las líneas anteriores está nuestras etiquetas ya escritas
'''
@register.tag(name="evaluate")
def do_evaluate(parser, token):
  """
  uso de la etiqueta {% evaluate object.textfield %}
  """
  try:
    tag_name, variable = token.split_contents()
  except ValueError:
    raise template.TemplateSyntaxError, "%r tag requires a single argument" % token.contents.split()[0]
 
  return EvaluateNode(variable)
 
class EvaluateNode(template.Node):
  def __init__(self, variable):
    self.variable = template.Variable(variable)
 
  def render(self, context):
    try:
      content = self.variable.resolve(context)
      t = template.Template(content)
      return t.render(context)
    except template.VariableDoesNotExist, template.TemplateSyntaxError:
      return 'Error rendering', self.variable

También es necesario que al momento de cargar el campo en la plantilla se llame a poll_extras de lo contrario nos arrojará un error diciendo que la etiqueta no existe

pollS/models.py
class Poll(models.Model):
  contenido = models.TextField()
  '''
    Campos de la tabla
  '''
 
  def contenido_eval(self):
    return '{% load poll_extras %}' + self.contenido

Por último en nuestra plantilla no llamaremos al campo sino al método que hemos creado para que así analice las etiquetas presentes allí.

{% extends 'template_base.html' %}
{% load poll_extras %}
{% block content %}
 
<h1>Contenido</h1>
{% evaluate poll.contenido_eval %}
 
{% endblock %}
Etiquetas:

Activar el nuevo reproductor de YouTube

youtube-1

 

Para quienes aún no lo saben YouTube está probando un nuevo reproductor que a mi parecer está buenísimo. Trae consigo los siguientes beneficios:

  • Una visibilidad ampliada del video con la menor cantidad posible de obstrucciones.
  • Una fuente más grande para cuando veas el video pantallas pequeñas o en pantalla completa no tengas que forzar la vista para saber en qué estás haciendo clic
  • Se siente mucho más natural y amigable

Francamente, me gustaría que Netflix duplicara éste estilo de reproductor de YouTube para así tener allí también una vista parcial sin que los botones de reproducción nos corten parte del video.

Finalmente los dejo con los pasos para que hagan ésto posible, simplemente sigan éstos dos pasos (recuerda que botón “¡Probar algo nuevo!” lo encuentras en el pie de página de YouTube):

 

youtube-2

 

 

youtube-3

Etiquetas:

¿Cómo revisar las etiquetas de Facebook antes de que aparezcan en tu muro?

Ya sea para evitar alguna etiqueta no deseada aparezca en tu muro. que te etiqueten en una foto en la que no estás, o que te etiqueten en alguna publicación maliciosa existe una manera de como controlar todo ésto a través de las revisiones de etiquetas.

Para activar la revisión de etiquetas sigue los siguientes pasos:

Fb-1

Fb-2

Fb-3

¿Cómo autorizar un etiqueta para que sea publicada en tu muro?

Para autorizar una etiqueta que te han hecho sigue los siguientes pasos:

Fb-4

Fb-5

Fb-6

Etiquetas:

Almacenar varios tamaños de imagen en Django

django

 

Django es uno de los más conocidos frameworks el cual está escrito en Python, es un framework de fácil uso el cual se los recomiendo a probar si aún no lo han hecho. En ésta oportunidad quiero mostrarles como almacenar o guardar varios tamaños de imagen con subir solo una (muy similar a lo que sucede en WordPress con la función add_image_size()). En Django se hace de la siguiente manera:

Todo lo que vamos a realizar se hace en el archivo models.py y tiene la siguiente estructura:

class Tabla(models.Model):
  nombre        = models.CharField(max_length=50) # Campo de referencia, no es obligatorio
  imagen        = models.ImageField(max_length=150, upload_to='imagenes/')
  # Deshabilitamos la edición de los otros campos de imágenes pues dependen de la principal
  imagen_thumb  = models.ImageField(max_length=150, upload_to='imagenes/thumb/', editable=False)
  imagen_slider = models.ImageField(max_length=150, upload_to='imagenes/slider/', editable=False)
  imagen_post   = models.ImageField(max_length=150, upload_to='imagenes/post/', editable=False)
 
  def save(self, *args, **kwargs):
    # Requerimientos
    from PIL import Image
    import StringIO
 
    # Aquí empieza la magia
    imgFile   = Image.open(self.imagen.path) # Abrimos la imagen
 
    if imgFile.mode not in ('L', 'RGB'):
      imgFile = imgFile.convert('RGB') # Convertimos en RGB de ser necesario
 
    # Eso es muy importante, los tamaños que ven a continuación
    # tienen que coincidir con los campos de la tabla
    # podemos agregar todos los que deseemos
    # de lo contrario arrojará un error
    IMAGESIZES = {
      'imagen_thumb'  : (150, 75),
      'imagen_slider' : (710, 450),
      'imagen_post'   : (510, 300)
    }
 
    for field_name, size in IMAGESIZES.iteritems():
      field   = getattr(self, field_name)
      working = imgFile.copy()
      working = working.resize(size, Image.ANTIALIAS) # Podemos usar resize o thumbnail (linea inferior)
      # working.thumbnail(size, Image.ANTIALIAS)
      fp      = StringIO.StringIO()
      working.save(fp, 'JPEG', quality=95)
      cf      = ContentFile( fp.getvalue() )
      field.save(name=self.imagen.name, content=cf, save=False);
 
    super(Tabla, self).save(*args, **kwargs)

Espero te sirva de mucho y si tienes algún otro tutorial que desees saber o alguna duda respecto a éste tutorial, escríbelo en los comentarios.

Etiquetas:

Alienware Alpha, PC compacta para video juegos

alienware-logo-black

 

Alienware como muchos saben es la subsidiaria de Dell cuyo principal objetivo es desarrollar ordenadores para gamers con características superiores a los orderadores convecionales además con una apariencia única, característica de la marca Alienware.

 

Hace ya algunos meses Alienware inició el proyecto de desarrollar una PC que tenga tamaño similar al de un Xbox 360 con características superiores a éste o al PlayStation 4, es allí donde nace “Alienware Alpha”. El cual ya se encuentra disponible para ser adquirido en el mercado americano. Aquí en Perú, quizás algunas empresas lo vendan de manera particular pero de manera oficial Alienware no realiza operaciones en Perú puesto que el mercado no brinda aún las condiciones adecuadas para que sea así, esperemos pronto cambie eso.

 

alienware-alpha-1920

Características

$599.00

$699.00

$799.00

$899.00

Procesador Intel® Core™ i3-4130T Dual-Core processor (3M Cache, 2.9GHz) Intel® Core™ i3-4130T Dual-Core processor (3M Cache, 2.9GHz) Intel® Core™ i5-4590T Quad-Core processor (6M Cache, up to 3.0GHz) Intel® Core™ i7-4765T Quad-Core processor (8M Cache, up to 3.0 GHz)
Memoria 4 GB 8 GB 8 GB 8 GB
Video NVIDIA® GeForce® GTX GPU 2GB GDDR5 NVIDIA® GeForce® GTX GPU 2GB GDDR5 NVIDIA® GeForce® GTX GPU 2GB GDDR5 NVIDIA® GeForce® GTX GPU 2GB GDDR5
Disco Duro 500 GB 1TB 1 TB 2 TB

 

Todas las configuraciones vienen con un control de Xbox 360 (Negro) con adaptador USB, Windows 8.1 y si deseas puedes usarla como una computadora de escritorio (ya que lo es) y sería una computadora de escritorio muy poderosa. No incluye monitor, mouse o teclado.

 

El uso ideal de ésta PC es para ponerla debajo de tu televisor y disfrutar de todos los juegos que tengas en tu biblioteca de Steam y a través de Steam Big Picture y haciendo uso de tu control de Xbox 360, su tamaño compacto y su gran hardware harán que no quieras dejar de jugar y se los digo porque tengo una Alienware M14X R2 la cual he mejorado (y seguro ya haré un review) con un disco duro HyperX SSD de 250Gb y Memoria HyperX Impact de 16Gb (2 x 8Gb) C11, éste upgrade ha valido la pena y según veo las especificaciones también pueden hacerlo al Alienware Alpha.

 

Review

Techcrunch realizó un review (en inglés obviamente) del Alienware Alpha.

Etiquetas: