Hi,

I don't think there is any other way, at least so easy to extend. The
only improvement will be to combine the system with calls to NIS or a
Kerberos/RADIUS server. If you have such a server (or maybe LDAP ???)
you should combine it for administration easiness.

[EMAIL PROTECTED] wrote:
> 
> This is a rehash of a post earlier today!
> 
> I implement security with user hierarchies which I will describe here (and
> also a more flexible method, user groups, which I will outline later ).
> 
> I use a procedure called ensure_logged_in ( $level ).  It is wrapped around
> all .PHP where security is required (as an 'if' which is the first line on
> the page with '}' as the last ), so
> 
> <?
> if ( ensure_logged_in( 5 ) ) {
>   ...
>   do stuff
>   ....
> }
> ?>
> 

A better way will be (I think):

<?
if ( !ensure_logged_in( 5 ) ) {

header("Location: $NOT_AUTHENTICATED");
exit;

};
   ...
   do stuff
   ....
?>


That way you could just put it in a file and include it at the header,
not needing to wrap the code around. He was talking about thousands of
pages!!!

> Levels are implemented as such.  Punter could be 0, Administrator 5 and
> Suppresser 9.  You could then pass this through to the function.  So
> ensure_logged_in(5) would return true if user was at least of level 5
> (allowing levels 5,6,7,8,9 access).  For pages for punters who must be
> logged in use ensure_logged_in(0).
> 
> The ensure_logged_in function checks the level and if the user is not
> authorised displays an error and login form (the function returns false).
> This will then post to where you currently post for login processing (I
> actually include the form in and reuse it for both here and login.php ).
> 
> Alternatively ensure_logged_in could just display an error message (and
> maybe email the administrator if the person was logged in and trying to
> access an unauthorised part of your system ).
> 
> There is in fact another function ( is_logged_in ) which ensure_logged_in
> uses and also returns Boolean.  This function enables different
> functionality for different levels ( i.e. not including certain fields
> unless user is of a certain level ).
> 
> User level is held in a session variable ( i.e. $SESSION["user"]["level] )
> and set when logged in.
> 
> The alternative would be to define groups and say which .PHP modules have
> access to which groups.  You can then allocate users to a gropes (or a
> number of groups).  Each .PHP module is then wrapped with a function ( say
> chack_security() ) which works similar to ensure_logged_in. I have only
> done this sort of thing in oracle applications ( client/server non web )
> but the principle is the same.  You could also go further and define
> database access as well as module using something like  :-
> 
> Table module_access
>   module_name varchar( 100 )
>   allow_update Boolean
>   allow_insert Boolean
>   allow_delete Boolean
> 
> Don't see much point in allow_select ;-)
> 
> Sure you could also define which fields users DO  NOT have access to on top
> of this with another table ( defining what fields users DO have access is
> crazy as this security is built on top of previous ).
> 
> Please let me know what you think, at least I then know someone red it -:)
> 
> Ben
> 
> Regards,
> Ben
> 
> "Allen May" <[EMAIL PROTECTED]> on 13/09/2001 13:40:06
> 
> To:   <[EMAIL PROTECTED]>
> cc:
> Subject:  [PHP] PHP Security
> 
> I have been using the .htpasswd/.htaccess convention to authenticate our
> 3000 employees.
> I want to move away from the .htpasswd/.htaccess convention and use a PHP
> form to authenticate against the database.
> 
> I can create the PHP authentication page, no problem, but how do I check
> authentication on the thousands of HTML pages I already have on the site?
> For several reasons I don't want to do cookies. Can I set a session
> variable
> in the PHP and conditionally check it with Javascript, if fail go to PHP
> authentication form?
> 
> What is the javascript session variable function?
> 
> Thanks
> 
> -Allen
> 
> --
> PHP General Mailing List (http://www.php.net/)
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> To contact the list administrators, e-mail: [EMAIL PROTECTED]
> 
>   ------------------------------------------------------------------------
> --
> PHP General Mailing List (http://www.php.net/)
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> To contact the list administrators, e-mail: [EMAIL PROTECTED]

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]

Reply via email to