/home/vianto5/.trash/cititower.mx/wp-content/plugins/wordfence/lib
NameSizeModeActions
dashboard/-0755rm
Diff/-0755rm
rest-api/-0755rm
.htaccess3540644editdlrm
compat.php4250644editdlrm
Diff.php57620644editdlrm
diffResult.php28690644editdlrm
email_genericAlert.php14220644editdlrm
email_newIssues.php90350644editdlrm
email_unlockRequest.php23970644editdlrm
email_unsubscribeRequest.php10770644editdlrm
flags.php67790644editdlrm
GeoLite2-Country.mmdb65116250644editdlrm
IPTraf.php11900644editdlrm
IPTrafList.php30540644editdlrm
live_activity.php5800644editdlrm
menu_dashboard.php286710644editdlrm
menu_dashboard_options.php155770644editdlrm
menu_firewall.php21670644editdlrm
menu_firewall_blocking.php104950644editdlrm
menu_firewall_blocking_options.php47370644editdlrm
menu_firewall_waf.php204430644editdlrm
menu_firewall_waf_options.php113570644editdlrm
menu_install.php17670644editdlrm
menu_options.php246310644editdlrm
menu_scanner.php220470644editdlrm
menu_scanner_credentials.php27740644editdlrm
menu_scanner_options.php86150644editdlrm
menu_support.php181940644editdlrm
menu_tools.php14380644editdlrm
menu_tools_diagnostic.php504810644editdlrm
menu_tools_importExport.php13100644editdlrm
menu_tools_livetraffic.php403810644editdlrm
menu_tools_twoFactor.php200700644editdlrm
menu_tools_whois.php47220644editdlrm
menu_wordfence_central.php98890644editdlrm
noc1.key16830644editdlrm
sodium_compat_fast.php1850644editdlrm
sysinfo.php14960644editdlrm
viewFullActivityLog.php15010644editdlrm
wf503.php98600644editdlrm
wfActivityReport.php209450644editdlrm
wfAdminNoticeQueue.php53230644editdlrm
wfAlerts.php75490644editdlrm
wfAPI.php98890644editdlrm
wfArray.php18160644editdlrm
wfBrowscap.php39960644editdlrm
wfBrowscapCache.php2629940644editdlrm
wfBulkCountries.php100020644editdlrm
wfCache.php61660644editdlrm
wfCentralAPI.php255020644editdlrm
wfConfig.php907550644editdlrm
wfCrawl.php67220644editdlrm
wfCredentialsController.php52840644editdlrm
wfCrypt.php41460644editdlrm
wfCurlInterceptor.php10470644editdlrm
wfDashboard.php83990644editdlrm
wfDateLocalization.php3605820644editdlrm
wfDB.php117640644editdlrm
wfDeactivationOption.php21840644editdlrm
wfDiagnostic.php678050644editdlrm
wfDict.php7380644editdlrm
wfDirectoryIterator.php19370644editdlrm
wfFileUtils.php27840644editdlrm
wfHelperBin.php20150644editdlrm
wfHelperString.php21800644editdlrm
wfImportExportController.php33060644editdlrm
wfInaccessibleDirectoryException.php3030644editdlrm
wfInvalidPathException.php2660644editdlrm
wfIpLocation.php17680644editdlrm
wfIpLocator.php28100644editdlrm
wfIPWhitelist.php15960644editdlrm
wfIssues.php279170644editdlrm
wfJWT.php54550644editdlrm
wfLicense.php106820644editdlrm
wfLockedOut.php99590644editdlrm
wfLog.php583960644editdlrm
WFLSPHP52Compatability.php13030644editdlrm
wfMD5BloomFilter.php53270644editdlrm
wfModuleController.php7540644editdlrm
wfNotification.php65640644editdlrm
wfOnboardingController.php84210644editdlrm
wfPersistenceController.php7980644editdlrm
wfRESTAPI.php3770644editdlrm
wfScan.php163000644editdlrm
wfScanEngine.php1361950644editdlrm
wfScanEntrypoint.php10700644editdlrm
wfScanFile.php10370644editdlrm
wfScanFileLink.php4030644editdlrm
wfScanFileListItem.php4080644editdlrm
wfScanFileProperties.php10950644editdlrm
wfScanMonitor.php41520644editdlrm
wfScanPath.php18170644editdlrm
wfSchema.php107440644editdlrm
wfStyle.php2850644editdlrm
wfSupportController.php245520644editdlrm
wfUnlockMsg.php11630644editdlrm
wfUpdateCheck.php278880644editdlrm
wfUtils.php1127860644editdlrm
wfVersionCheckController.php197290644editdlrm
wfVersionSupport.php4470644editdlrm
wfView.php22690644editdlrm
wfViewResult.php14500644editdlrm
wfWebsite.php17920644editdlrm
wordfenceClass.php4516060644editdlrm
wordfenceConstants.php32160644editdlrm
wordfenceHash.php437260644editdlrm
wordfenceScanner.php312000644editdlrm
wordfenceURLHoover.php188040644editdlrm
Edit: /home/vianto5/.trash/cititower.mx/wp-content/plugins/wordfence/lib/wfDB.php (11764B)
base_prefix; } /** * Returns the table with the site (single site installations) or network (multisite) prefix added. * * @param string $table * @param bool $applyCaseConversion Whether or not to convert the table case to what is actually in use. * @return string */ public static function networkTable($table, $applyCaseConversion = true) { if (wfSchema::usingLowercase() && $applyCaseConversion) { $table = strtolower($table); } return self::networkPrefix() . $table; } /** * Returns the table prefix for the given blog ID. On single site installations, this will be equivalent to wfDB::networkPrefix(). * * @param int $blogID * @return string */ public static function blogPrefix($blogID) { global $wpdb; return $wpdb->get_blog_prefix($blogID); } /** * Returns the table with the site (single site installations) or blog-specific (multisite) prefix added. * * @param string $table * @param bool $applyCaseConversion Whether or not to convert the table case to what is actually in use. * @return string */ public static function blogTable($table, $blogID, $applyCaseConversion = true) { if (wfSchema::usingLowercase() && $applyCaseConversion) { $table = strtolower($table); } return self::blogPrefix($blogID) . $table; } /** * Converts the given value into a MySQL hex string. This is needed because WordPress will run an unnecessary `SHOW * FULL COLUMNS` on every hit where we use non-ASCII data (e.g., packed binary-encoded IP addresses) in queries. * * @param string $binary * @return string */ public static function binaryValueToSQLHex($binary) { return sprintf("X'%s'", bin2hex($binary)); } public function querySingle(){ global $wpdb; if(func_num_args() > 1){ $args = func_get_args(); return $wpdb->get_var(call_user_func_array(array($wpdb, 'prepare'), $args)); } else { return $wpdb->get_var(func_get_arg(0)); } } public function querySingleRec(){ //queryInSprintfFormat, arg1, arg2, ... :: Returns a single assoc-array or null if nothing found. global $wpdb; if(func_num_args() > 1){ $args = func_get_args(); return $wpdb->get_row(call_user_func_array(array($wpdb, 'prepare'), $args), ARRAY_A); } else { return $wpdb->get_row(func_get_arg(0), ARRAY_A); } } public function queryWrite(){ global $wpdb; if(func_num_args() > 1){ $args = func_get_args(); return $wpdb->query(call_user_func_array(array($wpdb, 'prepare'), $args)); } else { return $wpdb->query(func_get_arg(0)); } } public function queryWriteArray($query, $array) { global $wpdb; return $wpdb->query($wpdb->prepare($query, $array)); } public function flush(){ //Clear cache global $wpdb; $wpdb->flush(); } public function querySelect(){ //sprintfString, arguments :: always returns array() and will be empty if no results. global $wpdb; if(func_num_args() > 1){ $args = func_get_args(); return $wpdb->get_results(call_user_func_array(array($wpdb, 'prepare'), $args), ARRAY_A); } else { return $wpdb->get_results(func_get_arg(0), ARRAY_A); } } public function queryWriteIgnoreError(){ //sprintfString, arguments global $wpdb; $oldSuppress = $wpdb->suppress_errors(true); $args = func_get_args(); call_user_func_array(array($this, 'queryWrite'), $args); $wpdb->suppress_errors($oldSuppress); } public function columnExists($table, $col){ $table = wfDB::networkTable($table); $q = $this->querySelect("desc $table"); foreach($q as $row){ if($row['Field'] == $col){ return true; } } return false; } public function dropColumn($table, $col){ $table = wfDB::networkTable($table); $this->queryWrite("alter table $table drop column $col"); } public function createKeyIfNotExists($table, $col, $keyName){ $table = wfDB::networkTable($table); $exists = $this->querySingle(<<querySelect("show keys from $table"); foreach($q as $row){ if($row['Key_name'] == $keyName){ $keyFound = true; } } } if(! $keyFound){ $this->queryWrite("alter table $table add KEY $keyName($col)"); } } public function getMaxAllowedPacketBytes(){ $rec = $this->querySingleRec("show variables like 'max_allowed_packet'"); return intval($rec['Value']); } public function getMaxLongDataSizeBytes() { $rec = $this->querySingleRec("show variables like 'max_long_data_size'"); return $rec['Value']; } public function truncate($table){ //Ensures everything is deleted if user is using MySQL >= 5.1.16 and does not have "drop" privileges $this->queryWrite("truncate table $table"); $this->queryWrite("delete from $table"); } public function getLastError(){ global $wpdb; return $wpdb->last_error; } public function realEscape($str){ global $wpdb; return $wpdb->_real_escape($str); } public function insert($table, $columns, $rows, $updateOnDuplicate) { global $wpdb; $rowCount = count($rows); if ($rowCount === 0) return; $columnClause = implode(',', array_keys($columns)); $valuesClause = ltrim(str_repeat(',(' . implode(',', $columns) . ')', $rowCount), ','); if ($updateOnDuplicate) { $duplicateClause = ' ON DUPLICATE KEY UPDATE ' . implode(',', array_map(function($column) { return "{$column} = VALUES({$column})"; }, $updateOnDuplicate)); } else { $duplicateClause = null; } $parameters = []; foreach ($rows as $row) { foreach ($row as $value) { $parameters[] = $value; } } $query = $wpdb->prepare("INSERT INTO {$table} ({$columnClause}) VALUES {$valuesClause}{$duplicateClause}", $parameters); $result = $wpdb->query($query); if ($result === false) throw new RuntimeException("Insert query failed: {$query}"); } private static function getBindingType($value, $override = null) { if ($override !== null) return $override; if (is_int($value)) { return '%d'; } else { return '%s'; } } private static function buildWhereClause($conditions, $bindingOverrides, &$parameters) { $whereExpressions = []; foreach ($conditions as $column => $value) { $override = array_key_exists($column, $bindingOverrides) ? $bindingOverrides[$column] : null; if ($override === null) { $getBinding = [self::class, 'getBindingType']; } else { $getBinding = function($value) use ($override) { return $override; }; } if (is_array($value)) { $whereExpressions[] = "{$column} IN (" . implode(',', array_map($getBinding, $value)) . ')'; $parameters = array_merge($parameters, $value); } else { $whereExpressions[] = "{$column} = " . $getBinding($value); $parameters[] = $value; } } return implode(' AND ', $whereExpressions); } public function update($table, $set, $conditions, $bindingOverrides = []) { global $wpdb; $setExpressions = []; $parameters = []; foreach ($set as $column => $value) { if (is_array($value)) { $parameters[] = $value[1]; $value = $value[0]; } $setExpressions[] = "{$column} = {$value}"; } $whereClause = self::buildWhereClause($conditions, $bindingOverrides, $parameters); $setClause = implode(',', $setExpressions); $query = $wpdb->prepare("UPDATE {$table} SET {$setClause} WHERE {$whereClause}", $parameters); $result = $wpdb->query($query); if ($result === false) throw new RuntimeException("UPDATE query failed: {$query}"); } public function select($table, $columns, $conditions, $bindingOverrides = [], $limit = 500) { global $wpdb; $parameters = []; $selectClause = implode(',', $columns); $whereClause = Self::buildWhereClause($conditions, $bindingOverrides, $parameters); $limitClause = $limit === null ? '' : " LIMIT {$limit}"; $query = $wpdb->prepare("SELECT {$selectClause} FROM {$table} WHERE {$whereClause}{$limitClause}", $parameters); if (count($columns) == 1) { $result = $wpdb->get_col($query); } else { $result = $wpdb->get_results($query, ARRAY_N); } if (!is_array($result)) throw new RuntimeException("SELECT query failed: {$query}"); return $result; } public function selectAll($table, $columns, $conditions, $bindingOverrides = []) { return $this->select($table, $columns, $conditions, $bindingOverrides, null); } } abstract class wfModel { private $data; private $db; private $dirty = false; /** * Column name of the primary key field. * * @return string */ abstract public function getIDColumn(); /** * Table name. * * @return mixed */ abstract public function getTable(); /** * Checks if this is a valid column in the table before setting data on the model. * * @param string $column * @return boolean */ abstract public function hasColumn($column); /** * wfModel constructor. * @param array|int|string $data */ public function __construct($data = array()) { if (is_array($data) || is_object($data)) { $this->setData($data); } else if (is_numeric($data)) { $this->fetchByID($data); } } public function fetchByID($id) { $id = absint($id); $data = $this->getDB()->get_row($this->getDB()->prepare('SELECT * FROM ' . $this->getTable() . ' WHERE ' . $this->getIDColumn() . ' = %d', $id)); if ($data) { $this->setData($data); return true; } return false; } /** * @return bool */ public function save() { if (!$this->dirty) { return false; } $this->dirty = ($this->getPrimaryKey() ? $this->update() : $this->insert()) === false; return !$this->dirty; } /** * @return false|int */ public function insert() { $data = $this->getData(); unset($data[$this->getPrimaryKey()]); $rowsAffected = $this->getDB()->insert($this->getTable(), $data); $this->setPrimaryKey($this->getDB()->insert_id); return $rowsAffected; } /** * @return false|int */ public function update() { return $this->getDB()->update($this->getTable(), $this->getData(), array( $this->getIDColumn() => $this->getPrimaryKey(), )); } /** * @param $name string * @return mixed */ public function __get($name) { if (!$this->hasColumn($name)) { return null; } return array_key_exists($name, $this->data) ? $this->data[$name] : null; } /** * @param $name string * @param $value mixed */ public function __set($name, $value) { if (!$this->hasColumn($name)) { return; } $this->data[$name] = $value; $this->dirty = true; } /** * @return array */ public function getData() { return $this->data; } /** * @param array $data * @param bool $flagDirty */ public function setData($data, $flagDirty = true) { $this->data = array(); foreach ($data as $column => $value) { if ($this->hasColumn($column)) { $this->data[$column] = $value; $this->dirty = (bool) $flagDirty; } } } /** * @return wpdb */ public function getDB() { if ($this->db === null) { global $wpdb; $this->db = $wpdb; } return $this->db; } /** * @param wpdb $db */ public function setDB($db) { $this->db = $db; } /** * @return int */ public function getPrimaryKey() { return $this->{$this->getIDColumn()}; } /** * @param int $value */ public function setPrimaryKey($value) { $this->{$this->getIDColumn()} = $value; } }