<?php
/**
* File: AntiXSS.php
*
* @author LTD Shalvasoft
* @author Shalva Kvaratskhelia
* @project Shalva Soft Framework
* @version 1.0
*/
class AntiXSS{
/**
* Call native PHP function "htmlspecialchars"
* @param $string_arg
* @return string
*/
public function html_special_character($string_arg){
}
/**
* Call native PHP function "htmlentities"
* @param $string_arg
* @return string
*/
public function html_entitles($string_arg){
}
/**
* Call native PHP function "strip_tags"
* @param $string_arg
* @return string
*/
public function stripe_tags($string_arg){
}
/**
* Call native PHP function "stripe_slashes"
* @param $string_arg
* @return string
*/
public function stripe_slashes($string_arg){
}
/**
* Call native PHP function "filter_var" and "FILTER_SANITIZE_STRING"
* @param $string_arg
* @return mixed
*/
public function filter_sanitize($string_arg){
return filter_var($string_arg, FILTER_SANITIZE_STRING
); }
/**
* Call native PHP function "filter_var" and "FILTER_VALIDATE_EMAIL"
* @param $string_arg
* @return mixed
*/
public function filter_email($string_arg){
return filter_var($string_arg, FILTER_VALIDATE_EMAIL
); }
/**
* Clean accents from string and other characters
* @param $string_arg
* @return mixed
*/
public function rare_accent($string_arg){
return $string_arg;
}
/**
* Clean special characters from string
* @param $string_arg
* @return mixed
*/
public function special_character($string_arg){
return $string_arg;
}
/**
* Clean characters not allowed for name file in Windows and others
* @param $string_arg
* @return mixed
*/
public function allowed_by_os($string_arg){
return $string_arg;
}
/**
* Clean dangerous characters for prevent XSS Attacks
* @param $string_arg
* @return mixed
*/
public function prevent_basic_xss($string_arg){
$string_arg = str_replace("<", "[eugsxss]+",$string_arg); $string_arg = str_replace(">", "[eugsxss]-", $string_arg); $string_arg = str_replace("%3C", "[eugsxss]+",$string_arg); $string_arg = str_replace("%3E", "[eugsxss]-",$string_arg);
if(strpos($string_arg,'[eugsxss]')!==false){ $tmp_arr = explode("[eugsxss]", $string_arg); $string_arg = $tmp_arr[0];
}
return $string_arg;
}
/**
* Clean your string with the specifieds methods
* @param string $str_arg
* @param null $methods_arr
* @return string
*/
public function clean($str_arg="", $methods_arr=null){
if($type_arg=='array'){
$countArr = count($methods_arr); for($i=0;$i<$countArr;++$i){
$tmp_function_b = $methods_arr[$i];
// $str_arg = call_user_func($tmp_function_b, $str_arg);
$str_arg = $this->$tmp_function_b($str_arg);
}
return $str_arg;
}
return "";
}
}
PD9waHAKCi8qKgogKiBGaWxlOiAgICAgICAgQW50aVhTUy5waHAKICoKICogQGF1dGhvciAgICAgIExURCBTaGFsdmFzb2Z0CiAqIEBhdXRob3IgICAgICBTaGFsdmEgS3ZhcmF0c2toZWxpYQogKiBAcHJvamVjdCAgICAgU2hhbHZhIFNvZnQgRnJhbWV3b3JrCiAqIEB2ZXJzaW9uICAgICAxLjAKICovCiAgICBjbGFzcyBBbnRpWFNTewoKICAgICAgICAvKioKICAgICAgICAgKiBDYWxsIG5hdGl2ZSBQSFAgZnVuY3Rpb24gImh0bWxzcGVjaWFsY2hhcnMiCiAgICAgICAgICogQHBhcmFtICRzdHJpbmdfYXJnCiAgICAgICAgICogQHJldHVybiBzdHJpbmcKICAgICAgICAgKi8KICAgICAgICBwdWJsaWMgZnVuY3Rpb24gaHRtbF9zcGVjaWFsX2NoYXJhY3Rlcigkc3RyaW5nX2FyZyl7CiAgICAgICAgICAgIHJldHVybiBodG1sc3BlY2lhbGNoYXJzKCRzdHJpbmdfYXJnLCBFTlRfUVVPVEVTLCAndXRmLTgnKTsKICAgICAgICB9CgogICAgICAgIC8qKgogICAgICAgICAqIENhbGwgbmF0aXZlIFBIUCBmdW5jdGlvbiAiaHRtbGVudGl0aWVzIgogICAgICAgICAqIEBwYXJhbSAkc3RyaW5nX2FyZwogICAgICAgICAqIEByZXR1cm4gc3RyaW5nCiAgICAgICAgICovCiAgICAgICAgcHVibGljIGZ1bmN0aW9uIGh0bWxfZW50aXRsZXMoJHN0cmluZ19hcmcpewogICAgICAgICAgICByZXR1cm4gaHRtbGVudGl0aWVzKCRzdHJpbmdfYXJnLCBFTlRfUVVPVEVTLCAndXRmLTgnKTsKICAgICAgICB9CgogICAgICAgIC8qKgogICAgICAgICAqIENhbGwgbmF0aXZlIFBIUCBmdW5jdGlvbiAic3RyaXBfdGFncyIKICAgICAgICAgKiBAcGFyYW0gJHN0cmluZ19hcmcKICAgICAgICAgKiBAcmV0dXJuIHN0cmluZwogICAgICAgICAqLwogICAgICAgIHB1YmxpYyBmdW5jdGlvbiBzdHJpcGVfdGFncygkc3RyaW5nX2FyZyl7CiAgICAgICAgICAgIHJldHVybiBzdHJpcF90YWdzKCRzdHJpbmdfYXJnKTsKICAgICAgICB9CgogICAgICAgIC8qKgogICAgICAgICAqIENhbGwgbmF0aXZlIFBIUCBmdW5jdGlvbiAic3RyaXBlX3NsYXNoZXMiCiAgICAgICAgICogQHBhcmFtICRzdHJpbmdfYXJnCiAgICAgICAgICogQHJldHVybiBzdHJpbmcKICAgICAgICAgKi8KICAgICAgICBwdWJsaWMgZnVuY3Rpb24gc3RyaXBlX3NsYXNoZXMoJHN0cmluZ19hcmcpewogICAgICAgICAgICByZXR1cm4gc3RyaXBzbGFzaGVzKCRzdHJpbmdfYXJnKTsKICAgICAgICB9CgogICAgICAgIC8qKgogICAgICAgICAqIENhbGwgbmF0aXZlIFBIUCBmdW5jdGlvbiAiZmlsdGVyX3ZhciIgYW5kICJGSUxURVJfU0FOSVRJWkVfU1RSSU5HIgogICAgICAgICAqIEBwYXJhbSAkc3RyaW5nX2FyZwogICAgICAgICAqIEByZXR1cm4gbWl4ZWQKICAgICAgICAgKi8KICAgICAgICBwdWJsaWMgZnVuY3Rpb24gZmlsdGVyX3Nhbml0aXplKCRzdHJpbmdfYXJnKXsKICAgICAgICAgICAgcmV0dXJuIGZpbHRlcl92YXIoJHN0cmluZ19hcmcsIEZJTFRFUl9TQU5JVElaRV9TVFJJTkcpOwogICAgICAgIH0KCiAgICAgICAgLyoqCiAgICAgICAgICogQ2FsbCBuYXRpdmUgUEhQIGZ1bmN0aW9uICJmaWx0ZXJfdmFyIiBhbmQgIkZJTFRFUl9WQUxJREFURV9FTUFJTCIKICAgICAgICAgKiBAcGFyYW0gJHN0cmluZ19hcmcKICAgICAgICAgKiBAcmV0dXJuIG1peGVkCiAgICAgICAgICovCiAgICAgICAgcHVibGljIGZ1bmN0aW9uIGZpbHRlcl9lbWFpbCgkc3RyaW5nX2FyZyl7CiAgICAgICAgICAgIHJldHVybiBmaWx0ZXJfdmFyKCRzdHJpbmdfYXJnLCBGSUxURVJfVkFMSURBVEVfRU1BSUwpOwogICAgICAgIH0KCiAgICAgICAgLyoqCiAgICAgICAgICogQ2xlYW4gYWNjZW50cyBmcm9tIHN0cmluZyBhbmQgb3RoZXIgY2hhcmFjdGVycwogICAgICAgICAqIEBwYXJhbSAkc3RyaW5nX2FyZwogICAgICAgICAqIEByZXR1cm4gbWl4ZWQKICAgICAgICAgKi8KICAgICAgICBwdWJsaWMgZnVuY3Rpb24gcmFyZV9hY2NlbnQoJHN0cmluZ19hcmcpewogICAgICAgICAgICAkc3RyaW5nX2FyZyA9IHN0cl9yZXBsYWNlKGFycmF5KCLDoSIsIsOgIiwiw6IiLCLDoyIsIsKqIiwiw6QiKSwiYSIsJHN0cmluZ19hcmcpOwogICAgICAgICAgICAkc3RyaW5nX2FyZyA9IHN0cl9yZXBsYWNlKGFycmF5KCLDgSIsIsOAIiwiw4IiLCLDgyIsIsOEIiksIkEiLCRzdHJpbmdfYXJnKTsKICAgICAgICAgICAgJHN0cmluZ19hcmcgPSBzdHJfcmVwbGFjZShhcnJheSgiw40iLCLDjCIsIsOOIiwiw48iKSwiSSIsJHN0cmluZ19hcmcpOwogICAgICAgICAgICAkc3RyaW5nX2FyZyA9IHN0cl9yZXBsYWNlKGFycmF5KCLDrSIsIsOsIiwiw64iLCLDryIpLCJpIiwkc3RyaW5nX2FyZyk7CiAgICAgICAgICAgICRzdHJpbmdfYXJnID0gc3RyX3JlcGxhY2UoYXJyYXkoIsOpIiwiw6giLCLDqiIsIsOrIiksImUiLCRzdHJpbmdfYXJnKTsKICAgICAgICAgICAgJHN0cmluZ19hcmcgPSBzdHJfcmVwbGFjZShhcnJheSgiw4kiLCLDiCIsIsOKIiwiw4siKSwiRSIsJHN0cmluZ19hcmcpOwogICAgICAgICAgICAkc3RyaW5nX2FyZyA9IHN0cl9yZXBsYWNlKGFycmF5KCLDsyIsIsOyIiwiw7QiLCLDtSIsIsO2IiwiwroiKSwibyIsJHN0cmluZ19hcmcpOwogICAgICAgICAgICAkc3RyaW5nX2FyZyA9IHN0cl9yZXBsYWNlKGFycmF5KCLDkyIsIsOSIiwiw5QiLCLDlSIsIsOWIiksIk8iLCRzdHJpbmdfYXJnKTsKICAgICAgICAgICAgJHN0cmluZ19hcmcgPSBzdHJfcmVwbGFjZShhcnJheSgiw7oiLCLDuSIsIsO7Iiwiw7wiKSwidSIsJHN0cmluZ19hcmcpOwogICAgICAgICAgICAkc3RyaW5nX2FyZyA9IHN0cl9yZXBsYWNlKGFycmF5KCLDmiIsIsOZIiwiw5siLCLDnCIpLCJVIiwkc3RyaW5nX2FyZyk7CiAgICAgICAgICAgICRzdHJpbmdfYXJnID0gc3RyX3JlcGxhY2UoYXJyYXkoIlsiLCJeIiwiwrQiLCJgIiwiwqgiLCJ+IiwiXSIpLCIiLCRzdHJpbmdfYXJnKTsKICAgICAgICAgICAgJHN0cmluZ19hcmcgPSBzdHJfcmVwbGFjZSgiw6ciLCAiYyIsJHN0cmluZ19hcmcpOwogICAgICAgICAgICAkc3RyaW5nX2FyZyA9IHN0cl9yZXBsYWNlKCLDhyIsICJDIiwkc3RyaW5nX2FyZyk7CiAgICAgICAgICAgICRzdHJpbmdfYXJnID0gc3RyX3JlcGxhY2UoIsOxIiwgIm4iLCRzdHJpbmdfYXJnKTsKICAgICAgICAgICAgJHN0cmluZ19hcmcgPSBzdHJfcmVwbGFjZSgiw5EiLCAiTiIsJHN0cmluZ19hcmcpOwogICAgICAgICAgICAkc3RyaW5nX2FyZyA9IHN0cl9yZXBsYWNlKCLDnSIsICJZIiwkc3RyaW5nX2FyZyk7CiAgICAgICAgICAgICRzdHJpbmdfYXJnID0gc3RyX3JlcGxhY2UoIsO9IiwgInkiLCRzdHJpbmdfYXJnKTsKICAgICAgICAgICAgJHN0cmluZ19hcmcgPSBzdHJfcmVwbGFjZSgiJiIsICItIiwkc3RyaW5nX2FyZyk7CiAgICAgICAgICAgICRzdHJpbmdfYXJnID0gc3RyX3JlcGxhY2UoJyInLCAiIiwkc3RyaW5nX2FyZyk7CiAgICAgICAgICAgICRzdHJpbmdfYXJnID0gc3RyX3JlcGxhY2UoIiciLCAiIiwkc3RyaW5nX2FyZyk7CgogICAgICAgICAgICByZXR1cm4gJHN0cmluZ19hcmc7CiAgICAgICAgfQoKICAgICAgICAvKioKICAgICAgICAgKiBDbGVhbiBzcGVjaWFsIGNoYXJhY3RlcnMgZnJvbSBzdHJpbmcKICAgICAgICAgKiBAcGFyYW0gJHN0cmluZ19hcmcKICAgICAgICAgKiBAcmV0dXJuIG1peGVkCiAgICAgICAgICovCiAgICAgICAgcHVibGljIGZ1bmN0aW9uIHNwZWNpYWxfY2hhcmFjdGVyKCRzdHJpbmdfYXJnKXsKICAgICAgICAgICAgJHN0cmluZ19hcmcgPSBzdHJfcmVwbGFjZSgiICIsICItIiwgJHN0cmluZ19hcmcpOwogICAgICAgICAgICAkc3RyaW5nX2FyZyA9IHN0cl9yZXBsYWNlKCLDlyIsICJ4Iiwkc3RyaW5nX2FyZyk7CiAgICAgICAgICAgICRzdHJpbmdfYXJnID0gc3RyX3JlcGxhY2UoIsKwIiwgIiIsICRzdHJpbmdfYXJnKTsKICAgICAgICAgICAgJHN0cmluZ19hcmcgPSBzdHJfcmVwbGFjZSgiJyIsICJfIiwgJHN0cmluZ19hcmcpOwogICAgICAgICAgICAkc3RyaW5nX2FyZyA9IHN0cl9yZXBsYWNlKCciJywgIl8iLCAkc3RyaW5nX2FyZyk7CiAgICAgICAgICAgICRzdHJpbmdfYXJnID0gc3RyX3JlcGxhY2UoIisiLCAiLSIsJHN0cmluZ19hcmcpOwogICAgICAgICAgICAkc3RyaW5nX2FyZyA9IHN0cl9yZXBsYWNlKCIsIiwgIi0iLCRzdHJpbmdfYXJnKTsKICAgICAgICAgICAgJHN0cmluZ19hcmcgPSBzdHJfcmVwbGFjZSgiOiIsICItIiwkc3RyaW5nX2FyZyk7CiAgICAgICAgICAgICRzdHJpbmdfYXJnID0gc3RyX3JlcGxhY2UoIi0tIiwgIi0iLCAkc3RyaW5nX2FyZyk7CiAgICAgICAgICAgICRzdHJpbmdfYXJnID0gc3RyX3JlcGxhY2UoIi0tLSIsICItIiwkc3RyaW5nX2FyZyk7CiAgICAgICAgICAgICRzdHJpbmdfYXJnID0gc3RyX3JlcGxhY2UoInsiLCAiKCIsJHN0cmluZ19hcmcpOwogICAgICAgICAgICAkc3RyaW5nX2FyZyA9IHN0cl9yZXBsYWNlKCJ9IiwgIikiLCRzdHJpbmdfYXJnKTsKICAgICAgICAgICAgJHN0cmluZ19hcmcgPSBzdHJfcmVwbGFjZSgiWyIsICIoIiwkc3RyaW5nX2FyZyk7CiAgICAgICAgICAgICRzdHJpbmdfYXJnID0gc3RyX3JlcGxhY2UoIl0iLCAiKSIsJHN0cmluZ19hcmcpOwogICAgICAgICAgICAkc3RyaW5nX2FyZyA9IHN0cl9yZXBsYWNlKCI8IiwgIigiLCRzdHJpbmdfYXJnKTsKICAgICAgICAgICAgJHN0cmluZ19hcmcgPSBzdHJfcmVwbGFjZSgiPiIsICIpIiwkc3RyaW5nX2FyZyk7CgogICAgICAgICAgICByZXR1cm4gJHN0cmluZ19hcmc7CiAgICAgICAgfQoKICAgICAgICAvKioKICAgICAgICAgKiBDbGVhbiBjaGFyYWN0ZXJzIG5vdCBhbGxvd2VkIGZvciBuYW1lIGZpbGUgaW4gV2luZG93cyBhbmQgb3RoZXJzCiAgICAgICAgICogQHBhcmFtICRzdHJpbmdfYXJnCiAgICAgICAgICogQHJldHVybiBtaXhlZAogICAgICAgICAqLwogICAgICAgIHB1YmxpYyBmdW5jdGlvbiBhbGxvd2VkX2J5X29zKCRzdHJpbmdfYXJnKXsKICAgICAgICAgICAgJHN0cmluZ19hcmcgPSBzdHJfcmVwbGFjZSgiKiIsICIrIiwgJHN0cmluZ19hcmcpOwogICAgICAgICAgICAkc3RyaW5nX2FyZyA9IHN0cl9yZXBsYWNlKCJ8IiwgIisiLCRzdHJpbmdfYXJnKTsKICAgICAgICAgICAgJHN0cmluZ19hcmcgPSBzdHJfcmVwbGFjZSgiXFwiLCAiKyIsICRzdHJpbmdfYXJnKTsKICAgICAgICAgICAgJHN0cmluZ19hcmcgPSBzdHJfcmVwbGFjZSgiOiIsICIrIiwgJHN0cmluZ19hcmcpOwogICAgICAgICAgICAkc3RyaW5nX2FyZyA9IHN0cl9yZXBsYWNlKCciJywgIisiLCAkc3RyaW5nX2FyZyk7CiAgICAgICAgICAgICRzdHJpbmdfYXJnID0gc3RyX3JlcGxhY2UoIiciLCAiKyIsICRzdHJpbmdfYXJnKTsKICAgICAgICAgICAgJHN0cmluZ19hcmcgPSBzdHJfcmVwbGFjZSgiPCIsICIoIiwkc3RyaW5nX2FyZyk7CiAgICAgICAgICAgICRzdHJpbmdfYXJnID0gc3RyX3JlcGxhY2UoIj4iLCAiKSIsJHN0cmluZ19hcmcpOwogICAgICAgICAgICAkc3RyaW5nX2FyZyA9IHN0cl9yZXBsYWNlKCI/IiwgIi4iLCRzdHJpbmdfYXJnKTsKICAgICAgICAgICAgJHN0cmluZ19hcmcgPSBzdHJfcmVwbGFjZSgiLyIsICIrIiwgJHN0cmluZ19hcmcpOwoKICAgICAgICAgICAgcmV0dXJuICRzdHJpbmdfYXJnOwogICAgICAgIH0KCiAgICAgICAgLyoqCiAgICAgICAgICogQ2xlYW4gZGFuZ2Vyb3VzIGNoYXJhY3RlcnMgZm9yIHByZXZlbnQgWFNTIEF0dGFja3MKICAgICAgICAgKiBAcGFyYW0gJHN0cmluZ19hcmcKICAgICAgICAgKiBAcmV0dXJuIG1peGVkCiAgICAgICAgICovCiAgICAgICAgcHVibGljIGZ1bmN0aW9uIHByZXZlbnRfYmFzaWNfeHNzKCRzdHJpbmdfYXJnKXsKICAgICAgICAgICAgJHN0cmluZ19hcmcgPSBzdHJfcmVwbGFjZSgiICIsICIiLCAkc3RyaW5nX2FyZyk7CiAgICAgICAgICAgICRzdHJpbmdfYXJnID0gc3RyX3JlcGxhY2UoIjwiLCAiW2V1Z3N4c3NdKyIsJHN0cmluZ19hcmcpOwogICAgICAgICAgICAkc3RyaW5nX2FyZyA9IHN0cl9yZXBsYWNlKCI+IiwgIltldWdzeHNzXS0iLCAkc3RyaW5nX2FyZyk7CiAgICAgICAgICAgICRzdHJpbmdfYXJnID0gc3RyX3JlcGxhY2UoIiciLCAiIiwgJHN0cmluZ19hcmcpOwogICAgICAgICAgICAkc3RyaW5nX2FyZyA9IHN0cl9yZXBsYWNlKCciJywgIiIsICRzdHJpbmdfYXJnKTsKICAgICAgICAgICAgJHN0cmluZ19hcmcgPSBzdHJfcmVwbGFjZSgiKCIsICItIiwkc3RyaW5nX2FyZyk7CiAgICAgICAgICAgICRzdHJpbmdfYXJnID0gc3RyX3JlcGxhY2UoIikiLCAiLSIsJHN0cmluZ19hcmcpOwogICAgICAgICAgICAkc3RyaW5nX2FyZyA9IHN0cl9yZXBsYWNlKCIlM0MiLCAiW2V1Z3N4c3NdKyIsJHN0cmluZ19hcmcpOwogICAgICAgICAgICAkc3RyaW5nX2FyZyA9IHN0cl9yZXBsYWNlKCIlM0UiLCAiW2V1Z3N4c3NdLSIsJHN0cmluZ19hcmcpOwoKICAgICAgICAgICAgaWYoc3RycG9zKCRzdHJpbmdfYXJnLCdbZXVnc3hzc10nKSE9PWZhbHNlKXsKICAgICAgICAgICAgICAgICR0bXBfYXJyID0gZXhwbG9kZSgiW2V1Z3N4c3NdIiwgJHN0cmluZ19hcmcpOwogICAgICAgICAgICAgICAgJHN0cmluZ19hcmcgPSAkdG1wX2FyclswXTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgcmV0dXJuICRzdHJpbmdfYXJnOwogICAgICAgIH0KCiAgICAgICAgLyoqCiAgICAgICAgICogQ2xlYW4geW91ciBzdHJpbmcgd2l0aCB0aGUgc3BlY2lmaWVkcyBtZXRob2RzCiAgICAgICAgICogQHBhcmFtIHN0cmluZyAkc3RyX2FyZwogICAgICAgICAqIEBwYXJhbSBudWxsICRtZXRob2RzX2FycgogICAgICAgICAqIEByZXR1cm4gc3RyaW5nCiAgICAgICAgICovCiAgICAgICAgcHVibGljIGZ1bmN0aW9uIGNsZWFuKCRzdHJfYXJnPSIiLCAkbWV0aG9kc19hcnI9bnVsbCl7CiAgICAgICAgICAgICR0eXBlX2FyZyA9IGdldHR5cGUoJG1ldGhvZHNfYXJyKTsKICAgICAgICAgICAgaWYoJHR5cGVfYXJnPT0nYXJyYXknKXsKICAgICAgICAgICAgICAgICRjb3VudEFyciA9IGNvdW50KCRtZXRob2RzX2Fycik7CiAgICAgICAgICAgICAgICBmb3IoJGk9MDskaTwkY291bnRBcnI7KyskaSl7CiAgICAgICAgICAgICAgICAgICAgJHRtcF9mdW5jdGlvbl9iID0gJG1ldGhvZHNfYXJyWyRpXTsKLy8gICAgICAgICAgICAgICAgICAgICRzdHJfYXJnID0gY2FsbF91c2VyX2Z1bmMoJHRtcF9mdW5jdGlvbl9iLCAkc3RyX2FyZyk7CiAgICAgICAgICAgICAgICAgICAgJHN0cl9hcmcgPSAkdGhpcy0+JHRtcF9mdW5jdGlvbl9iKCRzdHJfYXJnKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHJldHVybiAkc3RyX2FyZzsKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gIiI7CiAgICAgICAgfQogICAgfQ==