php && web 2 - cisluss.files.wordpress.com && web 2.0 ing. mario uriarte amaya...
Post on 10-May-2018
220 Views
Preview:
TRANSCRIPT
PHP && Web 2.0
Ing. Mario Uriarte Amayahttp://necudeco.com
necudeco@necudeco.com
PHP en sus inicios
En 1994, Rasmus Lerdorf creo un script en Perl para obtener un contador de visitas de su pagina web.
Luego en 1997, Zeev Suraski y Andi Gutmans reescribieron el codigo dando origen a PHP3
En 1999, fundaron la empresa Zend y liberaron el motor de PHP con el mismo nombre.
En Mayo del 2000 se libero la version 4 de PHP En julio del 2004 fue liberada la version de PHP5 Actualmente se espera la version 6 de PHP
El Creador
Nace el 22 de Nov de 1968, en Groenlandia
Creador de las 2 primeras versiones de PHP.
Actualmente participa en el desarrollo de PHP
El primero codigo de PHP
<!getenv HTTP_USER_AGENT>
<!ifsubstr $exec_result Mozilla>
Hey, you are using Netscape!<p>
<!endif>
<!sql database select * from table where user='$username'>
<!ifless $numentries 1>
Sorry, that record does not exist<p>
<!endif exit>
Welcome <!$user>!<p>
You have <!$index:0> credits left in your account.<p>
<!include /text/footer.html>
Caracteristicas de PHP
Soporte a la Programacion Orientada a Objetos Soporte para XML Soporte nativo para Sqlite Soporte Integrado de SOAP Manejo de Excepciones Y Proximamente
Soporte de Namespaces Soporte de Unicode
Seguridad
Las aplicaciones Web trabajan en un ambiente heterogeneo y desprovisto de todo tipo de control.
Las validaciones y medidas de seguridad del lado del cliente son totalmente vulnerables, y solo deben ser consideradas como ayudas al usuario ... mas no como medida de seguridad.
Amenazas
Zoneh contabiliza 2.500 intrusiones Web con éxito cada día en 2004.
Se atacan todas las tecnologías Los ataques se han escalado desde el sistema operativo a
la aplicación. Ataques no masivos. Motivos:
Económicos Venganza Reto Just For Fun
Seguridad: SQL Injection
Inyección SQL es una vulnerabilidad informática en el nivel de la validación de las entradas a la base de datos de una aplicación. El origen es el filtrado incorrecto de las variables utilizadas en las partes del programa con código SQL. Es, de hecho, un error de una clase más general de vulnerabilidades que puede ocurrir en cualquier lenguaje de programación o de script que esté incrustado dentro de otro.
Explotación del Ataque
Aplicaciones con mala comprobación de datos de entrada. Datos de usuario.
Formularios Text Password Textarea List multilist
Datos de llamadas a procedimientos. Links Funciones Scripts Actions
Datos de usuario utilizados en consultas a base de datos.
Mala construcción de consultas a bases de datos.
Riesgos
Permiten al atacante: Saltar restricciones de acceso. Elevación de privilegios. Extracción de información de la Base de Datos Parada de SGBDR. Ejecución de comandos en contexto usuario bd dentro
del servidor.
Tipos de Ataques Ejemplo 1:
Autenticación de usuario contra base de datos.
Select idusuario from tabla_usuariosWhere nombre_usuario=‘$usuario’And clave=‘$clave’;
Usuario
Clave ****************
Tipos de Ataques
Ejemplo 1 (cont)
Select idusuario from tabla_usuariosWhere nombre_usuario=‘Administrador’And clave=‘’ or ‘1’=‘1’;
Usuario
Clave
Administrador
‘ or ‘1’=‘1
Contramedidas
No confianza en medias de protección en cliente.
Comprobación de datos de entrada.
Construcción segura de sentencias SQL.
Fortificación de Servidor Web. Códigos de error. Restricción de verbos, longitudes, etc.. Filtrado de contenido HTTP en Firewall.
Fortificación de SGBD. Restricción de privilegios de motor/usuario de acceso desde web. Aislamiento de bases de datos.
Seguridad: Cross-Site Scripting (XSS)
XSS es un ataque basado en explotar vulnerabilidades del sistema de validación de HTML incrustado, originalmente abarcaba cualquier ataque que permitiera ejecutar código de "scripting", como VBScript o javascript, en el contexto de otro dominio.
Explotación del Ataque
Datos almacenados en servidor desde cliente.
Datos van a ser visualizados por otros cliente/usuario.
Datos no filtrados. No comprobación de que sean dañinos al cliente que visualiza.
Riesgos
Ejecución de código en contexto de usuario que visualiza datos.
Navegación dirigida Phising Spyware Robo de credenciales Ejecución de acciones automáticas Defacement
Tipos de Ataques
Mensajes en Foros. Firma de libro de visitas. Contactos a través de web. Correo Web.
En todos ellos se envían códigos Script dañinos.
Seguridad: Robo de Sesiones (XSS)
Mediante esta técnica se puede robar sesiones de una manera bastante sencilla
Bastaría con realizar un script que llamase a una página alojada en nuestro servidor pasándole la cookie
Este Script se colaría en el servidor de la victima aprovechando un punto vulnerable a XSS
Cuando un usuario este logueado en el servidor y ejecute el script se enviara a nuestro servidor el contenido de la cookie
Robo de Sesiones (XSS)
Una vez que la página obtiene la cookie (almacenandola por ejemplo en un fichero) mediante programas como Odysseus se puede hacer una llamada al servidor pasándole la cookie original
Por supuesto esta cookie es válida para robar la sesión solo mientras el usuario no cierre la sesión
Contramedidas
Fortificación de aplicación Comprobación fiable de datos
Fortificación de Clientes Ejecución de clientes en entorno menos privilegiado. Fortificación de navegador cliente.
MBSA. Políticas.
¿ Como construir aplicaciones seguras ?
La informacion vital ( contraseñas, cuentas bancarias, etc ) deberia ser enviada cifrada ... preferiblemente usando https
Las contraseñas deben ser almacenadas cifradas en la base de datos
Se debe validar las entradas antes de construir las sentencias SQL.
Si se usa Ajax, se debe validar la informacion reciba antes de ser mostrada.
Usabilidad y Accesibilidad
La usabilidad se refiere a la capacidad de un software de ser comprendido, aprendido, usado y ser atractivo para el usuario, en condiciones específicas de uso.
La accesibilidad es el grado con el que algo puede ser usado, visitado o accedido por todas las personas, independientemente de sus capacidades técnicas o físicas.
Evaluando la Usabilidad
Mapas de Calor Evaluación de Formularios Evaluación de Diseños Seguimiento de Navegación
Accesibilidad
La W3C (World Wide Web Consortium), en especial su grupo de trabajo Web Accessibility Initiative (WAI) es el encargado de promover la accesibilidad.
Beneficios de la Accesibilidad
Aumenta el número de potenciales visitantes de la página web.
Disminuye los costes de desarrollo y mantenimiento.
Reduce el tiempo de carga de las páginas web y la carga del servidor web.
Se supone de caracter obligatorio en organismos estatables.
Pautas de Accesibilidad
Proporcione alternativas equivalentes para el contenido visual y auditivo
No se base sólo en el color. Utilice marcadores y hojas de estilo y hágalo
apropiadamente. Identifique el idioma usado. Cree tablas que se transformen correctamente. Asegúrese de que las páginas que incorporan nuevas
tecnologías se transformen correctamente.
Pautas de Accesibilidad
Asegure al usuario el control sobre los cambios de los contenidos tempodependientes.
Asegure la accesibilidad directa de las interfaces de usuario incrustadas.
Diseñe para la independencia del dispositivo Utilice soluciones provisionales. Utilice las tecnologías y pautas W3C. Proporcione información de contexto y orientación.
Pautas de Accesibilidad
Proporcione mecanismos claros de navegación. Asegúrese de que los documentos sean claros y
simples.
Para validar cada una de estas pautas, la W3C de definido puntos de verificación dentro de las mismas. Estos puntos de verificación tienen diferentes prioridades.
Estandares Web La W3C, World Wide Wide Consortium, es un
organismo neutro que desarrolla estandares para la web.
Conjunto de recomendaciones dadas por el World Wide Web Consortium (W3C) y otras organizaciones internacionales acerca de cómo crear e interpretar documentos basados en el Web.
El objetivo es crear un Web que trabaje mejor para todos, con sitios accesibles a más personas y que funcionen en cualquier dispositivo de acceso a Internet.
Estandares Web
¿ Te imaginas hablar en un idioma y que tus oyentes hablen otro ? Los estandares Web defininen un idioma universal.
Web no tan estandar ( XUL )
XUL (XMLbased Userinterface Language) es la aplicación de XML a la descripción de la interfaz de usuario en el navegador Mozilla.
XUL● XUL es un lenguaje basado en XML. Es usado por
Mozilla para crear su GUI.● Tiene su origen con el navegador Mozilla, en el año
2001● XUL, aunque no es un lenguaje estandar, es
verdaderamente multiplataforma.● Con XUL puedo crear:
● Extensiones de Firefox● Aplicaciones Independientes● Aplicaciones XUL Remotas
Requerimientos
Apache, php5, mysql, adodb, smarty, phpORM. sudo aptitude install apache2 php5 mysqlserver smarty
libphpadodb
top related