Hello all
I have a form and on my form is a list view. The view retrieves data about the logged-in user and displays it.
The data is stored in a SQL database, which is exposed via a standard SQL broker SmartObject to K2.
I need to ensure that users cannot view each other's data. This means being careful with use of Form and View parameters which can easily be modified by the user via the querystring. So I ensure my SmartObject 'List' method takes username as a parameter, and set the value when the method is called in my form's Initialize rule by dragging 'Current User/FQN' into the appropriate Input Property.
Inspecting the traffic which occurs when the form loads, I see a call to AjaxCall.ashx which contains an XML request payload containing my username. If I use a tool like Fiddler to manipulate this request payload, by changing the username I can then request the data for any user.
I'm sure I must be missing something here, but how should I make this setup fully secure against malicious users?
For context, in the full system the data is highly personal and the application is exposed to the internet, with access open to anyone in the world who requests an account.