2012-11-13 4 views
1

Java 응용 프로그램에 XML 스키마를 포함시켜 변경할 수 없습니까? (응용 프로그램에서만 사용됨)?Java 응용 프로그램에 XML 스키마 포함

+0

누구에 의해 변경? 그리고이 파일을 변경하면 응용 프로그램이 실행될 때 어떤 영향을 미칠 수 있습니까? – Perception

+0

Java 응용 프로그램, 응용 프로그램에서 사용하는 XML 파일 및 XML에 대한 스키마 파일이 있습니다. XML이 올바른지 확인하고 싶습니다. 앱의 '사용자'가 스키마를 변경할 수 있다면 코드에서 유효성 검사 로직을 반복해야합니다. 이것이 내가 어떻게 든 XML (사용자가 사용할 수 없도록)에서 분리하려는 이유입니다. –

답변

1

명시된 수준의 요구 사항에 따라 스키마와 코드를 JAR에 함께 묶어도 충분합니다. 내용은 클라이언트에 의해 변경 될 수 없으므로 (의도없이) 이는 사용자의 요구를 충족시킵니다. 이제는 아카이브 압축을 풀고 앱을 수동으로 실행하는 것을 막을 수는 없지만 결정된 해커가 '야생에서 벗어난'바이너리를 수행하는 것을 막을 수는 없습니다.

XML 스키마를 사용하는 방법에 대해서는 언급하지 않았지만 대부분의 바인딩 프레임 워크에서는 런타임에 스키마에 대해 마샬/언 마샬 작업을 유효성 검사 할 수 있습니다. 이 SO 일반적인 JAXB의 예를 들어 게시 읽기 :

How to validate against schema in JAXB 2.0 without marshalling?

1

프로그램에 XML 스키마 파일의 해시를 포함시키고 파일을로드 한 후 파일이 올바른지 확인할 수 있습니다.

그러나 숙련 된 공격자가 프로그램을 디 컴파일하여 예상되는 해시 값을 변경하여 자신의 스키마를로드 할 수 있음을 알고 있어야합니다. 프로그램을 배포 할 환경에 따라 다릅니다.

관련 문제