Security:Strawman Model: Difference between revisions

Line 52: Line 52:


Let canAccess(o) = (principal(o) <= (stack[0] ^ ... ^ stack.top())).
Let canAccess(o) = (principal(o) <= (stack[0] ^ ... ^ stack.top())).
=== Grammar ===
Informal HTML subset EBNF grammar with embedded <i>semantics</i>, capitalized non-terminals, and quoted or lowercase terminals.  Unquoted terminals stand for the obvious lexical nonterminals, e.g. <code>tagname</code> is any valid HTML tag name other than those quoted tagnames used in the grammar (<code>button</code>, <code>iframe</code>).
<pre>
Document ::= Content
Content ::= (text | Markup)*
Markup ::= < tagname />
        | < tagname > Content </ tagname >
        | < 'button' 'onclick' '=' string > text </ 'button' >
        | < 'iframe' 'src' '=' string />
</pre>
Confirmed users, Bureaucrats and Sysops emeriti
419

edits