> 백엔드 개발 > PHP 튜토리얼 > PHP 웹사이트에서 SQL 주입을 방지하는 방법은 무엇입니까? 【우수한】

PHP 웹사이트에서 SQL 주입을 방지하는 방법은 무엇입니까? 【우수한】

WBOY
풀어 주다: 2016-07-25 09:04:37
원래의
950명이 탐색했습니다.
웹사이트의 운영 보안은 확실히 모든 웹마스터가 고려해야 할 문제입니다. 우리 모두 알고 있듯이 대부분의 해커는 sql 주입을 사용하여 웹사이트를 공격합니다. > ?
가장 독창적이고 정적인 웹사이트가 가장 안전합니다. 오늘은 sql에 의해 웹사이트가 주입되는 것을 방지하기 위한 PHP 주입 보안 사양에 대해 이야기해보겠습니다.
현재 주류 웹사이트 개발 언어는 여전히 php입니다. 그렇다면 php 웹사이트php 웹사이트에서 방지하는 방법부터 시작해 보겠습니다. 🎜> sql 주입부터 시작해 보겠습니다.
Php 주입에 대한 보안 주의사항 위의 과정을 통해 php 주입의 원리와 기법을 이해할 수 있습니다. 물론, 대응하는 예방 방법도 공식화할 수 있습니다:
첫 번째는 서버의 보안 설정입니다. 여기에는 주로 php mysql의 보안 설정이 있습니다. 호스트 에 대한 Linux 보안 설정. php mysql 주입에 대한 주의사항,먼저 magic_quotes_gpcOn으로 설정하고 display_errsOff, id 유형인 경우 intval()을 사용하여 정수 유형으로 변환합니다(예:
).
$idintval($id);
mysql_query
*fromexamplewherearticieid'$id'”;또는 다음과 같이 작성하세요. this:mysql_query(SELECT*FROMarticleWHEREarticleid.intval($id).”)
If 문자 유형입니다. addslashes()를 사용하여 필터링한 다음 "%" 및 "_"를 필터링합니다. 예:
$searchaddslashes( $search);
$searchstr_replace(“_”,”_”,$search);
$searchstr_replace(“%”,”%”,$search) ;
물론 php일반 주입 방지 코드도 추가할 수 있습니다:
/***************************
PHP
범용 주입방지 보안코드
설명:
전달된 변수에 잘못된 문자가 포함되어 있는지 확인
예: $_POST, $_GET
기능:
주입방지
**** **********************/
//
필수 필터링된 불법 문자
$ArrFiltratearray("'",";","union");
//
오류 발생 시 리디렉션되는 URL,공백으로 두면 이전 페이지로 기본 설정
$StrGoUrl"";
//
여부 배열의 값입니다
functionFunStringExist($StrFiltrate,$ArrFiltrate){
feach($ArrFiltrateas$key>$value){
if(eregi ($value,$StrFiltrate)){
returntrue;
}
}
returnfalse;
}
//
병합$_POST$_GET
if(function_exists(array_merge)){
$ArrPostAndGetarray_merge($HTTP_POST_VARS,$HTTP_GET_VARS );
}else{
feach($HTTP_POST_VARSas$key>$value){
$ArrPostAndGet[]$value;
}
feach($HTTP_GET_VARSas$key>$value) {
$ArrPostAndGet[]$value;
}
}
//
확인 시작
feach($ArrPostAndGetas$key>$value){
if(FunStringExist($value,$ArrFiltrate)){
echoalert(/Neeao 프롬프트, 잘못된 문자 /);;
if(empty($StrGoUrl)){
echo "histy.go(-1);";
}else{
echo" window.location/”".$StrGoUrl.”/”;”;
}
exit;
}
}
?>
/*************************
다른 이름으로 저장 checkpostget .php
그런 다음 include(checkpostget.php);바로 그거예요*****************************/
또한 관리자 사용자 이름과 비밀번호는
md5로 암호화되어 있어 php의 주입을 효과적으로 방지합니다.
서버와
mysql도 일부 보안 예방 조치를 강화해야 합니다.
linux 서버 보안 설정:
비밀번호 암호화, "
/usr/sbin/ authconfig 사용 " 도구는 비밀번호의 섀도우 기능을 활성화하고 passwd를 암호화합니다.
중요한 파일에 대한 액세스를 금지하고
linux 명령 인터페이스를 입력한 후 프롬프트에 #chmod600/etc/를 입력합니다. inetd.conf//
파일 속성을
600#chattr로 변경합니다. I /etc/inetd.conf //
파일 소유자가
root인지 확인하세요. # chattr
I /etc/inetd.conf //이 파일의 변경을 제한합니다
모든 사용자가
su를 전달하는 것을 금지합니다. 명령은 su 구성 파일, 즉 /etc에서 rootuser
로 변경됩니다. /pam.d/ 디렉터리 시작 부분에 다음 두 줄을 추가하세요. :인증 충분 /lib/security/pam_rootok.sodebug
인증 필요 /lib/security/ pam_whell.sogroupwheel
모든 특수 계정 삭제
#userdel lp
etc. 사용자 삭제
#groupdellp
etc . 그룹 삭제
사용하지 않는
suid/sgid프로그램 금지#find/-typef(-perm-04000 -o–perm -02000)-execls–lg{} ;

Brothers PHP 원본 비디오 튜토리얼 CD를 무료로 받으세요. 자세한 내용은 공식 웹사이트 고객 서비스에 문의하세요.
http://www.lampbrother.net

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿