>백엔드 개발 >PHP 튜토리얼 >보안 탐지 도구로 검사한 프로젝트 프로그램의 보안 취약점에 대해 질문이 있으십니까?

보안 탐지 도구로 검사한 프로젝트 프로그램의 보안 취약점에 대해 질문이 있으십니까?

WBOY
WBOY원래의
2016-08-04 09:20:471090검색

고객사는 평가 소프트웨어를 사용하여 우리 프로젝트를 평가한 결과 sql 주입xss 공격을 포함하여 여러 가지 보안 취약점을 발견했습니다. 보안 취약점이 나타난 서버 프로그램 코드를 살펴보았습니다. ,기본적으로 페이지에서 데이터 가져오기 또는 게시를 서버로 보내는 취약점이 있는 것으로 확인되었습니다. 백엔드는 CI 프레임워크와 함께 제공되는 입력 클래스를 사용하여 입력된 정보를 필터링할 수 있습니다. 사용자에 의해 CI의 csrf 구성 항목도 활성화되었습니다

테스트 도구:
보안 탐지 도구로 검사한 프로젝트 프로그램의 보안 취약점에 대해 질문이 있으십니까?

취약점 개요:
보안 탐지 도구로 검사한 프로젝트 프로그램의 보안 취약점에 대해 질문이 있으십니까?

보안 탐지 도구로 검사한 프로젝트 프로그램의 보안 취약점에 대해 질문이 있으십니까?

몇 가지 골치 아픈 문제가 있습니다.

  1. getpost 데이터를 수신하기 위한 원래 코드는 $this->input->get('section_id)과 같이 작성되었으며, 프로젝트의 다른 곳에서는 이를 수신하기 위한 필터링 및 보안 조치가 취해진 것으로 보입니다. .왜 그런 허점이 계속 발생할까요?

  2. get、post 데이터를 수신하는 서버에 문제가 있으면 이 방법을 사용하는 프로젝트의 모든 곳에서 허점이 발생해야 합니다. 왜 이러한 허점은 몇몇 곳에서만 나타나는 걸까요?

  3. 고객들은 테스트 데이터만 볼 수 있는데 어떻게 설명하고 소통해야 할까요?

조언 좀 부탁드려요~

답글 내용:

고객사는 평가 소프트웨어를 사용하여 우리 프로젝트를 평가한 결과 sql 주입xss 공격을 포함하여 여러 가지 보안 취약점을 발견했습니다. 보안 취약점이 나타난 서버 프로그램 코드를 살펴보았습니다. ,기본적으로 페이지에서 데이터 가져오기 또는 게시를 서버로 보내는 취약점이 있는 것으로 확인되었습니다. 백엔드는 CI 프레임워크와 함께 제공되는 입력 클래스를 사용하여 입력된 정보를 필터링할 수 있습니다. 사용자에 의해 CI의 csrf 구성 항목도 활성화되었습니다

테스트 도구:
보안 탐지 도구로 검사한 프로젝트 프로그램의 보안 취약점에 대해 질문이 있으십니까?

취약점 개요:
보안 탐지 도구로 검사한 프로젝트 프로그램의 보안 취약점에 대해 질문이 있으십니까?

보안 탐지 도구로 검사한 프로젝트 프로그램의 보안 취약점에 대해 질문이 있으십니까?

몇 가지 골치 아픈 문제가 있습니다.

  1. getpost 데이터를 수신하기 위한 원래 코드는 $this->input->get('section_id)과 같이 작성되었으며, 프로젝트의 다른 곳에서는 이를 수신하기 위한 필터링 및 보안 조치가 취해진 것으로 보입니다. .왜 그런 허점이 계속 발생할까요?

  2. get、post 데이터를 수신하는 서버에 문제가 있으면 이 방법을 사용하는 프로젝트의 모든 곳에서 허점이 발생해야 합니다. 왜 이러한 허점은 몇몇 곳에서만 나타나는 걸까요?

  3. 고객들은 테스트 데이터만 볼 수 있는데 어떻게 설명하고 소통해야 할까요?

조언 좀 부탁드려요~

1 이러한 종류의 테스트 소프트웨어의 판단은 반드시 정확하지는 않습니다. 일반적으로 서로 다른 문을 연결하여 반환된 결과의 문자 길이가 동일한지 여부만 판단하여 주입 여부를 판단합니다.
2 하지 마십시오. 어떤 프레임워크나 프레임워크가 안전하지 않은지 너무 믿으세요. 전역 필터링을 직접 수행해야 합니다
3 여기서 그가 감지한 xss는 저장 유형이 아니므로 위험은 그리 높지 않습니다. 이런 종류의 보고서는 발판으로 가장 많이 사용됩니다
4. 클라이언트가 원하는 것은 보고서에 허점이 없다는 편안함입니다.
5 단지 그가 취약점을 스캔하지 않기를 원하는 경우. 프로그램 항목에 로그 파일을 작성하고 모든 요청과 매개변수를 기록하여 스캐닝 소프트웨어가 취약점이 있는지 여부를 어떻게 판단하는지 분석합니다.
6 스캐닝 소프트웨어 보고서의 취약점을 수정하세요. 개인적인 경험으로 볼 때 전달하는 매개변수에 intval이 없어야 합니다.
7 오류 주입을 방지하려면 mysql 오류 메시지를 닫으세요
예방
1 프로그램 단어 필터링
에 전역 SQL 키를 추가합니다. 2 PHP 작은따옴표 이스케이프를 활성화합니다(php.ini Magic_quotes_gpc 수정).
3 Apache/nginx/iis는 서비스 로그, mysql 느린 쿼리 로그 및 프로그램 항목 기록 요청 로그를 활성화합니다.
4 서버는 SafeDog와 같은 웹 애플리케이션 보안 소프트웨어를 설치합니다.
5 데이터베이스 링크에 UTF-8을 사용합니다. gbk 더블 바이트 주입 방지
6 mysql 비밀번호 복잡도 강화, mysql 외부 링크 금지, 기본 포트 번호 변경
7 프로그램 mysql 계정 권한을 줄이고, 일반적인 추가, 삭제, 확인, 수정만 허용 권한. 파일작업 권한 부여를 금지합니다

XSS 크로스 사이트 공격 솔루션
1 htmlspecialchars를 사용하여 텍스트가 작성된 위치를 탈출합니다
2 SSL을 사용하여 외부 js 로드 및 참조를 금지합니다
3 쿠키 획득을 금지하도록 httponly 설정
4 이미 게시됨 인젝션이 없는지 확인하세요. (인젝션이 있는 경우 16진수를 사용하여 htmlspecialchars를 우회하여 xss 공격 효과를 얻을 수 있습니다.)
5 백엔드와 프론트엔드에 대해 라우팅 규칙이 다른 2세트의 프로그램을 사용하는 것이 가장 좋습니다. . 백엔드(백업 데이터베이스)의 주요 작업은 CSRF를 방지하기 위해 보조 비밀번호를 설정하고 요청 매개변수의 복잡성을 높여야 합니다

PHP 보안
1 파일이 업로드되는 곳에 접미사 필터링을 추가하고 필터링 시 '논리적 부정' 판단을 하지 않는다.
2 접미사 php 및 htaccess가 포함된 파일을 업로드하는 것은 금지되어 있습니다. 파일 이름 접미사를 얻기 위해 클라이언트가 제출한 데이터를 사용하지 마십시오. 접미사 및 임의의 파일 이름을 추가하려면 프로그램을 사용해야 합니다.
3 무단 액세스를 제한하는 통합 라우팅. webroot 디렉터리는 외부 방어를 위해 하나의 index.php(항목 파일)만 가질 수 있습니다. 다른 모든 디렉터리는 외부 방어가 금지됩니다. 모든 리소스(업로드된) 파일은 nginx에 안티 리칭 기능이 추가됩니다.
4. PHP 분산화 처리 . 웹 디렉터리는 폴더 및 텍스트 생성을 제한합니다(프로그램에 필요한 폴더 제외, 일반적으로 쓰기 권한이 필요한 캐시 디렉터리가 있음)
5 IIS/nginx 파일 구문 분석 취약점 사용 필터링
6 사용 비밀번호 검색을 위해서는 휴대폰 인증번호 검색과 이메일 검색은 별도의 서버를 이용해야 합니다. (비밀번호 검색 기능을 통해 실제 IP를 알아내는 것을 방지합니다.) 사용자의 메일함으로 전송된 비밀번호를 재설정하기 위한 마지막 링크에는 복잡한 암호화 매개변수가 있어야 합니다
7 사용자 로그인 시스템은 사용자가 로그인한 경우 다른 사람에게도 로그인하라는 메시지를 표시해야 합니다. 다시.
8

1 보안 지식
1 웹 애플리케이션은 사이트 라이브러리 분리를 사용하고, 환경 웹 디렉터리의 기본 경로를 변경
2 통합 환경을 사용하는 경우에는 php 프로브, phpmyadmin, phpinfo(프로브)를 삭제해야 합니다. 설치가 완료되면 바늘로 웹 경로를 확인할 수 있고, phpmyadmin은 무차별 대입 크랙을 할 수 있습니다)
2 사용자 비밀번호는 비밀번호 솔팅 후 md5 값을 사용하는 것이 가장 좋습니다
3 해당 위치에 인증 코드를 추가합니다. 사용자 로그인, 무차별 대입 크래킹을 방지하기 위해 오류 수에 제한을 추가하는 방법
4 cdn 가속을 사용하여 실제 IP 숨기기
5 사용자가 로그인할 때 C를 방지하기 위해 일반 텍스트 계정 비밀번호를 전달하지 마십시오. -사이드 스니핑 및 ARP 스푸핑을 통해 사용자 및 관리자 일반 텍스트 계정 비밀번호 획득
6 PHP 시스템 명령 비활성화 행 수 exec, 시스템 등
7 서버에 SafeDog와 같은 보안 소프트웨어 설치
8 웹 디렉토리는 .rar, zip 파일 저장이 금지되어 있습니다

RSAS와 BVS에 대해 제가 이해한 바에 따르면, 이 문제를 해결하지 않으면 항상 스캔이 발생합니다. 가장 근본적인 방법은 이러한 문제를 해결하고 취약점을 직접 발견하는 것입니다. 다른 사람이 자신을 공격하지만 내부자입니다. 취약점을 이용하여 백도어 프로그램을 만드는 일부 고객은 설명할 여지가 거의 없습니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.