Veilig?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Back End Developer

Als Back End developer bij KUBUS houd je je bezig met het ontwikkelen van de (web)applicatie en services van BIMcollab. Je hebt een focus op de back end van onze software, daarvoor werken wij hoofdzakelijk met C# en .NET. Wij hanteren een full-stack benadering, wat betekent dat je naast de back-end ook meehelpt bij andere onderdelen van de code. Als softwarebedrijf bevindt KUBUS zich in een unieke positie. We bouwen aan onze eigen producten die wereldwijd door tienduizenden gebruikers worden gebruikt. Ons bedrijf heeft precies de juiste grootte: groot genoeg om echt impact te maken in de markt, maar klein

Bekijk vacature »

Front-End React Developer

Als Front-End React Developer verbeter je de user experience van onze eigen webapplicaties voor onze collega's binnen Coolblue. Wat doe je als Front-End React Developer bij Coolblue? Als Front-end React Developer werk je aan de gebruiksvriendelijkheid van onze webshop voor miljoenen klanten met React.js. Je vindt het leuk om samen te werken met de UX designer om stories op te pakken. Daarnaast ben je trots op je werk en verwelkomt alle feedback. Ook Front-end React Developer worden bij Coolblue? Lees hieronder of het bij je past. Dit vind je leuk om te doen Verbeteren van de gebruiksvriendelijkheid van onze webshop

Bekijk vacature »

Hands-on Solution Architect / Software Architect (

TenneT is hard groeiend om de onze ambities waar te kunnen maken. Zo nemen wij een leidende rol in het aanjagen van de energietransitie. Het werven van nieuw talent speelt daarin een cruciale rol. Wij zijn op zoek naar een gedreven Solution Architect / Software Architect op onze locatie Arnhem die hieraan wil bijdragen en misschien ben jij dat wel? Jouw bijdrage aan TenneT Je werkt samen met gedreven DevOps teams, bestaande uit frontend, backend en middleware developers, testers, UX-designers. Samen met de teams ben je continu op zoek naar de beste oplossingen voor onze klanten. Als Solution Architect onderzoek

Bekijk vacature »

Medior/Senior Software Developers gezocht in de Ra

Functie Op dit moment staan er posities open voor de volgende functies: Front-end, Back-End & Fullstack software developer. Als Front-End software developer werk je met JavaScript en de bijbehorende technologieën zoals TypeScript, Angular, React, Vue en Svelte. Als Back-End software developer ben je bezig in NodeJS en doe je dit met behulp van AWS, NoSQL, REST en GraphQL. Je krijgt leuke en uitdagende opdrachten met een gemiddelde duur van anderhalf jaar. Hier werk je in een team met andere IT’ers aan het ontwikkelen en verbeteren van software. Je wordt begeleid door een accountmanager die fungeert als jouw aanspreekpunt. Het team

Bekijk vacature »

C# developer

Functie omschrijving We are looking for a dutch native speaker Ik ben op zoek naar een back-end developer, die met name kennis & ervaring heeft van de programmeertaal C#. Jij gaat aan de slag bij een topspeler in de logistieke sector, die zich behalve met logistiek, ook bezig houdt met softwareontwikkeling. Welke taken komen hierbij kijken? Je gaat desktop- en webapplicaties onderhouden en optimaliseren, waarin je werkt met o.a. C#, ASP.NET, SQL Server en T-SQL. Je hebt regelmatig klantcontact om de wensen in kaart te brengen en te evalueren over de huidige draaiende applicaties. Je implementeert nieuwe functionaliteiten toe aan

Bekijk vacature »

C# Developer Research and Development - Delft

Vacature details Vakgebied: Software/IT Opleiding: Medior Werklocatie: Delft Vacature ID: 6307 Introductie C# Developer Research and Development - Delft - Onze klant is één van de meest innovatieve bedrijven in de region van Delft. Op dit moment zijn ze voor het innovatie centrum. In het innovatie centrum wordt gewerkt aan de nieuwste technieken voor navigatie software. R&D / C# / Pattern Recognition / Algorithms / 3d Data / DotNET Functieomschrijving Als C# Developer kom je te werken in een innovatief scrumteam. We ontwikkelen en door ontwikkelen de nieuwste technieken op het gebied van navigatie software. Deze software wordt onder andere

Bekijk vacature »

Applicatiebeheerder/ Ontwikkelaar

Dit ga je doen - Verantwoordelijkheid dragen voor het complexe applicatielandschap; - Schakelen met eindgebruikers en leveranciers; - Verdeling in werkzaamheden tussen dagelijks beheer ontwikkelen; - Het analyseren van de behoeften van gebruikers en het vertalen hiervan naar functionele specificaties voor de applicaties; - Actief bijdragen aan het leveren van passende oplossingen voor het applicatielandschap. Hier ga je werken Deze organisatie, gevestigd in de regio van Amsterdam is een van de meest toonaangevende mediaorganisaties in Nederland. Door de organisatiecultuur krijg jij veel ruimte om initiatief te nemen en zelfstandig aan het werk te gaan. Samen met het IT team zorg

Bekijk vacature »

Android developer

De functie Schiphol is een plek om te reizen, te verblijven en te werken. Door middel van data en technologie richten we op al deze gebieden het leef- en werkklimaat optimaal in en zorgen we voor een slimmere en efficiëntere operatie. Wij ontwikkelen nieuwe producten en diensten vanuit de wensen en behoeften van onze klanten, voorspellen passagier flows en testen digitale oplossingen om rijen en andere pijnpunten in het proces te verminderen. Met slimme feedback van sensortechnologie maken we zelfs data van toiletten en stoelen inzichtelijk en bruikbaar. Het Commercial Platform bestaat uit multidisciplinaire teams met een end-2-end verantwoordelijkheid voor

Bekijk vacature »

Front-end developer E-Commere

Functie E-commerce is een ‘’snelle’’ wereld. Om hierin continu voorop te blijven omarmen ze in een vroeg stadium nieuwe technieken. Een webshop is nooit af en kan altijd beter, sneller en efficiënter. Tegelijkertijd hebben ze vanaf hun oprichting altijd vastgehouden aan kwaliteit boven snelheid, en dit loont. Als front-end developer heb je een adviserende rol en sta je aan het eindpunt van alles wat met designs te maken heeft. Je overlegt met klanten en collega’s, en zet je in om ideeen om te zetten tot unieke concepten. Je bent het aanspreekpunt voor de klant en bewaakt tevens de planning. Eisen

Bekijk vacature »

Software developer (Python)

Functie Je komt te werken in het IT-team bestaande uit de Lead developer en 4 (medior/senior) developers. Gezamenlijk werken jullie aan de verbetering en uitbreiding van de software. Binnen het development team is er veel vrijheid en zelfstandigheid, zonder dat ze hiermee afdoen aan de kwaliteit. Zo hebben ze elke ochtend een korte stand-up (10:00 uur) en houden ze zo nu en dan pair-programming sessies. Ook is er een hele professionele ontwikkelcyclus waarbij code altijd eerst door een collega wordt getest voordat het naar deployement gaat. Je hebt in je werk oog voor kwaliteit, risico’s en het klantbelang. Communicatie met

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 »

Java Developer

Dit ga je doen Ontwerpen en bouwen van nieuwe functionaliteiten binnen de complexe omgeving; Proactief de processen kwalitatief en efficient inrichten; Opzetten van Unit Tests; Code Reviews; Regie nemen voor innovatieve projecten; Landschap beheren en de bijbehorende ketens hierbij in het oog houden. Hier ga je werken De organisatie is actief binnen de financiele branche en heeft een IT afdeling van circa 450 man. De organisatie voorziet de maatschappij binnen de financiele dienstverlening en is gedurende de jaren een onmisbare schakel geworden. Het is een high profile organisatie waar ze veel te maken hebben met veranderingen voortkomend uit maatschappelijke ontwikkelingen,

Bekijk vacature »

Senior Developer ERP Dynamics 365

Samengevat: Deze werkgever is een softwarebedrijf. Ben jij een enthousiaste developer? Heb je ervaring met ERP of Dynamic 365 bussines central? Vaste baan: ERP Applicatie Specialist ERP MBO €3.600 - €5.200 Wij houden ons als bedrijf bezig met het leveren en implementeren van het Microsoft Dynamics pakket binnen verschillende industriële sectoren. Deze werkgever is een veelzijdige organisatie. Je werkt voor de eigen IT organisatie. Zij werken met moderne technologie en staan open voor innovatie. Binnen ons open team is er een no-nonsense cultuur. Daarnaast is er veel onderling contact door de korte communicatielijnen. Het team werkt enthousiast samen om een

Bekijk vacature »

PHP Programmeur

Functieomschrijving Vanuit het hoofdkantoor in omgeving Breda, ontwikkel je als PHP programmeur niet alleen webapplicaties, maar ben je verder ook gefocust op het constant inspelen op nieuwe innovaties m.b.t software ontwikkeling. Naast het ontwikkelen van webapplicaties, bouwt deze toffe werkgever ook webshops en websites voor hun opdrachtgevers. Wat ga je doen? Het testen van ontwikkelde applicaties om te zorgen dat ze goed functioneren en voldoen aan de eisen van de klanten; Het ontwerpen en implementeren van webapplicaties met het Symfony framework; Het schrijven van een schone en efficiënte code volgens het Symfony framework; Onderhouden en updaten van bestaande applicaties die

Bekijk vacature »

Senior front end developer Digital Agency Amsterda

Functie Wij werken in multidisciplinaire teams aan verschillende projecten, echter blijf je niet gebonden aan 1 team. Dit houdt in dat wij verschillende specialisten in dienst hebben en deze door middel van een roulatiesysteem in multidisciplinaire teams laten werken. Het team bestaat vaak uit Frontend developer(s), Backend Developer(s), Designer(s), Tester(s) en Mobile Developer(s). Deze teams worden afgewisseld waardoor jij de mogelijkheid krijgt om met iedereen een keer samen te werken. Als Frontend Developer ben jij ónze Specialist op dit gebied. Jij werkt mee aan verschillende projecten voor verschillende klanten. Denk bijvoorbeeld aan klanten, zoals’; BAM, IDFA en Ultimaker. Hierbij zorg

Bekijk vacature »

Pagina: 1 2 volgende »

Bob van der Valk

Bob van der Valk

21/04/2011 12:06:57
Quote Anchor link
Kan iemand me vertellen wat ik nog meer kan beveiligen met dit script?

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 if(!empty($_GET['p'])){
      $pages_dir = "pages";
      $pages = scandir($pages_dir, 0);
unset($pages[0], $pages[1]);
$p = $_GET['p'];

    if(in_array($p. '.php', $pages)) {
        include($pages_dir .'/'. $p .'.php');
    }
else{
        echo 'Sorry pagina niet gevonden';
    }

}
else{
    include ('pages/home.php');
};
?>

Het is de bedoelding als je $_GET['p'] hebt dat ie dan de pagina include.

Alvast bedankt!
 
PHP hulp

PHP hulp

07/05/2024 05:08:25
 
Ozzie PHP

Ozzie PHP

21/04/2011 12:34:15
Quote Anchor link
Stel jij hebt een pagina die iemand niet mag zien, bijvoorbeeld "geheim.php". Op jouw manier kan iedereen die pagina aanroepen.

Jouw manier kan sowieso korter:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php
$page
= $GET['p'];
if (!empty($page)) {
   if (is_file('pages/'.$page.'.php')) {
      include 'pages/'.$page.'.php';
   }
}
else {
   include ('pages/home.php');
}

?>


Veiliger is het om gebruik te maken van de switch constructie www.php.net/switch of om de paginaverwijzingen op te slaan in een database. Voorbeeldje van switch:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php
switch ($page) {
  case
'mijnpagina':
    $include = 'mijnpagina.php';
    break;
  default:

  $include = 'home.php';
}

include $include;
?>
Gewijzigd op 21/04/2011 12:35:07 door Ozzie PHP
 
Bob van der Valk

Bob van der Valk

21/04/2011 12:46:22
Quote Anchor link
Hoezo is die switch veiliger? want dan kan ik via de adres balk toch overal komen?
 
Ozzie PHP

Ozzie PHP

21/04/2011 12:51:15
Quote Anchor link
Nee hoor, juist niet.

Alleen pagina's die in de switch zijn opgenomen als 'case' kunnen worden aangeroepen.
 
Write Down

Write Down

21/04/2011 12:53:29
Quote Anchor link
Ozzie:
Veiliger is het om gebruik te maken van de switch constructie

Bob:
Hoezo is die switch veiliger? want dan kan ik via de adres balk toch overal komen?


Terechte opmerking. Het is niet veiliger. Het is enkel een andere manier van werken, waardoor het makkelijker is veiliger te werken. Echter zou ik in dit geval toch opteren voor een if-else structuur. Die structuur is krachtiger en daardoor kan je het iets flexibeler maken. Je hoeft nl. niet elke case te definiëren, bespaart je tijd. Een case-switch zal echter wel iets sneller doorlopen worden dan een if-else. Echter moet hier maar 1 statement gecontroleerd worden, dus maakt het sowieso amper uit. Eveneens is het zo dat je veel meer cases nodig hebt om hetgeen te bereiken wat ik in onderstaand script heb geplaatst. Dus, je komt sneller uit met een if-else ;-)

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
16
17
18
19
20
21
22
23
24
<?php
$sPage
= $_GET['p'];
$aDissalowed = array('admin.php', 'payments.php', 'secret.php');
/*
* In dit geval is file_exists meer toepasselijk dan is_file
* In je voorbeeld waarin je een directory uitleest, zou is_file een betere keuze zijn
*/

if(file_exists('/path'.$sPage) && !in_array($sPage, $aDissalowed)) {
    /*
    * Het bestand bestaat -> OK
    * Het bestand mag bekeken worden -> OK
    */

    include_once('/path/'.$sPage);
}
else {
    /*
    *    Je komt in else structuur omdat:
    * - Bestand niet bestaat
    * - Bestand bekijken niet toegestaan is
    */

    include_once('/path/home.php');
}


/* Dit is veilig + flexibeler dan Ozzie's methode */
?>
Gewijzigd op 21/04/2011 13:07:06 door Write Down
 
TJVB tvb

TJVB tvb

21/04/2011 13:07:51
Quote Anchor link
@Write down?

Wat denk je van ?p=../path/admin.php

Dan kan ik alsnog het bestand admin.php includen. (En verder alle andere bestanden waar de gebruiker bij kan waar de website onder draait)
Oftewel het is NIET veilig.
 
Write Down

Write Down

21/04/2011 13:10:12
Quote Anchor link
Foutje, inderdaad. Maar is makkelijk op te lossen / te voorkomen :-)
Gewijzigd op 21/04/2011 13:10:33 door Write Down
 
TJVB tvb

TJVB tvb

21/04/2011 13:11:50
Quote Anchor link
Foutje? manier om je hele server op en bloot te geven aan een hacker.
 
Write Down

Write Down

21/04/2011 13:13:02
Quote Anchor link
TJVB tvb op 21/04/2011 13:11:50:
Foutje? manier om je hele server op en bloot te geven aan een hacker.


Heb je gelijk in. grote foutje Maar alsnog eenvoudig te vermijden.
Gewijzigd op 21/04/2011 13:13:30 door Write Down
 
Bob van der Valk

Bob van der Valk

21/04/2011 13:23:06
Quote Anchor link
Dus btw: ik schiet hier niet veel mee op. Want ook in de pages map ga ik geen bestanden plaatsen die andere niet mogen zien. Dus ik denk dat ik em gewoon zo hou.

Maar bedankt in ieder geval dat er naar gekeken is. Top
 
Chris -

Chris -

21/04/2011 13:43:13
Quote Anchor link
Bob, jouw manier zorgt er dus voor dat je iedere willekeure PHP bestand kan includen. Hierin kun je dus geen white/black list maken. Niet veilig dus.
 
Ozzie PHP

Ozzie PHP

21/04/2011 13:43:20
Quote Anchor link
Write Down op 21/04/2011 12:53:29:
Ozzie:
Veiliger is het om gebruik te maken van de switch constructie

Bob:
Hoezo is die switch veiliger? want dan kan ik via de adres balk toch overal komen?


Terechte opmerking. Het is niet veiliger.


Het is wel degelijk veiliger. Je kunt op deze manier helemaal niet via de adresbalk overal komen. Lees anders de documentatie van 'switch' even door zodat je het principe leer begrijpen.

Waar het in ieder geval op neer komt is dat je moet voorkomen dat iemand klakkeloos pagina's kan aanroepen. Je moet van tevoren definiëren welke pagina's mogen worden aangeroepen.

Dit is ook een optie:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
$allowed_pages
= array('pagina1', 'pagina2');
if (in_array($_GET['p'], $allowed_pages)) {
   include 'pages/'.$p.'.php';
}

?>
Gewijzigd op 21/04/2011 13:44:28 door Ozzie PHP
 
TJVB tvb

TJVB tvb

21/04/2011 13:48:24
Quote Anchor link
@Chris, hij scant eerst de map waar die daarna op controleert. Zolang hij alleen bestanden in de map heeft staan die geinclude mogen worden is er niks aan de hand.

@Bob, het grootste nadeel bij jouw methode is dat elke keer de map doorlopen wordt. Dit kan een zwaar proces zijn.
 
Write Down

Write Down

21/04/2011 15:06:43
Quote Anchor link
@Ozzie

Ik weet wat de switch-case inhoudt. Ik blijf er echter bij dat een if-else structuur krachtiger is. Op de manier dat jij het gebruikt uiteraard niet, dan ben je beter af met switch-case. Op de manier dat ik het doe, is het flexibeler. (mits je nog even mijn fout verbeterd)
 
Tobias Tobias

Tobias Tobias

21/04/2011 15:34:00
Quote Anchor link
Je kunt de array $allowed_pages van Ozzie toch ook vullen vanuit je database? dan hoef je je broncode niet steeds aan te passen als je je website uitbreidt.

Bedankt voor het topic, ik heb weer wat beveiliging uit te voeren.
 
Ozzie PHP

Ozzie PHP

21/04/2011 15:47:04
Quote Anchor link
Tobias Witmer op 21/04/2011 15:34:00:
Je kunt de array $allowed_pages van Ozzie toch ook vullen vanuit je database? dan hoef je je broncode niet steeds aan te passen als je je website uitbreidt.

Bedankt voor het topic, ik heb weer wat beveiliging uit te voeren.


Precies! Je krijgt dan het principe van een router en je bent flexibel met het instellen van je urls. Meteen even wat htaccess rewrite toepassen en SEO technisch kun je er ook weer tegen :)
 
Jordi Kroon

Jordi Kroon

21/04/2011 17:05:41
Quote Anchor link
Kan je niet ook met preg_match kijken of er een punt inzit zoja naar homepage
 
Tobias Tobias

Tobias Tobias

21/04/2011 17:14:56
Quote Anchor link
Jordi kroon op 21/04/2011 17:05:41:
Kan je niet ook met preg_match kijken of er een punt inzit zoja naar homepage


Dat kan wel, maar waarvoor wil je dat gebruiken? voor de ../path?
 
Bob van der Valk

Bob van der Valk

21/04/2011 18:12:18
Quote Anchor link
Ja klopt inderdaad zwaar process maar al die pagina's staan achter een login systeem en zodra de sessie niet bestaat kan die pagina ook niet weergegeven worden. Dus vandaar dat ik er niet een allowed pages var inzet. Maar ik denk wel inderdaad dat ik het via een array de pagina's ga doen want dan hoeft ie inderdaad niet steeds de map te doorzoeken.
 
- Mark -

- Mark -

21/04/2011 18:17:30
Quote Anchor link
Je kunt het ook eenmalig doen en de gevonden gegevens in een session stoppen. Dan hoef je niet elke keer de array te updaten als je een nieuw bestand toevoegd. Ik zou wel kijken naar glob() dat is sneller dan dat wat je nu hebt.
 
Jelmer -

Jelmer -

21/04/2011 18:47:13
Quote Anchor link
Ik zou hem niet in een sessie stoppen. Zodra je dan een bestandje toevoegt zullen "nieuwe" gebruikers die wel kunnen zien, maar oude gebruikers niet. Daarnaast, hoe vaak verandert die data? Je kan makkelijker even een scriptje maken met var_export dat die array van pagina's genereert en de uitvoer in een PHP bestandje opslaan. Of je maakt dat automatisch zodra dat bestand mist. Voeg je een nieuw bestand toe? Dan delete je dat list-bestandje, en je script genereert hem automatisch opnieuw.

Ik denk niet dat glob sneller is dan scandir. glob moet per bestand ook nog kijken of het voldoet aan het argument dat je meegeeft (dat pattern) en zoekt ook in directories. scandir geeft gewoon een lijst van bestanden in die map; het is niet meer dan opendir + readdir. Simpeler kan bijna niet.
 

Pagina: 1 2 volgende »



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.