Veilig?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

.NET developer

Functie As a .NET developer you work together in a multidisciplinary development team with 1-2 Senior .NET developers, two front-end developers, Data Scientists and one UX designer. As a team you work on developing a Cloud based application and making this application more stable. Unit testing will also become very important in your new position. Together with the Senior .NET developer you will be responsible for developing the API. You work with a lot of data and occasionally there will also be data issues and some queries will have to be run. This means that you will work a lot

Bekijk vacature »

Traineeship Java Developer

Functie Wat ga je doen als Java Developer? Jij start via ons bij deze opdrachtgever als Trainee Java ontwikkelaar, tijdens het traineeship ga je in 1 jaar van de basis naar professioneel Java ontwikkelaar. Je start samen met een groep trainees, volgt de aangeboden cursussen en gaat aan de slag bij één van onze opdrachtgevers. Na een aantal maanden volgt de volgende opdracht. Door de groei in jouw rol kom je op steeds complexere opdrachten terecht. Veel afwisseling dus. Collega’s met ervaring helpen je bij deze groei en samen met jouw coach ga je een persoonlijke leerplan opzetten om jou

Bekijk vacature »

Web Developer

Bedrijfsomschrijving ENGIE Nederland is onderdeel van de beursgenoteerde ENGIE Groep. ENGIE is actief in 70 landen, met wereldwijd 150.000 medewerkers. Als groep is het de missie om bij te dragen aan de verduurzaming van de wereld. ENGIE Energie biedt energiediensten aan particulieren en grootzakelijk en gaat de uitdagingen van de energietransitie aan door het beschikbaar maken van duurzame energie, het streven de klimaatverandering tot een minimum te beperken, leveringszekerheid te bieden en zorg te dragen voor een verantwoord gebruik van de beschikbare resources. ENGIE Energie investeert daarom in hernieuwbare energiebronnen zoals zon, wind en bio-gas. Functieomschrijving Heb jij veel ervaring

Bekijk vacature »

Traineeship Fullstack developer (WO, 0 tot 3 jaar

Functie Zoals beschreven ga je vanaf start aan de slag bij een passende opdrachtgever, hierbij kijken ze echt naar jouw wensen, kennis/ervaring maar ook de reisafstand. Momenteel hebben ze meerdere klanten waarbij ze groepen hebben opgezet wat maakt dat er diverse uitdagende kansen liggen. Naast het werken bij de opdrachtgever, en het volgen van de masterclasses, zul je regelmatig met de andere trainees in contact zijn. Niet alleen op professioneel vlak maar juist ook bij de borrels en kwartaaluitjes! Kortom; een jaar lang hard aan jezelf werken in combinatie met gezelligheid en plezier. Spreek dit jou aan? Dan komen we

Bekijk vacature »

C++ Ontwikkelaar

Functieomschrijving Ben jij als software ontwikkelaar toe aan een nieuwe uitdaging? Dan zoeken wij jou! Voor het maken van de procesbesturingssoftware gebruiken onze projectteams een in C++ en C# geschreven tool. Dit is een gedistribueerd object framework wat alle kernfuncties biedt voor een procesautomatisering. Verder zullen jouw werkzaamheden o.a. bestaan uit: Ontwerpen, programmeren en testen van product aanpassingen; Analyseren van vragen en wensen van gebruikers en deze vertalen naar een functioneel ontwerp; Inzichtelijk maken van voortgang omtrent softwarewerkzaamheden, o.a. door middel van SCRUM; Continu toetsen van het effect van nieuwe releases op andere tools en processen; Implementeren van nieuwe product

Bekijk vacature »

PHP Developer

Functie omschrijving Voor een bedrijf in Den Bosch zoek ik een PHP Developer, die al wat werkervaring heeft. Jij gaat aan de slag met de verdere professionalisering van de interne applicaties en software. In de functie ga je verder: Verdere ontwikkeling eigen CRM systeem, vooral middels PHP; Bouwen van verschillende API's & koppelingen; Meedenken om de software/applicaties te verbeteren/optimaliseren; Aan de slag met de interne tooling. Bedrijfsprofiel Dit bedrijf is actief binnen de telecombranche. Het hoofdkantoor zit in regio van Den Bosch en er werken ruim 70 medewerkers, verdeeld over verschillende afdelingen. De afdeling Development bestaat uit vijf collega's, onder

Bekijk vacature »

Laravel / PHP developer

Functie omschrijving Wij zijn op zoek naar een Medior PHP / Laravel Developer voor een IT-consultancy in de omgeving van Hoofddorp! Ben jij op zoek naar een leuke nieuwe uitdaging binnen een veelzijdige werkomgeving? Lees dan snel verder! Binnen dit bedrijf werk je in een ontwikkelteam, waarin je zeer betrokken bent en meedenkt over softwareoplossingen. Binnen dit Team hou je je bezig met het aanpassen, verbeteren en vernieuwen van de logistieke oplossingen. Je zult je bezig houden met de volgende werkzaamheden: Je gaat aan de hand van de wensen van klanten software ontwikkelen; Je bent bij het gehele proces betrokken;

Bekijk vacature »

Traineeship Full Stack Java developer

Dit ga je doen Start jij op 7 augustus bij de Experis Academy dan kickstart jij jouw IT-carrière! We leiden je op tot een gewilde Full Stack Java Developer met alle kennis en vaardigheden die nodig zijn om de arbeidsmarkt te betreden. Wat kun je verwachten, hoe zit een dag in het leven van een Trainee eruit? Periode 1 Als Full Stack Java Developer Trainee volg je vanuit huis een op maat gemaakte onlinetraining die in het Engels wordt gegeven. De tijd die je kwijt bent aan het volgen van de training kun je vergelijken met een fulltime werkweek. In

Bekijk vacature »

Senior PHP developer

Functie Jouw werkzaamheden zullen grotendeels bestaan uit het in teamverband ontwerpen, vernieuwen en door ontwikkelen van het systeem. Het is echt back-end werk (bijvoorbeeld het doorontwikkelen van een API) en dit moet je dan ook liggen. Ze zijn niet persee gebonden aan talen of tools maar gebruiken graag de technieken die het beste aansluiten op de gegeven oplossing. Voor nieuwe (versies van) componenten maken ze veelal gebruik van Go(lang). Bij aanpassingen aan bestaande onderdelen gebeurt dit in PHP en C++. Het team is heel divers, er hangt een relaxte sfeer en ze organiseren regelmatig leuke music nights, game nights e.d.

Bekijk vacature »

Software Developer

Functie omschrijving In deze functie ga je aan de slag met het door ontwikkelen van de interne software. Zij maken gebruik van een CRM, wat door de hele organisatie gebruikt wordt. Andere taken: Je gaat het CRM-systeem door middel van PHP verder ontwikkelen; Verder bouw je verschillende API's en koppelingen tussen systemen; Ook ga je collega's ondersteunen bij vragen over de software en applicaties; Deelnemen aan overleggen met het development team; Bij interesse is er de mogelijkheid om junioren te gaan begeleiden. Bedrijfsprofiel Dit bedrijf is actief binnen de telecombranche. Het hoofdkantoor zit in regio van Den Bosch en er

Bekijk vacature »

.NET developer

Wat ga je doen als Full stack .NET developer Microsoft 365? Je stelt je op als sparringpartner voor het team en PO over toekomstige functionaliteiten, architectuur en mogelijke nieuwe producten. Je bent mede-verantwoordelijk voor het vertalen en omzetten van een user story in een passend technisch design. Je implementeert functionaliteiten op basis van een technisch design en user story. Je bent mede-verantwoordelijk voor het beheer van Azure DevOps, waaronder het beheer van GIT, Build Pipelines, Release Pipelines en geautomatiseerde testen. Hier herken jij jezelf in Hbo werk- en denkniveau of hoger aangevuld met relevante certificeringen en/of cursussen; Minimaal 3 jaar

Bekijk vacature »

Front-end Developer - React - Data Driven

Bedrijfsomschrijving Onze klant is een snelgroeiende organisatie die een data-driven inspectieapp op de markt hebben gebracht die nu al een aantal jaar door verschillende organisaties wereldwijd gebruikt wordt. Er zijn zo'n 6 mensen werkzaam bij dit bedrijf en ze zijn nu vooral op zoek naar een sterke front-end developer die wil gaan werken aan nieuwbouw applicaties en de uitbouw van de huidige applicaties. De reden dat ze zoeken is omdat er veel werk op komst is en ze hier de juiste capaciteit voor willen hebben. Er heerst hier een hele prettige sfeer waarin respect en eerlijke communicatie belangrijk is. Ook

Bekijk vacature »

SQL Database Ontwikkelaar

Functie omschrijving Kan jij goed overweg met complexe algoritmes en het schrijven van procedures in T-SQL? Heb jij al wat ervaring opgedaan met SQL en vind je het tijd voor de volgende stap? Lees dan snel verder! Dit software bedrijf, gespecialiseerd in de ontwikkeling van logistieke software, is op zoek naar een ervaren SQL database developer. Jouw werkzaamheden zullen onder andere bestaan uit: Je houdt je bezig met het ontwerp en de ontwikkeling van MS SQL server databases, dit doe je met T-SQL als programmeer laag. De begeleiding van projecten van A tot Z, je zult aansluiten bij meetings met

Bekijk vacature »

TypeScript developer (tot € 6.000, - bruto pe

Functie Om bovenstaande ambities waar te kunnen maken zijn ze op zoek naar een ervaren Typecript developer die niet alleen zichzelf verder ontwikkelt, maar het ook leuk vinden om op termijn meer junior collega’s op pad te helpen. Je zult aan de slag gaan met het migreren van hun bestaande UI in Angular. Maar ook het ontwikkelen van een mobiele app. Hierbij hechten ze veel waarde aan User Experience en kiezen ze duidelijk voor kwaliteit i.p.v. snelheid. Je krijgt dus de ruimte om vanuit gedegen onderzoek te werk te gaan en het borgen van kwaliteit staat hoog in het vaandel.

Bekijk vacature »

Medior/senior PHP ontwikkelaar E-commerce

Functie Het software development team bestaat momenteel 5 scrum teams . Ieder team heeft een eigen SCRUM Master en eigen tester. Zij werken voornamelijk in PHP en met hun eigen geschreven framework wat Symfony based is . Jij bent samen met je collega’s verantwoordelijk voor het interne softwaresysteem en alle projecten die daar omheen lopen. Alles wat jij ontwikkelt, wordt direct toegepast en uitgerold (wereldwijd). Dit maakt jouw werk tastbaar en uitdagend! Een greep uit jouw werkzaamheden: Toevoegen en ontwikkelen van nieuwe functionaliteiten Logistieke software ontwikkelen voor intern gebruik Tientallen gigabytes aan data inzichtelijk maken Altijd op zoek gaan naar

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

05/11/2024 17:44:19
 
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.