SlideShare uma empresa Scribd logo
1 de 78
Web   Forward!   Douglas Crockford Yahoo!
Gordon E. Moore
The complexity for minimum component costs has increased at a rate of roughly a  factor of two per year  ... Over the longer term, the rate of increase is a bit more uncertain, although there is no reason to believe it will not remain nearly constant  for at least 10 years .  1965
 
Moore's prediction became a self-fulfilling prophesy. It cannot hold forever,  but it is still holding now.
Processors, memory, disk storage, network bandwidth. Everything except software.
Software is not subject to Moore's Law. Software is subject to Murphy's Law.
Software productivity improves at a much slower rate. Doubling in 10-20 years,  rather than 2 years.
Great Leaps of Software ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
The next leap is overdue. ,[object Object],[object Object]
The next great leap might realize the dream of assembling software like Lego. ,[object Object],[object Object]
Mashups! JavaScript is the mashup language! It is better suited to dynamic mashing than the conventional OO languages.
Unfortunately ...
The Web   Is Under   Attack!
Browser Security ,[object Object],[object Object],[object Object],[object Object]
The browser is not a safe programming environment. It is inherently insecure.
What can an attacker  do when he gets some  script into your page?
An attacker can request additional scripts from any server in the world. Once it gets a foothold, it can obtain all of the scripts it needs.
An attacker can make requests of your server.   Your server cannot detect that the request did not originate with your application.
An attacker can read the document. The attacker can see everything the user sees.
An attacker has control over the display and can request information from the user.   The user cannot detect that the request did not originate with your application.
An attacker can send information to servers anywhere in the world.
The browser does not prevent any of these. That's why they happen.
The consequences of a successful attack are horrible. Harm to customers. Loss of trust.  Legal liabilities.  Possible criminal penalties.
The vulnerabilities are required by Web Standards. The consequences of standard behavior, not bugs.
“ and God gave us the Web Standards, and deviation  from the Web Standards  is the source of All Evil!” There is no truth in that statement.
The web was once  a driver of innovation. The web is now  the obstacle of innovation. Web development requires mastery of the workaround. You can't work around security.
If there is script from two or more sources, the application is not secure. A mashup is a self- inflicted XSS attack.
Confusion of Interest Computer System Mode
Confusion of Interest System System Mode User
Confusion of Interest System System Mode User User User
Confusion of Interest CP/M MS-DOS MacOS Windows System Mode
Confusion of Interest System Mode The System cannot distinguish the interest of the user from the interest of any program. This enables floppy-borne viruses.
Confusion of Interest System Mode When networking is introduced, network-borne viruses are enabled.
Confusion of Interest User Browser System Mode Site Site Site The browser is a significant improvement, able to distinguish the interests of users and sites (in some cases).
But within a page,  interests are confused. An ad or a widget or an Ajax library gets the same rights as the site's own scripts.
JavaScript got close  to getting it right.  Except for the Global Object.  And some other bad parts. It can be repaired, becoming an object capability language.
An Introduction to Object Capabilities
A is an Object. Object A has state and behavior.
has-a Object A has a reference to Object B. An object can have references to other objects.
...because it has a reference to Object B. Object A can communicate with Object B...
Object B provides an interface that constrains access to its own state and references. Object A does not get access to Object B's innards.
Object A does not have a reference to Object C, so Object A cannot communicate with Object C. In an Object Capability System, an object can only communicate with objects that it has references to.
An Object Capability System is produced by constraining the ways that references are obtained. A reference cannot be obtained simply by knowing the name of a global variable or a public class.
There are exactly three ways to obtain a reference. ,[object Object],[object Object],[object Object]
1. By Creation If a function creates an object, it gets a reference to that object.
2. By Construction An object may be endowed by its constructor with references. This can include references in the constructor's context and inherited references.
3. By Introduction A has a references to B and C. B has no references, so it cannot communicate with A or C. C has no references, so it cannot communicate with A or B.
3. By Introduction A calls B, passing a reference to C.
3. By Introduction B is now able to communicate with C. It has the  capability .
If references can only be obtained by Creation, Construction, or Introduction, then you may have a safe system.
If references can be obtained in any other way, you do not have a safe system.
Good Object Capability Design  is  Good Object Oriented Design
Short term fixes ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Three Possible Solutions ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
How Do We Move the  Web Forward?
Browser   War! Never again.
The Web Depends on Standards ,[object Object],[object Object],[object Object]
A revision to a standard  is an act of violence. Surgery. Pain. Injury. Inconvenience. Users of web standards cannot opt out.
Not only are the web's standards broken, the web's standards process is broken.
Design by Committee. Porkbarrel standards making.
Minimalism should be  highly valued in standards. Committees are not good  at minimalism.
The standards process is entertaining too much  speculative technology. ECMAScript's Close Call
ECMAScript ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
A standards process  must be risk averse. Once an error gets into a  standard, it can be virtually impossible to get it out.
The Dilemma:  Good Standards happen slowly and our need is urgent. The web standards are currently frustrating progress and endangering everyone who uses the web.
Web Time used to mean  really fast . ECMAScript 3: 1999. HTML 4.01: 1999.
Browser   War! We need a Browser War!
The only thing worse  than where we were  is where we are.
Bring It On ,[object Object],[object Object],[object Object],[object Object]
The marketplace must be  more effective this time in  punishing bad behavior. Yahoo!’s Graded Browser  Support Program
This Site Requires Netscape 3
Innovation should happen in research laboratories, startups, and forward-looking companies. Not in Standards bodies.
Standards should have a  conservative process that documents the best of what  has been proven useful.
The drafting of standards is difficult, important business.
Standards should  not be inventions. Standards should  be agreements. Standards should work.
We should also be  looking past the Web. The web was a disruptive technology. The Web needs to be disrupted.
I’ll see you   in the trenches!

Mais conteúdo relacionado

Destaque

The JSON Saga
The JSON SagaThe JSON Saga
The JSON Sagakaven yan
 
Ajax Performance
Ajax PerformanceAjax Performance
Ajax Performancekaven yan
 
Douglas Crockford - Programming Style and Your Brain
Douglas Crockford - Programming Style and Your BrainDouglas Crockford - Programming Style and Your Brain
Douglas Crockford - Programming Style and Your BrainWeb Directions
 
The Theory Of The Dom
The Theory Of The DomThe Theory Of The Dom
The Theory Of The Domkaven yan
 
Performance, Games, and Distributed Testing in JavaScript
Performance, Games, and Distributed Testing in JavaScriptPerformance, Games, and Distributed Testing in JavaScript
Performance, Games, and Distributed Testing in JavaScriptjeresig
 
Performance Improvements in Browsers
Performance Improvements in BrowsersPerformance Improvements in Browsers
Performance Improvements in Browsersjeresig
 
Building a JavaScript Library
Building a JavaScript LibraryBuilding a JavaScript Library
Building a JavaScript Libraryjeresig
 
Good Parts of JavaScript Douglas Crockford
Good Parts of JavaScript Douglas CrockfordGood Parts of JavaScript Douglas Crockford
Good Parts of JavaScript Douglas Crockfordrajivmordani
 
Advanced Javascript
Advanced JavascriptAdvanced Javascript
Advanced JavascriptAdieu
 
Advanced JavaScript Concepts
Advanced JavaScript ConceptsAdvanced JavaScript Concepts
Advanced JavaScript ConceptsNaresh Kumar
 
Help! I am an Investigative Journalist in 2017
Help! I am an Investigative Journalist in 2017Help! I am an Investigative Journalist in 2017
Help! I am an Investigative Journalist in 2017Gabor Szathmari
 
Browser Security 101
Browser Security 101 Browser Security 101
Browser Security 101 Stormpath
 
Scalable JavaScript Application Architecture
Scalable JavaScript Application ArchitectureScalable JavaScript Application Architecture
Scalable JavaScript Application ArchitectureNicholas Zakas
 
Laurens Van Den Oever Xopus Presentation
Laurens Van Den Oever Xopus PresentationLaurens Van Den Oever Xopus Presentation
Laurens Van Den Oever Xopus PresentationAjax Experience 2009
 
The DOM is a Mess @ Yahoo
The DOM is a Mess @ YahooThe DOM is a Mess @ Yahoo
The DOM is a Mess @ Yahoojeresig
 
The JavaScript Programming Language
The JavaScript Programming LanguageThe JavaScript Programming Language
The JavaScript Programming Languageguestceb98b
 
Speed Up Your JavaScript
Speed Up Your JavaScriptSpeed Up Your JavaScript
Speed Up Your JavaScriptNicholas Zakas
 

Destaque (20)

The JSON Saga
The JSON SagaThe JSON Saga
The JSON Saga
 
Ajax Performance
Ajax PerformanceAjax Performance
Ajax Performance
 
Douglas Crockford - Programming Style and Your Brain
Douglas Crockford - Programming Style and Your BrainDouglas Crockford - Programming Style and Your Brain
Douglas Crockford - Programming Style and Your Brain
 
The Theory Of The Dom
The Theory Of The DomThe Theory Of The Dom
The Theory Of The Dom
 
Performance, Games, and Distributed Testing in JavaScript
Performance, Games, and Distributed Testing in JavaScriptPerformance, Games, and Distributed Testing in JavaScript
Performance, Games, and Distributed Testing in JavaScript
 
Performance Improvements in Browsers
Performance Improvements in BrowsersPerformance Improvements in Browsers
Performance Improvements in Browsers
 
Building a JavaScript Library
Building a JavaScript LibraryBuilding a JavaScript Library
Building a JavaScript Library
 
Json
JsonJson
Json
 
OOP in JavaScript
OOP in JavaScriptOOP in JavaScript
OOP in JavaScript
 
Good Parts of JavaScript Douglas Crockford
Good Parts of JavaScript Douglas CrockfordGood Parts of JavaScript Douglas Crockford
Good Parts of JavaScript Douglas Crockford
 
Advanced Javascript
Advanced JavascriptAdvanced Javascript
Advanced Javascript
 
Advanced JavaScript Concepts
Advanced JavaScript ConceptsAdvanced JavaScript Concepts
Advanced JavaScript Concepts
 
Safe Browsing in 2016
Safe Browsing in 2016Safe Browsing in 2016
Safe Browsing in 2016
 
Help! I am an Investigative Journalist in 2017
Help! I am an Investigative Journalist in 2017Help! I am an Investigative Journalist in 2017
Help! I am an Investigative Journalist in 2017
 
Browser Security 101
Browser Security 101 Browser Security 101
Browser Security 101
 
Scalable JavaScript Application Architecture
Scalable JavaScript Application ArchitectureScalable JavaScript Application Architecture
Scalable JavaScript Application Architecture
 
Laurens Van Den Oever Xopus Presentation
Laurens Van Den Oever Xopus PresentationLaurens Van Den Oever Xopus Presentation
Laurens Van Den Oever Xopus Presentation
 
The DOM is a Mess @ Yahoo
The DOM is a Mess @ YahooThe DOM is a Mess @ Yahoo
The DOM is a Mess @ Yahoo
 
The JavaScript Programming Language
The JavaScript Programming LanguageThe JavaScript Programming Language
The JavaScript Programming Language
 
Speed Up Your JavaScript
Speed Up Your JavaScriptSpeed Up Your JavaScript
Speed Up Your JavaScript
 

Semelhante a Douglas Crockford - Ajax Security

Test slideshow
Test slideshowTest slideshow
Test slideshowlegacye
 
Test slideshow
Test slideshowTest slideshow
Test slideshowlegacye
 
Test slideshow
Test slideshowTest slideshow
Test slideshowlegacye
 
Test slideshow
Test slideshowTest slideshow
Test slideshowlegacye
 
Security for javascript
Security for javascriptSecurity for javascript
Security for javascriptHữu Đại
 
Web Application Vulnerabilities
Web Application VulnerabilitiesWeb Application Vulnerabilities
Web Application VulnerabilitiesPamela Wright
 
Web application finger printing - whitepaper
Web application finger printing - whitepaperWeb application finger printing - whitepaper
Web application finger printing - whitepaperAnant Shrivastava
 
Web Application Finger Printing - Methods/Techniques and Prevention
Web Application Finger Printing - Methods/Techniques and PreventionWeb Application Finger Printing - Methods/Techniques and Prevention
Web Application Finger Printing - Methods/Techniques and Preventionn|u - The Open Security Community
 
Moving The Web Forward (Chris Wilson WDS 2007 Keynote)
Moving The Web Forward (Chris Wilson WDS 2007 Keynote)Moving The Web Forward (Chris Wilson WDS 2007 Keynote)
Moving The Web Forward (Chris Wilson WDS 2007 Keynote)Chris Wilson
 
What Are Progressive Web Application Development
What Are Progressive Web Application DevelopmentWhat Are Progressive Web Application Development
What Are Progressive Web Application DevelopmentApp Verticals
 
Accessibility Geek Up
Accessibility Geek UpAccessibility Geek Up
Accessibility Geek Upguest67b46c
 
Designing Powerful Web Applications Using AJAX and Other RIAs
Designing Powerful Web Applications Using AJAX and Other RIAsDesigning Powerful Web Applications Using AJAX and Other RIAs
Designing Powerful Web Applications Using AJAX and Other RIAsDave Malouf
 
The Guide to Website Development for Beginners.pdf
The Guide to Website Development for Beginners.pdfThe Guide to Website Development for Beginners.pdf
The Guide to Website Development for Beginners.pdfConnect Solutions
 
Sql Injection Attacks And A Web Application Environment
Sql Injection Attacks And A Web Application EnvironmentSql Injection Attacks And A Web Application Environment
Sql Injection Attacks And A Web Application EnvironmentSheri Elliott
 
Web 2.0 and LiveQuotes Presentation
Web 2.0 and LiveQuotes PresentationWeb 2.0 and LiveQuotes Presentation
Web 2.0 and LiveQuotes PresentationJamie Thingelstad
 
Over view of Technologies
Over view of TechnologiesOver view of Technologies
Over view of TechnologiesChris Mitchell
 
Mastering Mobile Web with 8 Key Rules
Mastering Mobile Web with 8 Key RulesMastering Mobile Web with 8 Key Rules
Mastering Mobile Web with 8 Key RulesMobile Labs
 

Semelhante a Douglas Crockford - Ajax Security (20)

Test slideshow
Test slideshowTest slideshow
Test slideshow
 
Test slideshow
Test slideshowTest slideshow
Test slideshow
 
Test slideshow
Test slideshowTest slideshow
Test slideshow
 
Test slideshow
Test slideshowTest slideshow
Test slideshow
 
Security for javascript
Security for javascriptSecurity for javascript
Security for javascript
 
Web Application Vulnerabilities
Web Application VulnerabilitiesWeb Application Vulnerabilities
Web Application Vulnerabilities
 
Web application finger printing - whitepaper
Web application finger printing - whitepaperWeb application finger printing - whitepaper
Web application finger printing - whitepaper
 
Web Application Finger Printing - Methods/Techniques and Prevention
Web Application Finger Printing - Methods/Techniques and PreventionWeb Application Finger Printing - Methods/Techniques and Prevention
Web Application Finger Printing - Methods/Techniques and Prevention
 
Moving The Web Forward (Chris Wilson WDS 2007 Keynote)
Moving The Web Forward (Chris Wilson WDS 2007 Keynote)Moving The Web Forward (Chris Wilson WDS 2007 Keynote)
Moving The Web Forward (Chris Wilson WDS 2007 Keynote)
 
Cisco WebEx vulnerability: it’s a kind of magic
Cisco WebEx vulnerability: it’s a kind of magicCisco WebEx vulnerability: it’s a kind of magic
Cisco WebEx vulnerability: it’s a kind of magic
 
What Are Progressive Web Application Development
What Are Progressive Web Application DevelopmentWhat Are Progressive Web Application Development
What Are Progressive Web Application Development
 
Accessibility Geek Up
Accessibility Geek UpAccessibility Geek Up
Accessibility Geek Up
 
Designing Powerful Web Applications Using AJAX and Other RIAs
Designing Powerful Web Applications Using AJAX and Other RIAsDesigning Powerful Web Applications Using AJAX and Other RIAs
Designing Powerful Web Applications Using AJAX and Other RIAs
 
The Guide to Website Development for Beginners.pdf
The Guide to Website Development for Beginners.pdfThe Guide to Website Development for Beginners.pdf
The Guide to Website Development for Beginners.pdf
 
Micro Front Ends : Divided We Rule by Parth Ghiya - AhmedabadJS
Micro Front Ends : Divided We Rule by Parth Ghiya - AhmedabadJSMicro Front Ends : Divided We Rule by Parth Ghiya - AhmedabadJS
Micro Front Ends : Divided We Rule by Parth Ghiya - AhmedabadJS
 
Web 2 0
Web 2 0Web 2 0
Web 2 0
 
Sql Injection Attacks And A Web Application Environment
Sql Injection Attacks And A Web Application EnvironmentSql Injection Attacks And A Web Application Environment
Sql Injection Attacks And A Web Application Environment
 
Web 2.0 and LiveQuotes Presentation
Web 2.0 and LiveQuotes PresentationWeb 2.0 and LiveQuotes Presentation
Web 2.0 and LiveQuotes Presentation
 
Over view of Technologies
Over view of TechnologiesOver view of Technologies
Over view of Technologies
 
Mastering Mobile Web with 8 Key Rules
Mastering Mobile Web with 8 Key RulesMastering Mobile Web with 8 Key Rules
Mastering Mobile Web with 8 Key Rules
 

Mais de Web Directions

Kim Heras - So, You've Got an Idea
Kim Heras - So, You've Got an IdeaKim Heras - So, You've Got an Idea
Kim Heras - So, You've Got an IdeaWeb Directions
 
Arunan Skanthan - Roll Your own Style Guide
Arunan Skanthan - Roll Your own Style GuideArunan Skanthan - Roll Your own Style Guide
Arunan Skanthan - Roll Your own Style GuideWeb Directions
 
Alan Downie and Matt Milosavljevic - BugHerd, the Incubator Experience
Alan Downie and Matt Milosavljevic - BugHerd, the Incubator ExperienceAlan Downie and Matt Milosavljevic - BugHerd, the Incubator Experience
Alan Downie and Matt Milosavljevic - BugHerd, the Incubator ExperienceWeb Directions
 
Five things I know about running a digital agency
Five things I know about running a digital agencyFive things I know about running a digital agency
Five things I know about running a digital agencyWeb Directions
 
Dave Orchard - Offline Web Apps with HTML5
Dave Orchard - Offline Web Apps with HTML5Dave Orchard - Offline Web Apps with HTML5
Dave Orchard - Offline Web Apps with HTML5Web Directions
 
Robby Ingebretsen - Get your game on: HTML5 for game building
Robby Ingebretsen - Get your game on: HTML5 for game buildingRobby Ingebretsen - Get your game on: HTML5 for game building
Robby Ingebretsen - Get your game on: HTML5 for game buildingWeb Directions
 
Ross Boucher - Quality Control: Testing and debugging your apps
Ross Boucher - Quality Control: Testing and debugging your appsRoss Boucher - Quality Control: Testing and debugging your apps
Ross Boucher - Quality Control: Testing and debugging your appsWeb Directions
 
Juliette Melton - Mobile User Experience Research
Juliette Melton - Mobile User Experience ResearchJuliette Melton - Mobile User Experience Research
Juliette Melton - Mobile User Experience ResearchWeb Directions
 
Lisa Herrod - The Age of Awareness
Lisa Herrod - The Age of AwarenessLisa Herrod - The Age of Awareness
Lisa Herrod - The Age of AwarenessWeb Directions
 
Practising Web Standards in the Large
Practising Web Standards in the Large Practising Web Standards in the Large
Practising Web Standards in the Large Web Directions
 
15 years in - Dan Hill
15 years in - Dan Hill15 years in - Dan Hill
15 years in - Dan HillWeb Directions
 
Kerry Taylor - Semantics & sensors
Kerry Taylor - Semantics & sensorsKerry Taylor - Semantics & sensors
Kerry Taylor - Semantics & sensorsWeb Directions
 
Boosting new media accessibility - Scott Hollier
Boosting new media accessibility - Scott HollierBoosting new media accessibility - Scott Hollier
Boosting new media accessibility - Scott HollierWeb Directions
 
Opening up social networks - Renato Iannella
Opening up social networks - Renato IannellaOpening up social networks - Renato Iannella
Opening up social networks - Renato IannellaWeb Directions
 
Jeffrey Veen - Designing our way through data
Jeffrey Veen - Designing our way through dataJeffrey Veen - Designing our way through data
Jeffrey Veen - Designing our way through dataWeb Directions
 
Nick Bolton - The evolution and commercialisation of online video
Nick Bolton - The evolution and commercialisation of online videoNick Bolton - The evolution and commercialisation of online video
Nick Bolton - The evolution and commercialisation of online videoWeb Directions
 
Designing The User Experience Curve
Designing The User Experience CurveDesigning The User Experience Curve
Designing The User Experience CurveWeb Directions
 
GovDex – Collaborating online in a secure environment
GovDex – Collaborating online in a secure environmentGovDex – Collaborating online in a secure environment
GovDex – Collaborating online in a secure environmentWeb Directions
 

Mais de Web Directions (20)

Kim Heras - So, You've Got an Idea
Kim Heras - So, You've Got an IdeaKim Heras - So, You've Got an Idea
Kim Heras - So, You've Got an Idea
 
Arunan Skanthan - Roll Your own Style Guide
Arunan Skanthan - Roll Your own Style GuideArunan Skanthan - Roll Your own Style Guide
Arunan Skanthan - Roll Your own Style Guide
 
Alan Downie and Matt Milosavljevic - BugHerd, the Incubator Experience
Alan Downie and Matt Milosavljevic - BugHerd, the Incubator ExperienceAlan Downie and Matt Milosavljevic - BugHerd, the Incubator Experience
Alan Downie and Matt Milosavljevic - BugHerd, the Incubator Experience
 
Five things I know about running a digital agency
Five things I know about running a digital agencyFive things I know about running a digital agency
Five things I know about running a digital agency
 
Dave Orchard - Offline Web Apps with HTML5
Dave Orchard - Offline Web Apps with HTML5Dave Orchard - Offline Web Apps with HTML5
Dave Orchard - Offline Web Apps with HTML5
 
Robby Ingebretsen - Get your game on: HTML5 for game building
Robby Ingebretsen - Get your game on: HTML5 for game buildingRobby Ingebretsen - Get your game on: HTML5 for game building
Robby Ingebretsen - Get your game on: HTML5 for game building
 
Ross Boucher - Quality Control: Testing and debugging your apps
Ross Boucher - Quality Control: Testing and debugging your appsRoss Boucher - Quality Control: Testing and debugging your apps
Ross Boucher - Quality Control: Testing and debugging your apps
 
Juliette Melton - Mobile User Experience Research
Juliette Melton - Mobile User Experience ResearchJuliette Melton - Mobile User Experience Research
Juliette Melton - Mobile User Experience Research
 
Lisa Herrod - The Age of Awareness
Lisa Herrod - The Age of AwarenessLisa Herrod - The Age of Awareness
Lisa Herrod - The Age of Awareness
 
Practising Web Standards in the Large
Practising Web Standards in the Large Practising Web Standards in the Large
Practising Web Standards in the Large
 
15 years in - Dan Hill
15 years in - Dan Hill15 years in - Dan Hill
15 years in - Dan Hill
 
WCAG2 - Gian Wild
WCAG2 - Gian WildWCAG2 - Gian Wild
WCAG2 - Gian Wild
 
CSS Frameworks
CSS FrameworksCSS Frameworks
CSS Frameworks
 
Kerry Taylor - Semantics & sensors
Kerry Taylor - Semantics & sensorsKerry Taylor - Semantics & sensors
Kerry Taylor - Semantics & sensors
 
Boosting new media accessibility - Scott Hollier
Boosting new media accessibility - Scott HollierBoosting new media accessibility - Scott Hollier
Boosting new media accessibility - Scott Hollier
 
Opening up social networks - Renato Iannella
Opening up social networks - Renato IannellaOpening up social networks - Renato Iannella
Opening up social networks - Renato Iannella
 
Jeffrey Veen - Designing our way through data
Jeffrey Veen - Designing our way through dataJeffrey Veen - Designing our way through data
Jeffrey Veen - Designing our way through data
 
Nick Bolton - The evolution and commercialisation of online video
Nick Bolton - The evolution and commercialisation of online videoNick Bolton - The evolution and commercialisation of online video
Nick Bolton - The evolution and commercialisation of online video
 
Designing The User Experience Curve
Designing The User Experience CurveDesigning The User Experience Curve
Designing The User Experience Curve
 
GovDex – Collaborating online in a secure environment
GovDex – Collaborating online in a secure environmentGovDex – Collaborating online in a secure environment
GovDex – Collaborating online in a secure environment
 

Último

From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGSujit Pal
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 

Último (20)

From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAG
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 

Douglas Crockford - Ajax Security

  • 1. Web Forward! Douglas Crockford Yahoo!
  • 3. The complexity for minimum component costs has increased at a rate of roughly a factor of two per year ... Over the longer term, the rate of increase is a bit more uncertain, although there is no reason to believe it will not remain nearly constant for at least 10 years . 1965
  • 4.  
  • 5. Moore's prediction became a self-fulfilling prophesy. It cannot hold forever, but it is still holding now.
  • 6. Processors, memory, disk storage, network bandwidth. Everything except software.
  • 7. Software is not subject to Moore's Law. Software is subject to Murphy's Law.
  • 8. Software productivity improves at a much slower rate. Doubling in 10-20 years, rather than 2 years.
  • 9.
  • 10.
  • 11.
  • 12. Mashups! JavaScript is the mashup language! It is better suited to dynamic mashing than the conventional OO languages.
  • 14. The Web Is Under Attack!
  • 15.
  • 16. The browser is not a safe programming environment. It is inherently insecure.
  • 17. What can an attacker do when he gets some script into your page?
  • 18. An attacker can request additional scripts from any server in the world. Once it gets a foothold, it can obtain all of the scripts it needs.
  • 19. An attacker can make requests of your server. Your server cannot detect that the request did not originate with your application.
  • 20. An attacker can read the document. The attacker can see everything the user sees.
  • 21. An attacker has control over the display and can request information from the user. The user cannot detect that the request did not originate with your application.
  • 22. An attacker can send information to servers anywhere in the world.
  • 23. The browser does not prevent any of these. That's why they happen.
  • 24. The consequences of a successful attack are horrible. Harm to customers. Loss of trust. Legal liabilities. Possible criminal penalties.
  • 25. The vulnerabilities are required by Web Standards. The consequences of standard behavior, not bugs.
  • 26. “ and God gave us the Web Standards, and deviation from the Web Standards is the source of All Evil!” There is no truth in that statement.
  • 27. The web was once a driver of innovation. The web is now the obstacle of innovation. Web development requires mastery of the workaround. You can't work around security.
  • 28. If there is script from two or more sources, the application is not secure. A mashup is a self- inflicted XSS attack.
  • 29. Confusion of Interest Computer System Mode
  • 30. Confusion of Interest System System Mode User
  • 31. Confusion of Interest System System Mode User User User
  • 32. Confusion of Interest CP/M MS-DOS MacOS Windows System Mode
  • 33. Confusion of Interest System Mode The System cannot distinguish the interest of the user from the interest of any program. This enables floppy-borne viruses.
  • 34. Confusion of Interest System Mode When networking is introduced, network-borne viruses are enabled.
  • 35. Confusion of Interest User Browser System Mode Site Site Site The browser is a significant improvement, able to distinguish the interests of users and sites (in some cases).
  • 36. But within a page, interests are confused. An ad or a widget or an Ajax library gets the same rights as the site's own scripts.
  • 37. JavaScript got close to getting it right. Except for the Global Object. And some other bad parts. It can be repaired, becoming an object capability language.
  • 38. An Introduction to Object Capabilities
  • 39. A is an Object. Object A has state and behavior.
  • 40. has-a Object A has a reference to Object B. An object can have references to other objects.
  • 41. ...because it has a reference to Object B. Object A can communicate with Object B...
  • 42. Object B provides an interface that constrains access to its own state and references. Object A does not get access to Object B's innards.
  • 43. Object A does not have a reference to Object C, so Object A cannot communicate with Object C. In an Object Capability System, an object can only communicate with objects that it has references to.
  • 44. An Object Capability System is produced by constraining the ways that references are obtained. A reference cannot be obtained simply by knowing the name of a global variable or a public class.
  • 45.
  • 46. 1. By Creation If a function creates an object, it gets a reference to that object.
  • 47. 2. By Construction An object may be endowed by its constructor with references. This can include references in the constructor's context and inherited references.
  • 48. 3. By Introduction A has a references to B and C. B has no references, so it cannot communicate with A or C. C has no references, so it cannot communicate with A or B.
  • 49. 3. By Introduction A calls B, passing a reference to C.
  • 50. 3. By Introduction B is now able to communicate with C. It has the capability .
  • 51. If references can only be obtained by Creation, Construction, or Introduction, then you may have a safe system.
  • 52. If references can be obtained in any other way, you do not have a safe system.
  • 53. Good Object Capability Design is Good Object Oriented Design
  • 54.
  • 55.
  • 56. How Do We Move the Web Forward?
  • 57. Browser War! Never again.
  • 58.
  • 59. A revision to a standard is an act of violence. Surgery. Pain. Injury. Inconvenience. Users of web standards cannot opt out.
  • 60. Not only are the web's standards broken, the web's standards process is broken.
  • 61. Design by Committee. Porkbarrel standards making.
  • 62. Minimalism should be highly valued in standards. Committees are not good at minimalism.
  • 63. The standards process is entertaining too much speculative technology. ECMAScript's Close Call
  • 64.
  • 65. A standards process must be risk averse. Once an error gets into a standard, it can be virtually impossible to get it out.
  • 66. The Dilemma: Good Standards happen slowly and our need is urgent. The web standards are currently frustrating progress and endangering everyone who uses the web.
  • 67. Web Time used to mean really fast . ECMAScript 3: 1999. HTML 4.01: 1999.
  • 68. Browser War! We need a Browser War!
  • 69. The only thing worse than where we were is where we are.
  • 70.
  • 71. The marketplace must be more effective this time in punishing bad behavior. Yahoo!’s Graded Browser Support Program
  • 72. This Site Requires Netscape 3
  • 73. Innovation should happen in research laboratories, startups, and forward-looking companies. Not in Standards bodies.
  • 74. Standards should have a conservative process that documents the best of what has been proven useful.
  • 75. The drafting of standards is difficult, important business.
  • 76. Standards should not be inventions. Standards should be agreements. Standards should work.
  • 77. We should also be looking past the Web. The web was a disruptive technology. The Web needs to be disrupted.
  • 78. I’ll see you in the trenches!