PHP function to remove XSS
function RXSS($v) { $v = preg_replace('/([\x00-\x08][\x0b-\x0c][\x0e-\x20])/', '', $v); $se = 'abcdefghijklmnopqrstuvwxyz'; $se .= 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'; $se .= '1234567890!@#$%^&*()'; $se .= '~`";:?+/={}[]-_|\'\\'; for ($i = 0; $i < strlen($se); $i++) { $v = preg_replace('/(&#[xX]0{0,8}'.dechex(ord($se[$i])).';?)/i', $se[$i], $v); $v = preg_replace('/(�{0,8}'.ord($se[$i]).';?)/', $se[$i], $v); } $ra1 = Array('javascript', 'vbscript', 'expression', 'applet', 'meta', 'xml'); // Add more tags for your need $ra2 = Array('onabort', 'onactivate', 'onafterprint', 'onafterupdate'); // Add more tags for your need $ra = array_merge($ra1, $ra2); $found = true; while ($found == true) { $val_before = $v; for ($i = 0; $i < sizeof($ra); $i++) { $pa = '/'; for ($j = 0; $j 0) { $pa .= '('; $pa .= '(&#[xX]0{0,8}([9ab]);)'; $pa .= '|'; $pa .= '|(�{0,8}([9|10|13]);)'; $pa .= ')*'; } $pa .= $ra[$i][$j]; } $pa .= '/i'; $rep = substr($ra[$i], 0, 2).''.substr($ra[$i], 2); $v = preg_replace($pa, $rep, $v); if ($val_before == $v) $found = false; } } return $v; }
Log in to answer.
leothenerd 2:50 am on November 18, 2009