PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : sicherheit



localhost
18-12-2003, 11:31
wie bekomme ich es hin das ich nur bestimbte gruppen auf einen bereich zugang gewere ?

ICh hab einen user tabele mit der session da steht die group name drin $user[group] // dabei kommt der name der group wo die person drin ist.

die group sind in einer tabele die group heist
mit groupnamen wie muss ich den jetzt forgehen das ich da sicher bereiche scahffe für die einzelden groupen.


if ($user[group] == $row0->groupname) //
if ($user[group] !== $row0->groupname) //
if ($user[group] ==! $row0->groupname) //
if ($user[group] = $row0->groupname) // das alle hatt nicht den richtig erfolg
if ($user[group] != $row0->groupname) //
if ($user[group] =! $row0->groupname) //

quinte17
23-12-2003, 10:39
ich würde es anders machen:
gruppen userzuordnungen in eine mysql
dann anhand seiner userid einen query machen in welchen gruppen er drin ist (auf welche er gerade zugreifen will)
also ala:

select 1 from user u, gruppenzuordnungen g where u.userid = g.userid and u.userid = AKTUELLEID and g.groupid = AKTUELLEGRUPPE;

somit bekommst du 1 zurück falls er in der richtigen gruppe drin ist ansonsten halt kein result...

greetz
(wichtig ist, dass du nur die userid in der session hast und nicht auch noch die gruppenid... sonst wird der angriffspunkt von außen größer... da mehr variablen blabla)

offe
23-12-2003, 16:39
ich würde die Auth-Klasse (http://pear.php.net/manual/en/package.authentication.auth.intro.php) von PEAR nehmen. Da ist schon alles drin und wird bei Problemen weiterentwickelt.

Offer

localhost
23-12-2003, 21:28
@quinte17 wie mache ich den gruppen in der mysql ??

quinte17
24-12-2003, 00:28
du machst eine tabelle namens gruppe:
grp_id | grp_name

dann eine tabelle namens user:
usr_id | usr_name

dann eine tabelle gruppenzuordnungen:
grz_id | grz_grp_id | grz_usr_id

somit sind dann die user den gruppen zugeordnet...
wenn du dann deine programme auch noch in die datenbank pflegst und den programmen diverse gruppen zuordnest hast du ein internes rechte system von dem aus du aus allen sichtweisen draufschauen kannst... vom user aus kannst du dann sehen welchen gruppen er zugeordnet ist... also anonymous oder admin zum beispiel... und kannst dann so die rechte vergeben... über einen einfachen select alleine über die userid, und in den bereich den er will stellst du dann fest ob er da rein darf oder nicht... (zeigst ihm dann menuelemente oder nicht)

im obigen fall wäre der select dann wie folgt:
select 1 from user, gruppenzuordnungen where grz_usr_id = usr_id and grz_grp_id = GRUPPEinDIEerREINwill;

du kannst des dann noch beliebig erweitern... es ist nur wichtig dass dir dass prinzip klar ist... somit kann auch kein normaler user plötzlich adminrechte haben, sofern du keine sql-injection bekommst... weil wir wollen ja davon ausgehen dass die daten in der datenbank stimmen, die POST GET und SESSION variablen aber vielleciht mannipuliert werden könnten..


greetz