중간 트랜잭션 http://www.aliyun.com/zixun/aggregation/6858.html "> seo 진단 Taobao 게스트 클라우드 호스트 기술 홀
PHP의 강력한 기능, 간단한 소개 및 코드 실행의 고 능률 때문에 웹 응용 프로그램 개발에 대 한 인기 있는 언어입니다. 다양 한 용도, PHP 보안 취약점을 웹 사이트의 사용은 또한 점점 더 많은 공격는 웹 응용 프로그램의 보안에 심각한 위협을. 웹사이트의 안전에 대 한 직접 책임 인원의 두 가지 주요 유형이 있다: 하나는 웹사이트 개발자 이며 다른 웹사이트 관리자. 에이 종이, 웹 개발, PHP 보안 취약점 예방 좀 더 포괄적인 요약 및 연구의의 관점에서 저자.
이전 공격 수가 많은 PHP 보안 취약점에 대 한 이유 없는 사용자의 엄격한 인증 및 시스템의 출력은 제대로 이스케이프 하지 나타났습니다. 사용자의 입력 결코 맹목적으로 믿을 수, 검증의 부재에 오염 된 데이터로 간주 될 수 있습니다. 시스템의 발견 전에 제대로 이스케이프 더 큰 보안 위험을가지고 가능성이 높습니다.
1. 사용자 입력의 유효성 엄격한 생산 보안 취약점 및 주의 사항
등록 할 때 기입 사서함 및 암호를 사용 하 여 로그인 해야 하는 시스템 로그인 확인을 하십시오. 정상적인 상황에서 입력이 올바른 로그인, 로그인, 오류가 없는 경우로 서이 일반적인 처리 과정입니다. 프로그램 구현 하는 것입니다 일반적으로 사서함 및 암호 로그인 폼을 통해 사용자가 입력 한 다음 예는 SQL 쿼리 문을 생성 하는 프로그램 전달: 사용자에서 선택 COUNT (*) 어디 이메일 = 'myemail@163.com' 및 비밀 번호 = 'Mypass', 그리고 다음 제출 하는 배경 데이터베이스 실행이 SQL 문을 레코드 수 반환 된 사서함 정보 또는 암호 올바르지 않은 다음은 0, 또는 사용자 등록 되지 않은 시스템에 로그인을 거부, 다른 합법적인 사용자의 로그인을 허용 하는 경우. 일반 고객에 대 한이 확인 프로세스는 매우 효과적인, 올바른 사서함 및 암호는 시스템에 로그온 할 수 없습니다 경우 등록 되지 않은 또는 아무 소매 사람들이. 하지만 해커에 대 한 것은 다릅니다. 예를 들어 시스템의 인증을 우회 하는 합법적인 전자 메일 주소를 대체 하는 문자열을 신중 하 게 디자인 수: 해커의 전자 메일 주소는 "Myemail" 오 라 = i-암호 "Myppass"는,이 시점에서 SQL 문이 된다 사용자에서 선택 COUNT (*) Wherer 이메일 'myemail' 나 = = i-'와 비밀 번호 = 'Mypass' 레코드 수 반환이 문 실행 되 면 0이 아닌, 사용자가 테이블에 레코드의 총 수 이므로 시스템 시스템 로그온 인증을 통해 로그온 할 수 있습니다. 이것은 유명한 SQL 주입 공격 이다. 이 대 한 이유는 해커는 신중 하 게 합법적인 전자 메일 주소를 대체 하는 문자열을 생성 하 고 시스템 사용자의 적법성에 대 한 입력된 데이터를 검사 하지 않습니다.
위의 PHP 보안 취약점을 방지 하기 위해 우리는 사용자의 손실의 적법성을 확인할 수 있습니다. 사용자가 입력 한 데이터의 적법성을 확인 하기 위해 이메일 주소는 필수. 사용자의 이메일 주소를 정규식을 사용 하 여 올바른 사서함 서식을 확인할 수 있습니다 우리는 해커가 매우 특별 한 문자열을 SQL 주입 취약점 인간의의 출현을 방지 하기 위해 어느 정도 디자인의 어려움을 증가할 수 있다.
어떤 경우 사용자의 출력 과정, 다른 상황에 따라 확인 방법의 엄격한 검증의 대부분, PHP 보안 취약점을 방지 하기 위해 될 수 있는 정규 표현식에 국한 되지 않습니다.
2, 보안 허점 및 예방 적절 한 이스케이프에 출력 하는 시스템에는 없습니다
시스템의 출력을 제대로 탈출 실패 또한 보안 취약점, 크로스 사이트 스크립팅 취약점의 유명한 보기를 만듭니다. 시스템에 그에 언급 수 걸리는 데이터 제출 양식을 가정 합니다. 평균 사용자에 대 한이 큰 문제가 되지 않습니다 하지만 해커에 대 한 질문은 온다. 해커 정말 언급 하 고 싶지 않아, 그들은 다른 로그인 한 사용자 쿠키를 훔 치기 위해 노력 수 있습니다. 다른 사용자 로부터 쿠키를 훔치는 블랙 댓글 내용으로 자바 스크립트 코드를 제출할 수 있습니다.
경우는 출력 전에 해커의 제출에서 탈출, Lavascript 코드 다른 로그인 사용자 의견 탐색에 대 한 해커에 쿠키를 전송 하는 다른 사용자의 브라우저에서 실행 됩니다. 이러한 크로스-사이트 스크립팅 공격 으로부터 보호 하려면 우리가 걸릴 단계는 간단: htmlentities () 함수를 사용 하 여 클라이언트 브라우저에 댓글 내용을 출력 하기 전에 출력을 탈출. 이 함수는 실행 되는 JavaScript 코드를 입력 하는 해커를 수 있도록 HTML 요소를 출력에 포함 될 수 있습니다 HTML 태그를 변환 합니다.
어떤 경우에, 시스템의 출력 해야 제대로 이스케이프 (escape 메서드는 htmlentities () 함수에 국한 되지 않음, 상황에 따라 다름), 그래야 해커가 악용 되지 것입니다.
성명: 정 도매 시장 하 여이 문서: http://www.shun-e.com/market/original 제출, 존중, 타인의 업적에 대 한 소스를 지정 하시기 바랍니다 복제!