웹사이트 개발의 관점에서 PHP 보안 취약점의 예방 개선 하는 방법

출처: 인터넷
작성자: 사용자

중간 트랜잭션 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 제출, 존중, 타인의 업적에 대 한 소스를 지정 하시기 바랍니다 복제!

연락처

이 페이지의 내용은 인터넷에서 가져온 것이므로 Alibaba Cloud의 공식 의견이 아닙니다.이 페이지에서 언급 된 제품 및 서비스는 Alibaba Cloud와는 관련이 없으므로이 페이지의 내용이 골칫거리 인 경우 저희에게 알려주십시오. 우리는 5 일 근무일 이내에 이메일을 처리 할 것입니다.

커뮤니티에서 표절 사례를 발견한 경우 info-contact@alibabacloud.com 으로 관련 증거를 첨부하여 이메일을 보내주시기 바랍니다. 당사 직원이 영업일 기준 5일 내에 연락 드리도록 하겠습니다.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.