This document discusses using JSON Web Tokens (JWT) for authentication with AngularJS. It begins with an overview of JWT, explaining that they are composed of a header, payload, and signature. The payload contains claims about the user like ID, expiration, and scope. JWTs can be issued by a server and verified by the signature without needing a database lookup. The document then discusses storing and transmitting JWTs securely in cookies rather than local storage due to cross-site scripting vulnerabilities. It provides examples of using JWTs to determine if a user is logged in and if they have access to a particular view in Angular using resolves, events, and checking the token payload.
Cross Site Scripting (XSS) Defense with JavaJim Manico
ย
Cross Site Scripting Defense is difficult. The Java Programming language does not provide native key defenses necessary to throughly prevent XSS. As technologies such as Content Security Policy emerge, we still need pragmatic advice to stop XSS in legacy applications as well as new applications using traditional Java frameworks. First generation encoding libraries had both performance and completeness problems that prevent developers from through, production-safe XSS defense. This talk will deeply review the OWASP Java Encoder Project and the OWASP HTML Sanitizer Project and give detailed code samples highlighting their use. Additional advice on next-generation JavaScript and JSON workflows using the OWASP JSON Sanitizer will also be reviewed.
When Ajax Attacks! Web application security fundamentalsSimon Willison
ย
The document is a presentation about web application security fundamentals and attacks. It discusses topics like cross-site scripting (XSS), cross-site request forgery (CSRF), UTF-7 encoding, and other techniques like JSON parsing (JSONP). In the past, security tutorials focused on not trusting user input, avoiding SQL injection, and preventing JavaScript injection, but the presenter aims to discuss more modern attacks.
Spring Security is a framework that focuses on providing both authentication and authorization to Java applications. Like all Spring projects, the real power of Spring Security is found in how easily it can be extended to meet custom requirements. In this presentation Rob will start with an insecure application and incrementally Spring Security 4 to demonstrate how easily you can secure your application. Throughout the presentation, new features found in Spring Security 4 will be highlighted. Whether you are new to Spring Security or are wanting to learn what is new in Spring Security 4, this presentation is a must!
Subresource Integrity (SRI) allows websites to specify a cryptographic hash for external scripts and stylesheets to verify their integrity before loading. A study found 88% of top websites include external JavaScript libraries. SRI helps prevent attacks from compromised CDNs by only loading resources that match the expected hash value. SRI also uses the crossorigin attribute to implement Cross-Origin Resource Sharing (CORS) and prevent data leakage when checking external resources. CORS headers must be present for SRI integrity checks to prevent loading alternative scripts. SRI provides more control over included external content and is supported by libraries like Ember.js.
What the Heck is OAuth and OpenID Connect? Connect.Tech 2017Matt Raible
ย
OAuth is not an API or a service: it is an open standard for authorization and any developer can implement it. OAuth is a standard that applications can use to provide client applications with โsecure delegated accessโ. OAuth works over HTTP and authorizes Devices, APIs, Servers and Applications with access tokens rather than credentials, which we will go over in depth below. OpenID Connect (OIDC) is built on top of the OAuth 2.0 protocol. It allows clients to verify the identity of the user and, as well as to obtain their basic profile information. This session covers how OAuth/OIDC works, when to use them, and frameworks/services that simplify authentication.
Blog post: https://developer.okta.com/blog/2017/06/21/what-the-heck-is-oauth
We cannot โfirewallโ or โpatchโ our way to secure websites. In the past, security professionals thought firewalls, Secure Sockets Layer (SSL), patching, and privacy policies were enough. Today, however, these methods are outdated and ineffective, as attacks on prominent, well-protected websites are occurring every day. Most every organization in the world have something in common โ they have had websites compromised in some way. No company or industry is immune. Programmers need to learn to build websites differently. This talk will review the top coding techniques developers need to master in order to build a low-risk, high-security web application.
This talk is about how to secure your front-end + backend applications using a RESTful approach. As opposed to traditional and monolithic server-side applications (where the HTTP session is used), when your front-end application is running on a browser and not securely from the server, there are few things you need to consider.
In this session Alvaro will explore standards like OAuth or JWT to achieve a stateless, token-based authentication and authorization using Spring Security in Grails.
[CB16] 80ๆ้ใงWebใไธๅจ:ใฏใญใ ใใฆใ ใชใผใใกใผใทใงใณใซใใในใฑใผใฉใใซใชใใฃใณใฌใผใใชใณใ by Isaac DawsonCODE BLUE
My presentation from Framsia.
Topics:
XSS (reflected, stored, dom-based)
CSRF
Clickjacking
Header based approaches (CSP, X-frame-options)
EcmaScript5
HTML5
Some slides borrowed from John Wilander http://www.slideshare.net/johnwilander/application-security-for-rias
Top 10 Web Hacks
Every year the number and creativity of Web hacks increases, and the damage from these attacks rises exponentially, costing organizations millions every year.
Join this webinar to learn about the latest and most insidious Web-based attacks. The much anticipated list, now in its seventh year, represents exhaustive research conducted by a panel of experienced security industry professionals. Learn the latest of the worst in Web hacks, and how to protect your organization.
In the last few years, a number of new security features have become available to web developers (e.g. Content Security Policy, Strict Transport Security) and a few more are coming up this year (e.g. Referrer Policy, Subresource Integrity). In addition to getting familiar with these, a number of recent high-profile bugs in the SSL/TLS protocol and implementations have forced developers to learn more about TLS ciphers and to start worrying about mixed content on their pages.
As a browser vendor and a member of the W3C WebAppSec working group, Mozilla is busy extending the web platform to provide the tools and features that developers and users need in 2015. This talk will give an overview of the security and privacy landscape on the web as well as pointers to what developers need to know to secure their applications.
https://2015.rmll.info/security-and-privacy-on-the-web-in-2015?lang=en
This document summarizes content security policy (CSP) and web cryptography. It discusses cross-site scripting and how CSP addresses it through directives that whitelist approved content sources. The document outlines some shortcomings of CSP, such as breaking inline JavaScript and browser incompatibilities. It proposes approaches to address inline JavaScript, like using nonces or hashes. The document also discusses subresource integrity and per-page suborigins as potential next steps to improve CSP.
Building Secure User Interfaces With JWTs (JSON Web Tokens)Stormpath
ย
With new tools like Angular.js and Node.js, it is easier than ever to build User Interfaces and Single-Page Applications (SPAs) backed by APIs.
But how to do it securely? Web browsers are woefully insecure, and hand-rolled APIs are risky.
In this presentation, Robert Damphousse, lead front-end developer at Stormpath, covers web browser security issues, technical best practices and how you can mitigate potential risks. Enjoy!
Topics Covered:
1. Security Concerns for Modern Web Apps
2. Cookies, The Right Way
3. Session ID Problems
4. Token Authentication to the rescue!
5. Angular Examples
1) Spring Security provides authentication and authorization services for Java-based applications. It supports various authentication types including form-based, LDAP, and certificates.
2) Core concepts include the UserDetails interface for user information, UserDetailsService for retrieving user details, and the SecurityContext for holding authentication details.
3) Spring Security configuration is done primarily through the security namespace, defining things like the authentication manager, secured URLs, and form login details.
4) Method-level security and JSP tag libraries allow securing controller methods and restricting JSP content.
Super simple application security with Apache ShiroMarakana Inc.
ย
Les Hazlewood, founder of the Apache Shiro project, covers the benefits of using Shiro as an application security framework.
Check out the video for this presentation, as well as more training resources for Java here: http://marakana.com/forums/java/general/183.html
New Methods in Automated XSS Detection & Dynamic Exploit CreationKen Belva
ย
This slide deck consists of three presentations showing both an overall and detailed view of the new patent pending methods to make Cross-Site Scripting (XSS) detection more accurate and faster as well as the creation of dynamic exploits. It was presented at OWASP AppSecUSA 2015. All Material and Methods Patent Pending Globally. All Rights Reserved.
Please visit: http://xssWarrior.com
This document discusses cross-site scripting (XSS) attacks. XSS is one of the most common web attacks, operating in the user's browser. It can cause issues like account hijacking or installing malware. There are three main types of XSS attacks. The attacks work by injecting malicious scripts into web pages that are then executed when a user visits the page. Proper input validation and output encoding are recommended to prevent XSS attacks. Developers should filter and encode all untrusted user input to avoid having malicious scripts injected into their applications.
Token Authentication for Java ApplicationsStormpath
ย
Everyone building a web application that supports user login is concerned with security. How do you securely authenticate users and keep their identity secure? With the huge growth in Single Page Applications (SPAs), JavaScript and mobile applications, how do you keep users safe even though these are 'unsafe' client environments?
This presentation will demystify HTTP Authentication and explain how the Next Big Thing - Token Authentication - can be used to secure web applications on the JVM, REST APIs, and 'unsafe' clients while supporting security best practices and even improving your application's performance and scale.
[CB16] Esoteric Web Application Vulnerabilities by Andrรฉs RianchoCODE BLUE
ย
This talk will show esoteric web application vulnerabilities in detail, these vulnerabilities would be missed in a quick review by most security consultants, but could lead to remote code execution, authentication bypass and purchasing items in merchants using Paypal as their payment gateway without actually paying. SQL injections are dead, and I donโt care: let's explore the world of null, nil and NULL; noSQL injections; host header injections that lead to phone call audio interception; paypalโs double spent and Railsโ MessageVerifier remote code execution.
--- Andres Riancho
Andrรฉs Riancho is an application security expert that currently leads the community driven, Open Source, w3af project and provides in-depth Web Application Penetration Testing services to companies around the world.
In the research field, he discovered critical vulnerabilities in IPS appliances from 3com and ISS, contributed with SAP research performed at one of his former employers and reported vulnerabilities in hundreds of web applications.
His main focus has always been the Web Application Security field, in which he developed w3af, a Web Application Attack and Audit Framework used extensively by penetration testers and security consultants.
Andrรฉs has spoken and hold trainings at many security conferences around the globe, like BlackHat (USA and Europe), SEC-T (Sweden),DeepSec (Austria), PHDays (Moscow), SecTor (Toronto), OWASP (Poland),CONFidence (Poland), OWASP World C0n (USA), CanSecWest (Canada),PacSecWest (Japan), T2 (Finland) and Ekoparty (Buenos Aires).
Andrรฉs founded Bonsai Information Security, a web security focused consultancy firm, in 2009 in order to further research into automated Web Application Vulnerability detection and exploitation.
The document discusses various authentication and authorization methods for REST APIs, including API keys, signatures, OAuth 1.0, and OAuth 2.0. It provides details on implementing authentication with an API key, secret key, or signature for identity and authorization. The document contrasts OAuth 1.0 and 2.0, covering their concepts, authentication flows, and differences. It also discusses using OAuth for SSO, refreshing tokens, and consuming secured RSS/ATOM feeds, as well as validating state, data consistency, and enforcing authorization with REST services.
What the Heck is OAuth and OpenID Connect - RWX 2017Matt Raible
ย
This document provides an overview of OAuth 2.0 and OpenID Connect (OIDC) for authentication and authorization. It begins with introducing the speaker, Matt Raible, and his background. It then discusses direct authentication vs federated identity and standards like SAML and OAuth. The document explains the key concepts of OAuth including actors, scopes and consent, tokens, flows, and common security issues. It outlines some enterprise use cases for OAuth and key facts about it being an authorization framework rather than protocol.
XXE Exposed: SQLi, XSS, XXE and XEE against Web ServicesAbraham Aranguren
ย
XXE Exposed Webinar Slides:
Brief coverage of SQLi and XSS against Web Services to then talk about XXE and XEE attacks and mitigation. Heavily inspired on the "Practical Web Defense" (PWD) style of pwnage + fixing (https://www.elearnsecurity.com/PWD)
Full recording here:
NOTE: (~20 minute) XXE + XEE Demo Recording starts at minute 25
https://www.elearnsecurity.com/collateral/webinar/xxe-exposed/
The Good, the Bad, and the Ugly: What Happened to Unicode and PHP 6Andrei Zmievski
ย
n the halcyon days of early 2005, a project was launched to bring long overdue native Unicode and internationalization support to PHP. It was deemed so far reaching and important that PHP needed to have a version bump. After more than 4 years of development, the project (and PHP 6 for now) was shelved. This talk will introduce Unicode and i18n concepts, explain why Web needs Unicode, why PHP needs Unicode, how we tried to solve it (with examples), and what eventually happened. No sordid details will be left uncovered.
What are user experiences and how can we design them optimally? Why does UX matter and how does it interface with software development? And what does a unified design approach mean for front-end development at Semantico?
This talk is about how to secure your front-end + backend applications using a RESTful approach. As opposed to traditional and monolithic server-side applications (where the HTTP session is used), when your front-end application is running on a browser and not securely from the server, there are few things you need to consider.
In this session Alvaro will explore standards like OAuth or JWT to achieve a stateless, token-based authentication and authorization using Spring Security in Grails.
[CB16] 80ๆ้ใงWebใไธๅจ:ใฏใญใ ใใฆใ ใชใผใใกใผใทใงใณใซใใในใฑใผใฉใใซใชใใฃใณใฌใผใใชใณใ by Isaac DawsonCODE BLUE
My presentation from Framsia.
Topics:
XSS (reflected, stored, dom-based)
CSRF
Clickjacking
Header based approaches (CSP, X-frame-options)
EcmaScript5
HTML5
Some slides borrowed from John Wilander http://www.slideshare.net/johnwilander/application-security-for-rias
Top 10 Web Hacks
Every year the number and creativity of Web hacks increases, and the damage from these attacks rises exponentially, costing organizations millions every year.
Join this webinar to learn about the latest and most insidious Web-based attacks. The much anticipated list, now in its seventh year, represents exhaustive research conducted by a panel of experienced security industry professionals. Learn the latest of the worst in Web hacks, and how to protect your organization.
In the last few years, a number of new security features have become available to web developers (e.g. Content Security Policy, Strict Transport Security) and a few more are coming up this year (e.g. Referrer Policy, Subresource Integrity). In addition to getting familiar with these, a number of recent high-profile bugs in the SSL/TLS protocol and implementations have forced developers to learn more about TLS ciphers and to start worrying about mixed content on their pages.
As a browser vendor and a member of the W3C WebAppSec working group, Mozilla is busy extending the web platform to provide the tools and features that developers and users need in 2015. This talk will give an overview of the security and privacy landscape on the web as well as pointers to what developers need to know to secure their applications.
https://2015.rmll.info/security-and-privacy-on-the-web-in-2015?lang=en
This document summarizes content security policy (CSP) and web cryptography. It discusses cross-site scripting and how CSP addresses it through directives that whitelist approved content sources. The document outlines some shortcomings of CSP, such as breaking inline JavaScript and browser incompatibilities. It proposes approaches to address inline JavaScript, like using nonces or hashes. The document also discusses subresource integrity and per-page suborigins as potential next steps to improve CSP.
Building Secure User Interfaces With JWTs (JSON Web Tokens)Stormpath
ย
With new tools like Angular.js and Node.js, it is easier than ever to build User Interfaces and Single-Page Applications (SPAs) backed by APIs.
But how to do it securely? Web browsers are woefully insecure, and hand-rolled APIs are risky.
In this presentation, Robert Damphousse, lead front-end developer at Stormpath, covers web browser security issues, technical best practices and how you can mitigate potential risks. Enjoy!
Topics Covered:
1. Security Concerns for Modern Web Apps
2. Cookies, The Right Way
3. Session ID Problems
4. Token Authentication to the rescue!
5. Angular Examples
1) Spring Security provides authentication and authorization services for Java-based applications. It supports various authentication types including form-based, LDAP, and certificates.
2) Core concepts include the UserDetails interface for user information, UserDetailsService for retrieving user details, and the SecurityContext for holding authentication details.
3) Spring Security configuration is done primarily through the security namespace, defining things like the authentication manager, secured URLs, and form login details.
4) Method-level security and JSP tag libraries allow securing controller methods and restricting JSP content.
Super simple application security with Apache ShiroMarakana Inc.
ย
Les Hazlewood, founder of the Apache Shiro project, covers the benefits of using Shiro as an application security framework.
Check out the video for this presentation, as well as more training resources for Java here: http://marakana.com/forums/java/general/183.html
New Methods in Automated XSS Detection & Dynamic Exploit CreationKen Belva
ย
This slide deck consists of three presentations showing both an overall and detailed view of the new patent pending methods to make Cross-Site Scripting (XSS) detection more accurate and faster as well as the creation of dynamic exploits. It was presented at OWASP AppSecUSA 2015. All Material and Methods Patent Pending Globally. All Rights Reserved.
Please visit: http://xssWarrior.com
This document discusses cross-site scripting (XSS) attacks. XSS is one of the most common web attacks, operating in the user's browser. It can cause issues like account hijacking or installing malware. There are three main types of XSS attacks. The attacks work by injecting malicious scripts into web pages that are then executed when a user visits the page. Proper input validation and output encoding are recommended to prevent XSS attacks. Developers should filter and encode all untrusted user input to avoid having malicious scripts injected into their applications.
Token Authentication for Java ApplicationsStormpath
ย
Everyone building a web application that supports user login is concerned with security. How do you securely authenticate users and keep their identity secure? With the huge growth in Single Page Applications (SPAs), JavaScript and mobile applications, how do you keep users safe even though these are 'unsafe' client environments?
This presentation will demystify HTTP Authentication and explain how the Next Big Thing - Token Authentication - can be used to secure web applications on the JVM, REST APIs, and 'unsafe' clients while supporting security best practices and even improving your application's performance and scale.
[CB16] Esoteric Web Application Vulnerabilities by Andrรฉs RianchoCODE BLUE
ย
This talk will show esoteric web application vulnerabilities in detail, these vulnerabilities would be missed in a quick review by most security consultants, but could lead to remote code execution, authentication bypass and purchasing items in merchants using Paypal as their payment gateway without actually paying. SQL injections are dead, and I donโt care: let's explore the world of null, nil and NULL; noSQL injections; host header injections that lead to phone call audio interception; paypalโs double spent and Railsโ MessageVerifier remote code execution.
--- Andres Riancho
Andrรฉs Riancho is an application security expert that currently leads the community driven, Open Source, w3af project and provides in-depth Web Application Penetration Testing services to companies around the world.
In the research field, he discovered critical vulnerabilities in IPS appliances from 3com and ISS, contributed with SAP research performed at one of his former employers and reported vulnerabilities in hundreds of web applications.
His main focus has always been the Web Application Security field, in which he developed w3af, a Web Application Attack and Audit Framework used extensively by penetration testers and security consultants.
Andrรฉs has spoken and hold trainings at many security conferences around the globe, like BlackHat (USA and Europe), SEC-T (Sweden),DeepSec (Austria), PHDays (Moscow), SecTor (Toronto), OWASP (Poland),CONFidence (Poland), OWASP World C0n (USA), CanSecWest (Canada),PacSecWest (Japan), T2 (Finland) and Ekoparty (Buenos Aires).
Andrรฉs founded Bonsai Information Security, a web security focused consultancy firm, in 2009 in order to further research into automated Web Application Vulnerability detection and exploitation.
The document discusses various authentication and authorization methods for REST APIs, including API keys, signatures, OAuth 1.0, and OAuth 2.0. It provides details on implementing authentication with an API key, secret key, or signature for identity and authorization. The document contrasts OAuth 1.0 and 2.0, covering their concepts, authentication flows, and differences. It also discusses using OAuth for SSO, refreshing tokens, and consuming secured RSS/ATOM feeds, as well as validating state, data consistency, and enforcing authorization with REST services.
What the Heck is OAuth and OpenID Connect - RWX 2017Matt Raible
ย
This document provides an overview of OAuth 2.0 and OpenID Connect (OIDC) for authentication and authorization. It begins with introducing the speaker, Matt Raible, and his background. It then discusses direct authentication vs federated identity and standards like SAML and OAuth. The document explains the key concepts of OAuth including actors, scopes and consent, tokens, flows, and common security issues. It outlines some enterprise use cases for OAuth and key facts about it being an authorization framework rather than protocol.
XXE Exposed: SQLi, XSS, XXE and XEE against Web ServicesAbraham Aranguren
ย
XXE Exposed Webinar Slides:
Brief coverage of SQLi and XSS against Web Services to then talk about XXE and XEE attacks and mitigation. Heavily inspired on the "Practical Web Defense" (PWD) style of pwnage + fixing (https://www.elearnsecurity.com/PWD)
Full recording here:
NOTE: (~20 minute) XXE + XEE Demo Recording starts at minute 25
https://www.elearnsecurity.com/collateral/webinar/xxe-exposed/
[CB16] 80ๆ้ใงWebใไธๅจ:ใฏใญใ ใใฆใ ใชใผใใกใผใทใงใณใซใใในใฑใผใฉใใซใชใใฃใณใฌใผใใชใณใ by Isaac DawsonCODE BLUE
The Good, the Bad, and the Ugly: What Happened to Unicode and PHP 6Andrei Zmievski
ย
n the halcyon days of early 2005, a project was launched to bring long overdue native Unicode and internationalization support to PHP. It was deemed so far reaching and important that PHP needed to have a version bump. After more than 4 years of development, the project (and PHP 6 for now) was shelved. This talk will introduce Unicode and i18n concepts, explain why Web needs Unicode, why PHP needs Unicode, how we tried to solve it (with examples), and what eventually happened. No sordid details will be left uncovered.
What are user experiences and how can we design them optimally? Why does UX matter and how does it interface with software development? And what does a unified design approach mean for front-end development at Semantico?
Front End Tooling and Performance - Codeaholics HK 2015Holger Bartel
ย
Front End Tooling and Performance is a case study on what I used to make missedin-hkg.com load in less than 1000ms and optimise front end performance in various ways.
This talk has been held at the Codeaholics Meetup in Hong Kong on 08. April 2015.
This document discusses frontend automation and stability. It recommends:
1. Writing unit tests using Mocha and Chai for efficient testing of separated layers and dependencies.
2. Performing UI testing using CasperJS for browser/DOM interaction or DalekJS for real browser support.
3. Integrating testing, code quality tools, and standards into a continuous integration system to catch errors and ensure code quality across contributors.
The document discusses the frontend single point of failure (SPOF) problem caused by blocking JavaScript and CSS files. It provides examples of popular websites, code libraries, widgets, and content management systems that contribute to frontend SPOFs. The document recommends solutions for browsers, widget owners, CMS developers, and site owners to address this issue through asynchronous loading of resources and better monitoring of frontend performance.
Some insights about how to get started architecting your Frontend applications and what technologies and tools are available in the market to make your life easier.
Grunt js for the Enterprise Vol.1: Frontend Performance with PhantomasDavid Amend
ย
Grunt js for the Enterprise Vol.1: Frontend Performance with Phantomas.
This is the first presentation of an upcoming series to achieve a proper Continous Integration process for big JavaScript projects, memory leaks javascript, David Amend
Wrangling Large Scale Frontend Web ApplicationsRyan Roemer
ย
Web applications are massively shifting to the frontend, thanks to exciting new JavaScript / CSS technologies, expanding browser capabilities (visualizations, real-time apps, etc.) and faster perceived user experiences. However, client web applications can be a nightmare to maintain at scale, even for seasoned software architects and operations engineers. Deployment and production infrastructures are complex and rapidly changing. And, frontend JavaScript / CSS code ships to browsers worldwide, where errors and issues are notoriously difficult to systematically detect and diagnose.
In this talk, we will tackle the wild west of the frontend with pragmatic steps and seasoned advice from helping organizations from startups to Fortune 500 companies create some of the largest frontend web applications on the Internet. In particular, we will examine the many hard lessons gleaned from leading frontend application development and education for a team of 50+ engineers rearchitecting a top-five e-commerce site. Some of the topics we will cover include:
* Managing and building very large (500K+ line) frontend application / test code bases.
* Surviving production traffic and errors on the frontend and handling spikes like Black Friday / Cyber Monday for one of the highest traffic e-commerce websites in existence.
* How, where, and why your frontend application is likely to fail.
* Monitoring, logging, and debugging frontend web applications out in the wild.
* Automating checks, tests, and code introspection to protect your code in production.
* Creating an effective, fast, and engineer-friendly development-test-deployment frontend pipeline.
Whether your frontend application already supports millions of transactions a day or you are about to launch your first single-page-application, our aim is to prepare teams of all sizes for the most critical challenges and solutions facing modern frontend web applications.
A modern front end development workflow for Magnolia at AtlassianMagnolia
ย
This talk was given by Nicolas Barbรฉ, Magnolia, and William Paoli, Atlassian, at Magnolia Conference 2015 in Foster City, California.
The recommended development process for Magnolia is based on a Java stack and its ecosystem. It provides the best foundations to customize the back-end or create new content applications. However, implementing a new template or modifying an existing theme with standard front-end practices can be a challenging task.
In this talk, William and Nicolas describe how Atlassian, the creator of JIRA and Confluence, has built a modern front-end development workflow with Magnolia. How they decouple the back-end and front-end release process to deliver incremental changes to the user.
How to Build Front-End Web Apps that Scale - FutureJSPhil Leggetter
ย
Developing large apps is difficult. Ensuring that code is consistent, well structured, tested, maintainable and has an architecture that encourages enhancement is essential. When it comes to large server-focused apps, solutions to this problem have been tried and tested. But, with the ongoing dramatic shift of functionality into the browser, how do you achieve this when building Front-End Web Apps?
In this talk weโll cover the signs to watch out for as your HTML5 SPA grows and provide examples of some of the tooling types that can contribute-to - as well as ease - the growing pains. Finally, weโll demonstrate how tooling can be used to support a set of conventions, practices and principles that enable a productive developer workflow where the first line of code is feature code, features can be developed in isolation, code conflicts are avoided by grouping assets by feature and features are composed into apps.
The demonstrations will use the BladeRunnerJS open source developer toolkit, but the concepts are widely applicable.
This document discusses different aspects of JavaScript including backend frameworks like MongoDB, ExpressJS, AngularJS and NodeJS. It also covers bundling tools like Browserify and Webpack for ES6 JavaScript as well as transpiling with Babel. Finally, it mentions frontend component libraries like ReactJS, Polymer and Web Components for building user interfaces with nested and reusable components.
Growing to become one of the largest sites on the Internet comes with a unique set of problems. Learning how to and adopt, and doing so without losing sight of content creator's voice proves tricky. This talk details some of the frontend tools we've built and approaches we've taken to service our millions of users at scale.
This document discusses various tools used in the front end development workflow including scaffolding tools like Yeoman to prepare a project structure, package managers like npm and Bower to manage dependencies, and build tools like Grunt to build the project. It provides examples of how each tool is used and highlights key differences between front end and back end development as well as JavaScript and Java projects.
In the last few years, there has been a trend towards shifting the business logic of web apps from the backend to the frontend, with the backend being delegated to a simple API. This makes the choice of a frontend framework that much more important. In 2015 we've seen a vast amount of new innovation in web development. We'll discuss the trends in this techtalk.
source : http://survivejs.github.io/frontend-in-2015/#/
The Frontend Developer Landscape Explained and the Rise of Advanced Frontend ...Prasid Pathak
ย
Over the past several years, as the role of the browser has grown, rich desktop-like apps have emerged built entirely in the browser. To enable this movement, a new generation of powerful JavaScript frameworks have emerged including EmberJS, AngularJS, BackboneJS, and React. In this 30 minute crash course on front end frameworks, Bloc co-founder and CTO Dave Paola will cover the history of front end web development, the recent emergence of these new Javascript frameworks, and go over some of the pros and cons for learning them.
We'll hear from Bloc co-founder and CTO Dave Paola and Bloc Developer Christian Schlensker. Prior to Bloc, Dave was a developer at Kontagent, has over 15 years of software development experience, and has founded numerous other companies. Christian comes to Bloc from Pinchit and TAG where he was a developer. Prior to that, Christian was also a graphic designer.
In our experience, beginners are often overwhelmed by buzz words like "HTML5," "JavaScript," and "Ruby." Without an experienced guide, they can spend months going down rabbit-holes drilling into specific languages, and emerge frustrated that they can't build a real website. Dave will start by helping you visualize the front end web development landscape.
Comparing Angular, Ember, Backbone, and React
2
Once you understand the landscape, Dave will introduce the four major front end frameworks that have emerged over the past two years. He'll discuss the pros and cons of learning each one, from the point of view of a beginner. These four frameworks are: AngularJS, EmberJS, BackboneJS, and ReactJS.
1) HTML5 and new web standards like Content Security Policy and cross-origin resource sharing improve security by enabling enforcement of policies like script isolation in the client instead of through server-side filtering.
2) Script injection vulnerabilities like cross-site scripting can be solved using these new client-side techniques rather than incomplete server-side simulations.
3) Mashups can be made more secure by using CORS to retrieve validated data instead of injecting code, and postMessage with isolated iframes to communicate with legacy APIs.
The top 10 security issues in web applicationsDevnology
ย
The top 10 security issues in web applications are:
1. Injection flaws such as SQL, OS, and LDAP injection.
2. Cross-site scripting (XSS) vulnerabilities that allow attackers to execute scripts in a victim's browser.
3. Broken authentication and session management, such as not logging users out properly or exposing session IDs.
4. Insecure direct object references where users can directly access files without authorization checks.
5. Cross-site request forgery (CSRF) that tricks a user into performing actions they did not intend.
6. Security misconfiguration of web or application servers.
7. Insecure cryptographic storage of passwords or sensitive data.
8
Defeating Cross-Site Scripting with Content Security Policy (updated)Francois Marier
ย
How a new HTTP response header can help increase the depth of your web application defenses.
Also includes a few slides on HTTP Strict Transport Security, a header which helps protects HTTPS sites from sslstrip attacks.
This document discusses techniques for improving frontend performance. It recommends making fewer HTTP requests, using a content delivery network, adding expiration headers, gzipping components, optimizing stylesheet and script placement, avoiding redirects and duplicate scripts, and more. It also covers techniques for loading scripts asynchronously without blocking page rendering, such as using script elements, XHR, and iframes. Faster page loads can improve user experience and increase revenue.
Rich Web App Security - Keeping your application safeJeremiah Grossman
ย
The document discusses securing web applications from common vulnerabilities like cross-site scripting (XSS) and cross-site request forgery (CSRF). It outlines various techniques attackers use to exploit these issues, such as injecting malicious scripts into user input or forging unauthorized requests. The document then provides recommendations for developers to prevent these attacks, such as carefully validating and encoding all user input, and authenticating that requests are intended by the user.
This document discusses various techniques for responsive images in web design, including browser sniffing versus feature testing, image sizes for different screen resolutions and bandwidths, and different implementation methods like .htaccess files, the <picture> element, and JavaScript libraries. It covers topics like using the browser width to determine layouts, screen resolution detection, and bandwidth testing. Workarounds discussed include using background images, SVGs, icon fonts, and compressed JPEGs. The document advocates a mobile-first approach and using CSS media queries to adapt designs based on screen size.
XSS (cross-site scripting) is a common web vulnerability that allows attackers to inject client-side scripts. The document discusses various types of XSS attacks and defenses against them. It covers:
1) Reflected/transient XSS occurs when untrusted data in URL parameters is immediately displayed without sanitization. Stored/persistent XSS occurs when untrusted data is stored and later displayed. DOM-based XSS manipulates the DOM.
2) Defenses include HTML/URL encoding untrusted data before displaying it, validating all inputs, and using context-specific encoding for HTML elements, attributes, JavaScript, and URLs.
3) The OWASP Java Encoder Project and Microsoft Anti
The document discusses cross-site tracing (XST), a new web security attack technique that can bypass the HTTP-only security mechanism in Internet Explorer 6 SP1. XST uses the HTTP TRACE request method to echo back request headers, including authentication cookies, allowing an attacker to access credentials from any site. The document provides background on the TRACE method and how it is enabled by default on many web servers. It also explains the HTTP-only cookie option that aims to prevent access to cookies via JavaScript but is circumvented by XST.
The document provides an introduction to web application security and the Damn Vulnerable Web Application (DVWA). It discusses common web vulnerabilities like cross-site scripting (XSS), SQL injection, and information leakage. It demonstrates how to find and exploit these vulnerabilities in DVWA, including stealing cookies, extracting database information, and creating a backdoor PHP shell. The document is intended to educate users about web security risks and show how hackers can compromise applications.
They Ought to Know Better: Exploiting Security Gateways via Their Web Interfacesmichelemanzotti
ย
The document discusses security vulnerabilities found in the web interfaces of security gateways. The author details how they used automated scanners, manual testing with Burp, and SSH access to root to find over 35 exploits in various security gateway products since 2011. Common vulnerabilities included input validation issues, predictable URLs and parameters enabling CSRF, excessive privileges, and session management flaws. The author provides examples of compromising ClearOS and Websense gateways, and demonstrates OSRF through Proofpoint's email system. They conclude many techniques are older but there remains a knowledge gap between secure web and UI development.
Rails security: above and beyond the defaultsMatias Korhonen
ย
- The document discusses securing Rails web applications by improving on the framework's default security settings.
- It emphasizes using HTTPS to encrypt traffic, securing certificates with tools like Let's Encrypt, and strengthening configurations using the Mozilla SSL Configuration Generator.
- Content Security Policies provide an added layer of security by restricting what content can be loaded from external sources, reducing vulnerabilities, though they require careful configuration.
- HTTP Public Key Pinning can lock users out if misconfigured, so caution is advised. Overall, the talk provides guidance on tightening security beyond Rails defaults.
This document discusses responsive image techniques for adaptive web design. It begins by explaining browser sniffing versus feature testing, and recommends using feature testing to determine browser width, screen resolution, and bandwidth instead of browser sniffing. It then covers techniques like using background-size to control image sizes, SVG for smaller file sizes, and font-based solutions. The document also discusses server-side techniques like .htaccess rewrite rules and client-side techniques like picture and HiSRC. It advocates for a mobile-first approach using CSS media queries and a single pixel GIF for responsive images.
Myself and Asanka Fernandopulle conducted corporate level workshop on Application Security. This workshop covered areas such as application security treats, secure cording practices, application penetration testing and web application exploitations. Workshop mainly consisted with practical sessions and demonstrations. You can find all the presentations here.
This is a multi-faceted workshop that explores new concepts in web security. After a solid grounding in well-known exploits like cross-site scripting (XSS) and cross-site request forgeries (CSRF), I'll demonstrate how traditional exploits are being used together and with other technologies like Ajax to launch sophisticated attacks that penetrate firewalls, target users, and spread like worms. I'll then discuss some ideas for the future, such as evaluating trends to identify suspicious activity and understanding human tendencies and behavior to help provide a better, more secure user experience.
Owasp Top 10 - Owasp Pune Chapter - January 2008abhijitapatil
ย
The document discusses various cybersecurity topics including vulnerabilities, threats, attacks, and countermeasures. It provides an overview of the Open Web Application Security Project (OWASP) which focuses on improving application security. It also summarizes common web vulnerabilities like cross-site scripting (XSS), SQL injection, buffer overflows, and cross-site request forgery (CSRF). Recommendations are given to prevent these vulnerabilities.
Cross Site Scripting - Mozilla Security Learning CenterMichael Coates
ย
This document discusses cross-site scripting (XSS) vulnerabilities. It covers the business risks of XSS, including account compromise and malware installation. It explains how XSS works by giving an example of a reflected XSS attack. It then discusses different XSS attack points and variations. The document outlines mitigation techniques like output encoding and content security policies. It provides examples of how these defenses work to prevent XSS exploits. Finally, it discusses tools like the OWASP XSS prevention cheat sheet and upcoming security training sessions.
This document discusses the top 10 web hacking techniques of 2012. It provides an overview of each technique including CRIME, attacking memcached via SSRF, Chrome addon hacking, bruteforcing PHPSESSID, blended threats using JavaScript, cross-site port attacks, permanently backdooring HTML5 client-side applications using local storage, CAPTCHA re-riding attacks, gaining access to HttpOnly cookies in 2012 through Java applets, and attacking OData through HTTP verb tunneling and navigation properties. The document also discusses the history of past web hacking techniques and provides background information on topics like HttpOnly cookies, XST, and CAPTCHAs.
Whatever it takes - Fixing SQLIA and XSS in the processguest3379bd
ย
This document discusses techniques for preventing SQL injection and cross-site scripting (XSS) vulnerabilities. It proposes using prepared statements with separate data and control planes as a "safe query object" approach. It also discusses policy-based sanitization of HTML and focusing code reviews on defect detection through annotating suspicious code regions. The overall goal is to help developers adopt architectures and techniques that thoroughly apply technical solutions to recognize and fix security weaknesses.
HTML5 introduces new features that can be exploited if not implemented securely. Storage mechanisms like local storage, session storage, and IndexedDB can be used to steal sensitive user data if not set with the proper security flags. Cross-origin resource sharing and cross-document messaging allow communication between domains but need controls to prevent CSRF and information disclosure. New HTML5 features provide opportunities for old attacks like XSS through new vectors like autofocus. Developers must implement security best practices to prevent exploitation of HTML5 capabilities.
Mobile App Development Company in Saudi ArabiaSteve Jonas
ย
EmizenTech is a globally recognized software development company, proudly serving businesses since 2013. With over 11+ years of industry experience and a team of 200+ skilled professionals, we have successfully delivered 1200+ projects across various sectors. As a leading Mobile App Development Company In Saudi Arabia we offer end-to-end solutions for iOS, Android, and cross-platform applications. Our apps are known for their user-friendly interfaces, scalability, high performance, and strong security features. We tailor each mobile application to meet the unique needs of different industries, ensuring a seamless user experience. EmizenTech is committed to turning your vision into a powerful digital product that drives growth, innovation, and long-term success in the competitive mobile landscape of Saudi Arabia.
Learn the Basics of Agile Development: Your Step-by-Step GuideMarcel David
ย
New to Agile? This step-by-step guide is your perfect starting point. "Learn the Basics of Agile Development" simplifies complex concepts, providing you with a clear understanding of how Agile can improve software development and project management. Discover the benefits of iterative work, team collaboration, and flexible planning.
Role of Data Annotation Services in AI-Powered ManufacturingAndrew Leo
ย
From predictive maintenance to robotic automation, AI is driving the future of manufacturing. But without high-quality annotated data, even the smartest models fall short.
Discover how data annotation services are powering accuracy, safety, and efficiency in AI-driven manufacturing systems.
Precision in data labeling = Precision on the production floor.
AI Changes Everything โ Talk at Cardiff Metropolitan University, 29th April 2...Alan Dix
ย
Talk at the final event of Data Fusion Dynamics: A Collaborative UK-Saudi Initiative in Cybersecurity and Artificial Intelligence funded by the British Council UK-Saudi Challenge Fund 2024, Cardiff Metropolitan University, 29th April 2025
https://alandix.com/academic/talks/CMet2025-AI-Changes-Everything/
Is AI just another technology, or does it fundamentally change the way we live and think?
Every technology has a direct impact with micro-ethical consequences, some good, some bad. However more profound are the ways in which some technologies reshape the very fabric of society with macro-ethical impacts. The invention of the stirrup revolutionised mounted combat, but as a side effect gave rise to the feudal system, which still shapes politics today. The internal combustion engine offers personal freedom and creates pollution, but has also transformed the nature of urban planning and international trade. When we look at AI the micro-ethical issues, such as bias, are most obvious, but the macro-ethical challenges may be greater.
At a micro-ethical level AI has the potential to deepen social, ethnic and gender bias, issues I have warned about since the early 1990s! It is also being used increasingly on the battlefield. However, it also offers amazing opportunities in health and educations, as the recent Nobel prizes for the developers of AlphaFold illustrate. More radically, the need to encode ethics acts as a mirror to surface essential ethical problems and conflicts.
At the macro-ethical level, by the early 2000s digital technology had already begun to undermine sovereignty (e.g. gambling), market economics (through network effects and emergent monopolies), and the very meaning of money. Modern AI is the child of big data, big computation and ultimately big business, intensifying the inherent tendency of digital technology to concentrate power. AI is already unravelling the fundamentals of the social, political and economic world around us, but this is a world that needs radical reimagining to overcome the global environmental and human challenges that confront us. Our challenge is whether to let the threads fall as they may, or to use them to weave a better future.
How Can I use the AI Hype in my Business Context?Daniel Lehner
ย
๐๐จ ๐ผ๐ ๐๐ช๐จ๐ฉ ๐๐ฎ๐ฅ๐? ๐๐ง ๐๐จ ๐๐ฉ ๐ฉ๐๐ ๐๐๐ข๐ ๐๐๐๐ฃ๐๐๐ง ๐ฎ๐ค๐ช๐ง ๐๐ช๐จ๐๐ฃ๐๐จ๐จ ๐ฃ๐๐๐๐จ?
Everyoneโs talking about AI but is anyone really using it to create real value?
Most companies want to leverage AI. Few know ๐ต๐ผ๐.
โ What exactly should you ask to find real AI opportunities?
โ Which AI techniques actually fit your business?
โ Is your data even ready for AI?
If youโre not sure, youโre not alone. This is a condensed version of the slides I presented at a Linkedin webinar for Tecnovy on 28.04.2025.
Semantic Cultivators : The Critical Future Role to Enable AIartmondano
ย
By 2026, AI agents will consume 10x more enterprise data than humans, but with none of the contextual understanding that prevents catastrophic misinterpretations.
Complete Guide to Advanced Logistics Management Software in Riyadh.pdfSoftware Company
ย
Explore the benefits and features of advanced logistics management software for businesses in Riyadh. This guide delves into the latest technologies, from real-time tracking and route optimization to warehouse management and inventory control, helping businesses streamline their logistics operations and reduce costs. Learn how implementing the right software solution can enhance efficiency, improve customer satisfaction, and provide a competitive edge in the growing logistics sector of Riyadh.
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...SOFTTECHHUB
ย
I started my online journey with several hosting services before stumbling upon Ai EngineHost. At first, the idea of paying one fee and getting lifetime access seemed too good to pass up. The platform is built on reliable US-based servers, ensuring your projects run at high speeds and remain safe. Let me take you step by step through its benefits and features as I explain why this hosting solution is a perfect fit for digital entrepreneurs.
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdfAbi john
ย
Analyze the growth of meme coins from mere online jokes to potential assets in the digital economy. Explore the community, culture, and utility as they elevate themselves to a new era in cryptocurrency.
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager APIUiPathCommunity
ย
Join this UiPath Community Berlin meetup to explore the Orchestrator API, Swagger interface, and the Test Manager API. Learn how to leverage these tools to streamline automation, enhance testing, and integrate more efficiently with UiPath. Perfect for developers, testers, and automation enthusiasts!
๐ Agenda
Welcome & Introductions
Orchestrator API Overview
Exploring the Swagger Interface
Test Manager API Highlights
Streamlining Automation & Testing with APIs (Demo)
Q&A and Open Discussion
Perfect for developers, testers, and automation enthusiasts!
๐ Join our UiPath Community Berlin chapter: https://community.uipath.com/berlin/
This session streamed live on April 29, 2025, 18:00 CET.
Check out all our upcoming UiPath Community sessions at https://community.uipath.com/events/.
Leading AI Innovation As A Product Manager - Michael JidaelMichael Jidael
ย
Unlike traditional product management, AI product leadership requires new mental models, collaborative approaches, and new measurement frameworks. This presentation breaks down how Product Managers can successfully lead AI Innovation in today's rapidly evolving technology landscape. Drawing from practical experience and industry best practices, I shared frameworks, approaches, and mindset shifts essential for product leaders navigating the unique challenges of AI product development.
In this deck, you'll discover:
- What AI leadership means for product managers
- The fundamental paradigm shift required for AI product development.
- A framework for identifying high-value AI opportunities for your products.
- How to transition from user stories to AI learning loops and hypothesis-driven development.
- The essential AI product management framework for defining, developing, and deploying intelligence.
- Technical and business metrics that matter in AI product development.
- Strategies for effective collaboration with data science and engineering teams.
- Framework for handling AI's probabilistic nature and setting stakeholder expectations.
- A real-world case study demonstrating these principles in action.
- Practical next steps to begin your AI product leadership journey.
This presentation is essential for Product Managers, aspiring PMs, product leaders, innovators, and anyone interested in understanding how to successfully build and manage AI-powered products from idea to impact. The key takeaway is that leading AI products is about creating capabilities (intelligence) that continuously improve and deliver increasing value over time.
Technology Trends in 2025: AI and Big Data AnalyticsInData Labs
ย
At InData Labs, we have been keeping an ear to the ground, looking out for AI-enabled digital transformation trends coming our way in 2025. Our report will provide a look into the technology landscape of the future, including:
-Artificial Intelligence Market Overview
-Strategies for AI Adoption in 2025
-Anticipated drivers of AI adoption and transformative technologies
-Benefits of AI and Big data for your business
-Tips on how to prepare your business for innovation
-AI and data privacy: Strategies for securing data privacy in AI models, etc.
Download your free copy nowand implement the key findings to improve your business.
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...Impelsys Inc.
ย
Impelsys provided a robust testing solution, leveraging a risk-based and requirement-mapped approach to validate ICU Connect and CritiXpert. A well-defined test suite was developed to assess data communication, clinical data collection, transformation, and visualization across integrated devices.
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...TrustArc
ย
Most consumers believe theyโre making informed decisions about their personal dataโadjusting privacy settings, blocking trackers, and opting out where they can. However, our new research reveals that while awareness is high, taking meaningful action is still lacking. On the corporate side, many organizations report strong policies for managing third-party data and consumer consent yet fall short when it comes to consistency, accountability and transparency.
This session will explore the research findings from TrustArcโs Privacy Pulse Survey, examining consumer attitudes toward personal data collection and practical suggestions for corporate practices around purchasing third-party data.
Attendees will learn:
- Consumer awareness around data brokers and what consumers are doing to limit data collection
- How businesses assess third-party vendors and their consent management operations
- Where business preparedness needs improvement
- What these trends mean for the future of privacy governance and public trust
This discussion is essential for privacy, risk, and compliance professionals who want to ground their strategies in current data and prepare for whatโs next in the privacy landscape.
2. โThe reason that the Web browser is
the principal entry point for
malware is the number of choices
that a browser offers up to
whomever is at the other end.
Evolving technologies like
HTML5 promise to make this
significantly worse.โ โ Dan Geer
3. In the next 30 minutes:
โข Show you real code using new standards to:
โ Solve Script Injection Vulnerabilities
โ Build Secure Mashups
โข HTML5 is a big step forward in security for the
Web platform
5. Script Injection, also known as Cross-Site
Scripting or XSS, is the most common Web
Application vulnerability.
In 2007, WhiteHat estimated that 90% of
sites were vulnerable.
6. XSS in a nutshell:
If somebody elseโs code gets to
run in your WebApp, itโs not your
WebApp anymore.
+ Same-Origin Policy = XSS
anywhere on your domain is XSS
everywhere on your domain.
7. Current defenses:
โข Input filtering
โ Strip dangerous characters and tags from user data
โข Output encoding
โ Encode user data so it isnโt treated as markup
โHTML5 broke my XSS filter!โ
8. YES.
html5sec.org lists a dozen new XSS vectors
in new tags and attributes in HTML5.
But your filter was already broken.
12. XSS Filters Were Doomed
Filters are a server-side attempt to simulate the
client-side parser and execution environment.
Butโฆ
โข Every browser parser operated differently
โข The algorithms were secret
โข Every browser had proprietary features, tags
and syntax
โข Accepting bad markup was a feature
14. Generously coercing a shambling
mound of line noise into an
application is no longer a competitive
feature.
15. By standardizing the technology for
building Rich Web Applications,
HTML5 began a fundamental shift in
the security posture of the Web as a
platform.
17. Proprietary platforms compete for
developers by offering features.
Open platform implementers
compete for users by offering
quality.
19. New and Better Anti-XSS Approaches
Even if we now have some hope of simulating
the browser parser for HTML5โฆ
Not easy, definitely not future-proof.
Misses client-only data flows.
Why not get help from the client?
20. Content Security Policy
25 6.0 6.0 6.0 10
X-Content-Security-Policy X-WebKit-CSP (sandbox only)
HTTP header to enforce, in the client, a least-
privilege environment for script and other
content.
24. The catchโฆ
โข CSP enforces code / data separation
โข This means:
NO inline script or css
NO eval, even in libraries
(can be disabled, but sacrifices many of the
benefits of CSP)
27. Coming soon in CSP 1.1
โข Whitelisting of inline scripts and CSS
โข More granular origins
โข Better control of plugins and media types
โข Control and reporting for reflected XSS filters
โข META tag support
https://dvcs.w3.org/hg/content-security-
policy/raw-file/tip/csp-specification.dev.html
28. Templating
Templating is one of the oldest and most widely
used Web application construction patterns.
But it is a hive of XSS villainy because it has
never been a first-class feature in the client.
29. HTML Templates
New spec in progress in the WebApps WG:
https://dvcs.w3.org/hg/webcomponents/raw-
file/tip/spec/templates/index.html
Declare templates as first-class client-side
objects for increased performance, reduced XSS
risk.
30. With CSP and a careful application
architecture XSS can be solved today.
In the near future it will be possible
using more familiar and better
performing idioms.
31. Secure
Mashups
โHTML5 and CORS give new
ways to bypass the Same-Origin
Policy!โ
32. A โmashupโ incorporates content from
multiple origins under different
administrative control.
Today, more apps than not are
authenticated mashups: ads, analytics,
federated login
How did we do this before HTML5?
38. AKA โ โJSONPโ
โข โJSON with paddingโ
<script src=โexample.com/jsonp?callback=fooโ>
โข Returns JSON data โpaddedโ with a call to the
function you specified.
โข You hopeโฆitโs still script!
39. This pattern injects somebody
elseโs code into your
application.
Remember what the definition
of XSS was?
44. Cross-Origin Resource Sharing (CORS)
22 5.1 3.2 15 15 2.1 10 7
Voluntarily relax the Same-Origin Policy with an
HTTP header to allow permissioned sharing on a
resource-by-resource basis
Access-Control-Allow-Credentials: true
Access-Control-Allow-Origin: someorigin.com
45. CORS Client Example
var xhr = new XMLHttpRequest();
xhr.open(method, xDomainUrl, true);
xhr.withCredentials = true;
xhr.onload = function() {
var responseText = xhr.responseText;
validatedResponse = validate(responseText); };
xhr.onerror = function() {
console.log('There was an error!'); };
xhr.send();
46. The difference:
Script src gives you code you
have no choice but to TRUST
CORS gives you data you can
VERIFY
47. What about the * in CORS?
* cannot be used for a resource that supports
credentials.
* in Access-Control-Allow-Origin gives other origins
only the same view they already have from their own
server.
Access-Control-Allow-Origin: *
is actually one of the safest ways to use CORS!
48. What if you need data from somebody
who doesnโt publish a CORS API?
56. Summary: HTML5
HTML5 and the Open Web Platform are
improving the security of the Web ecosystem.
Rich Web Apps are not new, and HTML5 offers
big security improvements compared to the
proprietary plugin technologies itโs actually
replacing.
57. Summary: Script Injection
โข Script Injection, aka XSS, can be a solved
problem with proper application architecture
and new client-side technologies.
โข Avoid incomplete server-side simulation, solve
it directly in the client environment:
โ Content Security Policy
โ HTML Templates
58. Summary: Mashups
โข Use CORS to get (and validate) data, not code
โข Use iframes and postMessage to isolate legacy
mashup APIs
โข Treat your own code like a mashup: Use the
Same-Origin Policy as a powerful privilege
separation technique for secure application
architecture in HTML5
https://github.com/devd/html5privsep
59. Ongoing work in WebAppSec WG:
โข Content Security Policy 1.1
โข User Interface Security to Kill Clickjacking
โข Sub-Resource Integrity
โข More important work underway in the Web
Cryptography WG
#2: First, let me apologize that my slides arenโt very pretty โ itโs tough to share a stage with so many of the most talented front-end engineers in the world and be the security person. But to that point, weโve seen a ton of really amazing stuff here so far, yesterday, this morning, and with more to come. I think itโs safe to say that all the developers in the room are really excited about the possibilities of HTML5 and the Open Web Platform. But there is one group of people that isnโt so excited about all of this: the security community.
#3: Almost since HTML5 was born, you canโt go to a security conference or read the security tech press without finding HTML5 at the top of almost every list of threats. Itโs framed it as part of an out-of-control spiral of complexity on the web thatโs going to leave everyone vulnerable to more malware, more application-level compromises and more enterprise risk. Now, security people are grumpy by nature. We are constantly warning people of dangers ahead, and weโre making a better living than ever because nobody ever listens. So, when it comes to HTML5, should you listen? Well, Iโm here to say that no, in this case you shouldnโt. Iโve been working on Web technologies and in security since 1994, and despite hearing about Lulzsec or Chinese hackers on the news every week, the security state of the Web today is better than it has ever been. In particular, weโve made very large advancements in the last few years, largely due to the rapid advancement of HTML5 and the Open Web Platform, and I think the next few years are going to continue that positive trajectory.
#4: At the last W3Conf I gave a talk with Scott Stender of iSEC Partners where we talked at a high level about some the ways HTML5 is changing security for modern web apps and what to be aware of. This time I want to show some real code on how to use new standards to tackle two of the biggest problems in Web security: solving Script Injection, and building secure mashups.Along the way, I hope Iโll convince you, and maybe, if some security people are watching, them, that HTML5 is a big step forward in security for the Web platform.
#5: So, not to lack ambition, letโs tackle the biggest security problem on the Web first: Script Injection, also known as Cross-Site Scripting or XSS.
#6: This is the most common vulnerability on the Web โ some studies have estimated its prevalence at 90%, and I believe that. One of the things HTML, of any version, is not good at is separating data and code, so any dynamic application tends to have script injection issues unless youโve specifically architected your app to avoid them.
#7: I hope that most everyone whoโs a web developer today already has some idea of what XSS is, but in a nutshell:If somebody else gets to run code in your WebApp, itโs not your WebApp anymore. And the Same-Origin Policy for JavaScript means that if there is an XSS vulnerability anywhere on your domain, everything on your domain is vulnerable. The attackers can take advantage of a single weakness to run amok in the browser, impersonate your users, and do anything they can do.
#8: Script Injection has been a known problem since 2001, and weโve come up with some server-side best defensive practices to prevent it: Input filtering, where we attempt to strip dangerous characters or tags from user input before we use it in markup, and Output encoding where we attempt to encode user data so that it isnโt treated as markup by the browser.And one of the oldest security complaints about HTML5 is that it is going to break many existing XSS filters. If you have a blacklist filter that tries to strip specific tags and event handler attributes, HTML5 introduces a large number of new tags and features that wonโt match your old rules.
#9: And, yes, this is true, and introducing new security risks into existing legacy systems is something we try really hard to avoid as we build new standards. But you know what? Every single blacklist filter for HTML4 is already broken. How can I be so confident? Because things like this:
#11: Get interpreted as valid script in HTML4 in some browsers and can be used to mount attacks! Does your filter block those? How many browsers did you test it in?
#12: Those examples are from a book called Web Application Obfuscation by Gareth Heyes, Mario Heidrich, Eduardo Vela Nava and David Lindsay. An ENTIRE 280 PAGE BOOK full of stuff like that. Those examples I showed you are only the shore of a Lovecraftian continent of horror.
#13: How could they fill 280 pages with this stuff, and why are all of our XSS filters broken? They work in very limited contexts, but in a broader sense, they were doomed from the start, because an XSS filter is a server-side attempt to simulate the client-side parsing and execution environment, but before HTML5, every browser did this differently, how they did it was a secret, browsers were chock-full of proprietary features, tags and syntax, and accepting bad markup was actually considered a feature, in the tradition of Postelโs Law.
#14: This is all to say that the security improvements of HTML5 start at the very foundations, because HTML5tโs the first version of HTML to specify a normative state machine for parsing, including handling error conditions. Yes, there are new tags and new syntax, but if you want to know how browsers are going to parse markup, for the first time you can find out, and you can have some reasonable confidence that different browsers are going to act in a mostly consistent manner.
#15: The result of standardizing parsing is that generously coercing shambling mounds of random line noise into an application is no longer a competitive feature! And this is an insight and an outcome that doesnโt just apply to parsing โ
#16: By standardizing the technology for building Rich Web Applications, HTML5 began a fundamental shift in the security posture of the Web as a platform.One of the biggest false charges leveled against HTML5 is that itโs insecure because itโs โmore complex than HTML4.โ But thatโs not the right comparison to make. HTML4 was never by itself the platform of the Web. The Rich Web Application has been with us for a decade, but it was built in terms of plugins โ in Java, Flash and ActiveX.
#17: If youโre the creator of one of these proprietary rich web app platform whether browser or plugin, you need to attract developers, so you live or die by how much you let developers do, not by how many security restrictions you put on them. You compete for developers and once you have them theyโre locked in. If youโre not happy with Javaโs security record, you have to re-write your whole application to switch. If youโre a user, you canโt switch โ you have to take it or leave it. On the contrary, if I was using an HTML5 app and my browser had a security record like Java, I could switch in a second, and the app developers wouldnโt have to change anything.
#18: So the incentives of the Open Web Platform are different than theyโve been: Proprietary platforms compete for developers by offering features, and they can keep them because switching costs are high. On an open platform, switching costs are low, so implementers have to compete for users by offering them quality, which includes security.
#19: But enough soap box ranting โ we were talking about solving script injection.
#20: And even though we finally have some hope of an accurate simulation of the browser in HTML5, thatโs still not a great strategy. Itโs complex, itโs not future-proof, and it misses whatโs called DOM XSS, vulnerabilities through data flows that canโt be filtered at the server because the server never sees them.If script injection is a security issue at the client layer, why not solve it in the client?
#22: Maybe you remember the scene in the Odyssey where theyโre about to sail past the Sirens. Odysseus knows that heโll go mad from the sirenโs song, so he orders his crew to tie him to the mast and, whatever he says later, not to untie him.Thatโs kind of what CSP does. It lets an app tell the browser to tie it to the mast.
#23: This is an example of a CSP header, and you can see itโs pretty straightforward. We just list the origins that are allowed to load content.The difficult part here is that to get the full benefit, you canโt use inline script or css, and thatโs pretty problematic for existing apps.
#24: We can โฆAnd CSP has a reporting feature, which makes deployment much easier, because you can measure whatโs going to happen and build correct policies before you start enforcing them.
#28: So in CSP 1.1, we are working to fix this, by allowing whitelisting of inline scripts and css, along with other features like controlling the types of plugins that can run, and adding reporting to existing browser anti-XSS filters. So this is a great start on preventing XSS attacks that you can start using today, but thereโs one other up and coming technology I want to touch on โ and thatโs HTML templates.
#30: So HTML templates are a new spec under development in the WebApps Working Group that allow you to declare templates as first-class client-side objects. Instead of dynamically building markup using strings concatenation and innerHTML, weโll have a pattern that has the potential to be both faster and offer much better security against script injection.
#32: OK, so weโve solved XSS, which is a pretty good dayโs workโ but I also promised Iโd show you how to build secure mashups in HTML5 โ another thing that security folks like to say canโt be done.
#33: So whatโs a mashup? Itโs when you include content from multiple sites in a single app. And I think weโre all familiar with anonymous mashups, like putting Craigslist apartment listings onto a Google map, but what a lot people probably donโt think about is that almost every major app today is part mashup โ and moreover, theyโre authenticated mashups. With features like advertising, analytics and federated login, weโre sharing authenticated user data across origins at most places we visit on the Web.
#34: So Flash allows us to do this, using a policy file called crossdomain.xml, which defines ACLs for foreign SWFs. This policy file lets SWFs loaded from www.example-analytics.com to make requests, with cookies, and read the results, from www.foo.com.
#35: But we security folks are kind of cynical, weโve seen it all. And my friend Jan recently quippped: Give someone an ACL and theyโll put in a *.So what happens if you put a * in crossdomain.xml?
#36: Oops.. If you put * in your master policy file, you just allowed any malicious SWF anywhere on the Internet to access all your userโs information. Game over. So thatโs not greatโฆ
#38: And the answer is that, since the beginning of the Same-Origin Policy, thereโs always been a loophole. If I load content, and it sources script from another domain, that script becomes part of my application, effectively allowing us to read that information across domains and use this as a communication channel.
#40: But still, everyone thinks this is OK. We security people warn that this is dangerous, but nobody thinks anything bad is going to happen, they trust the people theyโre getting this script from.Until two weeks agoโฆ
#41: When Facebook broke the Internet. Did anyone see this? If you went to any of thousands of sites on the web, instead of seeing that site, you got a Facebook error page instead. Do you want to see the one line of code the broke the Internet?
#42: Well, this is the mashup pattern for Facebook Connect. So one bug here, and your application is at its mercy. But still, this was just a bug, it wasnโt an attack.
#43: Hmmโฆ This is what Facebook had to say, just a week after the connect fiasco. Now these arenโt related and Iโm sure that Facebook has really good security measures in place to make sure that a compromise of a developer workstation doesnโt propagate out to impact code on the live site, but it should give you pause.The more we use insecure patterns like script src to connect the web, the more fragile we make it, and the more we make an individual API \\a single point of failure for the security of huge parts of the web, the harder the bad guys are going to try to exploit it.
#47: Script src gives you code that you have to trust, but CORS gives you data that you can validate.
#48: And it doesnโt introduce any new Cross-Site Request Forgery attack surface.
#53: And so, in just a few lines of code, weโve locked our legacy mashup into a strong sandbox, and only let it pass notes. If it breaks or gets hacked, it canโt reach out and affect rest of our application.
#54: But thereโs more to this than I first realizedโฆ.I mentioned this pattern for safe mashups at the last W3Conf in 2011, and Iโm sure Iโm wasnโt the first to have done so, but I didnโt realize how important it was until I saw a talk by Devdatta Akhwe at last yearโs USENIX Security.In one of those brilliant insights that seems obvious once youโve heard it, Devdatta realized that this wasnโt just a useful trick for legacy mashups โ that it is actually a fundamental building block allowing privilege separation in HTML5 applications.
#55: What he said was basically, what if I treat my own code, and the libraries I host on my own domain, as being just as potentially dangerous as that foreign mashup? After all, if Iโm building a complex app with tens of thousands of lines of JavaScript code, surely there are some latent bugs in there.And actually, the vast majority of that code doesnโt even need to do sensitive things like access the userโs cookie or perform transactions. We can apply the same architectural principles of privilege separation we use for architecting browsers or operating systems to our HTML5 applications using this iframe plus postMessage pattern.
#56: And he found that, for real-world applications using off-the-shelf libraries, by changing just a few lines of code, it was possible to reduce the trusted computing base of these applications by 95%, isolating all of those latent bugs into strong, browser-provided, same-origin sandboxes. So go check out this paper. If people pay attention to it, I think it has the potential to be one of the most important computer security papers of the decade and hugely reshape the risk profile of client-side WebApps.
#57: I could go on about many more features, but I think thatโs a pretty good start. I hope Iโve convinced you that HTML5 and the Open Web Platform are improving the security of the Web ecosystem. Rich Web Apps arenโt new, and HTML5 offers big security improvements compared to the proprietary plugin technologies itโs actually replacing.