이 기사의 예에서는 간단하고 실용적인 PHP 방지 주입 클래스를 설명합니다. 참고할 수 있도록 모든 사람과 공유하세요. 세부 내용은 다음과 같습니다.
PHP 안티 인젝션에서 필터링되는 정보는 기본적으로 get, post이며 sql은 일반적으로 사용되는 query, insert 등의 sql 명령입니다. 아래에서는 이 예제가 도움이 되기를 바랍니다. 웹사이트는 보안을 제공합니다.
PHP 주입 방지 코드는 다음과 같습니다.
/**
* 매개변수 처리 클래스
* @author JasonWei
*/
클래스 매개변수
{
공개 $get = 배열()
공개 $포스트 = 배열()
함수 __construct()
{
if (!emptyempty($_GET)) {
foreach ($_GET as $key => $val) {
if (is_numeric($val)) {
$this->get[$key] = $this->getInt($val)
} 다른 {
$this->get[$key] = $this->getStr($val)
}
}
}
if (!emptyempty($_POST)) {
foreach ($_POST as $key => $val) {
if (is_numeric($val)) {
$this->post[$key] = $this->getInt($val)
} 다른 {
$this->post[$key] = $this->getStr($val)
}
}
}
}
공개 함수 getInt($number)
{
return intval($숫자)
}
공개 함수 getStr($string)
{
if (!get_magic_quotes_gpc()) {
$string = addlashes($string)
}
$string 반환
}
공개 함수 checkInject($string)
{
return eregi('select|insert|update|delete|/*|*|../|./|union|into|load_file|outfile', $string);
}
공개 함수 verifyId($id = null)
{
if (!$id || $this->checkInject($id) || !is_numeric($id)) {
$id = 거짓
} 다른 {
$id = intval($id)
}
$id 반환
}
}
?>
예제 2의 코드는 다음과 같습니다.
코드 복사 코드는 다음과 같습니다.
/*************************
설명:
전달된 변수에 잘못된 문자가 포함되어 있는지 확인
예: $_POST, $_GET
기능:
주사방지
*************************/
//필터링할 잘못된 문자
$ArrFiltrate=array("'","or","and","union","where");
//오류 발생 후 이동할 URL입니다. 작성하지 않으면 이전 페이지가 기본값으로 설정됩니다.
$StrGoUrl="";
//배열에 값이 있는지 여부
함수 FunStringExist($StrFiltrate,$ArrFiltrate){
foreach($ArrFiltrate를 $key=>$value로){
if (eregi($value,$StrFiltrate)){
사실을 반환합니다.
}
}
거짓을 반환합니다;
}
//$_POST 및 $_GET 병합
if(function_exists(array_merge)){
$ArrPostAndGet=array_merge($HTTP_POST_VARS,$HTTP_GET_VARS);
}else{
foreach($HTTP_POST_VARS($key=>$value){
$ArrPostAndGet[]=$value;
}
foreach($HTTP_GET_VARS as $key=>$value){
$ArrPostAndGet[]=$value;
}
}
//검증 시작
foreach($ArrPostAndGet as $key=>$value){
if (FunStringExist($value,$ArrFiltrate)){
echo "";
if (비어 있음($StrGoUrl)){
echo "history.go(-1);";
}else{
echo "window.location='".$StrGoUrl."';";
}
종료;
}
}
/*****************PHP 주입 방지 종료*******************/
?>
이 기사가 모든 사람의 PHP 프로그래밍 설계에 도움이 되기를 바랍니다.