XSS 공격 방지 함수
/* XSS 공격 방지 함수 */
function hasJsInUrl($arr)
{
foreach ($arr as $k => $v) {
if (false !== strpos(strtolower(substr($v, 4)), 'script')) {
echo "\n";
exit;
}
}
} //end func
hasJsInUrl(&$_REQUEST);
function hasCookieAttackStr() {
foreach ($_SESSION as $k => $v) {
if (is_array($v)) {
$rst = arrayHasAttackStr($v);
} else {
$rst = hasAttackStr($v);
}
if ($rst) {
return true;
}
}
return false;
} //end func
function arrayHasAttackStr($arr) {
$len = count($arr);
for ($i=0; $i<$len; ++$i) {
if (hasAttackStr($arr[$i])) {
return true;
}
} //end for
return false;
} //end func
function hasAttackStr($str, $isVarText = false) {
if (empty($str)) {
return false;
}
if (!$isVarText) {
$arr = array("'", ';');
} else {
$arr = array("'");
}
$arr2 = array(
'--',
);
$len = strlen($str);
for ($i=0; $i<$len; ++$i) {
if (in_array($str[$i], $arr)) {
return true;
}
} //end for
$len = count($arr2);
for ($i=0; $i<$len; ++$i) {
$pos = strpos($str, $arr2[$i]);
if ($pos !== false) {
return true;
}
} //end for
return false;
} //end func