Last update: December 20, 2010
This document serves as a guide to Opera's implementation of security permissions and restrictions.
Opera highly recommends all users to update to the latest released Opera version to take advantage of its security advances, stability, and improvements.
The following topics list various security standards support built into the Opera Presto rendering engine. They are identified as supported, partially supported, and not supported where appropriate.
Opera security supports CSS style parsing in the following manner:
Opera security does not support CSS style parsing in the following manner:
expression(...)url(...)-moz-binding</style> taking precedence over comment block parsingOpera security supports the following client-side JavaScript.
getters and settersOpera security partially supports the following client-side JavaScript.
eval method, but when invoked with an alias the code will not run in the scope
from which eval is called.Opera security does not support the following client-side JavaScript.
__proto__charset= being honored on <script src="...">Opera security supports the following content-sniffing behaviors:
content-type is seen: ~130 kBMIME type: ~130 kBcontent-type is receivedcontent-type application/octet-stream content is
just textOpera security partially supports the following content-sniffing behaviors:
content-type value is receivedapplication/octet-stream documentsimage/svg+xml document containing a HTML xmlns payloadOpera security does not support the following content-sniffing behaviors:
application/binary documentsunknown/unknown documentsMIME types not known to OperaMIME when .html, .xml, or .txt is seen in URL parametersMIME when .html, .xml, or .txt is seen in a URL pathtext/plain documents (with or without file extension in URL)image/jpegOpera security supports the following detection methods for non-HTML resources:
ftp:// resources: extension checked then content guessedfile:// resources: extension checked then content guessedOpera security supports downloads and content-disposition in the following manner:
Content-Disposition header (attachments leading to direct downloads)filename*;" (semi-colon) being handled correctly in file namesoctet-stream exempted) including:
content-typecontent-typecontent-typecontent-typeOpera security does not support Downloads and Content-Disposition in the following manner:
Opera security supports character-set handling and detection in the following manner:
content-type header / http-EQUIV tag precedence: headerOpera security does not support character-set handling and detection in the following manner:
http-EQUIV if the header charset is invalidus-ascii parsing stripping of high bitsutf-7 character set or any of the following associated conditions
utf-8 on HTML pagesutf-8EUC-JPBig5Opera security supports document caching the following manner:
expires being relative to datedate is needed for expires to workcache-control overrides expires in http/1.0max-age stops cachingOpera security does not support document caching in the following manner:
expires value stops cachingno-cache winning on cache-control conflictspragma: no-cacheOpera security supports pop-up and dialog filtering logic in the following manner:
window.alert() being limited or suppressedwindow.confirm() being limited or suppressedwindow.prompt() being limited or suppressedOpera security does not support pop-up and dialog filtering logic in the following manner:
non-onclick eventswindow.print() being limited or suppressedOpera security supports the following window-appearance permissions:
Opera security does not support the following window permissions:
Opera security supports the following execution timeouts and memory limits:
Opera security does not support the following page transition logic:
Opera security supports the DOM in the following manner:
window being the same object as window.windowgetElementsByName doing look ups by ID= values.innerHTML assignments being truncated at NULlocation.* assignments being truncated at NULOpera security does not support the DOM in the following manner:
document.URL being writableOpera security supports HTML in the following manner:
<foo <bar...)<foobar="<baz(eof))!-type tags being parsed in a non-HTML manner (<!foo bar="-->"... breaks)Opera security does not support HTML in the following manner:
foo and bar interpreted)<foo=">bar...)Opera security supports HTML entity encoding in the following manner:
Opera security does not support HTML entity encoding in the following manner:
Opera security supports HTTP authentication in the following manner:
<img><script> and style sheets?<iframe>https passwords being restricted to SSL onlyContent-Length header value overriding actual content lengthOpera security partially supports HTTP authentication in the following manner:
<embed> / <applet>Opera security does not support HTTP authentication in the following manner:
Opera security supports HTTPS in the following manner:
<img><iframe>Opera security partially supports HTTPS in the following manner:
<script><applet><embed>Opera security does not support HTTPS in the following manner:
referer header being sent on HTTPS to HTTP navigationOpera security supports the dividing of local/remote networks in the following manner:
Opera implements the following security-blocked ports:
file: specific:Opera security does not support the following URL-scheme access rules:
file: resource, e.g., HTTP, including:
<img> file: targets<script> file: targets<iframe> file: targets<embed> file: targets<applet> file: targetsfile: targetsjavascript: specific:
Opera security supports the running of the following javascript: specific rules:
<iframe> javascript: targets
Opera security partially supports the running of the following javascript: specific rules:
<img> javascript: targets<script> javascript: targets<embed> javascript: targetsjavascript: targets
Opera security does not support the running of the following javascript: specific rules:
<applet> javascript: targetsOpera security supports the following redirection restrictions:
XMLhttpRequest redirectionOpera security partially supports the following redirection restrictions:
location redirection to data:location redirection to javascript:refresh redirection to javascript:refresh redirection to data:Opera security does not support the following redirection restrictions:
location redirection to file:refresh redirection to file:Opera security supports a white list of top-level domains (TDLs) that are trusted to enforce a safe policy on domain names. Opera for Windows, Mac and UNIX will check for an updated list of trusted TLDs on a regular basis. Please see our Knowledge Base article for more information. Top-level domain registrars who have enforced strict domain name policies are encouraged to contact Opera Software to be included in the browser's white list, provided that their policies are approved.
Important note: TDLs not on the white list are not allowed to have mixes of Latin1, Greek, Cyrillic or Cherokee in the same label; otherwise, all permitted characters may be used.
Opera security supports the following simultaneous connection limits:
Opera security supports the following non-HTML document-type behaviors:
javascript: or data: URLs in feedsimage/svg+xml documents containing HTML xmlns payloadsOpera security partially supports the following image formats:
Opera security does not support the following non-HTML document-type behavior:
Opera 10.x security supports the following operating system/platform-specific features:
Opera security supports the following plug-in-supported content:
TYPE= / CLASSID= values: #1content-type=value if type= is missing: #2Opera security does not support (ignores) the following Plug-in-supported content:
type= is not recognizedtype= is missingcontent-type value if type= is not recognizedOpera security supports the following DOM access policy:
Opera security partially supports the following DOM access policy:
Opera security does not support the following DOM access policies:
document.domain being set to right-hand IP address fragmentsXMLHttpRequest
Opera security supports the following XMLHttpRequest policies:
Opera security does not support the following XMLHttpRequest policies:
If-* family (If-Modified-Since, etc)XMLhttpRequest security policies
Opera security supports the following XMLHttpRequest policies:
XMLhttpRequest seeing other HTTP non-200 responses
Opera security partially supports the following XMLHttpRequest policies:
XMLhttpRequest
Opera security does not support the following XMLHttpRequest policies:
connnect trace (Implements a white list of known schemes and replaces non-white listed schemes with
GET)XMLhttpRequest seeing httponly cookiesXMLhttpRequest seeing invalid HTTP 30x responsesXMLhttpRequest seeing cross-domain HTTP 30x responsesXMLhttpRequestOpera security supports the following cookie policies:
ccTLD cookie specifies a second-level domain, or a domain more than one level
uphttponly cookiesdocument.cookie on file URLsSet-Cookie2 standardmax-age parametermax-age=0 to delete cookieshttponly flagOpera security does not support the following cookie policies:
document.cookie working on ftp URLsSet-Cookie pairsOpera security does not support the following Java (applets) policy:
Opera security supports the following origin inheritance rules:
iframes: parentabout:blank windows: parentjavascript: windows: parentdata: windows: blankOpera security supports the following navigation and content-inclusion features:
click()getComputedStyle for CSScurrentStyle for CSSOpera security partially supports the following navigation and content-inclusion features:
enctype=text/plain on formsOpera security does not support the following navigation and content-inclusion features:
onerror messages produced for <script>onerror messages produced for <style>Opera security supports arbitrary page mashups (user interface redressing) in the following manner:
opacity ("decoy underneath")iframe containers ("decoy on top")Opera security does not support arbitrary page mashups (user interface redressing) in the following manner:
scrollBy scrollingOpera security supports DOM access control in the following manner:
postMessage APIOpera security partially supports DOM access control in the following manner:
target= links repositioning unrelated targetsOpera security does not support DOM access control in the following manner:
window.open() looking up unrelated windowsframes[] looking up unrelated windows<win>.frames[] accessing third-party iframes<win>.frames[] iteratorwindow.open() repositioning unrelated windows<win>.history.* methods calling on unrelated targets<win>.location.* properties being set on unrelated targets<win>.location.* methods being called on unrelated targets<win>.document.write() being called on unrelated targetswindow.on* properties across domainswindow.opener across domainswindow.name across domainsframeElements methods across domainsOpera security supports privacy-related side channels in the following manner:
:visited stylesonerror firing on all common HTTP errorsOpera security does not support privacy-related side channels in the following manner:
delete <win>.var probingOpera security supports the following third-party cookie rules:
Opera security does not support the following third-party cookie rules:
Opera security supports URLs in the following manner:
Opera security does not support URLs in the following manner:
Opera security supports unicode in URLs the following manner:
XMLhttpRequest calls: page encodingXMLhttpRequest calls: page encodingOpera security supports the following true URL Schemes:
Opera security does not support the following true URL Schemes:
Opera security does not support the following pseudo URL schemes:
Opera security supports the following internal feature-access URL schemes:
Opera security does not support the following internal feature-access URL schemes:
Widgets are Web applications that run on a desktop, mobile or other device. Opera supports Widgets. The Opera Widgets specification was submitted to the W3C Widgets 1.0 and is currently a W3C working draft.
network="public"
A new security model has been intoduced for Opera 10 (Opera Presto 2.2) which among other things means that widgets
do not have network access on by default. In order to enable network access for non-intranet sites, add a network
attribute to the widget element in the config.xml of your widget with the value "public". For
example:
<widget network="public">
...
</widget>
This will make your widget work as intended in Opera 10, but will not affect previous versions. Older browsers will simply ignore the network attribute and give your widget access as per the existing security model.
network="private" and network="public private"
The widget element attributes network="private" and network="public private" can
enable network access for either private networks, public networks, or both. For example:
<widget network="private">
...
</widget>
<widget network="public private">
...
</widget>
The "private network" attribute value depends on a definition in a widgets.xml file within an Opera installation.
Need help? Hit F1 anytime while using Opera to access our online help files, or go here.