I want to let users share data outside of their account and have put together a proof of concept that essentially generates a unique URL with relevant URL parameters to display the data.

Obviously, a normal URL would simply let you modify the parameters, modify the query and extract any data you wished. So, with this, when the user generates a link to share data, I take the parameters, add a complex salt, hash the combined string `(sha-2)` and then use that as a key. So the URL might look like:

`mydomain.com/app/shared.php?function=form&account=1&form=a19481e78dd87f5eb04afe94c85ea4f3&key=7dcaa38baa19e0f70262d8775582300346f5c544`

When the URL is entered, the server recompiles the parameters and the secret salt and validates the key. If the key is not valid, no data is displayed.

I did think about further securing this by storing parameters in a DB, so the URL looks more like `mydomain.com/app/h6Hs52ff2a`, and the parameters never directly included in the URL, but equally I quite like the idea of generating sharable URLs on the fly with no DB backend. 

I get the sense that the above approach might be a little frowned upon, but equally, unless you know the salt stored on the server (which is itself complex) I can't see any way of bypassing such a system. 

Thoughts most welcome.