but if i use external security mechanism, will it be dynamic? i mean to say,
if the admin wants to change his/her password from the application
(using admin interface), how can he/she do that without restarting the
server?
> -----Original Message-----
> From: Martin Duffy [SMTP:[EMAIL PROTECTED]]
> Sent: Monday, May 07, 2001 5:57 PM
> To: [EMAIL PROTECTED]
> Subject: Re: Potential Security Flaw in Struts MVC
>
> A basic problem with most web development is that people are building
> security into their applications. It should be handled outside of the
> application. You can have your application work in conjunction with an
> external security mechanism for more granular control but I the security
> mechanism should be external to the application for the most part.
>
> You could use for example one of the authorization and access modules for
> apache. Then when you create your application you can create specific
> *protected* URLs for say an admin area. Then only the person that is
> logged into the security mechanism with the proper *authorization* can
> access that URL (or one that contains that URL and parameters being passed
> to it in the URL). Security needs to be considered when building the
> applications but trying to build it into the application is a big mistake.
>
>
> A big reason to not build it into the app is that as your security
> requirements change you invariably have to make code changes to your
> application. By using an external mechanism you just change the rules
> governing the authorization and access control usually without any code
> changes to your app.
>
>
>
>
>
> ----- Original Message -----
> From: Jeff Trent <mailto:[EMAIL PROTECTED]>
> To: [EMAIL PROTECTED]
> <mailto:[EMAIL PROTECTED]>
> Sent: Monday, May 07, 2001 6:37 PM
> Subject: Potential Security Flaw in Struts MVC
>
> I may be wrong about this (only been working w/ Struts for a week
> now). But I do see a potential security flaw in struts that I would like
> to hear from others regarding.
>
> Consider a simple set of struts classes that represent a user in a
> system. You would probably have classes that look something like this:
> User (the model representing the user)
> UserForm (an enrollment form for a new user)
> UserAction (Saves the UserForm information to db, etc)
>
> The User class would have accessors and modifiers like
> getFirstName(), setFirstName(), getAdministrativeUserFlag(),
> setAdministrativeUserFlag(), etc. The basic implementation of the
> UserForm is to take the UI form data, introspect the beans, and call the
> correct modifier of the UserForm bean based on the fields contained within
> the UI submission/form. A developer of course would not expose the
> "Administrative User Flag" option on the UI for enrollment (that would be
> found possibly in some other administrative-level module). However, if
> someone is familiar with the db schema and the naming convention the
> developer used, that user could subvert the application by writing his own
> version of the UI which contains an "Administrative User Flag" field (or
> any other field for that matter) and the basic form processing in Struts
> will kindly honor the request and set the "Administrative Flag" on the
> user. Unless, of course, the developer makes special provisions to
> prevent this behavior. However, its not entirely obvious to the struts
> user (in my opinion) that this is even a concern. Am I making sense here?
>
> - jeff
>
>