• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Sd mexico
 

Sd mexico

on

  • 594 views

 

Statistics

Views

Total Views
594
Views on SlideShare
583
Embed Views
11

Actions

Likes
0
Downloads
1
Comments
0

1 Embed 11

http://www2.gxtechnical.com 11

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • El WorldWide Web Consortium (W3C) es una comunidad internacional que desarrolla estándares como XML, XHTML, SOAP, Comercio electrónico, HTML, CSS; que aseguran el crecimiento de la Web a largo plazo. La problemas derivados de la heterogeneidad de la web desde sus inicios ha dejado de manifiesto la necesidad de tener un estándar que permita una programación e interpretación de aplicable a cualquier plataforma, navegador y usuario.De esto modo, el Consorcio WorldWide Web (W3C por sus siglas en ingles) fundador de la WWW ha venido sacando una serie de estándares para la escritura correcta de una página web en HTML.La validez es un criterio de calidad para una pagina web. Una pagina web valida no es necesariamente una buena pagina. Pero una pagina invalida tienemenos chances de ser una buena pagina.La validación es el proceso de chequear una pagina web contra una gramática.W3C MarkupValidator dice si la pagina cumple con un conjunto de reglas.TheMarkupValidator es una herramienta gratuita que chequea la sintaxis de documentos web contra una gramática, la que la pagina dice estar usando.En cadapáginaquevalida se puedemostrar un distintivo “W3C valid” es un iconoqueprovee el validador.Esta herramienta de validación tiene tres formas de operar: Por la dirección de tu página.Subiendo el archivo HTML que quieres validar.Poniendo directamente el código a validar dentro de un campo de texto.Una vez introducido y validado tu código; te mostrará los errores y su ubicación con lo que podras iniciar corregir para llevarla al estardar.La validez de un style sheet depende del nivel de CSS usado en ese style sheet.Debecontener solo rules nombre de propiedades y valoresdefinidos en suespecificación.El servicio de validación de w3c es gratis. Es open y se puedebajarinstalarlolocalmenteusarlo y modificarloincluso.Algunos browsers extiendenesos profiles con nuevaspropiedadescomohizo Mozilla con la propiedad -moz-opacity.El validador no contemplaesaspropiedades y haceque sea inválido en términos de lasespecificaiones de CSS. Las ventajas más importante de tener una web validada son las siguientes: Carga más rápida ante menos código extraño.Adaptación a múltiples plataformas y navegadores.Preprara el sitio ante cualquier cambio en los navegadores.Homogeniza la visibilidad de tu web.Permite un mejor acceso de los buscadores y por tanto, mayor trafico.
  • En el área usabilidad en la interfaz web hemos agregado nuevos controles y funcionalidades que están presentes en las ultimas especificaciones de HTML5 y CSS3 que nos da un valor agregado en la parte visual.Hasta versiones previas de GeneXusEv2 el HTML generado por GeneXus sigue la especificación HTML4, los controles y característias que se utilizan son propios de esa especificación. Que además es una versión de html creada en 1990 y estandarizada en 1997 que no ha cambiado por muchos años y eso hace que todos los browsers implementaran esa especificación es decir se soporta en todos. La especificación de HMTL5 aun esta en desarrollo, no esta cerrada e intenta ser una conjunción de las versiones previas (html4, xhtml).
  • El primer draftde HTML5 se publico en Enero de 2008W3C creó un logotipo oficial propio para HTML5 y motiva a que se use como distintivo del uso o interés en HTML5.HTML5 introduce un numero de elementos nuevos que reemplazan a otros ya existentes dando mas semántica. HTML5 esta diseñado de manera que versiones viejas de browsers pueda ignorar los nuevos constructores de forma segura. Algunos elementos nuevos que agregamos en Evolution 2 son: Email, tel, url, search, color, invitation text.La principal ventaja de estos controles es que son semánticamente mas correctos y permiten mayor accesibilidad en los mobiles: si se lleva a un input mail con iPhone, el iPhonedespliega un teclado con el simbolo @ en la pantallaprimaria. O .comosies del tipourl.
  • Opera permiteseleccionar un color desde un color picker.
  • PlaceHolder (Invitation Message) proporciona unindicioque describe el valor esperado en un input. Se despliegamientrasestavacio, desaparececuandoese campo obtiene el foco.
  • La primer especificación de CSS oficial, la version 1, fuepublicada en 1996. Y la 2 se publicó en 1998.CSS3 es un poco distinta porque en lugar de definir todas las features en una única gran especificación, como CSS2 y CSS3 esta dividida en varios módulos. Los primeros drafts fueron publicados en 1999. Y debido a esa modularización es que diferentes módulos tienen distinta estabilidad y status.En marzo de 2011 Algunos módulos (son mas de 40) como Selectors, Namespaces, Color y Media Queries son considerados estables y en estado de candidato o recomendación.
  • Se permite importar un archivo css completo. Se selecciona un archivo css y los nombres de clases que coinciden se actualizan.O se permite también importar una definición de css de una clase por ejemplo.Esto facilita la interacción del diseñador con el desarrollador, podemos generar un css pero no podíamos importar uno.
  • La propiedad @font-face de CSS3 nos permite utilizar tipografías personalizadas en la Web de una manera accesible, manipulable y escalable.Algunas ventajas de utilizar @font-face:El texto puede ser localizado mediante búsquedas (Ctrl-F ). Los motores de busqueda va a encontrar y priorizar estos textos sobre una pagina que tenga imágenes con los mismos textos por mas que tengan el tag ALT.Menos costo de mantenimiento.El texto es accesible, pudiendo ser interpretado por las ayudas técnicas como los lectores de pantalla.El texto es traducible, mediante la traducción en el navegador u otros servicios de traducción.El texto puede ser formateado mediante las propiedades de estilo de texto: line-height , letter-spacing , text-shadow , text-align , y utilizado con los selectores ::first-letter y ::first-linePermite usar fonts mas creativos, que antes habrian requerido imagenes, ahora pueden ser creados embebiendo los fonts. Ayudando a crear un markup mas limpio y mas semantico en el backend.Otra cracteristica interesante es que se pueden usar como los fonts regulares, configurando todas las propiedades que se tienen en un fontcomun. Para browsers que no soportan las fuentes ttf, se puede escribir una definicion que incluya los dos, es decir definir el font con multiplesrc.
  • Razones para ofrecer mas de un css en un sitio web:-contemplar variedad de gustos: diferentes diseños son apropiados para diferentes personas. Por ejemplo a algunos les gusta un diseño colorido. A otros Uno mas sencillo y limpio.-contemplar necesidades especiales: por ejemplo gente de tercera edad que puede necesitar font sizes mas grandes.
  • En Area de desarrollo web el foco dentro del a Evolution 2, se posiciono en tres elementos principalesExperiencia de UsuarioSeguridadDesempeño
  • Antes de ver qué es el GAM y qué escenarios resuelve me parece bueno aclarar algunos conceptos relacionados al tema de la seguridad de las aplicaciones.El primero es el concepto de autenticación que lo podemos definir como el proceso por el cual el usuario se identifica; es decir, dice quien es. Una vez que el sistema sabe quien es el usuario que ingreso al sistema hablamos de Autorización como el proceso de verificación que una persona conocida tiene la autoridad para realizar una cierta operación. Es decir, define qué cosas puede hacer el usuario en el sistema.
  • Cuando se habilita el GAM pasan las siguientes cosas en la KB:Se importan los objetos externos que definen el API del GAM que quedan en la carpeta GAM_Library y una serie de objetos con ejemplos de cómo usar el API tanto para web como para SmartDevices que quedan en la carpeta GAM_ExamplesSe inicializan las propiedades “Loginobjectfor Web” y “Loginobjectfor SD” que quedan apuntando a los ejemplos de login que se importaron anteriormente para web y SD respectivamenteSe crea un datastore secundario de nombre GAM que hereda la configuración del datastore defaultCuando se hace el primer Run luego de habilitar el GAM se crea la BD del GAM y se inicializa la metadata del GAM. Además se hace el deploy de los binarios del API del GAM.
  • Para la autenticación nos resuelve el caso en donde los usuarios son locales , es decir, el registro de usuarios se lleva en la base de datos del GAM y por lo tanto cuando se identifican el control se hace sobre los datos almacenados por el GAMEn el caso de querer hacer que el proceso de login haga el chequeo contra una base de datos que no sea la del GAM o hasta con un directorio de usuarios basados en LDAP o Active Directory entonces se lo puede configurar para que la autenticación se haga a través de un Web Service Externo. En este caso es necesario desarrollar ese Web Service respetando determinada interfaz de parámetros de entrada y salida y es este servicio el qué tendrá la lógica para hacer la autenticación y devolverle al GAM los datos del usuario que se está logueando y código de error que correspodan. En este caso se configura en el GAM donde está dicho servicio.De la misma forma se puede habilitar que el login se haga contra la cuenta del usuario en Facebook y Twitter. Por ejemplo en el caso de Facebook se registra la aplicación que estemos desarrollando y Facebook nos da un par de claves que debemos configurar en el GAM. Para el usuario final cuando entra a la pantalla de login podemos ofrecer el botón con Facebook y/o Twitter y esto lo redireccionará al sitio que corresponda dado que la contraseña nunca se ingresa en nuestro sistema, luego de logueado en alguna de estas redes sociales es redireccionado a nuestra aplicación y ahí si estuvo todo bien con la autenticación se le da acceso al sistema.Todos estos tipos de autenticación se pueden habilitar simultaneamente, es decir, que al usuario en la pantalla de login le podemos ofrecer todas estas opciones para identificarse.
  • Mejorarseguridad en aplicaciones.Hacer visible el temaseguridad.Principios:caracteristicas, comportamiento, implementacionqueintentanreducirlasamenazas y el impactoqueestaspudierantener. Ej: fail securely, fail-safe defaults, don’t trust infrastructure, don’t trust services, etc.Ataques: Tecnicasqueexplotanvulnerabilidades.Vulnerabilidades: debilidad en el sistemaquecompromete la informacion o funcionamiento de la aplicacion, permitiendo a un atacantegeneraralguntipo de daño.Top 10: Concensosobre los 10 riesgos mas altos queexisten hoy en aplicaciones web.
  • Proyecto:Herramientas y metodologiaEvaluacionde riesgoTests de penetracion

Sd mexico Sd mexico Presentation Transcript

  • Por que no solamentede Sd vive el HombreRodrigo Zaraterzarate@genexus.com
  • Solución web universal
  • Objetivos principales Experiencia de Usuario Seguridad Desempeño Evolución Web
  • Objetivos principales Experiencia de Usuario
  • Experiencia de usuario Estándares Usabilidad Flexibilidad
  • 1.Estándares Estándares Usabilidad Flexibilidad
  • 1.Estándares• HTML válido según W3C – HTML 4.01 Transitional – HTML 4.01 Strict – XHTML 4.01 Transitional – HTML 5• CSS 3
  • http://validator.w3.org/
  • http://jigsaw.w3.org/css-validator/
  • 2.Usabilidad Estándares Usabilidad Flexibilidad
  • 2.Usabilidad
  • 2.Usabilidad – HTML5
  • 2.Usabilidad – HTML5
  • 2.Usabilidad – HTML5
  • 2.Usabilidad – HTML5
  • 2. Usabilidad – dominios semánticos• Geolocation• Email• Phone• Address• Color
  • 2. Usabilidad – dominios semánticos
  • 2. Usabilidad – dominios semánticos
  • 2.Usabilidad - Themes
  • 2.Usabilidad - Themes
  • 2.Usabilidad - Themes
  • 2.Usabilidad - Themes
  • 2.Usabilidad - Themes
  • 2.Usabilidad - Themes
  • 2.Usabilidad - Themes
  • 2.Usabilidad – WebFonts
  • 2.Usabilidad – WebFonts
  • 2.Usabilidad – WebFonts
  • 2.Usabilidad – WebFonts
  • 3. Flexibilidad Estándares Usabilidad Flexibilidad
  • 3.Flexibilidad - csv• Client Side Validation mucho mas personalizable
  • 3.Flexibilidad - csv
  • 3.Flexibilidad
  • Objetivos principales Seguridad
  • Seguridad Seguridad de la aplicación
  • GAM = GeneXus Access Manager• Autenticación – Proceso a cumplir para tener acceso a los recursos del sistema – Verifica que el usuario es “quien” dice ser• Autorización – Una vez que se sabe “quien” ingreso al sistema se debe saber “qué” cosas puede hacer• Para Web y Smart Devices• Define base de datos de usuarios y permisos• Oculta complejidad y da potencia
  • ¿Cómo lo habilito?• Propiedad a nivel de KB Version – Enable Integrated Security = True – Default integrated security level = (none, authentication, authorization)• Propiedad por objeto – Integrated Security Level
  • Ejemplos built-in• Login• Usuarios• Roles• Políticas de seguridad – Contraseñas – Sesiones• Aplicaciones• Permisos
  • Tipos de autenticación• Local• Web Service Externo• Facebook• Twitter
  • Proteccion ContraVulnerabilidades
  • Aplicaciones segurasReferencia• www.owasp.org• Principios• Ataques y vulnerabilidades• Top 10
  • OWASP - Ataques• A • Direct Static Code Injection • Repudiation Attack• Account lockout attack • Double Encoding • Resource Injection• Argument Injection or Modification • F • S• Asymmetric resource consumption • Forced browsing • SQL Injection (amplification) • Format string attack • Server-Side Includes (SSI) Injection• B • Full Path Disclosure • Session Prediction• Binary planting • H • Session fixation• Blind SQL Injection • HTTP Request Smuggling • Session hijacking attack• Blind XPath Injection • HTTP Response Splitting • Setting Manipulation• Brute force attack • L • Special Element Injection• Buffer overflow attack • LDAP injection • Spyware• C • M • T• CSRF • Man-in-the-browser attack • Traffic flood• Cache Poisoning • Man-in-the-middle attack • Trojan Horse• Cash Overflow • Mobile code: invoking untrusted mobile code • U• Code Injection • Mobile code: non-final public field • Unicode Encoding• Command Injection • Mobile code: object hijack • W• Comment Injection Attack • N • Web Parameter Tampering• Cross Frame Scripting • Network Eavesdropping • Windows ::DATA alternate data stream• Cross Site History Manipulation (XSHM) • O • X• Cross Site Tracing • One-Click Attack • XPATH Injection• Cross-Site Request Forgery (CSRF) • Overflow Binary Resource File • XSRF• Cross-User Defacement • P• Cross-site Scripting (XSS) • Page Hijacking• Cryptanalysis • Parameter Delimiter• C cont. • P cont.• Custom Special Character Injection • Path Manipulation• D • Path Traversal• Denial of Service • R• Direct Dynamic Code Evaluation (Eval • Regular expression Denial of Service - ReDoS Injection) • Relative Path Traversal
  • OWASP - Vulnerabilidades• ASP.NET Misconfigurations • G • Not allowing password aging • Template:Vulnerability• Access control enforced by presentation layer • Guessed or visible temporary file • Not using a random initialization vector with cipher block • Truncation error• Addition of data-structure sentinel • H chaining mode • Trust Boundary Violation• Allowing Domains or Accounts to Expire • Hard-Coded Password • Null Dereference • Trust of system event data• Allowing password aging • Heap Inspection • O • Trusting self-reported DNS name• Assigning instead of comparing • Heap overflow • OWASP .NET Vulnerability Research • Trusting self-reported IP address• Authentication Bypass via Assumed-Immutable Data • I • Object Model Violation: Just One of equals() and • U• B • Ignored function return value hashCode() Defined • Uncaught exception• Buffer Overflow • Illegal Pointer Value • Often Misused: Authentication • Unchecked Error Condition• Buffer underwrite • Improper Data Validation • Often Misused: Exception Handling • Unchecked Return Value: Missing Check against Null• Business logic vulnerability • Improper cleanup on thrown exception • Often Misused: File System • Unchecked array indexing• C • Improper error handling • Often Misused: Privilege Management • Undefined Behavior• CRLF Injection • Improper string length checking • Often Misused: String Management • Uninitialized Variable• Capture-replay • Improper temp file opening • Omitted break statement • Unintentional pointer scaling• Catch NullPointerException • Incorrect block delimitation • Open forward • Unreleased Resource• Comparing classes by name • Information Leakage • Open redirect • Unrestricted File Upload• Comparing instead of assigning • Information leak through class cloning • Overflow of static internal buffer • Unsafe JNI• Comprehensive list of Threats to Authentication Procedures • Information leak through serialization • Overly-Broad Catch Block • Unsafe Mobile Code and Data • Insecure Compiler Optimization • Overly-Broad Throws Declaration • Unsafe Reflection• Covert timing channel • Insecure Randomness • P • Unsafe function call from a signal handler• Cross Site Scripting Flaw • Insecure Temporary File • PHP File Inclusion • Unsigned to signed conversion error• D • Insecure Third Party Domain Access • PRNG Seed Error • Use of Obsolete Methods• Dangerous Function • Insecure Transport • Passing mutable objects to an untrusted method • Use of hard-coded password• Deletion of data-structure sentinel • Insufficient Entropy • Password Management: Hardcoded Password • Use of sizeof() on a pointer type• Deserialization of untrusted data • Insufficient Session-ID Length • Password Management: Weak Cryptography • Using a broken or risky cryptographic algorithm• Directory Restriction Error • Insufficient entropy in pseudo-random number generator • Password Plaintext Storage • Using a key past its expiration date• Double Free • Integer coercion error • Poor Logging Practice • Using freed memory• Doubly freeing memory • Integer overflow • Portability Flaw • Using password systems• Duplicate key in associative list (alist) • Invoking untrusted mobile code • Privacy Violation • Using referer field for authentication or authorization• E • J • Process Control • Using single-factor authentication• Empty Catch Block • J2EE Misconfiguration: Unsafe Bean Declaration • Publicizing of private data when using inner classes • Using the wrong operator• Empty String Password • K • R • V• F • Key exchange without entity authentication • Race Conditions • Validation performed in client• Failure of true random number generator • L • Reflection attack in an auth protocol • Vulnerability template• Failure to account for default case in switch • Least Privilege Violation • Reflection injection • W• Failure to add integrity check value • Leftover Debug Code • Relative path library search • Wrap-around error• Failure to check for certificate revocation • Log Forging • Reliance on data layout • Write-what-where condition• Failure to check integrity check value • Log injection • Relying on package-level scope• Failure to check whether privileges were dropped • M • Resource exhaustion successfully • Member Field Race Condition • Return Inside Finally Block• Failure to deallocate data • Memory leak • Reusing a nonce, key pair in encryption• Failure to drop privileges when reasonable • Miscalculated null termination • S• Failure to encrypt data • Misinterpreted function return value • Session Fixation• Failure to follow chain of trust in certificate validation • Missing Error Handling • Sign extension error• Failure to follow guideline/specification • Missing XML Validation • Signed to unsigned conversion error• Failure to protect stored data from modification • Missing parameter • Stack overflow• Failure to provide confidentiality for stored data • Multiple admin levels • State synchronization error• Failure to validate certificate expiration • Mutable object returned • Storing passwords in a recoverable format• Failure to validate host-specific certificate data • N • String Termination Error• File Access Race Condition: TOCTOU • Non-cryptographic pseudo-random number generator • Symbolic name not mapping to correct object• Format String • T
  • Aplicaciones seguras con GeneXusPlataforma • Mejoras en todas las versiones • Mejoras en todos los upgrades
  • Qué estamos haciendo nosotros Herramientas para scan de vulnerabilidades Mejoras GAM constantes App Seguras
  • Desempeño
  • Desempeño Servidor Cliente Canal
  • DesempeñoOptimización canal•Propiedades controles •Especialmente Grids•Persistencia de SDTs•HTML5, CSS3, Webfonts•Mejor manejo cache navegador
  • DesempeñoOptimización cliente•Mejora tiempo de cargaOptimización servidor•Paginado en el servidor de BD •Grids / dataproviders
  • Experiencia de Usuario Seguridad Desempeño Evolución Web
  • MUCHAS GRACIAS