Hi Stan,
The sources are trusted in this case, but the
software may be re-used in less secure environments later... so
I'd rather deal with the potential vulnerabilities up-front.
I'm aware of the old DTD attack, and a few obvious
DoS-type attacks I can envision. Do you have any idea what types of
risks might remain if the application employed the following
rules?
All documents would fail to be parsed
if:
- they contain DTD
declarations
- their size exceeds some acceptable
threshold
- connection and/or retrieval time
exceeds some acceptable threshold
Schemas would fail to be loaded (and thus parsed or
used) if:
- the # of loaded schemas since the last
completed validation
exceeds some acceptable threshold (a
crude guard against
excessive schema includes within
schemas, etc..)
Thanks,
Chris
Chris,
Your scenario involves
unknown data and unknown schemas. If the sources of your inputs are not
trusted, you are opening yourself to a wide range of potential problems (such as
DoS attacks).
Stan
--------------------------------------
Stan
Kitsis,
Webdata -
XML
Microsoft
Corporation
--------------------------------------
From: Chris
Wilper [mailto:cwilper@cs.cornell.edu] Sent: Monday, February 27, 2006 5:54
PM To: xml dev Subject: [xml-dev] Bulk XSD validation in
Java
Hi
all,
I've got a java process that needs to continously validate xml
documents according to the w3c schemas they indicate in their
xsd:schemaLocations. The documents arrive at a high rate and must be
processed as quickly as possible. The exact schemas they employ are not
known ahead of time and there may be several of them required to validate each
document.
My question is, what library/libraries are appropriate in this
situation and how do I tell them to only load the required schema(s) only
once? Any advice?
Thanks, Chris
|