HEX
Server: Apache/2.4.6 (CentOS) mpm-itk/2.4.7-04 mod_fcgid/2.3.9 PHP/5.4.16
System: Linux dvm.vladweb.ru 3.10.0-1160.119.1.el7.x86_64 #1 SMP Tue Jun 4 14:43:51 UTC 2024 x86_64
User: region-gk.ru (1016)
PHP: 7.3.33
Disabled: NONE
Upload Files
File: /home/region-gk.ru/data/www/region-gk.ru/wp-content/plugins/backwpup/inc/class-sanitize-path.php
<?php
/**
 * Class BackWPup_Sanitize_Path
 */
class BackWPup_Sanitize_Path {

	/**
	 * Slug Sanitizer Pattern
	 *
	 * @var string The pattern for array keys
	 */
	const SLUG_SANITIZE_PATTERN = '/[^a-z0-9\-\_]*/';
	/**
	 * Path Sanitizer Pattern
	 *
	 * @var string The pattern to sanitize the paths
	 */
	const PATH_SANITIZE_PATTERN = '/[^a-zA-Z0-9\/\-\_\.]+/';

	/**
	 * Sanitize path
	 *
	 * @param string $path The path to sanitize.
	 *
	 * @return string The sanitized path.
	 */
	public static function sanitize_path( $path ) {

		while ( false !== strpos( $path, '..' ) ) {
			$path = str_replace( '..', '', $path );
		}
		$path = ( '/' !== $path ) ? $path : '';

		return $path;
	}

	/**
	 * Sanitize Slug By RegExp
	 *
	 * @param string $slug The slug to sanitize.
	 *
	 * @return string The sanitize slug. May be empty.
	 */
	public static function sanitize_slug_reg_exp( $slug ) {

		return preg_replace( static::SLUG_SANITIZE_PATTERN, '', $slug );
	}

	/**
	 * Sanitize file path By RegExp
	 *
	 * @param string $path The path to sanitize.
	 *
	 * @return string The sanitized path
	 */
	public static function sanitize_path_regexp( $path ) {

		// Sanitize template path and remove the path separator.
		// locate_template build the path in this way {STYLESHEET|TEMPLATE}PATH . '/' . $template_name.
		return self::sanitize_path(
			preg_replace( static::PATH_SANITIZE_PATTERN, '', $path )
		);
	}
}