Exposing the primary key is not a security issue; you always have to key
off something. What you need is business logic that ensures that a user may
only access what he may. That's not a Struts issue; it's logic that you
need to add in your business services.


On Fri, Nov 29, 2013 at 11:24 PM, Mohit Gupta <motgu...@gmail.com> wrote:

> When you have internet facing application , its important not to expose
> direct object reference on UI to protect security vulnerability(where user
> can retrieve the unauthorized data by merely changing the primary key).
> When you are righting the application from scratch there are various ways
> you can handle it like :-
>
> 1)Handling at data layer where query has user id in where class. user id
> should be picked from session
>
> 2)Maintaining the map reference map at server side . Key can be some number
> generated based on some algo and value will be primary key. Then expose
> that number on ui . On server side get the value against that key. Even if
> user manipulate the number corresponding value wont be found and throw an
> error. Something like this.
>
> There will be other ways also.
>
> My question is there something of similar kind available in struts 2  where
> you can annotate the any field with primary key and it does the step 2 for
> you or any other implementation to abstract primary key.  Any ideas?
>



-- 
Cheers,
Paul

Reply via email to