OLD | NEW |
1 <html> | 1 <html> |
2 <head> | 2 <head> |
3 <script src="resources/cross-frame-access.js"></script> | 3 <script src="resources/cross-frame-access.js"></script> |
4 <script> | 4 <script> |
5 var windowConstructorPropertiesNotAllowed = [ | 5 var windowConstructorPropertiesNotAllowed = [ |
6 "Attr", | 6 "Attr", |
7 "Audio", | 7 "Audio", |
8 "CDATASection", | 8 "CDATASection", |
9 "CSSRule", | 9 "CSSRule", |
10 "CSSStyleDeclaration", | 10 "CSSStyleDeclaration", |
11 "CharacterData", | 11 "CharacterData", |
12 "Comment", | 12 "Comment", |
13 "DOMException", | 13 "DOMException", |
14 "DOMImplementation", | 14 "DOMImplementation", |
15 "DOMParser", | 15 "DOMParser", |
16 "Document", | 16 "Document", |
17 "DocumentFragment", | 17 "DocumentFragment", |
18 "DocumentType", | 18 "DocumentType", |
19 "Element", | 19 "Element", |
20 "EntityReference", | 20 "EntityReference", |
21 "EvalError", | 21 "EvalError", |
22 "Event", | 22 "Event", |
23 "HTMLAnchorElement", | 23 "HTMLAnchorElement", |
24 "HTMLAudioElement", | 24 "HTMLAudioElement", |
25 "HTMLAreaElement", | 25 "HTMLAreaElement", |
26 "HTMLBRElement", | 26 "HTMLBRElement", |
27 "HTMLBaseElement", | 27 "HTMLBaseElement", |
28 "HTMLBodyElement", | 28 "HTMLBodyElement", |
29 "HTMLButtonElement", | 29 "HTMLButtonElement", |
30 "HTMLCanvasElement", | 30 "HTMLCanvasElement", |
31 "HTMLDListElement", | 31 "HTMLDListElement", |
32 "HTMLDirectoryElement", | 32 "HTMLDirectoryElement", |
33 "HTMLDivElement", | 33 "HTMLDivElement", |
34 "HTMLDocument", | 34 "HTMLDocument", |
35 "HTMLElement", | 35 "HTMLElement", |
36 "HTMLFieldSetElement", | 36 "HTMLFieldSetElement", |
37 "HTMLFontElement", | 37 "HTMLFontElement", |
38 "HTMLFormElement", | 38 "HTMLFormElement", |
39 "HTMLFrameElement", | 39 "HTMLFrameElement", |
40 "HTMLFrameSetElement", | 40 "HTMLFrameSetElement", |
41 "HTMLHRElement", | 41 "HTMLHRElement", |
42 "HTMLHeadElement", | 42 "HTMLHeadElement", |
43 "HTMLHeadingElement", | 43 "HTMLHeadingElement", |
44 "HTMLHtmlElement", | 44 "HTMLHtmlElement", |
45 "HTMLIFrameElement", | 45 "HTMLIFrameElement", |
46 "HTMLImageElement", | 46 "HTMLImageElement", |
47 "HTMLInputElement", | 47 "HTMLInputElement", |
48 "HTMLIsIndexElement", | 48 "HTMLIsIndexElement", |
49 "HTMLLIElement", | 49 "HTMLLIElement", |
50 "HTMLLabelElement", | 50 "HTMLLabelElement", |
51 "HTMLLegendElement", | 51 "HTMLLegendElement", |
52 "HTMLLinkElement", | 52 "HTMLLinkElement", |
53 "HTMLMapElement", | 53 "HTMLMapElement", |
54 "HTMLMarqueeElement", | 54 "HTMLMarqueeElement", |
55 "HTMLMediaElement", | 55 "HTMLMediaElement", |
56 "HTMLMenuElement", | 56 "HTMLMenuElement", |
57 "HTMLMetaElement", | 57 "HTMLMetaElement", |
58 "HTMLModElement", | 58 "HTMLModElement", |
59 "HTMLOListElement", | 59 "HTMLOListElement", |
60 "HTMLOptGroupElement", | 60 "HTMLOptGroupElement", |
61 "HTMLOptionElement", | 61 "HTMLOptionElement", |
62 "HTMLParagraphElement", | 62 "HTMLParagraphElement", |
63 "HTMLParamElement", | 63 "HTMLParamElement", |
64 "HTMLPreElement", | 64 "HTMLPreElement", |
65 "HTMLQuoteElement", | 65 "HTMLQuoteElement", |
66 "HTMLScriptElement", | 66 "HTMLScriptElement", |
67 "HTMLSelectElement", | 67 "HTMLSelectElement", |
68 "HTMLSourceElement", | 68 "HTMLSourceElement", |
69 "HTMLStyleElement", | 69 "HTMLStyleElement", |
70 "HTMLTableCaptionElement", | 70 "HTMLTableCaptionElement", |
71 "HTMLTableCellElement", | 71 "HTMLTableCellElement", |
72 "HTMLTableColElement", | 72 "HTMLTableColElement", |
73 "HTMLTableElement", | 73 "HTMLTableElement", |
74 "HTMLTableRowElement", | 74 "HTMLTableRowElement", |
75 "HTMLTableSectionElement", | 75 "HTMLTableSectionElement", |
76 "HTMLTextAreaElement", | 76 "HTMLTextAreaElement", |
77 "HTMLTitleElement", | 77 "HTMLTitleElement", |
78 "HTMLUListElement", | 78 "HTMLUListElement", |
79 "HTMLVideoElement", | 79 "HTMLVideoElement", |
80 "Image", | 80 "Image", |
81 "MutationEvent", | 81 "MutationEvent", |
82 "Node", | 82 "Node", |
83 "NodeFilter", | 83 "NodeFilter", |
84 "Option", | 84 "Option", |
85 "ProcessingInstruction", | 85 "ProcessingInstruction", |
86 "Range", | 86 "Range", |
87 "RangeError", | 87 "RangeError", |
88 "ReferenceError", | 88 "ReferenceError", |
89 "SyntaxError", | 89 "SyntaxError", |
90 "Text", | 90 "Text", |
91 "TypeError", | 91 "TypeError", |
92 "URIError", | 92 "URIError", |
93 "XMLDocument", | 93 "XMLDocument", |
94 "XMLHttpRequest", | 94 "XMLHttpRequest", |
95 "XMLSerializer", | 95 "XMLSerializer", |
96 "XPathEvaluator", | 96 "XPathEvaluator", |
97 "XPathResult", | 97 "XPathResult", |
98 "XSLTProcessor" | 98 "XSLTProcessor" |
99 ]; | 99 ]; |
100 | 100 |
101 var windowFunctionPropertiesNotAllowed = [ | 101 var windowFunctionPropertiesNotAllowed = [ |
102 "addEventListener", | 102 "addEventListener", |
103 "alert", | 103 "alert", |
104 "atob", | 104 "atob", |
105 "btoa", | 105 "btoa", |
106 "captureEvents", | 106 "captureEvents", |
107 "clearInterval", | 107 "clearInterval", |
108 "clearTimeout", | 108 "clearTimeout", |
109 "confirm", | 109 "confirm", |
110 "find", | 110 "find", |
111 "getComputedStyle", | 111 "getComputedStyle", |
112 "getMatchedCSSRules", | 112 "getMatchedCSSRules", |
113 "getSelection", | 113 "getSelection", |
114 "moveBy", | 114 "moveBy", |
115 "moveTo", | 115 "moveTo", |
116 "open", | 116 "open", |
117 "print", | 117 "print", |
118 "prompt", | 118 "prompt", |
119 "releaseEvents", | 119 "releaseEvents", |
120 "removeEventListener", | 120 "removeEventListener", |
121 "resizeBy", | 121 "resizeBy", |
122 "resizeTo", | 122 "resizeTo", |
123 "scroll", | 123 "scroll", |
124 "scrollBy", | 124 "scrollBy", |
125 "scrollTo", | 125 "scrollTo", |
126 "setInterval", | 126 "setInterval", |
127 "setTimeout", | 127 "setTimeout", |
128 "stop", | 128 "stop" |
| 129 ]; |
| 130 |
| 131 var windowFunctionPropertiesAllowed = [ |
129 "blur", | 132 "blur", |
130 "close", | 133 "close", |
131 "focus" | 134 "focus", |
| 135 "postMessage", |
132 ]; | 136 ]; |
133 | 137 |
134 var windowAttributesPropertiesNotAllowed = [ | 138 var windowAttributesPropertiesNotAllowed = [ |
135 "clientInformation", | 139 "clientInformation", |
136 "console", | 140 "console", |
137 "crypto", | 141 "crypto", |
138 "defaultStatus", | 142 "defaultStatus", |
139 "defaultstatus", | 143 "defaultstatus", |
140 "devicePixelRatio", | 144 "devicePixelRatio", |
141 "document", | 145 "document", |
142 "embeds", | 146 "embeds", |
143 "eval", | 147 "eval", |
144 "event", | 148 "event", |
145 "frameElement", | 149 "frameElement", |
146 "images", | 150 "images", |
147 "innerHeight", | 151 "innerHeight", |
148 "innerWidth", | 152 "innerWidth", |
149 "locationbar", | 153 "locationbar", |
150 "menubar", | 154 "menubar", |
151 "name", | 155 "name", |
152 "navigator", | 156 "navigator", |
153 "offscreenBuffering", | 157 "offscreenBuffering", |
154 "onabort", | 158 "onabort", |
155 "onbeforeunload", | 159 "onbeforeunload", |
156 "onblur", | 160 "onblur", |
157 "onchange", | 161 "onchange", |
158 "onclick", | 162 "onclick", |
159 "ondblclick", | 163 "ondblclick", |
160 "onerror", | 164 "onerror", |
161 "onfocus", | 165 "onfocus", |
162 "onkeydown", | 166 "onkeydown", |
163 "onkeypress", | 167 "onkeypress", |
164 "onkeyup", | 168 "onkeyup", |
165 "onload", | 169 "onload", |
166 "onmousedown", | 170 "onmousedown", |
167 "onmousemove", | 171 "onmousemove", |
168 "onmouseout", | 172 "onmouseout", |
169 "onmouseover", | 173 "onmouseover", |
170 "onmouseup", | 174 "onmouseup", |
171 "onmousewheel", | 175 "onmousewheel", |
172 "onreset", | 176 "onreset", |
173 "onresize", | 177 "onresize", |
174 "onscroll", | 178 "onscroll", |
175 "onsearch", | 179 "onsearch", |
176 "onselect", | 180 "onselect", |
177 "onsubmit", | 181 "onsubmit", |
178 "onunload", | 182 "onunload", |
179 "outerHeight", | 183 "outerHeight", |
180 "outerWidth", | 184 "outerWidth", |
181 "pageXOffset", | 185 "pageXOffset", |
182 "pageYOffset", | 186 "pageYOffset", |
183 "personalbar", | 187 "personalbar", |
184 "plugins", | 188 "plugins", |
185 "prototype", | 189 "prototype", |
186 "screen", | 190 "screen", |
187 "screenLeft", | 191 "screenLeft", |
188 "screenTop", | 192 "screenTop", |
189 "screenX", | 193 "screenX", |
190 "screenY", | 194 "screenY", |
191 "scrollX", | 195 "scrollX", |
192 "scrollY", | 196 "scrollY", |
193 "scrollbars", | 197 "scrollbars", |
194 "status", | 198 "status", |
195 "statusbar", | 199 "statusbar", |
196 "toolbar", | 200 "toolbar", |
197 "history", | 201 "history", |
198 ]; | 202 ]; |
199 | 203 |
200 var windowAttributesPropertiesAllowed = [ | 204 var windowAttributesPropertiesAllowed = [ |
201 "closed", | 205 "closed", |
202 "frames", | 206 "frames", |
203 "length", | 207 "length", |
204 "opener", | 208 "opener", |
205 "parent", | 209 "parent", |
(...skipping 27 matching lines...) Expand all Loading... |
233 for (var i = 0; i < windowConstructorPropertiesNotAllowed.length; i+
+) { | 237 for (var i = 0; i < windowConstructorPropertiesNotAllowed.length; i+
+) { |
234 var property = windowConstructorPropertiesNotAllowed[i]; | 238 var property = windowConstructorPropertiesNotAllowed[i]; |
235 shouldBeFalse("canGetDescriptor(targetWindow, '" + property + "'
)"); | 239 shouldBeFalse("canGetDescriptor(targetWindow, '" + property + "'
)"); |
236 } | 240 } |
237 | 241 |
238 log("\n----- tests for getting of not allowed Functions -----\n"); | 242 log("\n----- tests for getting of not allowed Functions -----\n"); |
239 for (var i = 0; i < windowFunctionPropertiesNotAllowed.length; i++)
{ | 243 for (var i = 0; i < windowFunctionPropertiesNotAllowed.length; i++)
{ |
240 var property = windowFunctionPropertiesNotAllowed[i]; | 244 var property = windowFunctionPropertiesNotAllowed[i]; |
241 shouldBeFalse("canGetDescriptor(targetWindow, '" + property + "'
)"); | 245 shouldBeFalse("canGetDescriptor(targetWindow, '" + property + "'
)"); |
242 } | 246 } |
| 247 for (var i = 0; i < windowFunctionPropertiesAllowed.length; i++) { |
| 248 var property = windowFunctionPropertiesAllowed[i]; |
| 249 shouldBeTrue("canGetDescriptor(targetWindow, '" + property + "')
"); |
| 250 } |
243 | 251 |
244 log("\n----- tests for getting of not allowed Attributes -----\n"); | 252 log("\n----- tests for getting of not allowed Attributes -----\n"); |
245 for (var i = 0; i < windowAttributesPropertiesNotAllowed.length; i++
) { | 253 for (var i = 0; i < windowAttributesPropertiesNotAllowed.length; i++
) { |
246 var property = windowAttributesPropertiesNotAllowed[i]; | 254 var property = windowAttributesPropertiesNotAllowed[i]; |
247 if (property == "document") | 255 if (property == "document") |
248 log("Firefox allows access to 'document' but throws an excep
tion when you access its properties."); | 256 log("Firefox allows access to 'document' but throws an excep
tion when you access its properties."); |
249 shouldBeFalse("canGetDescriptor(targetWindow, '" + property + "'
)"); | 257 shouldBeFalse("canGetDescriptor(targetWindow, '" + property + "'
)"); |
250 } | 258 } |
251 for (var i = 0; i < windowAttributesPropertiesAllowed.length; i++) { | 259 for (var i = 0; i < windowAttributesPropertiesAllowed.length; i++) { |
252 var property = windowAttributesPropertiesAllowed[i]; | 260 var property = windowAttributesPropertiesAllowed[i]; |
(...skipping 16 matching lines...) Expand all Loading... |
269 shouldThrowException("targetWindow.history"); | 277 shouldThrowException("targetWindow.history"); |
270 } | 278 } |
271 </script> | 279 </script> |
272 </head> | 280 </head> |
273 <body> | 281 <body> |
274 <p>This test checks cross-frame access security of getOwnPropertyDescriptor (htt
ps://bugs.webkit.org/show_bug.cgi?id=32119).</p> | 282 <p>This test checks cross-frame access security of getOwnPropertyDescriptor (htt
ps://bugs.webkit.org/show_bug.cgi?id=32119).</p> |
275 <iframe src="http://localhost:8000/security/resources/cross-frame-iframe-for-get
-test.html" style=""></iframe> | 283 <iframe src="http://localhost:8000/security/resources/cross-frame-iframe-for-get
-test.html" style=""></iframe> |
276 <pre id="console"></pre> | 284 <pre id="console"></pre> |
277 </body> | 285 </body> |
278 </html> | 286 </html> |
OLD | NEW |