Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

OSLC GET with selective properties should also support POST #591

Open
jamsden opened this issue Mar 30, 2023 · 2 comments
Open

OSLC GET with selective properties should also support POST #591

jamsden opened this issue Mar 30, 2023 · 2 comments

Comments

@jamsden
Copy link
Member

jamsden commented Mar 30, 2023

CWE-598: Use of GET Request Method With Sensitive Query Strings suggests that REST services that use GET with query parameters that may expose sensitive information in the URL should also support POST so that the query parameters can be included in an entity request body instead.

This is a broader HTTP security issue that can be partially resolved by using TLS. But there may be cases where certain URLs have to be sent unencrpted to get through various proxies, etc. Or decrypted GET URLs could be stored in a user's browser where they could be exposed to hackers. TLS only addresses secure transition of HTTP requests, it does not address security of the content of those resources once they are consummed by a client or server.

OSLC Query already supports GET and POST for query strings. The only other GET in OSLC that might expose information is GET with selective properties. This would only expose property names, not values. However, CWE-598 explicity uses an example of exposing database column names which would be similar to exposing RDF resource property URLs.

OSLC Core 3.0 should be updated to support POST when using selective properties.

@jamsden
Copy link
Member Author

jamsden commented Mar 30, 2023

The OSLC Core section on Selective Properties does not currently mention GET or POST. A conformance clause should be added indicating Selective Properties can be used with GET or POST in order to handle potentially large HTTP query strings, or secure sensitive information.

@DavidJohnHoney
Copy link

A oslc.properties parameter value is a URL encoded list of property Qnames. These will be mostly standard vocabulary terms such as dcterms:title, oslcLshortId etc. Most of these should not be sensitive. Users who define custom vocabularies should avoid exposing sensitive data in public facing proiperty URIs, such as in owl:sameAs.

I disagree with the proposal. We already have URI patterns where a GET on a specific URI gets data, and a POST to the same URI would create data. LDPCs are an example. See the OSLC Configuration Management specification. The proposal would be a breaking change.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants