웹사이트의 운영 보안은 확실히 모든 웹마스터가 고려해야 할 문제입니다. 우리 모두 알고 있듯이 대부분의 해커는 SQL 삽입을 사용하여 웹사이트를 공격합니다. 가장 독창적인 정적 웹사이트가 가장 안전합니다. 오늘은 귀하의 웹사이트가 SQL에 의해 주입되는 것을 방지하기 위한 PHP 주입의 보안 사양에 대해 이야기하겠습니다. 요즘 주류 웹사이트 개발 언어는 여전히 PHP이므로 PHP 웹사이트에서 SQL 삽입을 방지하는 방법부터 시작해 보겠습니다. Php 주입의 보안 예방 위의 과정을 통해 Php 주입의 원리와 기법을 이해할 수 있으며, 이에 상응하는 예방 방법도 개발할 수 있습니다. 첫 번째는 서버의 보안 설정입니다. 주로 php mysql의 보안 설정과 리눅스 호스트의 보안 설정이 있습니다. php mysql 인젝션을 방지하려면 먼저 Magic_quotes_gpc를 On으로 설정하고 display_errs를 Off로 설정합니다. id 유형인 경우 코드와 같이 intval()을 사용하여 정수 유형으로 변환합니다. $idintval($id); mysql_query"*fromexamplewherearticieid'$id'"; 또는 다음과 같이 작성합니다: mysql_query("SELECT*FROMarticleWHEREarticleid".intval($id)."") 문자 유형인 경우 addlashes()를 사용하여 필터링한 다음 다음과 같이 "%" 및 "_"를 필터링합니다. $searchaddslashes($search); $searchstr_replace(“_”,”_”,$search); $searchstr_replace("%","%",$search); 물론, PHP 일반 주입 방지 코드를 추가할 수도 있습니다: /*************************** PHP 범용 주입 방지 보안 코드 설명: 전달된 변수에 잘못된 문자가 포함되어 있는지 확인 $_POST, $_GET 등 기능: 주사방지
그런 다음 각 PHP 파일 앞에 include("checkpostget.php")를 추가하세요. ******************************/ 또한 관리자 사용자 이름과 비밀번호는 md5로 암호화되어 PHP 주입을 효과적으로 방지할 수 있습니다. 서버와 mysql에서도 강화해야 할 몇 가지 보안 예방 조치가 있습니다. Linux 서버의 보안 설정: 비밀번호를 암호화하려면 "/usr/sbin/authconfig" 도구를 사용하여 비밀번호 섀도우 기능을 활성화하고 passwd를 암호화합니다. 중요한 파일에 대한 액세스를 금지하려면 Linux 명령 인터페이스를 입력하고 프롬프트에 를 입력하세요. #chmod600/etc/inetd.conf//파일 속성을 600으로 변경 #chattr I /etc/inetd.conf // 파일 소유자가 루트인지 확인 #chattr–I /etc/inetd.conf //이 파일의 변경을 제한합니다 모든 사용자가 su 명령을 통해 루트 사용자로 변경하는 것은 금지되어 있습니다 su 구성 파일, 즉 /etc/pam.d/ 디렉터리의 시작 부분에 다음 두 줄을 추가합니다. 충분한 인증 /lib/security/pam_rootok.sodebug 인증 필요 /lib/security/pam_whel.sogroupwheel 모든 특별 계정 삭제 #userdel lp 등 사용자 삭제 #groupdellpetc 그룹 삭제 사용하지 않는 suid/sgid 프로그램 금지 #find/-typef(-perm-04000 -o–perm-02000)-execls–lg{}; http://hi.baidu.com/bigideaer/bl...7e76e11a4cffd0.html 전달된 변수에 잘못된 문자가 포함되어 있는지 확인하기 위해 다음 코드를 security.inc.php와 같은 공개 파일에 넣습니다. 이 파일을 각 파일에 포함하면 변수가 필터링된 후 모든 프로그램에 제출될 수 있습니다. , 우리는 효과를 단번에 달성합니다. 간략한 설명: /************************* 설명: 전달된 변수에 잘못된 문자가 포함되어 있는지 확인 예: $_POST, $_GET 기능: 주입 방지 **************************/ 코드는 다음과 같습니다:
코드는 다음과 같습니다. /*모든 GET 변수 필터링*/ feach($_GETas$get_key>$get_var)
|