docusign-esign-node-client icon indicating copy to clipboard operation
docusign-esign-node-client copied to clipboard

Use encodeURIComponent for state in getAuthorizationUri

Open julesair opened this issue 3 years ago • 3 comments

Link to PR: https://github.com/docusign/docusign-esign-node-client/pull/288

Use case: when using a base64 encoded string, the value read from the location path when the user is redirected is not always the same as the one given to getAuthorizationUri.

Like the redirectUri, the state is an user input and as such not safe to be used in an url without escaping certain characters

Can we use encodeURIComponent on the state parameter?

julesair avatar Apr 04 '22 09:04 julesair

The state should not be user input, it should be created and used by the app only

AbdulrahmanGameel avatar Apr 07 '22 10:04 AbdulrahmanGameel

The state should not be user input, it should be created and used by the app only

Yes, agree. I did not express myself correctly in the previous message. With user I meant myself, a developer using this library and defining how the state is computed. Not the end user.

There is no protection against a developer using characters in the state string (e.g. a base64 string), that need to be encoded when used as query parameter in the url. Also it is not documented, that the state needs to be encoded before handing it over to this function. In my opinion it would be a small change, that should not break existing usages of the function, but reduces the probability of unexpected behavior. I patched the library for my use case, but would like to not have to patch it

julesair avatar Apr 08 '22 20:04 julesair

hello @julesair thank you for presenting this to us. I have filed a ticket for our team to look into making this change.

acooper4960 avatar Apr 21 '22 21:04 acooper4960