frameOptions is used to prevent security vulnerabilities like clickjacking. With the frameOptions configuration you define whether OpenUI5 is allowed to run embedded in a frame or only from trusted origins or not at all.
OpenUI5 provides the following configuration options for frameOptions:
|
Mode |
Default |
Description |
|---|---|---|
|
allow |
X |
Allows to be embedded from all origins |
|
deny |
Denies to be embedded from all origins |
|
|
trusted |
Allows to be embedded from trusted origins according to the same-origin policiy and to be embedded to origins allowed by the whitelist service |
With frameOptionsConfig the following additional configuration options can be set:
|
Parameter |
Type |
Default |
Description |
|---|---|---|---|
|
callback |
function(bSuccess) |
Function that is called with the success state Note
The function can be synchronously called from the OpenUI5 bootstrap script. The DOM (document.body) may not be accessible. |
|
|
timeout |
number |
10000 |
After the delay, the page remains blocked and the provided callback is invoked (milliseconds) |
|
blockEvents |
boolean |
true |
Defines whether keyboard, mouse and touch events are blocked |
|
showBlockLayer |
boolean |
true |
Defines whether an invisible block layer is rendered to prevent interaction with the UI |
|
allowSameOrigin |
boolean |
true |
Defines whether same origin domains are allowed or not |
|
whitelist |
string |
Contains the domain whitelist (comma-separated) |
If the application is not intended to run in a frame, set frameOptions to deny:
#!html<script id='sap-ui-bootstrap'
src='resources/sap-ui-core.js'
data-sap-ui-frameOptions='deny'>
</script>To restrict the embedding to same-origin domains, set frameOptions to trusted. The callback in the following code sample is called with a boolean as success state and can be used to implement an application-specific behavior.
#!html
<script>
window["sap-ui-config"] = {
frameOptions: 'trusted',
frameOptionsConfig: {
callback: function(bSuccess) {
if (bSuccess) {
alert("App is allowed to run!");
} else {
alert("App is not allowed to run!");
}
}
}
};
</script>
<script id='sap-ui-bootstrap'
src='resources/sap-ui-core.js'>
</script>To allow that the OpenUI5 application is embedded in cross-origin domains, configure a whitelist service. The whitelist service checks whether the application can run in the parent origin, or not.
#!html<script>
window["sap-ui-config"] = {
whitelistService: 'url/to/whitelist/service',
frameOptions: 'trusted',
frameOptionsConfig: {
callback: function(bSuccess) {
if (bSuccess) {
alert("App is allowed to run!");
} else {
alert("App is not allowed to run!");
}
}
}
};
</script>
<script id='sap-ui-bootstrap'
src='resources/sap-ui-core.js'>
</script>Alternatively, a <meta> tag can be used to configure the whitelistService and set the frameOptions to trusted. This only applies if the whitelistService or frameOptions configuration is not set in the OpenUI5 configuration.
#!html<meta name="sap.whitelistService" content="url/to/whitelist/service" />
<script id='sap-ui-bootstrap'
src='resources/sap-ui-core.js'>
</script>