Beveiligde map benaderen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

JAVA Programmeur

Bedrijfsomschrijving Functieomschrijving We zoeken per direct enthousiaste software engineers die ons team komen versterken.We werken in DevOps teams met een sterk gevoel voor verantwoordelijkheid. Er wordt nauw samengewerkt met ons Business analyse team (BAT), met onze uitvoerende medewerkers en met de DevOps teams onderling binnen het domein. Het liefst hebben we veel en vaak interactie met onze interne en externe eindgebruikers om zo de juiste dingen te maken. We werken multidisciplinair in een dynamische omgeving. Achtergrond opdracht De Businesseenheid Examens is verantwoordelijk voor de logistiek van de staatsexamens Voortgezet (speciaal) onderwijs, Nederlands als 2e taal en schoolexamens. In het kader

Bekijk vacature »

Freelance Fullstack Java Developer

Functieomschrijving Voor een opdrachtgever in omgeving Rotterdam zijn wij op zoek naar ervaren Fullstack JAVA 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 hebben

Bekijk vacature »

Medior Front-end Developer

Bij Getnoticed doen wij wat we leuk vinden, websites bouwen en online marketing. Voor veel van onze klanten doen we dan ook allebei. Wel zo fijn om campagnes te draaien voor conversiegerichte websites die in eigen beheer zijn. In onze vestiging in Nederweert zit onze development afdeling en worden de websites gebouwd. Op dit moment zijn we op zoek naar jou: dé Medior Front-end Developer die net als wij, het hoofd boven het maaiveld durft uit te steken! In het kort Even een paar punten die omschrijven wat deze toffe baan inhoudt: Het uitwerken van designs tot functionele layouts Je

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 »

Experienced Lead Java Developer

Vacature details Vakgebied: Software/IT Opleiding: Senior Werklocatie: Delft Vacature ID: 13301 Introductie We are seeking a Lead Java Developer for our team in the area of Delft. You will develop an application used exclusively by the engineers and geologists for site characterizations, which imports raw field and laboratory measurements for further processing, integration, ground modelling, and geotechnical analysis and reporting. The client/server application is entirely written in Java, and the server is hosted in the Amazon cloud, utilizing frameworks such as Spring and Hibernate, and connected to an MS SQL Server RDS instance. There is a trend towards using more

Bekijk vacature »

UX Writer (m/v/d)

UX Writer (m/v/d) Everything we do, starts with you. Together with you, we build the most human-centric fintech. We have the ambition to create the next. And - with Bertelsmann - a strong foundation to start from. Let’s make it new – for society and for yourself. Wij zijn op zoek naar een UX Writer (m/v/d) Fulltime - Op ons kantoor in Amsterdam of Heerenveen / deels vanuit huis Als UX Writer bij Riverty hou jij je bezig met onze strategie om daar te zijn waar onze gebruikers zijn en op de manier waarop zij ons nodig hebben, terwijl wij

Bekijk vacature »

Software Developer PHP JavaScript Python HBO SQL

Samengevat: Wij zijn een softwarebedrijf voor Autodealers. Ben jij een Medior of Senior Software Developer? Heb je ervaring met PHP, JavaScript of Python? Vaste baan: Java.Developer Software HBO €3.000 - €5.200 Bij ons op de werkvloer is er een positieve en informele sfeer. Naast een goede begeleiding en een enthousiaste klantenkring biedt deze werkgever een prettige omgeving met zeer afwisselende werkzaamheden. Houd jij van aanpakken en denk je dat je deze uitdaging aankunt? Dan zoeken wij jou! Zij werken voor grote klanten. Zij doen omvangrijke projecten die we bij deze werkgever op kantoor realiseren (geen detachering). Zij werken met state-of-the-art

Bekijk vacature »

Full stack developer Python, React

Functie Jij als full stack developer komt binnen onze Technology afdeling te werken. Deze bestaat momenteel uit 15 man. De stack waarmee wij werken is voornamelijk Python, Javascript, React en GraphQL. Binnen deze afdeling wordt er met multidisciplinaire teams gewerkt aan verschillende projecten. Projecten duren vaak langer dan 3 maanden en je bent van begin tot eind vaak betrokken. Naast dat je als full stack ontwikkelaar aan de slag gaat ben je ook Consultant. Dit betekent dat je ook klantcontact hebt in je rol en werkshops geeft. De verhouding tussen deze werkzaamheden zijn ongeveer 70% development en 30% consultancy. Een

Bekijk vacature »

.NET Developer

Dit ga je doen Programmeren in .NET, Javascript & C# en ontwikkelen in Web Services, Windows Services en MS SQL Server; Zelfstandig verbanden maken Analyseren, testen, bugs fixen, reviewen en rapporteren; Juiste prioriteiten stellen en verantwoordelijkheid nemen; Op architectuur niveau meedenken; Af en toe klanten bezoeken. Hier ga je werken Voor onze relatie zijn wij opzoek naar een .NET ontwikkelaar met minimaal 3 jaar werkervaring. Je komt te werken in een groeiend bedrijf met betrokken collega's die zorgen voor een familiaire sfeer op de werkvloer. Als .NET ontwikkelaar word jij vanaf de eerste werkdag betrokken bij het gehele ontwikkelproces. De

Bekijk vacature »

Fasttrack learning & development voor Java dev

Wat je gaat doen: Wij zoeken enthousiaste en ambitieuze junior en medior ontwikkelaars die toe zijn aan de volgende stap in hun carrière. Wij helpen je op je pad naar senior ontwikkelaar door ons fasttrack learning en development programma. Na een kort en intensief programma ga jij aan de slag bij klanten van DPA. Daarnaast krijg je veel ruimte om je te ontwikkelen als persoon en als specialist. De eerste maand gaan we aan de slag om je certificeringen te behalen waaronder OCP (Oracle Certified Professional). Daarnaast nemen we een deepdive in Spring Boot. Ook laten we je kennismaken met

Bekijk vacature »

Java developer

Als Java Developer bij Sogeti ben je onderdeel van onze toonaangevende community die bestaat uit ruim 100 gepassioneerde professionals. In teamverband lever je mooie prestaties. Daarmee draag je aan bij de meerwaarde die wij leveren aan onze klanten. Geen werkdag is hetzelfde, je bent voortdurend bezig met het oplossen van allerlei complexe vraagstukken binnen bedrijfskritische systemen. Een voorbeeld hiervan is een cliënt-volgsysteem bij Reclassering Nederland. Andere klanten waar wij onder andere voor werken: KPN, Philips, Nationale-Nederlanden, Kamer van Koophandel, ABN AMRO, Bovemij, Arval en de Politie. Werken bij Sogeti Nieuwe ontwikkelingen volgen we op de voet en delen we binnen de

Bekijk vacature »

Laravel / PHP developer gezocht!

Functie omschrijving Wij zijn op zoek naar een Laravel PHP Developer voor een leuk bedrijf in de omgeving van Amsterdam! 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; van A tot Z; Je hebt na de oplevering contact met de klant wanneer zij problemen ervaren; Je denkt mee over het verbeteren van de werkprocessen; Je denkt mee over softwareoplossingen; Je speelt in op de behoefte van de klant; Je houdt je bezig met het verbeteren, aanpassen en vernieuwen van de

Bekijk vacature »

Integratie Developer / Architect

Dit ga je doen Als Integratie Developer / Architect binnen deze organisatie krijg je echt de kans om impact te maken. De organisatie is groeiende maar houdt een corporate cultuur buiten de deur. Heb je een goede business case: zorg voor goede argumentatie en ga ervoor! Geen stroperig beslissingsproces dat jouw ideeën in de weg staat! Enkele van jouw taken: Je ontwerpt en ontwikkelt nieuwe integraties met behulp van interne tools (Boomi) of externe partners; Je vertaalt functionele specificaties naar technische oplossingen; Je denkt mee over strategische ontwikkelingen op het gebied van applicatie integratie; Je voert regie op leveranciers en

Bekijk vacature »

Software Programmeur

Functie omschrijving Voor onze opdrachtgever in omgeving Rotterdam zijn wij opzoek naar een software programmeur die goed kan schrijven in de talen C of C++ en die het leuk vind om te werken met Linux! Werkzaamheden Programmeur Je bent bezig met het ontwikkelen van software en webapplicaties. Je kunt technische klussen uitvoeren op locatie. Je onderhoudt contact met de projectleider om er zeker van te zijn dat een project goed verloopt. Je zult klanten ondersteunen. Verder zul je technische ontwerpen en gebruikersdocumentaties schrijven en deze onderhouden. Bedrijfsprofiel Dit bedrijf wil de klanten een volledige oplossing kunnen bieden, waarbij ze een

Bekijk vacature »

Developer Full Stack

Functie omschrijving Full Stack Developer gezocht! Wij zijn op zoek naar een Full Stack Developer voor een bedrijf in de regio Nijkerk. Je maakt in deze functie onderdeel uit van een groeiend team met een goede ambitie waarbij eenheid, betrokken en overtreffen de belangrijkste kernwaardes zijn. Het bedrijf werkt volgens de AGILE/SCRUM methode, wat je o.a. terug vindt in de tweewekelijkse sprints, retrospectives en een daily standup. Je takenpakket bestaat uit: Bijdragen aan het door ontwikkelen, onderhouden en optimaliseren van een Saas applicatie; Bijdragen aan de innovatie van het bedrijf en hun klanten; Het ontwikkelen op de laatste technologie van

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

27/12/2024 02:47:02
 
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.