Como ha sucedido con otros lenguajes, C++ también ha evolucionado. Ha madurado mucho desde aquellos códigos que programábamos hace años y se nota. Por un lado, podemos pensar que al sumar abstracción en ciertos aspectos nos separa de la máquina y hace nuestro código más lento. Suma comprobaciones, hace más callbacks y en definitiva, una sencilla tarea que completaba en pocos cientos de operaciones, ahora son pocos miles. Aunque en su favor, podemos decir que aquello que programábamos en 15 o 20 líneas de código se ha reducido a una o dos, reduciendo así los puntos de ruptura, posibles bugs y calentamientos de cabeza futuros.… Leer artículo completo
Tenía que hacer honor al nombre del blog y estas fiestas no iban a ser menos. Hoy os traigo un mensaje encerrado en el árbol y os propongo un juego: para contestar al mensaje, debéis hacerlo de la misma forma en la que está codificado el mensaje.
… Leer artículo completo0
100
011001
100101011
011000110100
101111010001000
00011011100
11000010111011
00110100101100100
01100001011001000010
00000110010001100101011
100110110010001100101001000
00011001010110110000
10000001100010011011000
11011110110011100100000010
10000011011110110010101110011
0110100101100001001000000100001
0011010010110111001100001011100100
11010
01011
00001La web no fue diseñada pensando en la seguridad, es decir, la comunicación se realiza de forma plana y cualquiera que pueda pinchar la línea puede ver los mensajes que pasan, el origen y el destino, y no hace falta ser un crack, sólo instalar un programa como Wireshark. Afortunadamente ahora tenemos HTTPS, es el mismo protocolo web, pero utilizando una capa de seguridad que cifra la comunicación entre las dos partes (nuestro navegador y el servidor) y hace que sea muy complicado que alguien que pueda interceptar la comunicación sepa qué estamos hablando.… Leer artículo completo
Hoy en día, si queremos montar una tienda online tenemos un mundo de posibilidades. Lo primero será decidir si la vamos a montar nosotros o vamos a recurrir a una empresa o a personal especializado para ello. Todo depende del tiempo, dinero y conocimientos que tengamos para ello y de lo sinceros que hayamos sido con nosotros mismos en esos tres factores.
Como primera posibilidad, empezaré por la más dura, programar nuestra tienda, a mano, como unos valientes que somos y llevamos toda la vida programando o al menos el número de horas que hemos programado en nuestra vida se acerca a las 6 cifras (10h al día durante unos 11 años), aún así, seguramente nos basemos en algún framework para nuestro lenguaje de servidor preferido.… Leer artículo completoInternet poco a poco va haciéndose más y más grande. A medida que crecen sus usuarios y dispositivos conectados lo hacen las necesidades de los mismos, y de los servicios que ofrece. Hoy vamos a meternos con los WebSockets. Este sistema se utiliza para hacer una comunicación bidireccional y persistente entre un cliente y un servidor web. Pero, ¿para qué queremos esto?
Un poco de background
Para realizar una comunicación entre un cliente web (navegador) y un servidor web (cualquier programa que sea capaz de enviar información coherente a un navegador) se utiliza el protocolo HTTP (por debajo utiliza TCP/IP y muchas más cosas, pero no profundizaremos tanto).… Leer artículo completo
Si queremos aumentar la seguridad del cifrado de archivos con OpenSSL. En lugar de utilizar una contraseña plana como se indica en el post anterior podemos utilizar un par de claves pública y privada para este cifrado. De estar forma, por un lado podemos ahorrarnos (si queremos) el tener que recordar una contraseña segura, y por otro ganar en seguridad, ya que las contraseñas, al fin y al cabo terminan siendo poca cosa.… Leer artículo completo
Esta historia sucedió a finales de 2014, mientras probaba la estabilidad y configuración de algunos programas en un servidor antes de llevarlos al servidor de producción. Como era un servidor de pruebas, y los datos que manejaba no eran privados, decidí no hacer nada para su seguridad. Es decir, usé contraseñas muy sencillas, firewall desactivado y todo con la configuración por defecto.
Pruebas antes de utilizar en producción
En general, esto es lo recomendable.… Leer artículo completo
Es muy común si montamos algún servicio privado (como instalar un Owncloud para un grupo de amigos, una pequeña empresa), un correo personal, o cualquier cosa que se nos ocurra, utilizar https para las conexiones y, con ello, habilitar cifrado, aumentar la seguridad, y todas esas cosas.
Pero claro, una vez montamos nuestro servicio con nuestros certificados (autofirmados), nos damos cuenta de que los navegadores (y ya no hablamos de curl, wget y otros comandos…) no paran de quejarse porque los certificados están firmados por una entidad no reconocida y que no es de confianza.… Leer artículo completo
Bueno, el código no tiene mucha más explicación. El objetivo es poder conectar a un servidor web a través de un protocolo seguro y recibir datos, pero también que podamos ver si hay algún problema con el certificado, verificar el algoritmo de cifrado y los datos del certificado, verificar los certificados intermedios, etc.
Si ignoramos SSL, lo que tenemos que hacer es conectar con un servidor a través de un puerto determinado (como estamos en web, sería el puerto 80, por defecto), y mandarle una serie de datos:
GET / HTTP/1.1[CRLF]
Host: openssl.org[CRLF]
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:37.0) Gecko/20100101 Firefox/37.0[CRLF]
[CRLF]Por ejemplo.… Leer artículo completo
Queremos alojar en un archivo un sistema de archvos, ya sea para probarlo, para organizarnos o para almacenar información sensible. También puede ser una buena solución si tenemos una unidad con una partición en un sistema de archivos FAT32 y queremos establecer permisos de Linux a ciertos archivos, esos archivos podemos almacenarlos en nuestro nuevo volumen, que residirá en un archivo muy grande dentro de la partición FAT.Lo primero que debemos hacer es crear un archivo con el tamaño del volumen que queremos crear, no importa lo que escribamos dentro, podemos copiar un fichero grande, o escribir desde un fichero de texto… pero vamos a lo fácil, vamos a crear un archivo que sólo contenga ceros.… Leer artículo completo