Veilig?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Laravel developer

Zie jij mogelijkheden om onze tooling technisch te verbeteren en uit te bouwen? Over Jobmatix Jobmatix is een innovatieve en internationale speler op het gebied van jobmarketing. Onze jobmarketing automation tool helpt organisaties bij het aantrekken van nieuw talent door vacatures digitaal, geautomatiseerd en op een efficiënte manier te adverteren en onder de aandacht te brengen bij de doelgroep op 25+ jobboards. Volledig performance-based, waarbij organisaties betalen op basis van cost per click of cost per applicant. Maandelijks wordt onze jobmarketing automation tool al gebruikt door vele directe werkgevers, intermediairs en mediabureaus, waaronder Picnic, Rijkswaterstaat, AdverOnline, Schiphol, DPA, Teleperformance en

Bekijk vacature »

Front-end Developer

Functie omschrijving Gezocht front-end developer! Voor een toffe organisatie in de regio Rhenen zij wij op zoek naar een front-end developer die de eindverantwoordelijkheid op zich neemt van alles wat met design te maken heeft. In deze functie heb je een adviserende rol en beschik je over een grote dosis vakinhoudelijke kennis. Samen met collega’s en klanten overleg je om aangeleverde designs om te zetten naar unieke concepten. Zo draag jij je steentje bij aan de groeiambities van de klant. Voor klanten wordt jij het vaste aanspreekpunt als het gaat over planningen hierin houdt je alle betrokkenen goed op de

Bekijk vacature »

Lead React Developer

Dit ga je doen Als Lead React Developer zul jij je voornamelijk gaan bezighouden met: Het werken aan tal van uiteenlopende projecten waar gloednieuwe (web)applicaties van scratch af aan ontwikkeld worden met o.a. React (Native) en Drupal; Het aansturen van een team bestaande uit 5-6 talentvolle en gedreven ontwikkelaars; Het adviseren en meedenken over nieuwe (technische) oplossingen en te gebruiken tools/frameworks; Het meedenken over de architectuur en de juiste implementatiebeslissingen maken; De doorontwikkeling van huidige applicaties. Hier ga je werken Als je inderdaad een ervaren Lead React Developer bent die zichzelf graag nog verder wil ontwikkelen dan is het goed

Bekijk vacature »

Social Media Specialist

Social Media Specialist locatie: Rotterdam (Zuid Holland) Wij zoeken op korte termijn een nieuwe collega, een social media specialist/ adviseur sociale media (24 uur), voor ons sprankelende team Communicatie van CJG Rijnmond. Onze focus ligt op het informeren en binden van onze in- en externe klanten en stakeholders en het versterken van onze naamsbekendheid en zichtbaarheid. Dat doen we in nauwe samenwerking met elkaar. Over de functie Ons team bestaat uit 7 communicatieprofessionals met ieder een eigen expertise. Als lid van het online team ben je verantwoordelijk voor het ontwikkelen, uitvoeren en analyseren van onze socialemediastrategie. Ook stel je campagnes

Bekijk vacature »

C#.NET Developer Jr. Functie

Functie omschrijving Bouw jij graag aan applicaties om processen in distributiecentra te optimaliseren? Wij zijn op zoek naar een C#.NET ontwikkelaar in regio Breda die hier graag een steentje aan bijdraagt! Jouw werkzaamheden zullen er als volgt uitzien: Je krijgt veel vrijheid in de keuze van de technieken die je gaat gebruiken. Uiteraard wel binnen de gestelde kaders, en door gebruik te maken van het .NET platform. Je gaat aan de slag met de ontwikkeling van een nieuwe module binnen de WMS suite van dit bedrijf. Deze "carrier" module gaat er voor zorgen dat de selectie van een vervoerder volledig

Bekijk vacature »

Freelance JAVA / C# Developer

Functieomschrijving Voor een opdrachtgever in omgeving Zoetermeer zijn wij op zoek naar ervaren JAVA of C# Developers die graag op projectbasis willen werken. Je komt terecht bij een informele developers club die mooie projecten uitvoeren voor grote klanten. Ben je een ervaren freelancer of werk je in loondienst en ben je toe aan een nieuwe uitdaging? Lees dan snel verder want wie weet is dit een leuke vacature voor jou! Het fijne van deze werkgever is dat je zelf mag beslissen hoe je te werk wilt gaan. Wil je als freelancer werken dan is dat OK. Wil je de zekerheid

Bekijk vacature »

Software Ontwikkelaar C# .NET

Functie omschrijving C# .NET Developer gezocht. Ben jij een full stack developer die op zoek is naar een nieuwe uitdaging binnen een leuk snel groeiend bedrijf? Lees dan snel verder! Wij zijn op zoek naar een Developer met ervaring op het gebied van .NET die een organisatie in de regio Amersfoort gaat versterken. Jij gaat je binnen dit bedrijf vooral bezighouden met het verbeteren van de functionaliteiten van hun dataplatform. Samen met andere ontwikkelaars denk je mee in oplossingsrichtingen, architectuur en nieuwe technologieën. Bedrijfsprofiel De organisatie waar je voor gaat werken heeft een onafhankelijk dataplatform ontwikkelt voor de agrarische sector.

Bekijk vacature »

Back-end Programmeur

Functieomschrijving Heb jij kort geleden je HBO ICT in ontvangst mogen nemen? Of ben je toe aan een nieuwe uitdaging? Voor een ambitieuze werkgever in de regio van Breda zijn wij op zoek naar een Back-end programmeur met affiniteit met C#.NET, SQL en MS Access. Samen met team bestaand uit ware ICT professionals ben je verantwoordelijk voor het bouwen van maatwerk software voor hun klanten. Belangrijk is dat je kennis of ervaring hebt van C#.NET en SQL. Je toont een flexibele en sociale houding naar klanten toe. Je denkt in nieuwe mogelijkheden & gaat graag de uitdaging aan. Bedrijfsprofiel De

Bekijk vacature »

.NET developer

Functie Als .NET developer wordt jij onderdeel van ons ICT team. In dit multidisciplinaire team ben jij samen met onze senior .NET ontwikkelaar en medior .NET ontwikkelaar verantwoordelijk voor ons ERP systeem. In dit systeem (Navision) ga jij leren ontwikkelen. Wij bieden jou dan ook een gedegen opleiding aan, samen met de ondersteuning van onze Senior .NET developer. Daarnaast ga jij aan de slag met ons portaal geschreven in Sharepoint. Verder ben jij verantwoordelijk voor EDI verkeer en het ontwikkelen binnen het ERP systeem en andere toepassingen en rapportages. Van jou wordt verwacht dat jij het proces goed leert kennen

Bekijk vacature »

Developer

Functie omschrijving In deze functie ga je werken als C# Developer. Jij gaat aan de slag met de volgende taken: Maatwerk software bouwen; Huidige softwareprojecten verder uitbouwen en optimaliseren; Ideeën van de klant omzetten naar handige oplossingen en tools; Bovenstaande doe je middels de Microsoft- stack: C#, ASP.NET en MVC/ Entity Framework. Ben je net afgestudeerd aan een HBO opleiding Informatica, aarzel dan niet om te solliciteren. Dit is namelijk de ideale startersfunctie! Bedrijfsprofiel Deze organisatie is gevestigd in de regio van Boxtel. Het is van oorsprong een familiebedrijf, die gestart zijn met het bouwen van websites. Dit is door

Bekijk vacature »

Oracle APEX developer

Wat je gaat doen: Als Oracle APEX ontwikkelaar bij DPA werk je samen met collega’s aan de meest interessante opdrachten. Je zult je ervaring met SQL, PL/SQL, JavaScript, HTML en CSS inzetten om wensen van opdrachtgevers te vertalen naar technische oplossingen. Je werk is heel afwisselend, omdat DPA zich niet beperkt tot een specifieke branche. Zo ben je de ene keer bezig binnen de zorgsector, de andere keer is dit bij de overheid. Wat we vragen: Klinkt goed? Voor deze functie breng je het volgende mee: Je hebt een hbo- of universitaire opleiding afgerond Je hebt 2 tot 5 jaar

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 »

Senior Java Developer

Als Senior Java Developer bij Sogeti ben je onderdeel van onze toonaangevende community die bestaat uit ruim 100 gepassioneerde Java professionals. In teamverband lever je mooie prestaties. Daarmee draag je aan bij de meerwaarde die wij leveren aan onze top-opdrachtgevers. Geen werkdag is hetzelfde! Je bent voortdurend bezig met het oplossen van allerlei complexe vraagstukken binnen bedrijfs kritische systemen voor onze klanten in regio Noordoost zoals DUO, ING, CJIB en Tendernet. Natuurlijk krijg jij de mogelijkheid je verder te certificeren in dit vakgebied. We organiseren regelmatig technische Meetups en doen veel aan kennisdeling. Sogetisten hebben plezier in hun werk en

Bekijk vacature »

Junior .NET developer

Functie Om half 9 kom jij binnen en pak jij als eerst natuurlijk een bakje koffie of thee. Vervolgens ga jij je voorbereiden op de stand-up van kwart voor 9. Zijn er bijvoorbeeld dingen waar jij nog tegen aan loopt? Of is er nog code die getest of gereviewd moet worden? Vervolgens starten jullie met de stand up en na de stand up zoeken jullie elkaar op en gaan jullie aan de slag. Als team met 6 developers werken jullie in drie wekelijkse sprints. Het einde van een sprint is altijd op een donderdag zodat jullie op vrijdag de demo

Bekijk vacature »

C# .NET Developer

Dit ga je doen Als developer nieuwe gave features implementeren; Werken met technieken als C# .NET en (REST) API's webservices; Ontwikkelen van koppelingen middels API's; Maken van technische keuzes en beslissingen over de architectuur; Junior collega's coachen; Initiatief nemen voor nieuwe technische mogelijkheden; Je bent een belangrijke schakel - en vindt het leuk - om te schakelen met de business. Hier ga je werken In een klein team van professionals ben je als C# .NET Developer verantwoordelijk voor het ontwikkelen van één van de applicaties voor het grootste inhouse product: een applicatie voor alles omtrent hypotheken. De programmeertaal die je

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/01/2025 09:34:45
 
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.