2014-06-08 2 views
-1

사용자가 서버에 저장된 XML 문서를 읽을 수있는 WCF 서비스가 있습니다. 메소드의 서명은 다음과 같다 :XML 파일을 읽을 수있는 WCF 서비스의 보안

XmlNode ReadXmlFile(string path) 

또한 나는

bool WriteXmlFile(string path, XMLNode contents) 

웹 서비스 그것은 모든 시스템 설정을 읽을 수 없음을 의미에는 관리자 권한이없는 사용자로 실행해야합니다. 궁금합니다.이 상황을 고려할 때 공격자가 시스템에 침입 할 수있는 방법이 있습니까? 그 말은 시스템 설정을 바꾸고 XML, e.t.c.뿐만 아니라 모든 파일을 읽을 수 있다는 뜻입니다.

+0

사용자가 어떤 폴더에 쓰기합니까? –

+0

모든 폴더 - 그 제한이 없습니다 – seeker

+0

이상합니다. 그리고 폴더는 어디에서 왔습니까? 서비스 매개 변수? –

답변

1

나는 기존 시스템의 보안을 공정하지만 좋지 않다고 평가할 것입니다. 아마도 충분하지 않을 수도 있습니다. 이상적인 모든 읽기 및 쓰기 작업은 wcf 서비스에서만 액세스 할 수있는 제한된 디렉토리에서 수행해야합니다. wcf 서비스는이 폴더를 읽고 쓸 수만 있습니다. 이 프로세스 (wcf 서비스)가 제한되어야하는 파일 유형조차. 시간대도 제한 될 수 있습니다. 보안 측면에서 얼마나 멀리 가져 가고 싶은가에 달려 있습니다.

0

당신이 할 수있는 일은 system.io에서 그들이 읽고있는 XML 파일인지 확인하고 그들이 읽을 수있는 시스템이나 .net 폴더에 없는지 확인하기 위해 환경 클래스를 사용하는 것입니다.

0

약 XXE 취약점을 고려해야합니다. 클라이언트로부터 XML 입력을 받으면 XXE 취약점으로 이어질 수 있습니다. 이는 공격자가 로컬 파일을 읽을 수 있다는 것을 의미합니다.

PHP를 사용하면 코드를 따라 엔티티 로더를 disability해야합니다.

libxml_disable_entity_loader(true) 

https://www.owasp.org/index.php/XML_External_Entity_(XXE)_Processing

관련 문제