Goede auth class maken

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

.NET Developer

Dit ga je doen (Door)Ontwikkelen van het applicatielandschap; (Door)Ontwikkelen van microservices; Bouwen van nieuwe functionaliteiten; Verbeteringen aandragen voor het applicatielandschap; Sparren met de business. Hier ga je werken De organisatie is werkzaam in de financiële dienstverlening met meer dan 200 medewerkers en meer dan 250.000 eindgebruikers is het een van de grotere binnen haar branche. Je komt te werken in een team waarmee je verantwoordelijk bent voor het ontwikkelen en onderhouden van de financiële applicaties binnen de organisatie, denk hierbij aan het bouwen en onderhouden van portalen. Als .net developer ga jij het development team ondersteunen met de transitie naar

Bekijk vacature »

Traineeship IT regio Amsterdam/Utrecht

Wat ga je doen? Het traineeship begint met een fulltime maand cursussen en praktijkdagen, waarin je de basis van het IT-vak leert op de Shared Servicedesk (SSD). Daarnaast ga je meteen aan de slag voor je eerste certificering! (ITILv4). Je start in een groep met 4 tot 10 deelnemers, waarmee jij gedurende die maand optrekt en je kennis kunt delen. Na het voltooien van de eerste maand ga je direct voor een langere periode aan de slag bij één van onze klanten of blijf je intern bij ons op de Shared Servicedesk. Je bent het eerste aanspreekpunt van de eindgebruikers

Bekijk vacature »

.NET Developer

Functie omschrijving Ervaren .NET Developer gezocht! Wij zoeken een ervaren .NET developer die aan de slag gaat voor een softwarebedrijf in de regio Rhenen. In deze rol ben jij zowel zelfstandig als in teamverband verantwoordelijk voor het ontwikkelen en verbeteren van bestaande producten. Daarnaast houdt jij je bezig met de nieuwbouw van websites, webapplicaties en mobiele applicaties die zowel intern als extern gebruikt worden. Je werkt hierbij nauw samen met andere developer, productmanagers en product specialisten om mooie producten te creëren. Bedrijfsprofiel Waar kom je te werken? Je komt te werken voor snelgroeiende softwareleverancier en allround dienstverlener. Klanten van deze

Bekijk vacature »

Back end Node.js developer

Functie Het ontwikkelteam bestaat momenteel uit 5 (back-end) Developers, 2 systeembeheerders, 1 DevOps engineer, 1 Tech Lead en 2 Scrum Masters. Samen wordt er doorontwikkeld aan twee SaaS-platformen die in een hoog tempo doorontwikkeld moeten worden. Omdat innovatie een belangrijk speerpunt binnen de organisatie is, wordt er ook continu naar snellere en slimmere oplossingen te bedenken en realiseren. Als Back-end Developer hou jij je dagelijks bezig met vraagstukken zoals: API-development, high volume datastromen, het ontwikkelen van Bots aan de hand van A.I. Daarnaast denk en werk jij mee aan de onlineapplicaties voor klanten. Er wordt zelfstandig en in teamverband gewerkt

Bekijk vacature »

No-Code Betty Blocks ontwikkelaar

Bedrijfsomschrijving Wil jij de bedrijfsprocessen van klanten revolutionair digitaliseren en optimaliseren zonder beperkt te worden door programmeertalen? Kom werken bij een snelgroeiende en professionele organisatie met een gezonde dosis humor en veel vrijheid om jezelf te ontwikkelen. Als No-Code Betty Blocks ontwikkelaar werk je vanuit ons kantoor in het hart van Nederland, je thuiswerkplek of op locatie bij de klant. We faciliteren de juiste trainingen en ondersteuning zodat je een echte Betty Blocks expert wordt. Naast het werk zijn er bij ons bijzondere events, zoals een jaarlijkse zeildag, een zomerse barbecue en een knus kerstdiner om de grillige maanden door

Bekijk vacature »

C# ontwikkelaar

Functie omschrijving Werk jij graag met C# en het .NET framework in een leuk familiebedrijf? Lees dan snel verder! Jouw takenpakket hierbij is: Je gaat maatwerk software ontwikkelen en softwareoplossingen creëren. Je gaat werken in een Microsoft omgeving (ASP.NET) en gebruikt daarnaast C# en MVC. Samen met het huidige IT team binnen deze organisatie verwerk je de wensen van de klant tot een (eind)product. Daarnaast optimaliseer je de bestaande software. Bedrijfsprofiel Deze organisatie is gevestigd in de omgeving van Best en is een echt familiebedrijf. Je komt te werken in een klein team van developers, die zich voornamelijk bezighouden met

Bekijk vacature »

Applicatieontwikkelaar Java EE

Bedrijfsomschrijving De IV- organisatie van de Belastingdienst is verantwoordelijk voor en verzorgt de ICT- voorzieningen. Het merendeel van de applicaties wordt op dit moment door de IV- organisatie zelf ontwikkeld, onderhouden en beheerd in het eigen data center. Naast de zorg voor continuïteit op de massale heffing- en inningsprocessen die plaatsvinden binnen een degelijke, stabiele omgeving, wordt er tevens volop gewerkt aan modernisering van het IV- landschap. Dit gebeurt deels intern door gebruik te maken van de expertise die intern aanwezig is, maar ook door het aantrekken van (kant-en-klaar) oplossingen en expertise uit de markt. Functieomschrijving De afdeling IV –

Bekijk vacature »

Java developer

Functie Je gaat aan de slag als Tester voor een aantal mooie projecten. Je komt terecht in een DevOps team waar jij aan de slag gaat om de kwaliteit te waarborgen omtrent de maatwerk software voor de klanten. Je draait je hand er niet voor om de adviserende rol te bekleden op het gebied van testautomatisering en het opzetten van testframeworks. Zoals aangegeven ga je daadwerkelijk in het eigen team aan de slag en is het daarnaast ook gebruikelijk bij de klanten op locatie te komen om te werken aan de opdrachten. Je krijgt zodoende echt een mooie kijk in

Bekijk vacature »

.NET Developer gezocht!

Functie omschrijving Wij zijn op zoek naar een .NET Developer! Wil jij werken voor een internationaal bedrijf waar je legio mogelijkheden krijgt als Software Ontwikkelaar? Grijp nu je kans en kijk snel of jouw vaardigheden aansluiten bij onderstaand profiel! Je kunt een uitdagende rol gaan vervullen als .NET Developer binnen een internationaal bedrijf dat gevestigd is in omgeving Bergen. Dit bedrijf is zeer vooruitstrevend en verricht betekenisvol werk. Binnen dit bedrijf wordt gewerkt aan de productie en ontwikkeling van medische middelen. Als .NET Developer ga jij je bezig houden met het volgende: Je wordt betrokken bij alle fasen van software

Bekijk vacature »

SAP HANA Developer

Vacature details Vakgebied: Software/IT Opleiding: Senior Werklocatie: Veldhoven Vacature ID: 13382 Introductie We is looking for a HANA Developer to work for our client. The candidate has to have an experience in building Data Intensive Applications (DIA’s). The role of a HANA Developer at ASML involves working on building Data Intensive Applications in an industrial/enterprise environment. The primary responsibility is to handle data from various sources and determine the best way to structure it for use by data analysts, who will run queries and algorithms against it for predictive and prescriptive analytics through machine learning. Wat verwachten we van jou?

Bekijk vacature »

SQL Database developer

Functie omschrijving Wil jij meewerken aan het creëren van slimme software om magazijnen als een geoliede machine te laten lopen? Wij zoeken een zorgvuldig persoon, iemand die niet snel de hand omdraait voor complexe algoritmes. Denk jij dat jij de SQL ontwikkelaar bent die wij zoeken? Lees snel verder en wie weet zitten we binnenkort samen aan tafel! Jouw werkzaamheden zullen er als volgt uitzien: Je houdt je bezig met het ontwerpen en ontwikkelen van MS SQL server databases, dit doe je met T-SQL als programmeer laag. Je gaat aan high-end software oplossingen werken, dit doe je voor de optimalisatie

Bekijk vacature »

SQL beheerder / ontwikkelaar

Functie omschrijving Voor een klant in omgeving Tiel zijn wij op zoek naar een SQL beheerder met affiniteit met technisch applicatiebeheer. Je krijgt een fijne in-house werkplek waar je gaat werken aan diverse projecten. Dit bedrijf doet het beheer van databases voor een aantal bancaire klanten. Op dit momenten hebben zij ruim 1500 databases in beheer. Jouw werkzaamheden gaan er als volgt uit zien: Je gaat de development afdeling ondersteunen bij het ontwikkelen van MS SQL Scripts. Je zal zowel zelfstandig als in teamverband MS SQL databases installeren & beheren. Je monitort en onderzoekt incidenten en de achterliggende oorzaken. Je

Bekijk vacature »

Front-end developer gezocht

Functie Je komt in een team met ambitieuze developers die de passie voor Front-End met jou delen. Samen ga je aan de slag met leuke en leerzame opdrachten. Het team heeft een eigen budget en financiën en zij bepalen zelf hoe dat besteed en investeert wordt. Je gebruikt tools als JavaScript, Node.js, React, Angular, Typescript en Vue.js wanneer je werkt aan de opdrachten. Daarnaast zul je veel leren van je collega’s en gezamenlijk een leuke tijd doorbrengen tijdens activiteiten zoals wintersport, hackatons en conferentiebezoeken. Je krijgt niet alleen de mogelijkheid Front-End te ontwikkelen, maar ook vooral jezelf. Dit kan behaald

Bekijk vacature »

C# Ontwikkelaar

In het kort Als C# .NET Core ontwikkelaar ga je binnen onze business unit Transport en Logistiek aan de slag complexe maatwerk software voor bedrijf kritische systemen binnen de technische automatisering. Denk bijvoorbeeld een IoT-oplossing voor de logistieke sector waarbij we van ruim 200.000 machines de telemetrie en events verwerken. We zijn actief in de distributielogistiek, havenlogistiek en productielogistiek. Naast C# en .NET Core maken we ook gebruik van Azure technologie. En als trotse Microsoft Gold Partner leren we graag van en met jou. Wil jij jezelf blijven ontwikkelen binnen de technische automatisering met .NET, dan gaan we deze uitdaging

Bekijk vacature »

Java Developer bij een jonge groeiende organisatie

Bedrijfsomschrijving Vind jij het als Java developer ook zo belangrijk dat een bedrijf je de ruimte en tijd geeft voor persoonlijke ontwikkeling? Dan zit je hier helemaal goed. Deze jonge organisatie is opgericht in 2018 en is ondertussen uitgegroeid tot een club van ongeveer 30 medewerkers. Het gaat hier om een echte Java club, die vrijheid en verantwoordelijkheid erg belangrijk vinden. Het bedrijf heeft een informele sfeer en de teams zijn erg hecht met elkaar. Ze delen graag de kennis en ervaringen met anderen, maar vinden andermans mening ook zeer belangrijk. De organisatie zet zich in voor ontwikkeling en besteed

Bekijk vacature »
Wouter Van Marrum

Wouter Van Marrum

02/05/2015 22:12:36
Quote Anchor link
Hallo iedereen,

Ik ben bezig met mijn eigen systeem dat gebaseerd is op MVC.
En nu wil ik voor al mijn dashboard controllers een auth class/functie gebruiken zodat deze goed beveiligd is.

Normaal gezien zou ik wat gaan proberen en als het me goed "lijkt" zo laten.
Deze keer wil ik voordat ik er mee begin eigenlijk al om hulp vragen.

Kan iemand mij vertellen hoe ik een goede beveiliging opzetten maar wel op zo'n manier dat deze zowel te gebruiken is voor gebruikers als administrators.

Dit zou ook een mooi moment zijn voor een goede discussie om erachter te komen wat men liever doet.

M.V.G,
Wouter.

Topic verplaatst naar het OOP onderdeel[/modedit]
Gewijzigd op 03/05/2015 11:20:51 door Wouter J
 
PHP hulp

PHP hulp

12/05/2024 14:33:13
 
Thomas van den Heuvel

Thomas van den Heuvel

02/05/2015 22:36:20
Quote Anchor link
Een tijdje geleden had ik hier min of meer een topic over geopend, maar die heb je waarschijnlijk niet met de zoekfunctie kunnen vinden ;-) (*drumm fill*).

Ik weet niet of dat helemaal de lading denkt, maar ik heb over dit topic zeer recent een artikel geschreven (shameless self plug).

Bekijk ook vooral het voorbeeld.

Sure, het is niet echt OOP, maar wel retesimpel en volgens mij best krachtig. En je kunt hier best een eenvoudge class omheen fietsen.

Hier zijn natuurlijk 568036873555783857359873 mogelijke varianten op te bedenken.

De bovenstaande site (eigen framework) maakt hier ook gebruik van om adminpagina's en dergelijke af te schermen.
Gewijzigd op 02/05/2015 22:48:08 door Thomas van den Heuvel
 
Wouter Van Marrum

Wouter Van Marrum

02/05/2015 23:23:22
Quote Anchor link
Heej thomas,

Toevallig heb je topic inderdaad al gelezen ja.
En heel eerlijk ik snap daar totaal niks van.

Komt meer om het feit hoe je rechten benoemt en dergelijke.
Ik ben gewend om het volgende te zien :
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
    // Fake check
    $user = User::select(1); // admin gebruiker ophalen.
    Auth::hasRights('PAGE FROM DB', $user); // $user->rigts of $user->level
    
    // In auth class.

    if($page['needed_rights'] == $user->rights) {
    // true....
?>


Misschien kun je me beter uitleggen hoe jouw manier werkt.
 
Thomas van den Heuvel

Thomas van den Heuvel

02/05/2015 23:36:17
Quote Anchor link
Heb je het artikel (in het engels) ook gelezen? Daarin staat uitgelegd wat er gebeurt. Je kunt in feite complexe if-statements die op rechten controleren versleutelen tot een geserialiseerde variant. Deze geserialiseerde variant kun je koppelen aan acties. Meestal is deze "actie" toegang tot een resource (bijvoorbeeld een admin pagina), maar zowel de acties als de resources kunnen van alles zijn.

Het voordeel van een geserialiseerde expressie is dat je deze ontkoppelt van code (deze is dus niet meer hard-coded maar dynamisch).

In mijn variant evalueer je de expressie tegen een set van rechten. Dit levert dan een simpel "ja" of "nee" op.

Bijvoorbeeld: de expressie bevat een statement die beschrijft welke rechten je nodig hebt voor toegang tot een pagina. De set van rechten kunnen de rechten van de huidige gebruiker zijn. Daarmee kun je dus heel simpel de vraag "mag deze gebruiker deze pagina zien" beantwoorden, en de rechten die nodig zijn om toegang te krijgen tot de pagina kun je dus per pagina instellen. De "check" zelf blijft ongewijzigd.

Het artikel beschrijft dit eigenlijk stap voor stap :s.

EDIT: het gebruik is verder vrijwel hetzelfde als jouw voorbeeld hierboven:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
// de rechten-expressie van de resource
$expression = '|,1,&,2,!,3';

// de rechten die iemand bezit
$myRights = array(
    1 => true,
    3 => true,
);


// de controle of iemand een bepaalde actie mag uitvoeren
if (isAllowed($expression, $myRights)) {
    // cake
}
?>

Die geserialiseerde expressies blijven verder "onder water", waar de gebruiker tegenaan kijkt is een boompje waarin ze kunnen klikken en waar ze de rechten-expressie op een semi-gebruiksvriendelijke manier kunnen opbouwen.
Gewijzigd op 02/05/2015 23:46:22 door Thomas van den Heuvel
 

02/05/2015 23:43:16
Quote Anchor link
Zelf ben ik ook heel veel met OOP bezig maar ik begrijp niet waarom je allemaal static methods hebt?
Als het over auth gaat dan spreek je toch 1 class aan? En die dan niet static denk ik.

Wil je meerdere classes aanspreken dan heb je het niet bij het juiste eind en kan je misschien met interfaces werken.
 
Thomas van den Heuvel

Thomas van den Heuvel

02/05/2015 23:55:15
Quote Anchor link
Als je Auth class verder geen "state" heeft is er volgens mij niet echt iets op tegen om deze class te laten bestaan uit enkele static (helper) methods? Wat voor spannende dingen zou een Auth class allemaal moeten bijhouden dan?
 
Wouter Van Marrum

Wouter Van Marrum

03/05/2015 11:31:38
Quote Anchor link
@rickert, Hoe zou jij dit dan doen ?

Want volgens mij ben ik best duidelijk geweest toen ik zei : ik ben gewend om dit te zien.
Ik heb van te voren al naar oplossingen gezocht maar weet niet of dat wel correct is.

Daarom wil ik nu dus een goede beveiliging hebben die ik voor meerdere groepen gebruikers kan gebruiken.

Verder lijkt me de Auth class mij meer een helper class.
Dus als ik die voorbij zou zien komen in een code kan ik best begrijpen als iemand daar eerder een static functie gebruikt ipv van te initialiseren.
 
Frank Nietbelangrijk

Frank Nietbelangrijk

03/05/2015 11:47:07
Quote Anchor link
Role Based Access Control of gewoon RBAC

http://www.sitepoint.com/role-based-access-control-in-php/

In een MVC model zijn er drie handige momenten om op de rechten te controleren:
- door de router/dispatcher om hele delen van de URI af te schermen.
Bijv: mydomain.com/admin/??? (alles wat met admin begint dus)
- bij de Controller methods
- in de view (om bijv een bepaalde div wel of niet te laten zien)
Gewijzigd op 03/05/2015 11:52:57 door Frank Nietbelangrijk
 
Thomas van den Heuvel

Thomas van den Heuvel

03/05/2015 13:13:47
Quote Anchor link
RBAC kan ook een oplossing zijn voor jouw situatie, maar stel dat je het volgende wilt:

Je hebt een collectie van soortgelijke resources (denk bijvoorbeeld aan artikelen of pagina's) waar je op grond van permissies toegang toe krijgt; nog enkel even toegang, we hebben het niet eens over andere bewerkingen zoals wijzigen of verwijderen. Nu heb je dus bijvoorbeeld een of meer classes voor het opzetten/aanmaken/afdrukken etc. hiervoor: Article, Page, whatever.

Vervolgens wil je gaan vastleggen wie toegang heeft tot deze artikelen / pagina's. Waar doe je dit? Rechtstreeks in deze code? Maar dan timmer je dus permissies vast op "Klasse niveau", tenzij je Henk, Piet, en Klaas elk verschillende rechten geeft die je allemaal opneemt in de controlelijst. Het probleem is dus een beetje dat je geen verschillende permissies kunt hebben voor eenzelfde resource, althans, RBAC voorziet daar niet (standaard) in?

Dit is misschien verwarrend, dus een voorbeeld: stel je hebt een set artikelen: 1,2,3. Hoe kun je met RBAC aangeven dat artikel #1 alleen toegankelijk is met rol/permissie A, artikel #2 alleen met rol/permissie B en (nog een complexere variant) artikel #3 alleen toegankelijk is als je ZOWEL rol/permissie A ALSMEDE rol/permissie B hebt?

Dit moet je wel aan de individuele resource-instances hangen (als je zulke fine-grained control wil)? En in de klasse(s) zelf moet je generieke checks hebben die zulke controles kan uitvoeren. Generiek, omdat niet op voorhand vaststaat hoe zo'n check er uitziet.

Dit is precies waar een/mijn ACL in voorziet.

Tis maar net welke mate van controle je wilt hebben. Enkel met het kiezen van een authorisatiestrategie ben je er niet: je moet dan nog je rollen/rechten/etc. gaan inrichten en ook is daar de manier waarop je omspringt met de componenten waarmee je gebruikers bewerkingen wilt laat uitvoeren.

Je zou het dus eigenlijk om moeten draaien: welke functionaliteit heb je, wat voor bewerkingen wil je hier (door welke) gebruikers op laten uitvoeren. Op grond daarvan zou je eigenlijk een strategie moeten kiezen.
 
Wouter Van Marrum

Wouter Van Marrum

03/05/2015 13:37:33
Quote Anchor link
@thomas en @frank,

Dank voor jullie reacties.
Ik heb inderdaad al eens die Role Based Acces Control gezien op sitepoint.
Reden dat ik niet direct die weg ben in gegaan is de datum dat het artikel geplaatst is.

Maar als voorbeeld zijnde is het eigenlijk wel wat ik zoek.
Hetgeen wat jij bedoelt thomas zal voor mijn website niet echt van toepassing zijn.

Indien het bijvoorbeeld zover komt dat ik bepaalde urls die beginnen met iets wil blokkeren voor andere gebruikers zou ik dit via de db instellen. ( dat zal zo gedaan zijn dmv wat tabellen.)

Ik zal nog eens het artikel doorlezen en er mee beginnen.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.