dropl
Verenigingslid
- Lid geworden
- 14 jan 2006
- Berichten
- 1.370
Hoi, ik ben bezig met een projectje in C++. Het moet een server applicatie worden waarbij gebruikers accounts met gespecificeerde rechten moeten kunnen hebben. Het geheel ondersteunt laadbare externe modules. Daar ligt nou ook een beetje het probleem. Als je een klasse, laat ik zeggen, User hebt dan staat die ergens op de heap. Omdat modules in dezelfde address space draaien zouden die dus, al is misschien een beetje ver gezocht, die User kunnen veranderen.
Nou heb ik daar hetvolgende op bedacht. Een User krijgt een array met pointers naar rechten die met een enum statisch incompileerd worden, zodat deze in read only geheugen zitten. Die array met pointers worden met een private RSA key gesigned en de User krijgt de public key toegewezen. De private key maak ik op de stack en bestaat dus maar korte tijd. Zo kan de integriteit van de User altijd gecontroleerd worden.
Blijft mijn vraag nog over: is dit achterlijk onhandig? Of weet iemand een verbetering, want ook die public key en signature leven op de heap en kunnen ook nog overschreven worden. En, ohja, voor het gemak: de hele bende moet ook nog cross-platform zijn. Daarvoor gebruik ik wxWidgets
Groeten en alvast bedankt
Nou heb ik daar hetvolgende op bedacht. Een User krijgt een array met pointers naar rechten die met een enum statisch incompileerd worden, zodat deze in read only geheugen zitten. Die array met pointers worden met een private RSA key gesigned en de User krijgt de public key toegewezen. De private key maak ik op de stack en bestaat dus maar korte tijd. Zo kan de integriteit van de User altijd gecontroleerd worden.
Blijft mijn vraag nog over: is dit achterlijk onhandig? Of weet iemand een verbetering, want ook die public key en signature leven op de heap en kunnen ook nog overschreven worden. En, ohja, voor het gemak: de hele bende moet ook nog cross-platform zijn. Daarvoor gebruik ik wxWidgets
Groeten en alvast bedankt