Security - xiechao00/node-webkit GitHub Wiki
node-webkit adds Node.js support and enhancement in DOM for trusted code and content. For untrusted code and content, it should remain in a normal frame or iframe, which is the same as the one in browser. So there are 2 kinds of frames in node-webkit: Node frame and normal frame.
As application developer, one should be keep in mind that contents should be loaded in correct frames.
Which frames are Node frames and which are not?
- iframes that have the attribute
nwdisableare normal frames. (NOTE:nwfaketopattribute should be specified withnwdisable. The reason is in https://github.com/rogerwang/node-webkit/issues/534) - Local files, [app protocol](App protocol) frames (or remote sites when URL matches the
node-remotefield) are Node frames. (nodejsfield should not be set to false in this case) - Frames opened with
window.openare normal frames when these flags are set:new-instance=trueandnodejs=false
What can Node frames do?
- Node support: access to
require,global,process,Bufferandrootfrom Node. - Universal access to other frames: this can get around all cross-domain security checks defined in DOM.
- Ignore
X-Frame-Optionsheaders for child frames. - Others listed in [Changes to DOM](Changes to dom)
nwdisable is added in 0.5.0 rc2; nwfaketop is added in 0.5.1