찾다
백엔드 개발PHP7PHP 7의 일반적인 보안 취약점은 무엇이며 피하는 방법은 무엇입니까?

PHP 7의 일반적인 보안 취약점은 무엇이며 피하는 방법은 무엇입니까?

PHP 7 및 완화 전략의 일반적인 보안 취약점 : PHP 7의 일반적인 보안 취약점은 여전히 ​​몇 가지 일반적인 보안 취약점을 나타냅니다. 이러한 취약점은 종종 언어 자체의 내재 된 결함보다는 안전하지 않은 코딩 관행에서 비롯됩니다. 다음은 가장 널리 퍼진 것입니다 :
    SQL Injection :
  • 신뢰할 수없는 사용자 입력이 적절한 소독없이 SQL 쿼리에 직접 통합 될 때 발생합니다. 공격자는이 입력을 조작하여 임의의 SQL 명령을 실행하여 민감한 데이터에 액세스하거나 데이터베이스 서버를 제어 할 수 있습니다. <:> 완화 : 항상 매개 변수화 된 쿼리 또는 준비된 명령문을 사용하십시오. 사용자 입력을 SQL 쿼리에 직접 연결하지 마십시오. 종종 매개 변수화를 자동으로 처리하는 강력한 ORM (Object-Relational Mapper)을 사용합니다. 크로스 사이트 스크립팅 (XSS) : XSS 취약점을 사용하면 공격자가 다른 사용자가 보는 웹 페이지에 악성 스크립트를 주입 할 수 있습니다. 이 스크립트는 쿠키를 훔치거나 사용자를 피싱 사이트로 리디렉션하거나 웹 사이트를 훼손 할 수 있습니다. <:> 완화 : 웹 페이지에 표시하기 전에 모든 사용자가 제공 한 데이터를 엄격하게 소독합니다. 컨텍스트에 적합한 출력 인코딩 기능 (HTML, JavaScript 등)을 사용하십시오. CSP (Content Security Policy)를 구현하여 브라우저가로드 할 수있는 리소스를 제어하기 위해 컨텐츠 보안 정책 (CSP)을 제어합니다.
  • CSRF (Cross-Site Request Prostery) : CSRF는 사용자가 이미 인증 한 웹 사이트에서 원치 않는 작업을 수행하도록 트릭을 공격합니다. 예를 들어, 공격자는 사용자의 지식없이 자금을 이체하기위한 양식을 제출하는 링크를 제작할 수 있습니다. <: :> 완화 : CSRF 토큰 사용. 이들은 각 양식 제출에 대해 생성 된 독특하고 예측할 수없는 값입니다. 서버는 토큰이 제출 된 토큰이 생성 된 것과 일치하여 무단 요청을 방지하는지 확인합니다. CSRF 위험을 추가로 완화하기 위해 쿠키 속성을 사용하십시오. 세션 납치 : 공격자는 사용자의 세션 ID를 훔쳐서 사칭 할 수 있습니다. 이는 세션 관리 시스템의 취약성을 악용하거나 전송 중에 세션 ID를 가로 채는 것과 같은 다양한 방법을 통해 달성 할 수 있습니다. <:> 완화 : 안전하고 예측할 수없는 세션 ID를 사용하십시오. 클라이언트와 서버 간의 통신을 암호화하기 위해 HTTP를 구현하십시오. 세션 ID를 정기적으로 재생합니다. 파일에 의존하기보다는 데이터베이스에서 이상적으로 저장 세션 데이터를 단단히 저장하십시오.
  • 파일 포함 취약점 :
  • 이러한 취약점을 사용하면 공격자가 서버에 임의의 파일을 포함시켜 잠재적으로 악의적 인 코드를 실행할 수 있습니다. 이는 종종 애플리케이션에 적절한 유효성 검사없이 사용자 입력을 기반으로 파일을 동적으로 포함 할 때 발생합니다. <:> 완화 : 사용자 입력을 기반으로 파일을 포함하여 동적으로 피하십시오. 화이트리스트 접근법을 사용하여 포함 할 파일을 정확하게 지정하십시오. 엄격한 파일 경로 유효성 검증을 구현하십시오RCE (원격 코드 실행) : RCE 취약점을 통해 공격자는 서버에서 임의의 코드를 실행할 수 있습니다. 이것은 종종 SQL 주입 또는 파일 포함과 같은 다른 취약점의 결과입니다. <:> 완화 :
  • RCE로 이어질 수있는 근본적인 취약점을 해결합니다. 알려진 보안 결함을 패치하기 위해 PHP 및 모든 종속 라이브러리를 정기적으로 업데이트하십시오. 최소 특권 원칙을 구현하여 응용 프로그램의 다른 부분에 필요한 권한 만 부여합니다. 가장 큰 PHP 7 기능이 가장 큰 보안 위험을 초래하는 것은 무엇입니까? PHP 7 기능이 상당한 보안 위험을 갖는 기능 :
  • 몇몇 PHP 7 기능을 사용했을 때,

    여기에는 다음이 포함됩니다.

    : 이 함수는 php 코드로 문자열을 실행합니다. 비 사지화되지 않은 사용자 입력과 함께

    를 사용하는 것은 매우 위험하며 임의의 코드 실행으로 이어질 수 있으므로 모든 비용으로 피해야합니다. 가능할 때마다 더 안전한 대안을 사용하십시오.

      , , eval(), : 이 함수는 쉘 명령을 실행합니다. 와 마찬가지로,이 함수를 비 사지화되지 않은 사용자 입력과 함께 사용하면 공격자는 서버에서 임의의 명령을 실행할 수 있습니다. 절대적으로 사용해야한다면 모든 입력을 엄격하게 검증하고 살균하십시오. 쉘 명령 실행이 필요하지 않은 대체 접근법을 고려하십시오. eval()

  • , , , exec() : shell_exec() : system() : 이러한 함수는 파일 경로의 적절한 검증없이 사용하면 파일 포함 취약점으로 이어질 수 있습니다. 항상 화이트리스트 접근 방식을 사용하고 경로를 엄격하게 검증하십시오. passthru()
eval() : 이 함수는 쿼리 문자열을 변수로 구문 분석합니다. 비자니 화되지 않은 사용자 입력과 함께 사용하면 가변 덮어 쓰기 및 잠재적 코드 주입을 포함한 다양한 취약점으로 이어질 수 있습니다. 데이터를 직접 소독하고 데이터를 적절하게 소독하는 것을 선호합니다.
  • include() : include_once() 신뢰할 수없는 데이터를 사로화하면 데이터에 악의적 인 객체가 포함 된 경우 임의 코드 실행이 발생할 수 있습니다. 사막화 전에 항상 데이터를 검증하고 소독합니다. 가능한 경우 대체 직렬화 방법을 고려하는 것을 고려하십시오. require() PHP 7 응용 프로그램을 보호하기 위해 강력한 입력 검증 및 소독을 구현할 수있는 방법은 무엇입니까? require_once() 강력한 입력 검증 및 소독 구현 :
  • 강력한 입력 검증 및 소각은 PHP 7 애플리케이션에 중요합니다. 여기에는 두 가지 단계가 포함됩니다 : parse_str() 1. 유효성 검사 :

    이는 입력 데이터가 예상 형식 및 제약 조건에 맞는지 확인합니다. 이것은 소독 이전에 발생해야합니다. 유효성 검사가 포함될 수 있습니다 : 데이터 유형 검사 : 입력이 올바른 유형인지 확인하십시오 (예 : 정수, 문자열, 부울).

    길이 제한 : 정규 공격 및 기타 공격을 방지하는 길이를 제한합니다. 입력 형식을 검증하기위한 표현식 (예 : 이메일 주소, 전화 번호).
  • 범위 점검 : 숫자 입력이 허용 가능한 범위 내에 속하게 보장합니다. 화이트리스트 : 특정 값 또는 패턴 만 허용합니다. 이것은 일반적으로 블랙리스트보다 선호됩니다.
  • 2. 소독 : 이것은 입력 데이터를 정리하여 잠재적으로 유해한 요소를 제거하거나 중화시킵니다. 위생화는 컨텍스트 별이어야합니다 :
  • html sanitization : XSS 공격을 방지하기 위해 HTML 태그를 제거하거나 탈출하십시오. HTML 정화기와 같은 라이브러리 사용 강력한 HTML 소독. 소금화 : 정기적 인 표현식에서 사용할 수있는 특수 문자를 제거하거나 탈출하거나 탈출하십시오.
  • 예 :
  • 소독이 모든 공격을 방지하기에 충분하지 않기 때문에 항상 를 검증하는 것을 잊지 마십시오. 입력 필터 및 유효성 검사 라이브러리를 사용하여 프로세스를 간소화하는 것을 고려하십시오.
  • PHP 7 애플리케이션에서 데이터베이스 연결을 보호하기위한 모범 사례는 무엇입니까? 데이터베이스 연결을 보호하기위한 모범 사례 : 보안 데이터베이스 연결은 PHP 7 애플리케이션의 전반적인 보안에 가장 중요합니다. 다음 모범 사례를 따르십시오 :
      준비된 문 또는 매개 변수화 쿼리 사용 :
    • 이것은 SQL 주입을 방지하는 가장 효과적인 방법입니다. SQL 코드를 데이터와 분리하여 공격자가 악의적 인 코드를 주입하지 못하게합니다. 자격 증명을 단단히 저장하십시오 :
    • 코드에서 직접 데이터베이스 자격 증명을 직접하지 마십시오. webroot 외부에 저장된 환경 변수 또는 구성 파일을 사용합니다.
    • 강력한 비밀번호 사용 : 데이터베이스 사용자 계정에 강력하고 고유 한 암호를 선택하십시오.
    • 최소한의 권한 원칙 :
    • 데이터베이스 사용자 수여 작업을 수행하는 데 필요한 권한 만 부여하십시오. 과도한 권한 부여를 피하십시오. 데이터베이스 감사 활성화 : 데이터베이스 시스템을 지원하는 경우 감사를 활성화하여 데이터베이스 활동을 추적하고 의심스러운 동작을 감지하십시오. 정기적 인 데이터베이스 소프트웨어 : 최신 보안 패치로 데이터베이스 인용 소프트웨어를 유지하십시오. 데이터 : 암호 및 신용 카드 정보와 같은 데이터베이스에 저장된 민감한 데이터를 암호화합니다.
    • 입력 유효성 검사 및 소독 (다시!) : 준비한 문서를 사용하더라도 입력 유효성 검사 및 산화물은 여전히 ​​다른 유형의 공격을 방지하는 데 필수적입니다. 데이터베이스 활동 모니터링 https. 보안 권장 사항. 응용 프로그램의 개발 및 배포 수명주기 전체에서 항상 보안 모범 사례를 우선시하십시오.

    위 내용은 PHP 7의 일반적인 보안 취약점은 무엇이며 피하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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

    핫 AI 도구

    Undresser.AI Undress

    Undresser.AI Undress

    사실적인 누드 사진을 만들기 위한 AI 기반 앱

    AI Clothes Remover

    AI Clothes Remover

    사진에서 옷을 제거하는 온라인 AI 도구입니다.

    Undress AI Tool

    Undress AI Tool

    무료로 이미지를 벗다

    Clothoff.io

    Clothoff.io

    AI 옷 제거제

    Video Face Swap

    Video Face Swap

    완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

    뜨거운 도구

    WebStorm Mac 버전

    WebStorm Mac 버전

    유용한 JavaScript 개발 도구

    mPDF

    mPDF

    mPDF는 UTF-8로 인코딩된 HTML에서 PDF 파일을 생성할 수 있는 PHP 라이브러리입니다. 원저자인 Ian Back은 자신의 웹 사이트에서 "즉시" PDF 파일을 출력하고 다양한 언어를 처리하기 위해 mPDF를 작성했습니다. HTML2FPDF와 같은 원본 스크립트보다 유니코드 글꼴을 사용할 때 속도가 느리고 더 큰 파일을 생성하지만 CSS 스타일 등을 지원하고 많은 개선 사항이 있습니다. RTL(아랍어, 히브리어), CJK(중국어, 일본어, 한국어)를 포함한 거의 모든 언어를 지원합니다. 중첩된 블록 수준 요소(예: P, DIV)를 지원합니다.

    SublimeText3 영어 버전

    SublimeText3 영어 버전

    권장 사항: Win 버전, 코드 프롬프트 지원!

    SecList

    SecList

    SecLists는 최고의 보안 테스터의 동반자입니다. 보안 평가 시 자주 사용되는 다양한 유형의 목록을 한 곳에 모아 놓은 것입니다. SecLists는 보안 테스터에게 필요할 수 있는 모든 목록을 편리하게 제공하여 보안 테스트를 더욱 효율적이고 생산적으로 만드는 데 도움이 됩니다. 목록 유형에는 사용자 이름, 비밀번호, URL, 퍼징 페이로드, 민감한 데이터 패턴, 웹 셸 등이 포함됩니다. 테스터는 이 저장소를 새로운 테스트 시스템으로 간단히 가져올 수 있으며 필요한 모든 유형의 목록에 액세스할 수 있습니다.

    메모장++7.3.1

    메모장++7.3.1

    사용하기 쉬운 무료 코드 편집기