shell bypass 403
<?php
use Wolfcast\BrowserDetection;
function momota_safari_polyfills() {
if ( apply_filters( 'kubio_is_enabled', false ) ) {
return;
}
$browser = new BrowserDetection();
$version = $browser->getVersion();
$os_version = $browser->getPlatformVersion( true );
$is_safari_without_gap_support = false;
// because every browser on iOS is actually Safari we just check for the iOS version
if ( $browser->getPlatform() === BrowserDetection::PLATFORM_IOS && version_compare( $os_version, '14.5', '<' ) ) {
$is_safari_without_gap_support = true;
}
if ( $browser->getPlatform() === BrowserDetection::PLATFORM_MACINTOSH && $browser->getName() === BrowserDetection::BROWSER_SAFARI && $browser->compareVersions( $version, '14' ) <= 1 ) {
$is_safari_without_gap_support = true;
}
if ( $is_safari_without_gap_support ) {
add_action(
'wp_head',
function () {
?>
<script>
(function () {
var flex = document.createElement('div');
flex.style.display = 'flex';
flex.style.flexDirection = 'column';
flex.style.rowGap = '1px';
// create two, elements inside it
flex.appendChild(document.createElement('div'));
flex.appendChild(document.createElement('div'));
// append to the DOM (needed to obtain scrollHeight)
document.documentElement.appendChild(flex);
var isSupported = flex.scrollHeight === 1; // flex container should be 1px high from the row-gap
flex.parentNode.removeChild(flex);
if (!isSupported) {
console.warn('Kubio - Browser does not support flex gap ');
document.documentElement.classList.add('kubio-enable-gap-fallback');
}
})();
</script>
<?php
},
5
);
}
if ( $browser->getPlatform() === BrowserDetection::PLATFORM_IOS || $browser->getPlatform() === BrowserDetection::PLATFORM_MACINTOSH ) {
add_action(
'wp_head',
function () {
?>
<script>
(function () {
var docEL = document.documentElement;
var style = docEL.style;
if (!("backgroundAttachment" in style)) return false;
var oldValue = style.backgroundAttachment;
style.backgroundAttachment = "fixed";
var isSupported = (style.backgroundAttachment === "fixed");
style.backgroundAttachment = oldValue;
if (navigator.userAgent.toLowerCase().indexOf('mac') !== -1 && navigator.maxTouchPoints) {
isSupported = false;
}
if (!isSupported) {
console.warn('Kubio - Browser does not support attachment fix');
document.documentElement.classList.add('kubio-attachment-fixed-support-fallback');
}
})()
</script>
<?php
},
5
);
}
}
add_action( 'init', 'momota_safari_polyfills' );