David,
I get your point.

Scott is right, you could overwrite PI or maybe write your custom
interceptor (though I think you should consider to file an issue on
JIRA).
Maybe it would use java annotations to hide/expose fields, or
alternately it could behave as you supposed (expose only field with
write accessors).




2010/12/17 Altenhof, David Aron <dalte...@iupui.edu>:
> The model objects are initialized in prepare() ... other techniques just 
> aren't as practical for our application.
>
> I'm just going to keep doing lots of whitelisting with ParameterNameAware...
>
> -David
>
>
>
> -----Original Message-----
> From: Steven Yang [mailto:kenshin...@gmail.com]
> Sent: Friday, December 17, 2010 1:10 AM
> To: Struts Users Mailing List
> Subject: Re: Parameter manipulation
>
> is your user object initialized when the param interceptor is run?
>
> here i might be wrong, but what i know is if your object is initialized then 
> Struts or OGNL will call getUser().setEmail(...) otherwise create a new User 
> then setEmail then setUser then the second case should fail for you
>
> again, i might be wrong on the behavior
>
> On Thu, Dec 16, 2010 at 12:39 AM, Altenhof, David Aron
> <dalte...@iupui.edu>wrote:
>
>> I've been getting more and more concerned about the possibility of
>> parameter manipulation attacks with Struts2. I've started doing strict
>> whitelists using the ParameterNameAware interface on all of my forms pages.
>> However, today I tried to code a "display-only" page that shows
>> information about a particular user. I thought that by simply creating
>> a getter and no setter, it would be impossible to inject parameters.
>> For example, my action only contains the following getter for a JPA model 
>> object:
>>
>> public User getUser() {
>>        return user;
>> }
>>
>> However, by sending a simple query parameter, it is *still* possible
>> to change values in user. For example, you can send:
>>
>>
>> http://localhost:8080/MySite/userdisplay.action?user.email=newem...@ad
>> dress.com
>>
>> ... and it works. The email will become newem...@address.com
>>
>> Is there any way to shut this down other than whitelisting every
>> single action in your site using ParameterNameAware? (Or simply never
>> put model objects on your stack?) This is getting frustrating!
>>
>> -David
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: user-unsubscr...@struts.apache.org
>> For additional commands, e-mail: user-h...@struts.apache.org
>>
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscr...@struts.apache.org
> For additional commands, e-mail: user-h...@struts.apache.org
>
>



-- 
Maurizio Cucchiara

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscr...@struts.apache.org
For additional commands, e-mail: user-h...@struts.apache.org

Reply via email to