idocsidocs
پنج شنبه 17 شهریور 1390, 00:08 صبح
من برای امنیت فیلدهایی که نباید به تگهای اچ تی ام ال اجازه ورود بدن از تابع زیر استفاده می کنم.
لطفا بگید که آیا راهی هست که این تابع رو دور زد؟
طرز کار این تابع به شکل زیر هست:
1- به کمک htmlentities جلوی کاراکترهای ویژه رو می گیرم.
2- به کمک str_replace فیلتر بیشتری اعمال می کنم.
3- به کمک real_scape_string کاراکترها رو اسکیپ می کنم.
public function privent_injection($input)
{
$lastarr[]='`';
//$lastarr[]='~';
$lastarr[]='!';
$lastarr[]='#';
$lastarr[]='$';
$lastarr[]='%';
//$lastarr[]='^';
$lastarr[]='*';
$lastarr[]='(';
$lastarr[]=')';
$lastarr[]='-';
$lastarr[]='=';
//$lastarr[]='+';
//$lastarr[]='{';
//$lastarr[]='}';
//$lastarr[]='[';
//$lastarr[]=']';
$lastarr[]=',';
$lastarr[]='.';
$lastarr[]='?';
$lastarr[]='/';
//$lastarr[]='|';
$lastarr[]='\x';
$mysec[]='\`';
//$mysec[]='\~';
$mysec[]='\!';
$mysec[]='\#';
$mysec[]='\$';
$mysec[]='\%';
//$mysec[]='\^';
$mysec[]='\*';
$mysec[]='\(';
$mysec[]='\)';
$mysec[]='\-';
$mysec[]='\=';
//$mysec[]='\+';
//$mysec[]='\{';
//$mysec[]='\}';
//$mysec[]='\[';
//$mysec[]='\]';
$mysec[]='\,';
$mysec[]='\.';
$mysec[]='\?';
$mysec[]='\/';
//$mysec[]='\|';
$mysec[]='\\x';
$htmlentit=htmlentities($input, ENT_QUOTES,'UTF-8');
$str_rep = str_replace($lastarr, $mysec, $htmlentit);
return $this->dbase->real_scape_string($str_rep);
}
لطفا بگید که آیا راهی هست که این تابع رو دور زد؟
طرز کار این تابع به شکل زیر هست:
1- به کمک htmlentities جلوی کاراکترهای ویژه رو می گیرم.
2- به کمک str_replace فیلتر بیشتری اعمال می کنم.
3- به کمک real_scape_string کاراکترها رو اسکیپ می کنم.
public function privent_injection($input)
{
$lastarr[]='`';
//$lastarr[]='~';
$lastarr[]='!';
$lastarr[]='#';
$lastarr[]='$';
$lastarr[]='%';
//$lastarr[]='^';
$lastarr[]='*';
$lastarr[]='(';
$lastarr[]=')';
$lastarr[]='-';
$lastarr[]='=';
//$lastarr[]='+';
//$lastarr[]='{';
//$lastarr[]='}';
//$lastarr[]='[';
//$lastarr[]=']';
$lastarr[]=',';
$lastarr[]='.';
$lastarr[]='?';
$lastarr[]='/';
//$lastarr[]='|';
$lastarr[]='\x';
$mysec[]='\`';
//$mysec[]='\~';
$mysec[]='\!';
$mysec[]='\#';
$mysec[]='\$';
$mysec[]='\%';
//$mysec[]='\^';
$mysec[]='\*';
$mysec[]='\(';
$mysec[]='\)';
$mysec[]='\-';
$mysec[]='\=';
//$mysec[]='\+';
//$mysec[]='\{';
//$mysec[]='\}';
//$mysec[]='\[';
//$mysec[]='\]';
$mysec[]='\,';
$mysec[]='\.';
$mysec[]='\?';
$mysec[]='\/';
//$mysec[]='\|';
$mysec[]='\\x';
$htmlentit=htmlentities($input, ENT_QUOTES,'UTF-8');
$str_rep = str_replace($lastarr, $mysec, $htmlentit);
return $this->dbase->real_scape_string($str_rep);
}