forked from GNUsocial/gnu-social
Upgrade anti-framing, anti-clickjacking code
This commit is contained in:
parent
321060ca71
commit
895447f3dc
@ -334,9 +334,12 @@ class Action extends HTMLOutputter // lawsuit
|
|||||||
$this->inlineScript('var _peopletagAC = "' .
|
$this->inlineScript('var _peopletagAC = "' .
|
||||||
common_local_url('peopletagautocomplete') . '";');
|
common_local_url('peopletagautocomplete') . '";');
|
||||||
$this->showScriptMessages();
|
$this->showScriptMessages();
|
||||||
// Frame-busting code to avoid clickjacking attacks.
|
// Anti-framing code to avoid clickjacking attacks in older browsers.
|
||||||
|
// This will show a blank page if the page is being framed, which is
|
||||||
|
// consistent with the behavior of the 'X-Frame-Options: SAMEORIGIN'
|
||||||
|
// header, which prevents framing in newer browser.
|
||||||
if (common_config('javascript', 'bustframes')) {
|
if (common_config('javascript', 'bustframes')) {
|
||||||
$this->inlineScript('if (window.top !== window.self) { window.top.location.href = window.self.location.href; }');
|
$this->inlineScript('if (window.top !== window.self) { document.write = ""; window.top.location = window.self.location; setTimeout(function () { document.body.innerHTML = ""; }, 1); window.self.onload = function () { document.body.innerHTML = ""; }; }');
|
||||||
}
|
}
|
||||||
Event::handle('EndShowStatusNetScripts', array($this));
|
Event::handle('EndShowStatusNetScripts', array($this));
|
||||||
Event::handle('EndShowLaconicaScripts', array($this));
|
Event::handle('EndShowLaconicaScripts', array($this));
|
||||||
|
@ -108,6 +108,13 @@ class HTMLOutputter extends XMLOutputter
|
|||||||
|
|
||||||
header('Content-Type: '.$type);
|
header('Content-Type: '.$type);
|
||||||
|
|
||||||
|
// Output anti-framing headers to prevent clickjacking (respected by newer
|
||||||
|
// browsers).
|
||||||
|
if (common_config('javascript', 'bustframes')) {
|
||||||
|
header('X-XSS-Protection 1; mode=block'); // detect XSS Reflection attacks
|
||||||
|
header('X-Frame-Options: SAMEORIGIN'); // no rendering if origin mismatch
|
||||||
|
}
|
||||||
|
|
||||||
$this->extraHeaders();
|
$this->extraHeaders();
|
||||||
if (preg_match("/.*\/.*xml/", $type)) {
|
if (preg_match("/.*\/.*xml/", $type)) {
|
||||||
// Required for XML documents
|
// Required for XML documents
|
||||||
|
Loading…
Reference in New Issue
Block a user