function encodeBlock($input) { global $charset; $new = ''; if (isset($charset)) { $charset = strtolower($charset); if (function_exists('mb_convert_encoding')) { $input = mb_convert_encoding($input, 'HTML-ENTITIES', $charset); } } # Return javascript decoder return '<script type="text/javascript">document.write(arcfour(ginf.enc.u,base64_decode(\'' . arcfour('encrypt', $GLOBALS['unique_salt'], $input) . '\')));</script>'; }
function injectionJS() { global $CONFIG, $URL, $options, $base, $bitfield, $jsFlags; # Prepare options to make available for our javascript # Constants $siteURL = GLYPE_URL; $scriptName = SCRIPT_NAME; # URL parts if ($options['encodePage']) { $fullURL = isset($URL['href']) ? arcfour('encrypt', $GLOBALS['unique_salt'], $URL['href']) : ''; $targetHost = isset($URL['scheme_host']) ? arcfour('encrypt', $GLOBALS['unique_salt'], $URL['scheme_host']) : ''; $targetPath = isset($URL['path']) ? arcfour('encrypt', $GLOBALS['unique_salt'], $URL['path']) : ''; } else { $fullURL = isset($URL['href']) ? $URL['href'] : ''; $targetHost = isset($URL['scheme_host']) ? $URL['scheme_host'] : ''; $targetPath = isset($URL['path']) ? $URL['path'] : ''; } # Optional values (may not be set): $base = isset($base) ? $base : ''; $unique = isset($GLOBALS['unique_salt']) ? $GLOBALS['unique_salt'] : ''; # Do we want to override javascript and/or test javascript client-side capabilities? $optional = isset($URL) && $CONFIG['override_javascript'] ? ',override:1' : ''; $optional .= $jsFlags === false ? ',test:1' : ''; # Path to our javascript file $jsFile = GLYPE_URL . '/includes/main.js?' . $CONFIG['version']; return <<<OUT \t<script type="text/javascript">ginf={url:'{$siteURL}',script:'{$scriptName}',target:{h:'{$targetHost}',p:'{$targetPath}',b:'{$base}',u:'{$fullURL}'},enc:{u:'{$unique}',e:'{$options['encodeURL']}',x:'{$options['encodePage']}',p:'{$CONFIG['path_info_urls']}'},b:'{$bitfield}'{$optional}}</script> \t<script type="text/javascript" src="{$jsFile}"></script> OUT; }