찾다
백엔드 개발XML/RSS 튜토리얼XXE (XML 외부 엔티티) 공격을 어떻게 방지합니까?

XML 외부 엔티티 (XXE) 공격을 방지하려면?

XML 외부 엔티티 (XXE) 공격 방지는 외부 엔티티를 해결할 수있는 응용 프로그램의 능력을 비활성화하는 데 경첩이 있습니다. 이는 주로 파서 수준의 구성 변경을 통해 달성됩니다. 다양한 프로그래밍 언어와 XML 처리 라이브러리는 다양한 방법을 가지고 있지만 핵심 원칙은 동일하게 유지됩니다. 파서가 XML 문서 내에 지정된 외부 리소스에 액세스하는 것을 방지합니다.

여기 공통 시나리오에 의한 고장이 있습니다.

플래그는 입니다. 이것은 일반 및 매개 변수 엔티티의 처리를 명시 적으로 비활성화합니다. 최신 버전의 Java의 경우 유사한 비활성화 기능과 함께 를 사용하는 것을 고려하십시오.

php :

php 's eptension은 유사한 컨트롤을 제공합니다. 와 같은 함수는 외부 엔티티의 로딩을 효과적으로 비활성화합니다. XML 데이터를 구문 분석하기 전에이 함수를
    > Python :
  • Python 's 및 기타 XML 처리 라이브러리는 종종 외부 엔터티를 비활성화하기위한 직접적인 제어가 부족합니다. 그러나 여기서 모범 사례는 신뢰할 수없는 XML 입력을 직접 사용하지 않는 것입니다. 대신, 구문 분석하기 전에 XML 데이터를 소독하거나 검증하여 악성 엔티티가 처리되는 것을 효과적으로 방지합니다. 와 같은 라이브러리는 표준 XML 파서에 대한 더 안전한 대안을 제공합니다. node.js : javax.xml.parsers.SAXParserFactory Python과 유사하게 Node.js 라이브러리는 직접 엔티티 비활성화를 제공하지 않을 수 있습니다. 보안을 염두에두고 설계된 라이브러리를 사용하여 구문 분석하기 전에 입력 XML 데이터를 검증하고 소독하는 데 중점을 둡니다. 표준 구문 분석기와 함께 잠재적으로 악의적 인 입력을 직접 사용하지 마십시오. javax.xml.parsers.DocumentBuilderFactory 특정 XML 구문 분석 라이브러리 및 프레임 워크의 설명서를 참조하여 외부 엔티티 해상도를 비활성화하는 데 사용할 수있는 정확한 구성 옵션을 이해하십시오. 라이브러리의 정기적 인 업데이트는 또한 최신 보안 패치의 혜택을 얻는 데 중요합니다. setFeature("http://xml.org/sax/features/external-general-entities", false) XXE 공격으로 이어지는 일반적인 취약점은 무엇입니까? setFeature("http://xml.org/sax/features/external-parameter-entities", false)에서 발생합니다
    • 부적절한 XML 파서 구성 : 이것은 가장 널리 퍼진 원인입니다. XML 파서가 외부 엔터티 처리를 명시 적으로 비활성화하도록 구성되지 않은 경우 입력 XML에서 참조 된 엔티티를 쉽게 해결하고 잠재적으로 HTTP와 같은 프로토콜을 통해 로컬 파일, 내부 네트워크 리소스 또는 원격 서버에 액세스 할 수 있습니다. 위생화는 중대한 위험입니다. 공격자는 파서의 취약점을 악용하는 외부 엔티티 선언이 포함 된 악의적 인 XML 문서를 제작할 수 있습니다. 입력 유효성이 충분하지 않아서 적절하게 구성된 구문 분석기를 사용하더라도 XML 입력의 부적절한 검증은 문제로 이어질 수 있습니다. 공격자는 피상적 인 검사를 우회하여 악의적 인 엔티티를 무해한 XML 데이터에 주입하려고 시도 할 수 있습니다.
    • 출력 인코딩 부족 :
    • XXE 취약성 자체를 직접적으로 유발하지는 않지만 출력 인코딩은 충격을 악화시킬 수 있습니다. 애플리케이션이 XML 출력에 올바르게 인코딩되지 않으면 XML 응답에 내장 된 민감한 데이터를 노출시켜 공격의 도달 범위를 발전시킬 수 있습니다. 구식 라이브러리 : 구식 XML 구문 분석 라이브러리를 사용하여 새로운 버전을 사용하는 경우, 새로운 버전을 사용하는 보안 패치를 포함하여
    • 는 위험이 증가합니다. XXE 취약성에 대한 나의 응용 프로그램? XXE 취약점 테스트에는 수동 및 자동화 된 기술이 모두 필요합니다.
    • 수동 테스트 :
    • 데이터 유출 (로컬 파일 읽기) : 는 로컬 파일을 가리키는 엔티티 선언이있는 XML 문서를 구성합니다 (예 : UNIX- 유사 시스템에서 ). 파서가 엔티티를 해결하는 경우 파일의 민감한 데이터가 응답에서 유출되거나 기록 될 수 있습니다. 데이터 유출 (원격 파일 읽기) : 로컬 파일 읽기와 유사하지만 엔티티는 HTTP 또는 기타 프로토콜을 통해 원격 파일을 가리 킵니다. 성공적인 악용은 원격 파일의 내용을 보여줍니다.
  • OB (Out-of Band) XXE :
는 외부 엔티티를 사용하여 제어하는 ​​서버에 요청하는 것이 포함됩니다. 서버는 요청을 기록하여 취약점을 확인합니다.

자동화 된 테스트 :

몇 가지 도구는 XXE 취약성 감지를 자동화 할 수 있습니다 :

.

    OWASP ZAP : XXE 취약점을 감지하기 위해 내장 기능이 내장 된 널리 사용되는 웹 애플리케이션 보안 스캐너.
  • Burp Suite : 활성 스캔 기능을 통해 XXE 결함을 감지 할 수있는 또 다른 인기있는 웹 보안 도구. 스크립트 (예 : Python 사용)는 특정 XML 엔드 포인트 및 데이터 구조에 대한 대상 테스트를 제공 할 수 있습니다.
  • 포괄적 인 커버리지를 보장하기 위해 다양한 공격 벡터를 철저히 테스트하고 다양한 공격 벡터를 고려해야합니다.
  • XXE 위험을 완화하기 위해 어떤 보안을 구현해야합니까? xxe 위험 :
  • 입력 유효성 검사 및 소독 :
  • 를 처리하기 전에 항상 XML 입력을 검증하고 소독합니다. 수신 된 XML 데이터의 소스 또는 내용을 절대 신뢰하지 마십시오. XML Canonicalization을 사용하여 XML 문서를 정상화하여 주입 공격의 잠재력을 감소시키고 감소시킵니다. 데이터. 보안 코딩 관행 : XML 데이터를 처리 할 때 프로그래밍 언어 및 프레임 워크에 특정한 보안 코딩 가이드 라인을 따르십시오.
  • 정기적 인 보안 감사 및 침투 테스트 :
정기적으로 응용 프로그램의 보안을 감사하고 안전하게 침투하는 테스트를 수행합니다. 및 프레임 워크 :

> 강력한 보안 기능을 제공하고 정기적 인 보안 업데이트로 적극적으로 유지되는 XML 처리 라이브러리 및 프레임 워크를 선택하십시오.

최소한의 권한 원칙 :

XML 구문 분석기가 특권이 가장 적은 상태로 실행되도록하십시오. 이는 성공적인 XXE 공격의 영향을 제한합니다.

모니터링 및 로깅 :

XML 처리와 관련된 의심스러운 활동을 감지하기 위해 포괄적 인 모니터링 및 로깅을 구현합니다. 이를 통해 잠재적 인 위반에 대한 적시에 응답 할 수 있습니다.

이러한 관행에 부지런히 XXE 공격이 응용 프로그램에 대한 가능성과 영향을 크게 줄일 수 있습니다. 다층 보안 접근법이 가장 효과적이라는 것을 기억하십시오.

    위 내용은 XXE (XML 외부 엔티티) 공격을 어떻게 방지합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

    성명
    본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
    XML의 RSS : 컨텐츠 신디케이션의 핵심을 공개합니다XML의 RSS : 컨텐츠 신디케이션의 핵심을 공개합니다Apr 22, 2025 am 12:08 AM

    XML에서 RSS 구현은 구조화 된 XML 형식을 통해 컨텐츠를 구성하는 것입니다. 1) RSS는 채널 정보 및 프로젝트 목록과 같은 요소를 포함하여 XML을 데이터 교환 형식으로 사용합니다. 2) RSS 파일을 생성 할 때는 사양에 따라 컨텐츠를 구성하고 구독을 위해 서버에 게시해야합니다. 3) RSS 파일은 리더 또는 플러그인을 통해 구독하여 컨텐츠를 자동으로 업데이트 할 수 있습니다.

    기본 사항을 넘어서 : 고급 RSS 문서 기능기본 사항을 넘어서 : 고급 RSS 문서 기능Apr 21, 2025 am 12:03 AM

    RSS의 고급 기능에는 컨텐츠 네임 스페이스, 확장 모듈 및 조건부 구독이 포함됩니다. 1) 컨텐츠 네임 스페이스는 RSS 기능을 확장합니다. 2) 메타 데이터를 추가하기 위해 Dublincore 또는 iTunes와 같은 확장 된 모듈, 3) 특정 조건에 따라 조건부 구독 필터 항목. 이러한 기능은 XML 요소 및 속성을 추가하여 정보 수집 효율성을 향상시켜 구현됩니다.

    XML 백본 : RSS 피드가 구조화되는 방법XML 백본 : RSS 피드가 구조화되는 방법Apr 20, 2025 am 12:02 AM

    rssfeedsusexmltostructurecontentupdates.1) xmlprovideahierarchicalstructurefordata.2) the ElementDefinesThefeed 'sidentityandContainsElements.3) elementsreent indindividualcontentpieces.4) rssisextensible, 허용 Bestpracticesin

    RSS & XML : 웹 컨텐츠의 동적 듀오 이해RSS & XML : 웹 컨텐츠의 동적 듀오 이해Apr 19, 2025 am 12:03 AM

    RSS 및 XML은 웹 컨텐츠 관리를위한 도구입니다. RSS는 컨텐츠를 게시하고 구독하는 데 사용되며 XML은 데이터를 저장하고 전송하는 데 사용됩니다. 컨텐츠 게시, 구독 및 업데이트 푸시와 함께 작동합니다. 사용의 예로는 RSS 게시 블로그 게시물 및 XML 저장 도서 정보가 있습니다.

    RSS 문서 : 웹 신디케이션의 기초RSS 문서 : 웹 신디케이션의 기초Apr 18, 2025 am 12:04 AM

    RSS 문서는 자주 업데이트되는 콘텐츠를 게시하고 구독하는 데 사용되는 XML 기반 구조 파일입니다. 주요 기능에는 1) 자동화 된 컨텐츠 업데이트, 2) 컨텐츠 집계 및 3) 브라우징 효율 향상이 포함됩니다. RSSFEED를 통해 사용자는 적시에 다른 소스에서 최신 정보를 구독하고 얻을 수 있습니다.

    RSS 디코딩 : 컨텐츠 피드의 XML 구조RSS 디코딩 : 컨텐츠 피드의 XML 구조Apr 17, 2025 am 12:09 AM

    RSS의 XML 구조에는 다음이 포함됩니다. 1. XML 선언 및 RSS 버전, 2. 채널 (채널), 3. 항목. 이러한 부분은 RSS 파일의 기초를 형성하여 사용자가 XML 데이터를 구문 분석하여 컨텐츠 정보를 얻고 처리 할 수 ​​있도록합니다.

    XML 기반 RSS 피드를 구문 분석하고 활용하는 방법XML 기반 RSS 피드를 구문 분석하고 활용하는 방법Apr 16, 2025 am 12:05 AM

    rssfeedsUsexMlTOSYNDICATECONTENT; parsingTheMinVolvesRoadingXML, NavigatingItsStructure 및 extractingData.ApplicationSaggregatorsAngAggeratsAndTrackingPodCastePisOdes.

    RSS 문서 : 좋아하는 콘텐츠를 제공하는 방법RSS 문서 : 좋아하는 콘텐츠를 제공하는 방법Apr 15, 2025 am 12:01 AM

    RSS 문서는 XML 파일을 통해 컨텐츠 업데이트를 게시하여 작동하며 사용자는 RSS 리더를 통해 구독하고 알림을받습니다. 1. Content Publisher는 RSS 문서를 생성하고 업데이트합니다. 2. RSS 리더는 XML 파일에 정기적으로 액세스하고 구문 분석합니다. 3. 사용자는 업데이트 된 콘텐츠를 탐색하고 읽습니다. 사용의 예 : TechCrunch의 RSS 피드를 구독하고 RSS 리더에게 링크를 복사하기 만하면됩니다.

    See all articles

    핫 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 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

    뜨거운 도구

    ZendStudio 13.5.1 맥

    ZendStudio 13.5.1 맥

    강력한 PHP 통합 개발 환경

    mPDF

    mPDF

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

    SublimeText3 Mac 버전

    SublimeText3 Mac 버전

    신 수준의 코드 편집 소프트웨어(SublimeText3)

    PhpStorm 맥 버전

    PhpStorm 맥 버전

    최신(2018.2.1) 전문 PHP 통합 개발 도구

    드림위버 CS6

    드림위버 CS6

    시각적 웹 개발 도구