fork download
  1. <?php
  2.  
  3. /**
  4.  * File: AntiXSS.php
  5.  *
  6.  * @author LTD Shalvasoft
  7.  * @author Shalva Kvaratskhelia
  8.  * @project Shalva Soft Framework
  9.  * @version 1.0
  10.  */
  11. class AntiXSS{
  12.  
  13. /**
  14.   * Call native PHP function "htmlspecialchars"
  15.   * @param $string_arg
  16.   * @return string
  17.   */
  18. public function html_special_character($string_arg){
  19. return htmlspecialchars($string_arg, ENT_QUOTES, 'utf-8');
  20. }
  21.  
  22. /**
  23.   * Call native PHP function "htmlentities"
  24.   * @param $string_arg
  25.   * @return string
  26.   */
  27. public function html_entitles($string_arg){
  28. return htmlentities($string_arg, ENT_QUOTES, 'utf-8');
  29. }
  30.  
  31. /**
  32.   * Call native PHP function "strip_tags"
  33.   * @param $string_arg
  34.   * @return string
  35.   */
  36. public function stripe_tags($string_arg){
  37. return strip_tags($string_arg);
  38. }
  39.  
  40. /**
  41.   * Call native PHP function "stripe_slashes"
  42.   * @param $string_arg
  43.   * @return string
  44.   */
  45. public function stripe_slashes($string_arg){
  46. return stripslashes($string_arg);
  47. }
  48.  
  49. /**
  50.   * Call native PHP function "filter_var" and "FILTER_SANITIZE_STRING"
  51.   * @param $string_arg
  52.   * @return mixed
  53.   */
  54. public function filter_sanitize($string_arg){
  55. return filter_var($string_arg, FILTER_SANITIZE_STRING);
  56. }
  57.  
  58. /**
  59.   * Call native PHP function "filter_var" and "FILTER_VALIDATE_EMAIL"
  60.   * @param $string_arg
  61.   * @return mixed
  62.   */
  63. public function filter_email($string_arg){
  64. return filter_var($string_arg, FILTER_VALIDATE_EMAIL);
  65. }
  66.  
  67. /**
  68.   * Clean accents from string and other characters
  69.   * @param $string_arg
  70.   * @return mixed
  71.   */
  72. public function rare_accent($string_arg){
  73. $string_arg = str_replace(array("á","à","â","ã","ª","ä"),"a",$string_arg);
  74. $string_arg = str_replace(array("Á","À","Â","Ã","Ä"),"A",$string_arg);
  75. $string_arg = str_replace(array("Í","Ì","Î","Ï"),"I",$string_arg);
  76. $string_arg = str_replace(array("í","ì","î","ï"),"i",$string_arg);
  77. $string_arg = str_replace(array("é","è","ê","ë"),"e",$string_arg);
  78. $string_arg = str_replace(array("É","È","Ê","Ë"),"E",$string_arg);
  79. $string_arg = str_replace(array("ó","ò","ô","õ","ö","º"),"o",$string_arg);
  80. $string_arg = str_replace(array("Ó","Ò","Ô","Õ","Ö"),"O",$string_arg);
  81. $string_arg = str_replace(array("ú","ù","û","ü"),"u",$string_arg);
  82. $string_arg = str_replace(array("Ú","Ù","Û","Ü"),"U",$string_arg);
  83. $string_arg = str_replace(array("[","^","´","`","¨","~","]"),"",$string_arg);
  84. $string_arg = str_replace("ç", "c",$string_arg);
  85. $string_arg = str_replace("Ç", "C",$string_arg);
  86. $string_arg = str_replace("ñ", "n",$string_arg);
  87. $string_arg = str_replace("Ñ", "N",$string_arg);
  88. $string_arg = str_replace("Ý", "Y",$string_arg);
  89. $string_arg = str_replace("ý", "y",$string_arg);
  90. $string_arg = str_replace("&", "-",$string_arg);
  91. $string_arg = str_replace('"', "",$string_arg);
  92. $string_arg = str_replace("'", "",$string_arg);
  93.  
  94. return $string_arg;
  95. }
  96.  
  97. /**
  98.   * Clean special characters from string
  99.   * @param $string_arg
  100.   * @return mixed
  101.   */
  102. public function special_character($string_arg){
  103. $string_arg = str_replace(" ", "-", $string_arg);
  104. $string_arg = str_replace("×", "x",$string_arg);
  105. $string_arg = str_replace("°", "", $string_arg);
  106. $string_arg = str_replace("'", "_", $string_arg);
  107. $string_arg = str_replace('"', "_", $string_arg);
  108. $string_arg = str_replace("+", "-",$string_arg);
  109. $string_arg = str_replace(",", "-",$string_arg);
  110. $string_arg = str_replace(":", "-",$string_arg);
  111. $string_arg = str_replace("--", "-", $string_arg);
  112. $string_arg = str_replace("---", "-",$string_arg);
  113. $string_arg = str_replace("{", "(",$string_arg);
  114. $string_arg = str_replace("}", ")",$string_arg);
  115. $string_arg = str_replace("[", "(",$string_arg);
  116. $string_arg = str_replace("]", ")",$string_arg);
  117. $string_arg = str_replace("<", "(",$string_arg);
  118. $string_arg = str_replace(">", ")",$string_arg);
  119.  
  120. return $string_arg;
  121. }
  122.  
  123. /**
  124.   * Clean characters not allowed for name file in Windows and others
  125.   * @param $string_arg
  126.   * @return mixed
  127.   */
  128. public function allowed_by_os($string_arg){
  129. $string_arg = str_replace("*", "+", $string_arg);
  130. $string_arg = str_replace("|", "+",$string_arg);
  131. $string_arg = str_replace("\\", "+", $string_arg);
  132. $string_arg = str_replace(":", "+", $string_arg);
  133. $string_arg = str_replace('"', "+", $string_arg);
  134. $string_arg = str_replace("'", "+", $string_arg);
  135. $string_arg = str_replace("<", "(",$string_arg);
  136. $string_arg = str_replace(">", ")",$string_arg);
  137. $string_arg = str_replace("?", ".",$string_arg);
  138. $string_arg = str_replace("/", "+", $string_arg);
  139.  
  140. return $string_arg;
  141. }
  142.  
  143. /**
  144.   * Clean dangerous characters for prevent XSS Attacks
  145.   * @param $string_arg
  146.   * @return mixed
  147.   */
  148. public function prevent_basic_xss($string_arg){
  149. $string_arg = str_replace(" ", "", $string_arg);
  150. $string_arg = str_replace("<", "[eugsxss]+",$string_arg);
  151. $string_arg = str_replace(">", "[eugsxss]-", $string_arg);
  152. $string_arg = str_replace("'", "", $string_arg);
  153. $string_arg = str_replace('"', "", $string_arg);
  154. $string_arg = str_replace("(", "-",$string_arg);
  155. $string_arg = str_replace(")", "-",$string_arg);
  156. $string_arg = str_replace("%3C", "[eugsxss]+",$string_arg);
  157. $string_arg = str_replace("%3E", "[eugsxss]-",$string_arg);
  158.  
  159. if(strpos($string_arg,'[eugsxss]')!==false){
  160. $tmp_arr = explode("[eugsxss]", $string_arg);
  161. $string_arg = $tmp_arr[0];
  162. }
  163.  
  164. return $string_arg;
  165. }
  166.  
  167. /**
  168.   * Clean your string with the specifieds methods
  169.   * @param string $str_arg
  170.   * @param null $methods_arr
  171.   * @return string
  172.   */
  173. public function clean($str_arg="", $methods_arr=null){
  174. $type_arg = gettype($methods_arr);
  175. if($type_arg=='array'){
  176. $countArr = count($methods_arr);
  177. for($i=0;$i<$countArr;++$i){
  178. $tmp_function_b = $methods_arr[$i];
  179. // $str_arg = call_user_func($tmp_function_b, $str_arg);
  180. $str_arg = $this->$tmp_function_b($str_arg);
  181. }
  182. return $str_arg;
  183. }
  184. return "";
  185. }
  186. }
Success #stdin #stdout 0.02s 52472KB
stdin
Standard input is empty
stdout
Standard output is empty