SlideShare une entreprise Scribd logo
1  sur  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!

Contenu connexe

En vedette

Good Parts of JavaScript Douglas Crockford
Good Parts of JavaScript Douglas CrockfordGood Parts of JavaScript Douglas Crockford
Good Parts of JavaScript Douglas Crockford
rajivmordani
 
Advanced Javascript
Advanced JavascriptAdvanced Javascript
Advanced Javascript
Adieu
 
Laurens Van Den Oever Xopus Presentation
Laurens Van Den Oever Xopus PresentationLaurens Van Den Oever Xopus Presentation
Laurens Van Den Oever Xopus Presentation
Ajax Experience 2009
 

En vedette (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
 

Similaire à Douglas Crockford - Ajax Security

Test slideshow
Test slideshowTest slideshow
Test slideshow
legacye
 
Test slideshow
Test slideshowTest slideshow
Test slideshow
legacye
 
Test slideshow
Test slideshowTest slideshow
Test slideshow
legacye
 
Test slideshow
Test slideshowTest slideshow
Test slideshow
legacye
 
Security for javascript
Security for javascriptSecurity for javascript
Security for javascript
Hữu Đại
 
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
 
Accessibility Geek Up
Accessibility Geek UpAccessibility Geek Up
Accessibility Geek Up
guest67b46c
 
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
Sheri Elliott
 

Similaire à 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
 

Plus de Web Directions

Juliette Melton - Mobile User Experience Research
Juliette Melton - Mobile User Experience ResearchJuliette Melton - Mobile User Experience Research
Juliette Melton - Mobile User Experience Research
Web Directions
 
Lisa Herrod - The Age of Awareness
Lisa Herrod - The Age of AwarenessLisa Herrod - The Age of Awareness
Lisa Herrod - The Age of Awareness
Web Directions
 

Plus 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
 

Dernier

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
Enterprise Knowledge
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
giselly40
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 

Dernier (20)

Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
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
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
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
 

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!