Difference between revisions of "Talk:REST Security Cheat Sheet"

From OWASP
Jump to: navigation, search
(Adding a discussion topic)
(Adding a new discussion entry)
Line 10: Line 10:
  
 
I'm just now finding out that there is a loose definition of a JSON validation scheme [http://en.wikipedia.org/wiki/JSON#Schema], but I'm not sure if any of the popular server-side JSON frameworks support this built-in, or what the maturity is of any of the implementations at [http://json-schema.org/implementations.html]. Anybody have any knowledge on this?
 
I'm just now finding out that there is a loose definition of a JSON validation scheme [http://en.wikipedia.org/wiki/JSON#Schema], but I'm not sure if any of the popular server-side JSON frameworks support this built-in, or what the maturity is of any of the implementations at [http://json-schema.org/implementations.html]. Anybody have any knowledge on this?
 +
 +
== REST short definition==
 +
[[User:Michael Hidalgo|Michael]]<br />
 +
REST is not an architecture, but it is an architectural style to build services on top of the Web. Basically, REST style aimed to show how the Web works in terms of architecture(URI,URL,Web Methods). According with the HTTP specification, the verbs or methods already defined were designed to accomplish a specific task (Get to retrieve a resource without modifying it, POST for the creation, PUT to modify an existing one represented by the URI).
  
 
== Payloads ==
 
== Payloads ==
 
[[User:Michael Hidalgo|Michael]]<br />
 
[[User:Michael Hidalgo|Michael]]<br />
 
On top of REST based services,there is a protocol called OData(The Open Data Protocol), OData follows the architectural style of the Web, and allows the HTTP Content negotiation using standard media formats, including XML, JSON, Atom, RSS. Serving data in this formats also increment the risk of payloads attacks. Do you think we should include payloads attacks in this section?
 
On top of REST based services,there is a protocol called OData(The Open Data Protocol), OData follows the architectural style of the Web, and allows the HTTP Content negotiation using standard media formats, including XML, JSON, Atom, RSS. Serving data in this formats also increment the risk of payloads attacks. Do you think we should include payloads attacks in this section?

Revision as of 22:32, 19 December 2011

Contents

Avoiding DOR

Will
My point with the Check Authorization for User-Specific Entities section is to avoid Direct Object Reference. There are really two underlying potential pitfalls here:

  • Giving access to objects simply by the key value in the URL rather than checking proper authorization for that entity. (i.e., this user doesn't have access to object 1235, but we allow the method simply because 1235 was in the URL rather than checking to see if this user is allowed to modify/view it)
  • Giving away sensitive information simply by including the object ID in the URL. Users tend to copy/paste URL's and they get cached in many different places and included in the history (even if the response gives the right Expires, Cache-control, and Pragma headers), so the URL shouldn't directly include anything sensitive like account number. http://some.service/account/128420482 should be a no-no.

Type Validation

Will
I would love to add a section on validating incoming entity definitions via XML or JSON. In XML, you have to deal first with entity expansion (death by a million laughs) because entities are expanded before the XML itself is validated, then need to validate against a DTD, XML-Schema, etc.

I'm just now finding out that there is a loose definition of a JSON validation scheme [1], but I'm not sure if any of the popular server-side JSON frameworks support this built-in, or what the maturity is of any of the implementations at [2]. Anybody have any knowledge on this?

REST short definition

Michael
REST is not an architecture, but it is an architectural style to build services on top of the Web. Basically, REST style aimed to show how the Web works in terms of architecture(URI,URL,Web Methods). According with the HTTP specification, the verbs or methods already defined were designed to accomplish a specific task (Get to retrieve a resource without modifying it, POST for the creation, PUT to modify an existing one represented by the URI).

Payloads

Michael
On top of REST based services,there is a protocol called OData(The Open Data Protocol), OData follows the architectural style of the Web, and allows the HTTP Content negotiation using standard media formats, including XML, JSON, Atom, RSS. Serving data in this formats also increment the risk of payloads attacks. Do you think we should include payloads attacks in this section?