Misplaced Pages

Caja project

Article snapshot taken from Wikipedia with creative commons attribution-sharealike license. Give it a read and then ask your questions in the chat. We can research this topic together.
Google project for sanitizing third party HTML, CSS and JavaScript

Caja (pronounced /ˈkɑːhɑː/ KAH-hah) was a Google project for sanitizing third party HTML, CSS and JavaScript. On January 31, 2021, Google archived the project due to known vulnerabilities and lack of maintenance to keep up with the latest web security research, recommending instead the Closure toolkit.

The Caja project was led by Jasvir Nagra with the JavaScript portion designed by Google research scientist Mark S. Miller in 2008 as a JavaScript implementation for "virtual iframes" based on the principles of object-capabilities. It would take JavaScript (technically, ECMAScript 5 strict mode code), HTML, and CSS input and rewrite it into a safe subset of HTML and CSS, plus a single JavaScript function with no free variables. That means the only way such a function could modify an object, was if it was given a reference to the object by the host page. Instead of giving direct references to DOM objects, the host page typically gives references to wrappers that sanitize HTML, proxy URLs, and prevent redirecting the page; this allowed Caja to prevent certain phishing and cross-site scripting attacks, and prevent downloading malware. Also, since all rewritten programs ran in the same frame, the host page could allow one program to export an object reference to another program; then inter-frame communication was simply method invocation.

The word "caja" is Spanish for "box" or "safe" (as in a bank), the idea being that Caja could safely contain JavaScript programs as well as being a capabilities-based JavaScript.

Caja was used by Google in its Google Apps Script products. In 2008 MySpace and Yahoo! had both deployed a very early version of Caja.

See also

References

  1. Mark, Miller. "Caja discussion on the Caplet Group". . . Archived from the original on 17 May 2008.
  2. "Introduction - Caja". Google Developers. Archived from the original on 22 January 2021.
  3. Miller, Mark S.; Samuel, M; Laurie, B; Awad, I; Stay, M (7 June 2008). "Safe active content in sanitized JavaScript". Google Scholar.
  4. Synodinos, Dio (25 February 2011). "ECMAScript 5, Caja and Retrofitting Security, with Mark S. Miller". InfoQ.
  5. "Html Service: Caja Sanitization". Google Developers. Archived from the original on 26 August 2013.
  6. "MySpace: Caja JavaScript scrubbing ready for prime time". 4 February 2008. Archived from the original on 1 October 2008.
  7. "Web 2.0 Investors: Pay Attention To Caja". Tim Oren's Due Diligence. 11 April 2008.
  8. Pullara, Sam (28 October 2008). "OpenSocial API Blog: Launched: Yahoo!'s First Implementation of OpenSocial Support". OpenSocial. Archived from the original on 16 December 2008.

External links

Object-capability security
Concepts
Operating systems, kernels
Programming languages
File systems
Specialised hardware
ECMAScript
Dialects
Engines
(comparison)
Frameworks
Client-side
Server-side
Multiple
  • Cappuccino
Libraries
People
Other
Lists
JavaScript libraries
Ajax frameworks
Comparisons
JavaScript frameworks
server-side JavaScript
Google
a subsidiary of Alphabet
Company
Divisions
Subsidiaries
Active
Defunct
Programs
Events
Infrastructure
People
Current
Former
Criticism
General
Incidents
Other
Development
Software
A–C
D–N
O–Z
Operating systems
Language models
Neural networks
Computer programs
Formats and codecs
Programming languages
Search algorithms
Domain names
Typefaces
Products
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
Y
Hardware
Pixel
Smartphones
Smartwatches
Tablets
Laptops
Other
Nexus
Smartphones
Tablets
Other
Other
Litigation
Advertising
Antitrust
Intellectual property
Privacy
Other
Related
Concepts
Products
Android
Street View coverage
YouTube
Other
Documentaries
Books
Popular culture
Other
Italics denote discontinued products.
Categories: