찾다
백엔드 개발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 마스터 링 : 데이터 교환을위한 모범 사례잘 형성된 XML 마스터 링 : 데이터 교환을위한 모범 사례May 14, 2025 am 12:05 AM

    wformedxmliscrucialfordataexchangebecauseItensurescorrectparsingand and underdestandingAcrosssystems.1) 시작된 경사 같은 곳에서 시작합니다

    XML : 아직도 사용됩니까?XML : 아직도 사용됩니까?May 13, 2025 pm 03:13 PM

    xmlisstillusedduetoitsstructurednature, HumanReadability 및 WideSpreadAdoptioninenterPriseEnvironments.1) ItfacilitatesDataExChangeInsectorsikeFinance (SWIFT) 및 HL7) .2) ITSHUMAN-ReadableFormataIdSinmanualDatainsPectioning.3) XMLISERDEN

    RSS 문서의 해부학 : 구조 및 요소RSS 문서의 해부학 : 구조 및 요소May 10, 2025 am 12:23 AM

    RSS 문서의 구조에는 세 가지 주요 요소가 포함됩니다 : 1. : RSS 버전 정의 루트 요소; 2. : 제목, 링크 및 설명과 같은 채널 정보를 포함합니다. 3. : 제목, 링크, 설명 등을 포함한 특정 콘텐츠 항목을 나타냅니다.

    RSS 문서 이해 : 포괄적 인 가이드RSS 문서 이해 : 포괄적 인 가이드May 09, 2025 am 12:15 AM

    RSS 문서는 XML 파일을 통해 컨텐츠 업데이트를 게시하는 간단한 구독 메커니즘입니다. 1. RSS 문서 구조는 여러 요소로 구성되며 요소를 포함합니다. 2. RSS 리더를 사용하여 XML을 구문 분석하여 채널을 구독하고 정보를 추출하십시오. 3. 고급 사용에는 FeedParser 라이브러리를 사용한 필터링 및 정렬이 포함됩니다. 4. 일반적인 오류에는 XML 구문 분석 및 인코딩 문제가 포함됩니다. XML 형식 및 인코딩은 디버깅 중에 확인해야합니다. 5. 성능 최적화 제안에는 캐시 RSS 문서 및 비동기 구문 분석이 포함됩니다.

    RSS, XML 및 최신 웹 : 콘텐츠 신디케이션 깊은 다이빙RSS, XML 및 최신 웹 : 콘텐츠 신디케이션 깊은 다이빙May 08, 2025 am 12:14 AM

    RSS와 XML은 여전히 ​​최신 웹에서 중요합니다. 1.RSS는 콘텐츠를 게시하고 배포하는 데 사용되며 사용자는 RSS 리더를 통해 구독하고 업데이트를받을 수 있습니다. 2. XML은 마크 업 언어이며 데이터 저장 및 교환을 지원하며 RSS 파일은 XML을 기반으로합니다.

    Beyond Basic : XML이 활성화 한 고급 RSS 기능Beyond Basic : XML이 활성화 한 고급 RSS 기능May 07, 2025 am 12:12 AM

    RSS를 사용하면 멀티미디어 컨텐츠 임베딩, 조건부 가입 및 성능 및 보안 최적화가 가능합니다. 1) 태그를 통해 오디오 및 비디오와 같은 멀티미디어 컨텐츠를 포함합니다. 2) XML 네임 스페이스를 사용하여 조건부 가입을 구현하여 구독자가 특정 조건에 따라 컨텐츠를 필터링 할 수 있습니다. 3) CDATA 섹션 및 XMLSCHEMA를 통해 RSSFEED의 성능 및 보안을 최적화하여 표준에 대한 안정성과 준수를 보장합니다.

    RSS 디코딩 : 웹 개발자를위한 XML 프라이머RSS 디코딩 : 웹 개발자를위한 XML 프라이머May 06, 2025 am 12:05 AM

    RSS는 자주 업데이트되는 데이터를 게시하는 데 사용되는 XML 기반 형식입니다. 웹 개발자로서 RSS를 이해하면 콘텐츠 집계 및 자동화 업데이트 기능을 향상시킬 수 있습니다. RSS 구조, 구문 분석 및 생성 방법을 학습하면 RSSFeeds를 자신있게 처리하고 웹 개발 기술을 최적화 할 수 있습니다.

    JSON 대 XML : RSS가 XML을 선택한 이유JSON 대 XML : RSS가 XML을 선택한 이유May 05, 2025 am 12:01 AM

    RSS는 다음과 같이 JSON 대신 XML을 선택했습니다. 1) XML의 구조 및 검증 기능은 JSON보다 낫습니다. 이는 RSS 복잡한 데이터 구조의 요구에 적합합니다. 2) XML은 당시 광범위하게 지원되었다. 3) RSS의 초기 버전은 XML을 기반으로했으며 표준이되었습니다.

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

    뜨거운 도구

    메모장++7.3.1

    메모장++7.3.1

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

    SecList

    SecList

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

    맨티스BT

    맨티스BT

    Mantis는 제품 결함 추적을 돕기 위해 설계된 배포하기 쉬운 웹 기반 결함 추적 도구입니다. PHP, MySQL 및 웹 서버가 필요합니다. 데모 및 호스팅 서비스를 확인해 보세요.

    ZendStudio 13.5.1 맥

    ZendStudio 13.5.1 맥

    강력한 PHP 통합 개발 환경

    SublimeText3 중국어 버전

    SublimeText3 중국어 버전

    중국어 버전, 사용하기 매우 쉽습니다.