웹 해킹 & 시큐어 코딩

웹 해킹 & 시큐어 코딩 (16)

홍시뗄레 2025. 1. 28. 14:34

대응 방안

1. JSON 데이터 형식으로 기능 구현

XML 대신 JSON으로.

2. DTD 및 외부 엔티티 비활성화

3. XML Parser 기능을 없앤다.

 

해당 어플리케이션에 맞는 외부 개체 비활성화 코드를 잘 작성해야 한다.

 

[실습4-2] 취약 환경 시큐어 코딩 적용 실습

XML Parser 기능이 필요 없다면 없애는 게 나음. 만약 있어야 한다면 시큐어 코딩을 하자.

xmlparser.php 파일 오픈!

그냥 단순히 입력값에 대한 결과를 출력하는 형태의 코드였다.

여기서 외부 개체를 참조할 수 있는 기능을 비활성화해야 한다.

그냥 기본으로 내장되어 있는 코드이므로 이 비활성화 코드를 true로 바꿔주면 끝난다.

그럼 시큐어 코딩이 완료되었는지 확인해보자.

저번 실습때 사용했던 코드를 다시 입력했을 때 결과가 어떻게 나오는지 확인해보자.

하단에 값이 안 나오는 걸 알 수 있다. 괄호 안에 비어있고, 상단에는 에러가 나타난다.

외부 개체 참조는 비활성화되어 있으나 내부 개체 참조는 가능할 것이다. 

내부 개체 참조 코드를 입력해보자.

이건 정상적으로 출력된다.

내부 개체 참조는 가능하고 외부 개체 참조만 불가능한 상태.

 

제일 좋은 건 xml parser 기능을 없애는 것.

<> 같은 것을 못 쓰게 막을 순 없다. xml parser의 기본 기능이므로...