Difference between revisions of "Reviewing Web Services"

From OWASP
Jump to: navigation, search
Line 25: Line 25:
 
====Infinite occurances of an element or attribute====
 
====Infinite occurances of an element or attribute====
  
====Weak namespace, Global elements, the <any> element====
+
====Weak namespace, Global elements, the <any> element & SAX XML processors====

Revision as of 10:04, 26 September 2008

Contents

Reviewing Webservices and XML payloads

When reviewing webservices one should focus firstly on the generic security controls related to any application. Webservices also have some uniques controls should be looked at.


XMLL Schema : Input validation

Schemas are used to ensure that the XML payload received is within defined and expected limits. They can be specific to a list of known good values or simply define lenght and type. Some XML applications do not have a schema implemented which may mean input validation is perfromed downstream ot even not at all!!

Keywords:

Namespace: An XML namespace is a collection of XML elements and attributes identified by an Internationalised Resource Identifier (RI). 
In a single document, elements may exist with the same name that were created by different entities.
To distinguish between such different definitions with the same name an XML Schema allows the concept of namespaces -  think Java packages :)

The schema can specify a finite amount of parameters, the expected parameters in the XML payload alongside the expected types and values of the payload data:

The ProcessContents attribute indicates how XML from other namespaces should be validated. When the processContents attribute is set to lax or skip, input validation is not performed for wildcard attributes and parameters.

The value for this attribute may be

  • strict: There must be a declaration associated with the namespace and validate the XML.
  • lax There should attempt to validate the XML against its schema.
  • skip There is no attempt to validate the XML.
processContents=skip\lax\skip

Infinite occurances of an element or attribute

Weak namespace, Global elements, the <any> element & SAX XML processors