Beveiligde map benaderen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Functioneel applicatiebeheerder - SOP-SYS-SAM

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 Functioneel Applicatiebeheerder op onze locatie Arnhem die hieraan wil bijdragen en misschien ben jij dat wel? Jouw bijdrage aan TenneT Je gaat samenwerken in een team van circa 15 functioneel applicatiebeheerders en gaat onderdeel uitmaken van een DevOps team. Met dit team ga je applicaties (laten) ontwikkelen en beheren. Hierbij concentreer je je vooral op de functionele aspecten, zodat

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 »

C# .NET Software Ontwikkelaar

Functie omschrijving Gezocht: Software Developer C# .NET voor een dynamische organisatie! Ben je onlangs afgestudeerd of ben je toe aan de volgende stap in je professionele carrière? Lees dan verder! We zijn momenteel op zoek naar een Software Developer die klaar is voor een nieuwe uitdaging en die onze eindklant in de regio Arnhem kan versterken. In deze functie werk je aan verschillende projecten en bezoek je vaak klanten. Je kunt een rol verwachten met veel uitdaging, diversiteit en verantwoordelijkheid. Bedrijfsprofiel Binnen welke organisatie ga je aan de slag? Je gaat werken bij een organisatie die zich specialiseert in het

Bekijk vacature »

Java Developer

Functieomschrijving Are you an experienced Java Developer who wants to be challenged? Then this is your job! As a Java Developer, you are co-responsible for building custom applications within our extensive IT landscape. Development takes place on both the back-end side (Spring/JEE). Together with the IT department, you are responsible for the daily adjustments and expansions of our IT systems. In addition, you will work in small scrum teams using the Agile methodologies. Besides the realization of our in-house systems, you are responsible for the roll-out of the application (version) as well as the operational support after going live. Team

Bekijk vacature »

Front-end Angular developer

Functie In jouw rol als Front-End developer werk je samen met de backend developers om middels tweewekelijkse sprints het platform naar een hoger niveau te tillen. Hiernaast heb je affiniteit met data en werk je graag samen met het team om de gegevensintegriteit en -beveiliging te waarborgen, om ervoor te zorgen dat de gebruiker wereldwijd de beste SaaS-services heeft. Deze organisatie heeft meer dan 100 mensen in dienst, waarvan er 45 in Nederland werken. Het ontwikkelteam bestaat uit 10 mensen en is verdeeld in 2 scrumteams. Het eerste team bestaat uit Java en Scala ontwikkelaars. Het tweede team, waar jij

Bekijk vacature »

.NET Developer te Naarden

Bedrijfsomschrijving Voor mijn klant ben ik op zoek naar een .NET Developer om het huidige team te komen versterken. Deze organisatie bevindt zich in de logistieke sector, en zij hebben een eigen ERP systeem ontwikkeld dat zij inzetten ter optimalisatie van de logistieke processen van haar eindklanten. Deze organisatie bestaat inmiddels al ruim 20 jaar, waarbij zij een duidelijke missie hebben, namelijk: het werk van de eindklant makkelijker maken door de systemen die zij leveren. Ze werken over heel de wereld, wat deze organisatie een echte internationale speler maakt. Binnen de organisatie kenmerken ze zich door een dynamische en professionele

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 »

Junior .NET developer

Functie Als junior .NET developer begint jouw dag na een bak koffie met een stand up. De vorderingen worden tijdens de stand up besproken en de doelen worden opgesteld waar jullie als team in de volgende sprint naartoe gaan werken. Onze backend is geschreven in .NET Core en onze Front-end in Angular. Bij ons ga jij dan ook Fullstack aan de slag. Jij wordt hier opgeleid om zelfstandig te kunnen programmeren en applicaties te kunnen implementeren. Er wordt op projectbasis gewerkt, dit bied leuke uitdagingen omdat elke klant een andere visie heeft over de applicatie die wij maken. Je gaat

Bekijk vacature »

Ambitieuze medior developer

Wat je gaat doen: Heb jij al een paar jaar ervaring als developer maar wil jij naar the next level? In ons NextLevelDev Programma helpen wij jou om de volgende stap te zetten: een mooi programma aan trainingen op het gebied van Java, hippe frameworks, Agile/Scrum, OCP-certificering en optioneel: andere JVM-talen als Kotlin en Scala; Cloud (AWS, Azure, GCP) Soc Of beter nog, wat wil jij doen? Binnen DPA GEOS zijn we dan ook op zoek naar enthousiaste Java developers om ons development team te versterken. Als Java developer werk je in Agile/Scrum teams bij onze klanten en daarbij kun

Bekijk vacature »

Implementatie specialist

Standplaats: Honselersdijk Aantal uren: 32 – 40 uur Opleidingsniveau: HBO werk- en denkniveau Ben jij de implementatie expert die onze klanten helpt bij het integreren van de Greencommerce software? Ben jij daarnaast communicatief sterk, denk jij graag in verbeteringen en heb je ervaring met ICT? Lees dan snel verder! Bedrijfsinformatie Jem-id is een grote speler op het gebied van software ontwikkeling. Zo zijn wij continu bezig met het ontwikkelen van de meest innovatieve software voor de AGF- en sierteeltsector. We creëren oplossingen die er toe doen en verbinden klanten niet alleen op technisch vlak, maar zoeken ook de verbinding in

Bekijk vacature »

In-house .NET software developer

Functie omschrijving Ben jij op zoek naar een uitdagende in-house development functie? Maak jij graag hét verschil m.b.t. interne automatisering? Haal jij energie uit het automatiseren van processen voor je eigen collega's? Dan hebben wij de perfecte vacature voor je! Voor een gezellig Brabants familiebedrijf, zijn wij op zoek naar een .NET software developer. Je gaat in deze zelfstandige functie werken aan de ontwikkeling van eigen applicaties & en het koppelen van deze applicaties aan de ingekocht software. Jouw werkzaamheden zien er als volgt uit: Het management team signaleert behoeftes vanuit de business. Vervolgens worden deze behoeftes uitgewerkt en geprioriteerd.

Bekijk vacature »

.NET Developer Medior Senior

Dit ga je doen Ontwikkelprocessen verder optimaliseren en verder ontwikkelen met C#; CI/CD-pipelines automatiseren; Herbruikbare componenten maken; Testen; Front-end pagina's gebruiksvriendelijk maken. Hier ga je werken Als .NET Developer kom jij terecht binnen een grote en internationale organisatie. Zij streven naar een positieve impact op de mens, milieu en maatschappij. Het bedrijf is oorspronkelijk een familiebedrijf en werkt aan de productie van hoogwaardige en technische systemen voor de gezondheidszorg. Momenteel willen zij betere ontwikkelprocessen creëren op internationaal gebied en staat kwaliteit en veiligheid voor hun op nummer 1! Als .NET Developer werk jij aan het ontwikkelen van verbeterde software voor

Bekijk vacature »

Front-end developer (Vue.js) gezocht!

Functie Als Front-end developer is het jouw doel om efficiënte en effectieve frontend code te ontwerpen, ontwikkelen en onderhouden die goed aansluit bij de functionele behoefte vanuit de klant. Je zorgt voor optimale SEO-resultaten, sitespeed en frontend security. You build it, you run it, you own it! Je maakt deel uit van een DevOps Scrum team en werkt samen met back-end developers, test-engineers, interaction designers en een projectmanager. Er zijn verschillende groepen Scrum teams. Een roadmap team is jouw ‘’thuisbasis’’, daar wordt gewerkt aan doorontwikkeling van bestaande omgevingen voor een aantal klanten. Hiernaast zijn er projectteams waar nieuwe omgevingen worden

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 »

Medior/Senior Python developer (Django)

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 werken ze met pair-programming sessies. Ook is er een hele professionele ontwikkelcyclus waarbij code altijd eerst door een collega wordt getest voordat het naar deployement gaat. Er is een kwaliteitsfocus en dan biedt ruimte om verbeteringen echt door te voeren binnen de gehele

Bekijk vacature »
Jer Tie

Jer Tie

26/01/2009 22:35:00
Quote Anchor link
Ik heb een afgeschermd deel van een site gebouwd waarop klanten kunnen inloggen en bijvoorbeeld rekeningen en offertes kunnen downloaden.
Aangezien op de PDF-bestanden klant gegevens staan wil ik dit zo goed mogelijk beveiligen.
Een beveiligde map leek mij het handigst, maar ik kom er maar niet achter hoe ik deze middels PHP ( zonder dat de klant inloggegevens (nogmaals) in hoeft te voeren!! ) kan benaderen.
Toen dacht ik dat ik misschien met CHMOD() kon gaan werken. Hoe weet ik niet precies, en ik weet ook niet in hoeverre dit veilig is...
Heeft iemand een oplossing voor mij?
 
PHP hulp

PHP hulp

21/06/2024 18:34:33
 
Joren de Wit

Joren de Wit

26/01/2009 22:39:00
Quote Anchor link
Het verstandigste is om deze map met pdfjes buiten je webroot te plaatsen, op die manier is het niet direct van buitenaf toegankelijk.

Om de pdfjes dan als download aan je klanten aan te bieden, gebruik je een PHP script. Bijvoorbeeld zo een als dit push download script. Voordeel is dat je in het betreffende PHP script direct een controle in kunt bouwen of de klant en ingelogd is en of de betreffende klant het opgevraagde pdfje wel mag downloaden...
 
Ed

Ed

26/01/2009 22:43:00
Quote Anchor link
Met de huidige klant gegevens een .htpasswd generen, deze koppelen via .htaccess. En dan laten linken met $_SERVER['PHP_AUTH_USER'] en $_SERVER['PHP_AUTH_PW']
 
Joren de Wit

Joren de Wit

26/01/2009 22:49:00
Quote Anchor link
@Danny: op die manier heeft een bevoegde klant alsnog toegang tot de hele map met pdfjes. En je voorkomt dus niet dat deze klant ook de pdfjes van andere klanten kan opvragen!

Daarvoor zul je nog een extra controle (met PHP) uit moeten voeren en dan ligt de oplossing die ik in mijn vorige post gaf veel meer voor de hand...
 
Ed

Ed

26/01/2009 22:52:00
Quote Anchor link
Blanche schreef op 26.01.2009 22:49:

Daarvoor zul je nog een extra controle (met PHP) uit moeten voeren en dan ligt de oplossing die ik in mijn vorige post gaf veel meer voor de hand...


Check, idd. Alleen buiten de webroot plaatsen lukt vaak niet bij een hoster, ten zij je een VPS hebt.
 
Joren de Wit

Joren de Wit

26/01/2009 22:57:00
Quote Anchor link
Dat is onzin! Jij kunt gewoon mappen aanmaken naast de public_html (of htdocs/www/etc) map en voila je bent al buiten de webroot. Als je bij een host zit die dat niet toelaat, zou ik echt overwegen om een andere host te zoeken...
 
Pepijn de vos

pepijn de vos

27/01/2009 07:30:00
Quote Anchor link
anders misschien met .htacces gewoon deny from all doen, dan kan je er vanaf web niet meer bij en jij met php nog wel.
 

27/01/2009 08:13:00
Quote Anchor link
Bouw er een loginsysteem omheen, de bestanden buiten de webroot houden en dmv php ophalen. Veiliger kan nog maar op 1 manier, en dat is uitprinten en opsturen per post!
 
Jer Tie

Jer Tie

27/01/2009 09:07:00
Quote Anchor link
Oke, ik snap wat jullie allemaal bedoelen :)
Optie die blanche aangedragen heeft ben ik aan het uitproberen.
Ik heb downloadscript geintegreerd, en de map in de root gezet waar ook public_html staat.
Maar wat moet ik nou invullen bij $sDir?

Het script wat is dus gebruik is:

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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
<?php
ini_set('display_errors', 'On');
error_reporting(E_ALL);
require '../../inc/stats.php';

function
getFile($sLocation, $sName)
{

    if(!file_exists($sLocation) || strstr($sLocation, '../'))
    {

        echo "<script>alert('Dit bestand bestaat niet.');</script>";
    }

    else
    {    
        header ('Cache-Control: must-revalidate, post-check=0, pre-check=0');
        header ('Content-Description: File Transfer');
        header ('Content-Type: application/octet-stream');
        header ('Content-Length: ' . filesize($sLocation));
        header ('Content-Disposition: attachment; filename=' . basename($sName));
        readfile($sLocation);
    }
}


$sDir = 'downloadscript/';
if(isset($_GET['file']))
{

    $sFile = trim($_GET['file']);
    if(!empty($sFile))
    {

        getFile($sDir.$sFile, $sFile);
    }
}
[
/code]

ik heb wat dingen geprobeerd zoals teruggaan met ../../ etc. maar dat werkt niet. ook heb domains/[i]domeinnaam[/i] geprobeerd, werkt ook niet.
Hoe werk dat?

En die 1e 3 regels.. wat zou ik met stats.php moeten doen?
Volgens mij kan ik de 1e 3 regels gewoon weg laten ,of niet?

Sorry, weet hier niet zoveel van zoals jullie merken!
Bedankt voor alle reacties tot nu toe :)
 
Arjan Kapteijn

Arjan Kapteijn

27/01/2009 10:49:00
Quote Anchor link
Aangezien deze vraag vorige week ook al gesteld is; even een copy-past van een voorbeeld wat ik had gemaakt.

Jouw voorbeeld is eng, en onveilig. Ik kan nu namelijk ook je index.phps of databasecode ophalen.

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
25
26
27
<?php
$map
= 'pdfs/';

if(!empty($_GET['pdf']))
{

    $pdf    = $_GET['pdf'];
    $pdfs   = glob($map.'{*.pdf,*.PDF}', GLOB_BRACE);
    
    if(in_array($map.$pdf, $pdfs))
    {

        header("Pragma: public");
        header("Expires: 0");
        header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
        header("Cache-Control: private",false);
        header("Content-Type: application/pdf" );
        header("Content-Disposition: attachment; filename=\"".$pdf."\";");
        header("Content-Transfer-Encoding: binary");
        header("Content-Length: ".filesize($map.$pdf));
        
        readfile($map.$pdf);
    }
else{
        echo '<p>Sorry, dit bestand bestaat niet!</p>';
    }
}
else{
    echo '<p>Sorry, ik verwacht een bestand!</p>';
}

?>


Dit voorbeeld werkt met een map 'pdfs', in dezelfde 'map' als deze 'download.php'. Die 'download.php' spreek je vervolgens aan met een ?pdf=bestandsnaam.pdf. Hierin kun je dan nog controleren of de gebruiker ingelogd is en rechten heeft om 'die' pdf op te halen.

Je kunt die map met pdfjes vervolgens op 2 manieren beveiligeren; een deny from all of hem buiten je webroot plaatsen. In het laatste geval zul je de $map moeten aanpassen naar de juiste locatie, doormiddel van de ../../ methode of de directe locatie.
 
Jer Tie

Jer Tie

27/01/2009 11:45:00
Quote Anchor link
Met deny from all bedoel je CHMOD 000 ?

ik krijg ook deze melding nu:


Warning: in_array() [function.in-array]: Wrong datatype for second argument in /home/etc./etc/etc/file.php on line 9
Gewijzigd op 01/01/1970 01:00:00 door Jer Tie
 
Arjan Kapteijn

Arjan Kapteijn

27/01/2009 12:06:00
Quote Anchor link
Wat denk je dat er gebeurd met een CHMOD 000? Juist, -niemand- kan nog bij de bestanden. Ook jij en PHP niet meer. Van wie heb je dit soort dingen geleerd? In je startpost wou je ook al aan de slag met CHMOD...
 
Jer Tie

Jer Tie

27/01/2009 12:19:00
Quote Anchor link
Zoals ik al zei weet ik er niet veel van, zeker van beveiliging niet.
Ik dacht met CHMOD kan je m niet meer bereiken, dus deny from all? (A)
Verkeerde gedachte blijkbaar...
sorry
 
Joren de Wit

Joren de Wit

27/01/2009 12:30:00
Quote Anchor link
Zodra je de map met pdfs buiten je webroot hebt staan is deze al niet meer van buitenaf te bereiken. Een .htaccess met deny from all heeft in dat geval dus ook totaal geen nut meer...
 
Jer Tie

Jer Tie

27/01/2009 13:02:00
Quote Anchor link
oke!! ja, klinkt logisch :)
 



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.