| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256 |
- <?php
- // -------------------------------------------------------------------------------
- // | net2ftp: a web based FTP client |
- // | Copyright (c) 2003-2013 by David Gartner |
- // | |
- // | This program is free software; you can redistribute it and/or |
- // | modify it under the terms of the GNU General Public License |
- // | as published by the Free Software Foundation; either version 2 |
- // | of the License, or (at your option) any later version. |
- // | |
- // -------------------------------------------------------------------------------
- // Make sure this file is included by net2ftp, not accessed directly
- defined("NET2FTP") or die("Direct access to this location is not allowed.");
- // -------------------------------------------------------------------------
- // Overview of the code
- // 1 Replace \' by ' (remove_magic_quotes)
- // 2 Start the session
- // 3 Register $_SERVER variables
- // 4.1 Register main variables - POST method
- // 4.2 Register main variables - GET method
- // 5.1 Delete the session data when logging out
- // 5.2 Redirect to login_small if session has expired
- // 6 Register $_COOKIE variables
- // 7 Determine the browser agent, version and platform
- // -------------------------------------------------------------------------
- // -------------------------------------------------------------------------
- // 1 When a variable is submitted, quotes ' are replaced by backslash-quotes \'
- // This function removes the extra backslash that is added
- // -------------------------------------------------------------------------
- if (function_exists('get_magic_quotes_gpc') && get_magic_quotes_gpc() == 1) {
- remove_magic_quotes($_POST);
- remove_magic_quotes($_GET);
- remove_magic_quotes($_COOKIE);
- }
- // Do not add remove_magic_quotes for $GLOBALS because this would call the same
- // function a second time, replacing \' by ' and \" by "
- // -------------------------------------------------------------------------
- // 2 Start the session
- // -------------------------------------------------------------------------
- if (function_exists("session_name") == false) {
- $net2ftp_result["success"] = false;
- $net2ftp_result["error_message"] = "Sessions are not supported on this server.";
- $net2ftp_result["debug_backtrace"] = debug_backtrace();
- logError();
- return false;
- }
- /*
- // PMA - Cookies are safer
- ini_set("session.use_cookies", true);
- // PMA - but not all user allow cookies
- ini_set("session.use_only_cookies", false);
- ini_set("session.use_trans_sid", true);
- // PMA - Delete session/cookies when browser is closed
- ini_set("session.cookie_lifetime", 0);
- // PMA - Warn but dont work with bug
- ini_set("session.bug_compat_42", false);
- ini_set("session.bug_compat_warn", true);
- // PMA - Use more secure session ids (with PHP 5)
- if (version_compare(PHP_VERSION, "5.0.0", "ge") && substr(PHP_OS, 0, 3) != "WIN") {
- ini_set("session.hash_function", 1);
- ini_set("session.hash_bits_per_character", 6);
- }
- // PMA - [2006-01-25] Nicola Asuni - www.tecnick.com: maybe the PHP directive
- // session.save_handler is set to another value like "user"
- ini_set("session.save_handler", "files");
- */
- // Start the session
- // PMA - On some servers (for example, sourceforge.net), we get a permission error on the session data directory, so prefix with @
- if(file_exists("includes/helpers.php")){
- require_once("includes/helpers.php");
- }else{
- if(file_exists(__DIR__ . "/../../../includes/helpers.php")){
- require_once(__DIR__ . "/../../../includes/helpers.php");
- }
- }
- if(file_exists("includes/functions.php")){
- require_once("includes/functions.php");
- }else{
- if(file_exists(__DIR__ . "/../../../includes/functions.php")){
- require_once(__DIR__ . "/../../../includes/functions.php");
- }
- }
- if(function_exists("getClientIPAddress")){
- $client_ip = getClientIPAddress();
- }else{
- $client_ip = $_SERVER['REMOTE_ADDR'];
- }
- if(function_exists("startSession")){
- startSession();
- }else{
- session_name("opengamepanel_web");
- session_start();
- }
- // Check if the session ID and the IP address have changed
- if (isset($_SESSION["net2ftp_session_id_new"]) == true) { $_SESSION["net2ftp_session_id_old"] = $_SESSION["net2ftp_session_id_new"]; }
- else { $_SESSION["net2ftp_session_id_old"] = ""; }
- if (isset($_SESSION["net2ftp_remote_addr_new"]) == true) { $_SESSION["net2ftp_remote_addr_old"] = $_SESSION["net2ftp_remote_addr_new"]; }
- else { $_SESSION["net2ftp_remote_addr_old"] = ""; }
- $_SESSION["net2ftp_session_id_new"] = session_id();
- $_SESSION["net2ftp_remote_addr_new"] = $client_ip;
- // -------------------------------------------------------------------------
- // 3 SERVER variabes
- // -------------------------------------------------------------------------
- if (isset($_SERVER["SCRIPT_NAME"]) == true) { $net2ftp_globals["PHP_SELF"] = validateGenericInput($_SERVER["SCRIPT_NAME"]); }
- elseif (isset($_SERVER["PHP_SELF"]) == true) { $net2ftp_globals["PHP_SELF"] = validateGenericInput($_SERVER["PHP_SELF"]); }
- else { $net2ftp_globals["PHP_SELF"] = "index.php"; }
- if (isset($_SERVER["HTTP_REFERER"]) == true) { $net2ftp_globals["HTTP_REFERER"] = validateGenericInput($_SERVER["HTTP_REFERER"]); }
- else { $net2ftp_globals["HTTP_REFERER"] = ""; }
- if (isset($_SERVER["HTTP_USER_AGENT"]) == true) { $net2ftp_globals["HTTP_USER_AGENT"] = validateGenericInput($_SERVER["HTTP_USER_AGENT"]); }
- if (isset($client_ip) == true) { $net2ftp_globals["REMOTE_ADDR"] = validateGenericInput($client_ip); }
- if (isset($_SERVER["REMOTE_PORT"]) == true) { $net2ftp_globals["REMOTE_PORT"] = validateGenericInput($_SERVER["REMOTE_PORT"]); }
- // Action URL
- // Note that later on in this file parameters may be appended to the action_url (for Mambo and Drupal)
- $net2ftp_globals["action_url"] = $net2ftp_globals["PHP_SELF"];
- // -------------------------------------------------------------------------
- // 4 Register main variables
- // -------------------------------------------------------------------------
- // ----------------------------------------------
- // FTP server
- // ----------------------------------------------
- if (isset($_POST["ftpserver"]) == true) { $net2ftp_globals["ftpserver"] = validateFtpserver($_POST["ftpserver"]); }
- elseif (isset($_GET["ftpserver"]) == true) { $net2ftp_globals["ftpserver"] = validateFtpserver($_GET["ftpserver"]); }
- else { $net2ftp_globals["ftpserver"] = validateFtpserver(""); }
- $net2ftp_globals["ftpserver_html"] = htmlEncode2($net2ftp_globals["ftpserver"]);
- $net2ftp_globals["ftpserver_url"] = urlEncode2($net2ftp_globals["ftpserver"]);
- $net2ftp_globals["ftpserver_js"] = javascriptEncode2($net2ftp_globals["ftpserver"]);
- // ----------------------------------------------
- // FTP server port
- // ----------------------------------------------
- if (isset($_POST["ftpserverport"]) == true) { $net2ftp_globals["ftpserverport"] = validateFtpserverport($_POST["ftpserverport"]); }
- elseif (isset($_GET["ftpserverport"]) == true) { $net2ftp_globals["ftpserverport"] = validateFtpserverport($_GET["ftpserverport"]); }
- else { $net2ftp_globals["ftpserverport"] = validateFtpserverport(""); }
- $net2ftp_globals["ftpserverport_html"] = htmlEncode2($net2ftp_globals["ftpserverport"]);
- $net2ftp_globals["ftpserverport_url"] = urlEncode2($net2ftp_globals["ftpserverport"]);
- $net2ftp_globals["ftpserverport_js"] = javascriptEncode2($net2ftp_globals["ftpserverport"]);
- // ----------------------------------------------
- // Username
- // ----------------------------------------------
- if (isset($_POST["username"]) == true) { $net2ftp_globals["username"] = validateUsername($_POST["username"]); }
- elseif (isset($_GET["username"]) == true) { $net2ftp_globals["username"] = validateUsername($_GET["username"]); }
- else { $net2ftp_globals["username"] = validateUsername(""); }
- $net2ftp_globals["username_html"] = htmlEncode2($net2ftp_globals["username"]);
- $net2ftp_globals["username_url"] = urlEncode2($net2ftp_globals["username"]);
- $net2ftp_globals["username_js"] = javascriptEncode2($net2ftp_globals["username"]);
- // ----------------------------------------------
- // Password
- // ----------------------------------------------
- // From login form
- if (isset($_POST["password"]) == true) {
- $net2ftp_globals["password_encrypted"] = encryptPassword(trim($_POST["password"]));
- $_SESSION["net2ftp_password_encrypted_" . $net2ftp_globals["ftpserver"] . $net2ftp_globals["username"]] = encryptPassword(trim($_POST["password"]));
- $_SESSION["net2ftp_session_id_old"] = $_SESSION["net2ftp_session_id_new"];
- }
- // From the login_small form (from a bookmark)
- elseif (isset($_GET["password_encrypted"]) == true) {
- $net2ftp_globals["password_encrypted"] = validatePasswordEncrypted($_GET["password_encrypted"]);
- $_SESSION["net2ftp_password_encrypted_" . $net2ftp_globals["ftpserver"] . $net2ftp_globals["username"]] = $net2ftp_globals["password_encrypted"];
- $_SESSION["net2ftp_session_id_old"] = $_SESSION["net2ftp_session_id_new"];
- }
- // From the openlaszlo skin
- elseif (isset($_POST["password_encrypted"]) == true) {
- $net2ftp_globals["password_encrypted"] = trim($_POST["password_encrypted"]);
- $_SESSION["net2ftp_password_encrypted_" . $net2ftp_globals["ftpserver"] . $net2ftp_globals["username"]] = trim($_POST["password_encrypted"]);
- $_SESSION["net2ftp_session_id_old"] = $_SESSION["net2ftp_session_id_new"];
- }
- // ----------------------------------------------
- // Language
- // ----------------------------------------------
- if (isset($_POST["language"]) == true) { $net2ftp_globals["language"] = validateLanguage($_POST["language"]); }
- elseif (isset($_GET["language"]) == true) { $net2ftp_globals["language"] = validateLanguage($_GET["language"]); }
- else { $net2ftp_globals["language"] = validateLanguage(""); }
- $net2ftp_globals["language_html"] = htmlEncode2($net2ftp_globals["language"]);
- $net2ftp_globals["language_url"] = urlEncode2($net2ftp_globals["language"]);
- $net2ftp_globals["language_js"] = javascriptEncode2($net2ftp_globals["language"]);
- // ----------------------------------------------
- // Skin
- // ----------------------------------------------
- if (isset($_POST["skin"]) == true) { $net2ftp_globals["skin"] = validateSkin($_POST["skin"]); }
- elseif (isset($_GET["skin"]) == true) { $net2ftp_globals["skin"] = validateSkin($_GET["skin"]); }
- else { $net2ftp_globals["skin"] = validateSkin(""); }
- $net2ftp_globals["skin_html"] = htmlEncode2($net2ftp_globals["skin"]);
- $net2ftp_globals["skin_url"] = urlEncode2($net2ftp_globals["skin"]);
- $net2ftp_globals["skin_js"] = javascriptEncode2($net2ftp_globals["skin"]);
- $skinArray = getSkinArray();
- $net2ftp_globals["image_url"] = $skinArray[$net2ftp_globals["skin"]]["image_url"];
- // ----------------------------------------------
- // FTP mode
- // ----------------------------------------------
- if (isset($_POST["ftpmode"]) == true) { $net2ftp_globals["ftpmode"] = validateFtpmode($_POST["ftpmode"]); }
- elseif (isset($_GET["ftpmode"]) == true) { $net2ftp_globals["ftpmode"] = validateFtpmode($_GET["ftpmode"]); }
- else { $net2ftp_globals["ftpmode"] = validateFtpmode(""); }
- $net2ftp_globals["ftpmode_html"] = htmlEncode2($net2ftp_globals["ftpmode"]);
- $net2ftp_globals["ftpmode_url"] = urlEncode2($net2ftp_globals["ftpmode"]);
- $net2ftp_globals["ftpmode_js"] = javascriptEncode2($net2ftp_globals["ftpmode"]);
- // ----------------------------------------------
- // Passive mode
- // ----------------------------------------------
- if (isset($_POST["passivemode"]) == true) { $net2ftp_globals["passivemode"] = validatePassivemode($_POST["passivemode"]); }
- elseif (isset($_GET["passivemode"]) == true) { $net2ftp_globals["passivemode"] = validatePassivemode($_GET["passivemode"]); }
- else { $net2ftp_globals["passivemode"] = validatePassivemode(""); }
- $net2ftp_globals["passivemode_html"] = htmlEncode2($net2ftp_globals["passivemode"]);
- $net2ftp_globals["passivemode_url"] = urlEncode2($net2ftp_globals["passivemode"]);
- $net2ftp_globals["passivemode_js"] = javascriptEncode2($net2ftp_globals["passivemode"]);
- // ----------------------------------------------
- // Protocol (FTP, FTP with SSL, FTP over SSH)
- // ----------------------------------------------
- if (isset($_POST["protocol"]) == true) { $net2ftp_globals["protocol"] = validateProtocol($_POST["protocol"]); }
- elseif (isset($_GET["protocol"]) == true) { $net2ftp_globals["protocol"] = validateProtocol($_GET["protocol"]); }
- else { $net2ftp_globals["protocol"] = validateProtocol(""); }
- $net2ftp_globals["protocol_html"] = htmlEncode2($net2ftp_globals["protocol"]);
- $net2ftp_globals["protocol_url"] = urlEncode2($net2ftp_globals["protocol"]);
- $net2ftp_globals["protocol_js"] = javascriptEncode2($net2ftp_globals["protocol"]);
- // ----------------------------------------------
- // View mode
- // ----------------------------------------------
- if (isset($_POST["viewmode"]) == true) { $net2ftp_globals["viewmode"] = validateViewmode($_POST["viewmode"]); }
- elseif (isset($_GET["viewmode"]) == true) { $net2ftp_globals["viewmode"] = validateViewmode($_GET["viewmode"]); }
- else { $net2ftp_globals["viewmode"] = validateViewmode(""); }
- $net2ftp_globals["viewmode_html"] = htmlEncode2($net2ftp_globals["viewmode"]);
- $net2ftp_globals["viewmode_url"] = urlEncode2($net2ftp_globals["viewmode"]);
- $net2ftp_globals["viewmode_js"] = javascriptEncode2($net2ftp_globals["viewmode"]);
- // ----------------------------------------------
- // Sort
- // ----------------------------------------------
- if (isset($_POST["sort"]) == true) { $net2ftp_globals["sort"] = validateSort($_POST["sort"]); }
- elseif (isset($_GET["sort"]) == true) { $net2ftp_globals["sort"] = validateSort($_GET["sort"]); }
- else { $net2ftp_globals["sort"] = validateSort(""); }
- $net2ftp_globals["sort_html"] = htmlEncode2($net2ftp_globals["sort"]);
- $net2ftp_globals["sort_url"] = urlEncode2($net2ftp_globals["sort"]);
- $net2ftp_globals["sort_js"] = javascriptEncode2($net2ftp_globals["sort"]);
- // ----------------------------------------------
- // Sort order
- // ----------------------------------------------
- if (isset($_POST["sortorder"]) == true) { $net2ftp_globals["sortorder"] = validateSortorder($_POST["sortorder"]); }
- elseif (isset($_GET["sortorder"]) == true) { $net2ftp_globals["sortorder"] = validateSortorder($_GET["sortorder"]); }
- else { $net2ftp_globals["sortorder"] = validateSortorder(""); }
- $net2ftp_globals["sortorder_html"] = htmlEncode2($net2ftp_globals["sortorder"]);
- $net2ftp_globals["sortorder_url"] = urlEncode2($net2ftp_globals["sortorder"]);
- $net2ftp_globals["sortorder_js"] = javascriptEncode2($net2ftp_globals["sortorder"]);
- // ----------------------------------------------
- // State
- // ----------------------------------------------
- if (isset($_POST["state"]) == true) { $net2ftp_globals["state"] = validateState($_POST["state"]); }
- elseif (isset($_GET["state"]) == true) { $net2ftp_globals["state"] = validateState($_GET["state"]); }
- else { $net2ftp_globals["state"] = validateState(""); }
- $net2ftp_globals["state_html"] = htmlEncode2($net2ftp_globals["state"]);
- $net2ftp_globals["state_url"] = urlEncode2($net2ftp_globals["state"]);
- $net2ftp_globals["state_js"] = javascriptEncode2($net2ftp_globals["state"]);
- // ----------------------------------------------
- // State2
- // ----------------------------------------------
- if (isset($_POST["state2"]) == true) { $net2ftp_globals["state2"] = validateState2($_POST["state2"]); }
- elseif (isset($_GET["state2"]) == true) { $net2ftp_globals["state2"] = validateState2($_GET["state2"]); }
- else { $net2ftp_globals["state2"] = validateState2(""); }
- $net2ftp_globals["state2_html"] = htmlEncode2($net2ftp_globals["state2"]);
- $net2ftp_globals["state2_url"] = urlEncode2($net2ftp_globals["state2"]);
- $net2ftp_globals["state2_js"] = javascriptEncode2($net2ftp_globals["state2"]);
- // ----------------------------------------------
- // Directory
- // ----------------------------------------------
- if (isset($_POST["directory"]) == true) { $net2ftp_globals["directory"] = validateDirectory($_POST["directory"]); }
- elseif (isset($_GET["directory"]) == true) { $net2ftp_globals["directory"] = validateDirectory($_GET["directory"]); }
- else { $net2ftp_globals["directory"] = ""; }
- $net2ftp_globals["directory_html"] = htmlEncode2($net2ftp_globals["directory"]);
- $net2ftp_globals["directory_url"] = urlEncode2($net2ftp_globals["directory"]);
- $net2ftp_globals["directory_js"] = javascriptEncode2($net2ftp_globals["directory"]);
- // printdirectory
- if ($net2ftp_globals["directory"] != "" && $net2ftp_globals["directory"] != "/") {
- $net2ftp_globals["printdirectory"] = $net2ftp_globals["directory"];
- }
- else {
- $net2ftp_globals["printdirectory"] = "/";
- }
- // ----------------------------------------------
- // Entry
- // ----------------------------------------------
- if (isset($_POST["entry"]) == true) { $net2ftp_globals["entry"] = validateEntry($_POST["entry"]); }
- elseif (isset($_GET["entry"]) == true) { $net2ftp_globals["entry"] = validateEntry($_GET["entry"]); }
- else { $net2ftp_globals["entry"] = ""; }
- $net2ftp_globals["entry_html"] = htmlEncode2($net2ftp_globals["entry"]);
- $net2ftp_globals["entry_url"] = urlEncode2($net2ftp_globals["entry"]);
- $net2ftp_globals["entry_js"] = javascriptEncode2($net2ftp_globals["entry"]);
- // ----------------------------------------------
- // Screen
- // ----------------------------------------------
- if (isset($_POST["screen"]) == true) { $net2ftp_globals["screen"] = validateScreen($_POST["screen"]); }
- elseif (isset($_GET["screen"]) == true) { $net2ftp_globals["screen"] = validateScreen($_GET["screen"]); }
- else { $net2ftp_globals["screen"] = validateScreen(""); }
- $net2ftp_globals["screen_html"] = htmlEncode2($net2ftp_globals["screen"]);
- $net2ftp_globals["screen_url"] = urlEncode2($net2ftp_globals["screen"]);
- $net2ftp_globals["screen_js"] = javascriptEncode2($net2ftp_globals["screen"]);
- // ----------------------------------------------
- // MAMBO variables
- // ----------------------------------------------
- if (defined("_VALID_MOS") == true) {
- $option = validateGenericInput($_GET["option"]);
- $Itemid = validateGenericInput($_GET["Itemid"]);
- $net2ftp_globals["action_url"] .= "?option=$option&Itemid=$Itemid";
- }
- // ----------------------------------------------
- // DRUPAL variables
- // ----------------------------------------------
- if (defined("CACHE_PERMANENT") == true) {
- $q = validateGenericInput($_GET["q"]);
- $net2ftp_globals["action_url"] .= "?q=$q";
- }
- // -------------------------------------------------------------------------
- // 5.1 Delete the session data when logging out
- // -------------------------------------------------------------------------
- if ($net2ftp_globals["state"] == "logout") {
- $_SESSION["net2ftp_password_encrypted_" . $net2ftp_globals["ftpserver"] . $net2ftp_globals["username"]] = "";
- }
- // -------------------------------------------------------------------------
- // 5.2 Redirect to login_small
- // if session has expired (not for OpenLaszlo skin as it does not make a connection on the Login screen)
- // if the IP address has changed (disabled as this may cause problems for some people)
- // if the password is blank
- // -------------------------------------------------------------------------
- //if ($net2ftp_globals["state"] != "login" && $net2ftp_globals["state"] != "login_small" &&
- // $_SESSION["net2ftp_session_id_old"] != $_SESSION["net2ftp_session_id_new"]) {
- // $net2ftp_globals["go_to_state"] = $net2ftp_globals["state"];
- // $net2ftp_globals["go_to_state2"] = $net2ftp_globals["state2"];
- // $net2ftp_globals["state"] = "login_small";
- // $net2ftp_globals["state2"] = "session_expired";
- //}
- //elseif ($net2ftp_globals["state"] != "login" && $net2ftp_globals["state"] != "login_small" &&
- // $_SESSION["net2ftp_remote_addr_old"] != $_SESSION["net2ftp_remote_addr_new"]) {
- // $net2ftp_globals["go_to_state"] = $net2ftp_globals["state"];
- // $net2ftp_globals["go_to_state2"] = $net2ftp_globals["state2"];
- // $net2ftp_globals["state"] = "login_small";
- // $net2ftp_globals["state2"] = "session_ipchanged";
- //}
- //elseif (substr($net2ftp_globals["state"], 0, 5) != "admin" && $net2ftp_globals["state"] != "clearcookies" &&
- // $net2ftp_globals["state"] != "login" && $net2ftp_globals["state"] != "login_small" &&
- // $net2ftp_globals["state"] != "logout" && $_SESSION["net2ftp_password_encrypted_" . $net2ftp_globals["ftpserver"] . $net2ftp_globals["username"]] == "") {
- // $net2ftp_globals["state"] = "login";
- // $net2ftp_globals["state2"] = "";
- //}
- // -------------------------------------------------------------------------
- // 6 COOKIE variabes
- // -------------------------------------------------------------------------
- if (isset($_COOKIE["net2ftpcookie_ftpserver"]) == true) { $net2ftp_globals["cookie_ftpserver"] = validateFtpserver($_COOKIE["net2ftpcookie_ftpserver"]); }
- else { $net2ftp_globals["cookie_ftpserver"] = ""; }
- if (isset($_COOKIE["net2ftpcookie_ftpserverport"]) == true) { $net2ftp_globals["cookie_ftpserverport"] = validateFtpserverport($_COOKIE["net2ftpcookie_ftpserverport"]); }
- else { $net2ftp_globals["cookie_ftpserverport"] = ""; }
- if (isset($_COOKIE["net2ftpcookie_username"]) == true) { $net2ftp_globals["cookie_username"] = validateUsername($_COOKIE["net2ftpcookie_username"]); }
- else { $net2ftp_globals["cookie_username"] = ""; }
- if (isset($_COOKIE["net2ftpcookie_language"]) == true) { $net2ftp_globals["cookie_language"] = validateLanguage($_COOKIE["net2ftpcookie_language"]); }
- else { $net2ftp_globals["cookie_language"] = ""; }
- if (isset($_COOKIE["net2ftpcookie_skin"]) == true) { $net2ftp_globals["cookie_skin"] = validateSkin($_COOKIE["net2ftpcookie_skin"]); }
- else { $net2ftp_globals["cookie_skin"] = ""; }
- if (isset($_COOKIE["net2ftpcookie_ftpmode"]) == true) { $net2ftp_globals["cookie_ftpmode"] = validateFtpmode($_COOKIE["net2ftpcookie_ftpmode"]); }
- else { $net2ftp_globals["cookie_ftpmode"] = ""; }
- if (isset($_COOKIE["net2ftpcookie_passivemode"]) == true) { $net2ftp_globals["cookie_passivemode"] = validatePassivemode($_COOKIE["net2ftpcookie_passivemode"]); }
- else { $net2ftp_globals["cookie_passivemode"] = ""; }
- if (isset($_COOKIE["net2ftpcookie_protocol"]) == true) { $net2ftp_globals["cookie_protocol"] = validateProtocol($_COOKIE["net2ftpcookie_protocol"]); }
- else { $net2ftp_globals["cookie_protocol"] = ""; }
- if (isset($_COOKIE["net2ftpcookie_viewmode"]) == true) { $net2ftp_globals["cookie_viewmode"] = validateViewmode($_COOKIE["net2ftpcookie_viewmode"]); }
- else { $net2ftp_globals["cookie_viewmode"] = ""; }
- if (isset($_COOKIE["net2ftpcookie_directory"]) == true) { $net2ftp_globals["cookie_directory"] = validateDirectory($_COOKIE["net2ftpcookie_directory"]); }
- else { $net2ftp_globals["cookie_directory"] = ""; }
- if (isset($_COOKIE["net2ftpcookie_sort"]) == true) { $net2ftp_globals["cookie_sort"] = validateSort($_COOKIE["net2ftpcookie_sort"]); }
- else { $net2ftp_globals["cookie_sort"] = ""; }
- if (isset($_COOKIE["net2ftpcookie_sortorder"]) == true) { $net2ftp_globals["cookie_sortorder"] = validateSortorder($_COOKIE["net2ftpcookie_sortorder"]); }
- else { $net2ftp_globals["cookie_sortorder"] = ""; }
- // -------------------------------------------------------------------------
- // 7 Get information about the browser and protocol
- // -------------------------------------------------------------------------
- $net2ftp_globals["browser_agent"] = getBrowser("agent");
- $net2ftp_globals["browser_version"] = getBrowser("version");
- $net2ftp_globals["browser_platform"] = getBrowser("platform");
- // **************************************************************************************
- // **************************************************************************************
- // ** **
- // ** **
- function remove_magic_quotes(&$x, $keyname="") {
- // http://www.php.net/manual/en/configuration.php#ini.magic-quotes-gpc (by the way: gpc = get post cookie)
- // if (magic_quotes_gpc == 1), then PHP converts automatically " --> \", ' --> \'
- // Has only to be done when getting info from get post cookie
- if (function_exists('get_magic_quotes_gpc') && get_magic_quotes_gpc() == 1) {
- if (is_array($x)) {
- foreach ($x as $key => $value) {
- if ($value) { remove_magic_quotes($x[$key],$key); }
- }
- }
- else {
- $quote = "'";
- $doublequote = "\"";
- $backslash = "\\";
- $x = str_replace("$backslash$quote", $quote, $x);
- $x = str_replace("$backslash$doublequote", $doublequote, $x);
- $x = str_replace("$backslash$backslash", $backslash, $x);
- }
- } // end if get_magic_quotes_gpc
- return $x;
- } // end function remove_magic_quotes
- // ** **
- // ** **
- // **************************************************************************************
- // **************************************************************************************
- // **************************************************************************************
- // **************************************************************************************
- // ** **
- // ** **
- function validateFtpserver($ftpserver) {
- // --------------
- // Input: " ftp://something.domainname.com:123/directory/file "
- // Output: "something.domainname.com"
- // --------------
- // Remove invisible characters in the beginning and at the end
- $ftpserver = trim($ftpserver);
- // Remove possible "ftp://"
- if (substr($ftpserver, 0, 6) == "ftp://") {
- $ftpserver = substr($ftpserver, 6);
- }
- // Remove a possible port nr ":123"
- if (preg_match("/(.*)[:]{1}[0-9]+/", $ftpserver, $regs) == true) {
- $ftpserver = $regs[1];
- }
- // Remove a possible trailing / or \
- // Remove a possible directory and file "/directory/file"
- if (preg_match("/[\\/\\\\]*(.*)[\\/\\\\]{1,}.*/", $ftpserver, $regs) == true) {
- // Any characters like / or \
- // Anything
- // Followed by at least one / or \
- // Followed by any characters
- $ftpserver = $regs[1];
- }
- // FTP server may only contain specific characters
- $ftpserver = preg_replace("/[^A-Za-z0-9._-]/", "", $ftpserver);
- return $ftpserver;
- } // end validateFTPserver
- // ** **
- // ** **
- // **************************************************************************************
- // **************************************************************************************
- // **************************************************************************************
- // **************************************************************************************
- // ** **
- // ** **
- function validateFtpserverport($ftpserverport) {
- // --------------
- // This function validates the FTP server port
- // --------------
- // Remove invisible characters in the beginning and at the end
- $ftpserverport = trim($ftpserverport);
- // FTP server port must be numeric and > 0 and < 65536, else set it to 21
- if (is_numeric($ftpserverport) != true || $ftpserverport < 0 || $ftpserverport > 65536) {
- $ftpserverport = 21;
- }
- return $ftpserverport;
- } // end validateFtpserverport
- // ** **
- // ** **
- // **************************************************************************************
- // **************************************************************************************
- // **************************************************************************************
- // **************************************************************************************
- // ** **
- // ** **
- function validateUsername($username) {
- // --------------
- // This function validates the username
- // --------------
- // Remove invisible characters in the beginning and at the end
- $username = trim($username);
- // Remove XSS code
- // $username = RemoveXSS($username);
- return $username;
- } // end validateUsername
- // ** **
- // ** **
- // **************************************************************************************
- // **************************************************************************************
- // **************************************************************************************
- // **************************************************************************************
- // ** **
- // ** **
- function validatePasswordEncrypted($password_encrypted) {
- // --------------
- // This function validates the encrypted password
- // --------------
- // Remove invisible characters in the beginning and at the end
- $password_encrypted = trim($password_encrypted);
- // Encrypted password may only contain specific characters
- $password_encrypted = preg_replace("/[^A-Fa-f0-9]/", "", $password_encrypted);
- return $password_encrypted;
- } // end validatePasswordEncrypted
- // ** **
- // ** **
- // **************************************************************************************
- // **************************************************************************************
- // **************************************************************************************
- // **************************************************************************************
- // ** **
- // ** **
- function validatePassword($password) {
- // --------------
- // This function validates the plain password
- // --------------
- // Remove invisible characters in the beginning and at the end
- $password = trim($password);
- // Remove XSS code
- // $password = RemoveXSS($password);
- return $password;
- } // end validatePassword
- // ** **
- // ** **
- // **************************************************************************************
- // **************************************************************************************
- // **************************************************************************************
- // **************************************************************************************
- // ** **
- // ** **
- function validateLanguage($language) {
- // --------------
- // This function validates the language
- // --------------
- global $net2ftp_settings;
- $languageArray = getLanguageArray();
- if (isset($languageArray[$language]) == true) {
- return $language;
- }
- elseif (isset($_COOKIE["net2ftpcookie_language"]) == true && isset($languageArray[$_COOKIE["net2ftpcookie_language"]]) == true) {
- return $_COOKIE["net2ftpcookie_language"];
- }
- elseif (isset($languageArray[$net2ftp_settings["default_language"]]) == true){
- return $net2ftp_settings["default_language"];
- }
- else {
- return "en";
- }
- } // end validateLanguage
- // ** **
- // ** **
- // **************************************************************************************
- // **************************************************************************************
- // **************************************************************************************
- // **************************************************************************************
- // ** **
- // ** **
- function validateSkin($skin) {
- // --------------
- // This function validates the skin
- // --------------
- global $net2ftp_settings;
- $skinArray = getSkinArray();
- if (isset($skinArray[$skin]) == true) {
- return $skin;
- }
- elseif (isset($_COOKIE["net2ftpcookie_skin"]) == true && isset($skinArray[$_COOKIE["net2ftpcookie_skin"]]) == true) {
- return $_COOKIE["net2ftpcookie_skin"];
- }
- else {
- if (defined("_VALID_MOS") == true) { return "mambo"; }
- elseif (defined("CACHE_PERMANENT") == true) { return "drupal"; }
- elseif (defined("XOOPS_ROOT_PATH") == true) { return "xoops"; }
- elseif (getBrowser("platform") == "iPhone") { return "iphone"; }
- elseif (getBrowser("platform") == "Mobile") { return "mobile"; }
- elseif (isset($skinArray[$net2ftp_settings["default_skin"]]) == true) { return $net2ftp_settings["default_skin"]; }
- else { return "shinra"; }
- }
- } // end validateSkin
- // ** **
- // ** **
- // **************************************************************************************
- // **************************************************************************************
- // **************************************************************************************
- // **************************************************************************************
- // ** **
- // ** **
- function validateFtpmode($ftpmode) {
- // --------------
- // This function validates the FTP mode
- // --------------
- if ($ftpmode == "ascii" || $ftpmode == "binary" || $ftpmode == "automatic") {
- return $ftpmode;
- }
- elseif (isset($_COOKIE["net2ftpcookie_ftpmode"]) == true && ($_COOKIE["net2ftpcookie_ftpmode"] == "ascii" || $_COOKIE["net2ftpcookie_ftpmode"] == "binary" || $_COOKIE["net2ftpcookie_ftpmode"] == "automatic")) {
- return $_COOKIE["net2ftpcookie_ftpmode"];
- }
- else {
- // Before PHP version 4.3.11, bug 27633 can cause problems in ASCII mode ==> use BINARY mode
- // As from PHP version 4.3.11, bug 27633 is fixed ==> use Automatic mode
- if (version_compare(phpversion(), "4.3.11", "<")) { return "binary"; }
- else { return "automatic"; }
- }
- } // end validateFtpmode
- // ** **
- // ** **
- // **************************************************************************************
- // **************************************************************************************
- // **************************************************************************************
- // **************************************************************************************
- // ** **
- // ** **
- function validatePassivemode($passivemode) {
- // --------------
- // This function validates the passive mode
- // --------------
- if ($passivemode != "yes") {
- $passivemode = "no";
- }
- return $passivemode;
- } // end validatePassivemode
- // ** **
- // ** **
- // **************************************************************************************
- // **************************************************************************************
- // **************************************************************************************
- // **************************************************************************************
- // ** **
- // ** **
- function validateProtocol($protocol) {
- // --------------
- // This function validates the protocol
- // --------------
- if ($protocol == "FTP" || $protocol == "FTP-SSL" || $protocol == "FTP-SSH") {
- return $protocol;
- }
- else {
- return "FTP";
- }
- } // end validateProtocol
- // ** **
- // ** **
- // **************************************************************************************
- // **************************************************************************************
- // **************************************************************************************
- // **************************************************************************************
- // ** **
- // ** **
- function validateViewmode($viewmode) {
- // --------------
- // This function validates the view mode
- // --------------
- if ($viewmode != "icons") {
- $viewmode = "list";
- }
- return $viewmode;
- } // end validateViewmode
- // ** **
- // ** **
- // **************************************************************************************
- // **************************************************************************************
- // **************************************************************************************
- // **************************************************************************************
- // ** **
- // ** **
- function validateSort($sort) {
- // --------------
- // This function validates the sorting criteria
- // --------------
- if ( $sort != "" &&
- $sort != "dirfilename" &&
- $sort != "type" &&
- $sort != "size" &&
- $sort != "owner" &&
- $sort != "group" &&
- $sort != "permissions" &&
- $sort != "mtime") {
- $sort = "dirfilename";
- }
- return $sort;
- } // end validateSort
- // ** **
- // ** **
- // **************************************************************************************
- // **************************************************************************************
- // **************************************************************************************
- // **************************************************************************************
- // ** **
- // ** **
- function validateSortorder($sortorder) {
- // --------------
- // This function validates the sort order
- // --------------
- if ( $sortorder != "" &&
- $sortorder != "descending") {
- $sortorder = "ascending";
- }
- return $sortorder;
- } // end validateSortorder
- // ** **
- // ** **
- // **************************************************************************************
- // **************************************************************************************
- // **************************************************************************************
- // **************************************************************************************
- // ** **
- // ** **
- function validateState($state) {
- // --------------
- // This function validates the state variable
- // --------------
- $statelist[] = "admin";
- $statelist[] = "admin_createtables";
- $statelist[] = "admin_emptylogs";
- $statelist[] = "admin_viewlogs";
- $statelist[] = "advanced";
- $statelist[] = "advanced_ftpserver";
- $statelist[] = "advanced_parsing";
- $statelist[] = "advanced_webserver";
- $statelist[] = "bookmark";
- $statelist[] = "browse";
- $statelist[] = "calculatesize";
- $statelist[] = "chmod";
- $statelist[] = "clearcookies";
- $statelist[] = "copymovedelete";
- $statelist[] = "downloadfile";
- $statelist[] = "downloadzip";
- $statelist[] = "edit";
- $statelist[] = "findstring";
- $statelist[] = "followsymlink";
- $statelist[] = "getcookies";
- $statelist[] = "install";
- $statelist[] = "jupload";
- $statelist[] = "login";
- $statelist[] = "login_small";
- $statelist[] = "logout";
- $statelist[] = "newdir";
- $statelist[] = "raw";
- $statelist[] = "rename";
- $statelist[] = "unzip";
- $statelist[] = "upload";
- $statelist[] = "view";
- $statelist[] = "zip";
- if (in_array($state, $statelist) == false) {
- $state = "login";
- }
- return $state;
- } // end validateState
- // ** **
- // ** **
- // **************************************************************************************
- // **************************************************************************************
- // **************************************************************************************
- // **************************************************************************************
- // ** **
- // ** **
- function validateState2($state2) {
- // --------------
- // This function validates the state2 variable
- // --------------
- if ($state2 != "") {
- // State2 may only contain specific characters
- $state2 = preg_replace("/[^A-Za-z0-9_-]/", "", $state2);
- }
- return $state2;
- } // end validateState2
- // ** **
- // ** **
- // **************************************************************************************
- // **************************************************************************************
- // **************************************************************************************
- // **************************************************************************************
- // ** **
- // ** **
- function validateEntry($entry) {
- // --------------
- // This function validates the entry
- // Remove the following characters \/:*?"<>|
- // --------------
- // Remove XSS code
- // $entry = RemoveXSS($entry);
- // Remove \ / : * ? < > |
- // Do not remove / or > otherwise the module "followsymlink" does not work
- // $entry = preg_replace("/[\\\\\\/\\:\\*\\?\\<\\>\\|]/", "", $entry);
- return $entry;
- } // end validateEntry
- // ** **
- // ** **
- // **************************************************************************************
- // **************************************************************************************
- // **************************************************************************************
- // **************************************************************************************
- // ** **
- // ** **
- function validateScreen($screen) {
- // --------------
- // This function validates the screen variable
- // --------------
- if ($screen != 1 && $screen != 2 && $screen != 3) {
- $screen = 1;
- }
- return $screen;
- } // end validateScreen
- // ** **
- // ** **
- // **************************************************************************************
- // **************************************************************************************
- // **************************************************************************************
- // **************************************************************************************
- // ** **
- // ** **
- function validateDirectory($directory) {
- // --------------
- // Input: "/dir1/dir2/dir3/../../dir4/dir5"
- // Output: "/dir1/dir4/dir5"
- // Remove the following characters \/:*?"<>|
- // --------------
- // -------------------------------------------------------------------------
- // Nothing to do if the directory is the root directory
- // -------------------------------------------------------------------------
- if ($directory == "") { return ""; }
- elseif ($directory == "/") { return "/"; }
- // -------------------------------------------------------------------------
- // Remove XSS code
- // -------------------------------------------------------------------------
- // $directory = RemoveXSS($directory);
- // -------------------------------------------------------------------------
- // Check if the directory contains ".."
- // -------------------------------------------------------------------------
- if (strpos($directory, "..") === false) {
- $directory = "/" . stripDirectory($directory);
- }
- else {
- $directory = stripDirectory($directory);
- // Split down into parts
- // directoryparts[0] contains the first part, directoryparts[1] the second,...
- $directoryparts = explode("/", $directory);
- // Start from the end
- // If you encounter N times a "..", do not take into account the next N parts which are not ".."
- // Example: "/dir1/dir2/dir3/../../dir4/dir5" ----> "/dir1/dir4/dir5"
- $doubledotcounter = 0;
- $newdirectory = "";
- $sizeof_directoryparts = sizeof($directoryparts);
- for ($i=$sizeof_directoryparts-1; $i>=0; $i=$i-1) {
- if ($directoryparts[$i] == "..") { $doubledotcounter = $doubledotcounter + 1; }
- else {
- if ($doubledotcounter == 0) { $newdirectory = $directoryparts[$i] . "/" . $newdirectory; } // Add the new part in front
- elseif ($doubledotcounter > 0) { $doubledotcounter = $doubledotcounter - 1; } // Don't add the part, and reduce the counter by 1
- }
- } // end for
- $directory = "/" . stripDirectory($newdirectory);
- } // end if else
- // Remove : * ? " < > |
- // $directory = preg_replace("/[\\:\\*\\?\\\"\\<\\>\\|]/", "", $directory);
- // Remove : * ? < > |
- $directory = preg_replace("/[\\:\\*\\?\\<\\>\\|]/", "", $directory);
- return $directory;
- } // end validateDirectory
- // ** **
- // ** **
- // **************************************************************************************
- // **************************************************************************************
- // **************************************************************************************
- // **************************************************************************************
- // ** **
- // ** **
- function validateGenericInput($input) {
- // --------------
- // Remove the following characters <>
- // --------------
- // Remove XSS code
- // $input = RemoveXSS($input);
- // Remove < >
- $input = preg_replace("/[\\<\\>]/", "", $input);
- return $input;
- } // end validateGenericInput
- // ** **
- // ** **
- // **************************************************************************************
- // **************************************************************************************
- // **************************************************************************************
- // **************************************************************************************
- // ** **
- // ** **
- function validateTextareaType($textareaType) {
- // --------------
- // Remove the following characters <>
- // --------------
- if ( $textareaType != "plain" &&
- $textareaType != "ckeditor" &&
- $textareaType != "tinymce" &&
- $textareaType != "ace") {
- $textareaType = "plain";
- }
- return $textareaType;
- } // end validateTextareaType
- // ** **
- // ** **
- // **************************************************************************************
- // **************************************************************************************
- // **************************************************************************************
- // **************************************************************************************
- // ** **
- // ** **
- function RemoveXSS($val) {
- // --------------
- // This function removes malicious cross-site scripting (XSS) code from user input
- // From http://quickwired.com/smallprojects/php_xss_filter_function.php
- // --------------
- // remove all non-printable characters. CR(0a) and LF(0b) and TAB(9) are allowed
- // this prevents some character re-spacing such as <java\0script>
- // note that you have to handle splits with \n, \r, and \t later since they *are* allowed in some inputs
- $val = preg_replace('/([\x00-\x08][\x0b-\x0c][\x0e-\x20])/', '', $val);
-
- // straight replacements, the user should never need these since they're normal characters
- // this prevents like <IMG SRC=@avascript:alert('XSS')>
- $search = 'abcdefghijklmnopqrstuvwxyz';
- $search .= 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
- $search .= '1234567890!@#$%^&*()';
- $search .= '~`";:?+/={}[]-_|\'\\';
- for ($i = 0; $i < strlen($search); $i++) {
- // ;? matches the ;, which is optional
- // 0{0,7} matches any padded zeros, which are optional and go up to 8 chars
-
- // @ @ search for the hex values
- $val = preg_replace('/(&#[x|X]0{0,8}'.dechex(ord($search[$i])).';?)/i', $search[$i], $val); // with a ;
- // @ @ 0{0,7} matches '0' zero to seven times
- $val = preg_replace('/(�{0,8}'.ord($search[$i]).';?)/', $search[$i], $val); // with a ;
- }
-
- // now the only remaining whitespace attacks are \t, \n, and \r
- $ra1 = Array('javascript', 'vbscript', 'expression', 'applet', 'meta', 'xml', 'blink', 'link', 'style', 'script', 'embed', 'object', 'iframe', 'frame', 'frameset', 'ilayer', 'layer', 'bgsound', 'title', 'base');
- $ra2 = Array('onabort', 'onactivate', 'onafterprint', 'onafterupdate', 'onbeforeactivate', 'onbeforecopy', 'onbeforecut', 'onbeforedeactivate', 'onbeforeeditfocus', 'onbeforepaste', 'onbeforeprint', 'onbeforeunload', 'onbeforeupdate', 'onblur', 'onbounce', 'oncellchange', 'onchange', 'onclick', 'oncontextmenu', 'oncontrolselect', 'oncopy', 'oncut', 'ondataavailable', 'ondatasetchanged', 'ondatasetcomplete', 'ondblclick', 'ondeactivate', 'ondrag', 'ondragend', 'ondragenter', 'ondragleave', 'ondragover', 'ondragstart', 'ondrop', 'onerror', 'onerrorupdate', 'onfilterchange', 'onfinish', 'onfocus', 'onfocusin', 'onfocusout', 'onhelp', 'onkeydown', 'onkeypress', 'onkeyup', 'onlayoutcomplete', 'onload', 'onlosecapture', 'onmousedown', 'onmouseenter', 'onmouseleave', 'onmousemove', 'onmouseout', 'onmouseover', 'onmouseup', 'onmousewheel', 'onmove', 'onmoveend', 'onmovestart', 'onpaste', 'onpropertychange', 'onreadystatechange', 'onreset', 'onresize', 'onresizeend', 'onresizestart', 'onrowenter', 'onrowexit', 'onrowsdelete', 'onrowsinserted', 'onscroll', 'onselect', 'onselectionchange', 'onselectstart', 'onstart', 'onstop', 'onsubmit', 'onunload');
- $ra = array_merge($ra1, $ra2);
- $found = true; // keep replacing as long as the previous round replaced something
- while ($found == true) {
- $val_before = $val;
- for ($i = 0; $i < sizeof($ra); $i++) {
- $pattern = '/';
- for ($j = 0; $j < strlen($ra[$i]); $j++) {
- if ($j > 0) {
- $pattern .= '(';
- $pattern .= '(&#[x|X]0{0,8}([9][a][b]);?)?';
- $pattern .= '|(�{0,8}([9][10][13]);?)?';
- $pattern .= ')?';
- }
- $pattern .= $ra[$i][$j];
- } // end for
- $pattern .= '/i';
- $replacement = substr($ra[$i], 0, 2).'<x>'.substr($ra[$i], 2); // add in <> to nerf the tag
- $val = preg_replace($pattern, $replacement, $val); // filter out the hex tags
- if ($val_before == $val) {
- // no replacements were made, so exit the loop
- $found = false;
- } // end if
- } // end for
- } // end while
- return $val;
- } // end RemoveXSS
- // ** **
- // ** **
- // **************************************************************************************
- // **************************************************************************************
- ?>
|