Posts

Programacion orientada a objetos
Es probable que te toque hablar con amiguetes que programan en la lengua de Mordor (visualbasic) o gente que programa en c ofuscado, o lo que es peor, desconocidos que te dicen que "programan" en HTML; estos intercambios de experiencias, esas afirmaciones sobre rendimientos de ejecucion pueden hacer tambalearse los cimientos de tu fe en la POO.

GDB Bueno venga, ya vale de llenar nuestro codigo de printf("kk") para depurarlo y vamos a usar el gdb. Una herramienta oscura a la par que poderosa. Aqui anoto los cuatro comandos basicos.
Preparando el terreno Primero compilamos el codigo con el flag -g para una mejor compilacion.
Se genera una tabla de simbolos mejorada
linuz# gcc -g pogama.c -o pogama
Aunque si queremos una mayor depuracion podemos usar el flag -ggdb que generara informacion mas especifica de gdb.
linuz# gcc -ggdb pogama.c -o pogama

Bueno, conociendo los tipos de datos ya podemos empezar a operar con ellos. Dentro de c++ tenemos los tipicos operadores matematicos + - * / y tambien los operadores unarios (++ --)

Imaginemos que un gerente malvado quiere controlar a sus empleados y quiere registrar todos los accesos a la web que hacen (menos los suyos 'of course'). Usando un proxy squid o cualquier otro que genere los logs en el mismo formato, podemos hacer que se guarden en un gestor de BD para su posterior analisis.

Contexto linux. Puede que nos interese crear un fichero swap en lugar de habilitar una particion de disco unicamente con ese fin (por ejemplo, en equipos con el particionado hecho, podriamos crear un espacio swap sin alterar el disco).

Ocultar o modificar banners de servidores en linux. Cuando hacemos por ejemplo un "telnet ip 25" podemos ver que servidor de correo esta instalado y su version. Es recomendable ocultar ese banner para que los programas de escaneo de puertos no revelen mas alla de un puerto abierto. Ahora que NMAP tambien saca las versiones de los servidores, habra que ponerse las pilas.

En un solo ejemplo de código vamos a ver como crear herencia de una clase a otra, en este caso de la clase Dispositivo a la clase Movil. Aquí entrará en juego el polimorfismo, es decir, un mismo método en la clase hija y clase padre con distinto efecto. Merece la pena comentar que disponemos de clases abstractas y también de clases que NO se puede heredar (sealed). Vamos a ver:
/**
* Dispositivo.cs
* Superclase o clase padre para definir los dispositivos,
* de esta heredarán dispositivos más concretos como Ordenador, Móvil,..
*/


    

Ya existen generadores de passwords mucho mejores, pero en fin necesitaba tener uno a mano que tuviera una peculiaridad muy simple: no crear passwords con caracteres problematicos: los ceros, las eles las is, etc: 0,O,i,l,I,|,1,...

Por si le sirve a alguien...

/**
* genpas.c
* Password generator supercutre, sobre el que estampo mi rúbrica
* Pello Xabier Altadill Izura
* Tiene como peculiaridad el hecho de que
* NO usa caracteres ambiguos como 1l0O para evitar confusiones
*/
#include <stdio.h>


    


No se si es posible una solucion comun. Esto es mas bien un atajo.

Supongamos que en nuestra aplicacion web queremos imprimir un informe
o una carta o una factura o en definitiva un documento HTML generado dinamicamente
para mandarselo a alguien.

El Internet Exploiter se empeña en meter una cabecera y un pie de página cuando imprimimos una página del navegador. El Firefox en Debian tambien se empeña. Esta claro que a un cliente no se le puede mandar una factura con cabeceras de navegador con un ID de sesion y un churro de variables GET ocupando toda la linea.
Todavia no tengo claro que exista una solución unica e universal para solucionar este problema. Lo deseable es que el usuario no tenga que tocar nada en su navegador.

Navegando por la red te puedes encontrar diversas soluciones:

* Usar CSS: vale, se podia intuir pero no encuentro un ejemplo simple y que funcione
* Usar un activeX que modifica el registro para que no se impriman esos encabezados. No comment.

1.- Enlaces
* Tutorial de Inyección SQL
http://foro.elhacker.net/index.php/topic=98448.0.html


    

subscribe via RSS