Beveiligde map benaderen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Java (Java EE) Developer

In het kort Werken als Java developer betekent werken aan complexe IT projecten bij onder meer een internationaal containeroverslag bedrijf. Zo sturen we apparaten en eindgebruikers aan d.m.v. onze custom-made software oplossing, die dagelijkse vele duizenden containers verwerkt. Denk aan systemen die volautomatische kranen aansturen en op afstand bedienen, de volledige afhandeling van containernummerherkenning bij het laden en lossen van zeeschepen of het tonen van instructies aan de chauffeurs van ruim 300 straddle carriers. En dat allemaal redundant, robuust en in een dynamische 24/7 omgeving! Jij versterkt ons ontwikkelteam en gaat aan de slag met oa. Java i.c.m. Spring (Boot),

Bekijk vacature »

BizTalk/ Azure Developer

Dit ga je doen •Understanding the scope of required functionality, translate them within context of way of working of the team into developed solutions, whilst safeguarding documentation; •Planning based on assigned sprint tasks; •Acting as an expert in estimation techniques and planning; •Understanding your role in the agile process and act in this way; •Facilitating internal communication and effective collaboration; •Working closely with scrum master to handle backlogs and new requests; •Providing information to the third parties about activities and needs for compliance. Hier ga je werken Our client is a leading organization focusing on animal nutrition, offering solutions that

Bekijk vacature »

Grafisch vormgever

Standplaats: Maasland Aantal uren: 32 – 40 uur per week Opleidingsniveau: HBO werk- en denkniveau Ben jij een ambitieuze grafisch vormgever met een passie voor creativiteit en oog voor detail? Vind jij het daarnaast leuk om ook marketingactiviteiten op te pakken? Dan zijn wij op zoek naar jou! Bedrijfsinformatie Westacc Group BV is het zusterbedrijf van HABA en specialiseert zich in (maatwerk) oplossingen voor (elektro) techniek en verlichting in de kampeerbranche. Zij produceren en assembleren onderdelen voor caravans, campers en boten. Voor een groot aantal caravan- en campermerken leveren wij producten als zekeringkasten, invoerdozen, acculaders, schakelmateriaal en verlichting. De producten

Bekijk vacature »

Medior PHP developer

Functie Het team bestaat inmiddels uit zo’n 25 collega’s met specialisten op het gebied van development, data(analyse), marketing, infrastructuur en finance. Ze hebben een supermodern pand en bieden hiernaast veel vrijheid en verantwoordelijkheid. Ze doen er alles aan om jou op te gemak te stellen. Zo kun je je eigen werkplek inrichten naar persoonlijke wensen, maar gaan ze bijvoorbeeld ook jaarlijks met elkaar wintersporten en zijn er andere leuke uitjes. Als onderdeel van één van de scrumteams ga je aan de slag, samen ben je medeverantwoordelijk voor het doorontwikkelen van hun business applicatie waar het traffic team dagelijks mee werkt.

Bekijk vacature »

Senior C# Software Ontwikkelaar te Zaandam

Bedrijfsomschrijving Deze werkgever heeft als missie om haar klanten op ICT-gebied volledig te ontzorgen. Ze zijn een ICT bedrijf met een verscheidenheid aan ICT oplossingen waaronder Cloud oplossingen en een groot deel van het werk is gericht op software realisatie. Voor de Enterprise-klanten voert het relatief kleine ontwikkelteam waar jij deel uit van kan gaan maken binnen deze organisatie te Zaandam de grootste opdrachten uit. Niet alleen websites en complexe webapplicaties maar ook mobile apps, web services en complete systeemintegraties! Je moet dan denken aan Dynamics, Sharepoint en Salesforce. Je komt hier terecht in een relatief kleine organisatie met ontzettend

Bekijk vacature »

Softwareontwikkelaar Cleopatra

Functieomschrijving Voor de gemeente Amsterdam zijn wij op zoek naar een softwareontwikkelaar Cleopatra. De directie Verkeer en Openbare ruimte van de gemeente Amsterdam beschikt over een softwareapplicatie, "Cleopatra", waarmee geautomatiseerde handhaving plaatsvindt (op basis van kentekenherkenning) van bepaalde gebieden waarin toegangseisen worden gesteld aan het verkeer. Voorbeelden ervan zijn de milieuzones, de zone zwaar verkeer, handhaving van brom- en snorfietser op het fietspad en autoluwe gebieden. Voor de doorontwikkeling en uitbreiding ervan zijn gespecialiseerde softwareontwikkelaars nodig die helpen bij het programmeren van de handhavingsmodules voor nieuwe gebieden en het verbeteren en bijwerken van de bestaande onderdelen van de softwareapplicatie. Functie

Bekijk vacature »

Senior .NET developer

Functie As a Senior .NET developer you will work in our Research & development team. Our team consists of 17 colleagues! We are currently busy setting up a completely new architecture for a new product. We use VS2022 and .NET 6.0 for our new product. Your function is therefore mainly backend oriented. Since we develop measuring equipment for the chemical industry, it is also very important to develop high-quality software for its control. You are also responsible for designing, implementing and testing new features. For this position its also very important to ensure future-proof and sustainable architecture. Eisen - A

Bekijk vacature »

Software Developer

Dit ga je doen Ontwikkelen aan de software dat beschikbaar is op de substations; Ontwikkelen in C++, C, Python en JavaScript. Daarnaast op een Embedded Linux omgeving, opgebouwd met containers en DevOps; Meewerken aan cyber security (OWASP); Uitvoeren/bouwen van geautomatiseerde testen in samenwerking met de Quality Specialist; Vertalen van wensen van de klanten/business naar werkbare/duurzame oplossingen. Hier ga je werken Als Software Ontwikkelaar kom je te werken bij een organisatie gericht op de (internationale) energiemarkt, waar wordt gewerkt voor het verwerven en verwerken van realtime, high quality data. Er wordt gewerkt vanuit het hart van de substations en direct voor

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 »

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 »

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 »

Back end developer Onderwijssoftware

Functie Als back end developer kom jij terecht in een klein, maar hecht team bestaande uit 5 andere developers (waarvan 2 senioren, 2 medior en 1 junior). Met de gezamenlijke missie om “ieder kind te helpen met onze software” wordt er dagelijks gepassioneerd en hard gewerkt aan ons in-house ontwikkeld platform. Deze software is gebaseerd is op AI, machine Learning en wetenschappelijke inzichten. Dagelijks zul jij werken met onze high traffic webapplicatie. We hebben ruim 300.00 gebruikers en meer dan 2 miljard records waar je te maken mee krijgt! Verder zul jij je bezighouden met: – Het ontwikkelen van hoogwaardige

Bekijk vacature »

Medior/senior Front-end developer (Vue.js)

Functie Als Front-end developer ben je uiteindelijk overkoepelend aan de slag voor de 3 ontwikkelteams die ieder aan een specifiek product werken. In samenwerking met de UX-designer en de huidige Front-end developer zorg je voor gebruiksvriendelijke software. Lijkt het jou interessant om complexe problemen op te lossen en feautures naar een hoger niveau te tillen? En vind je het niet erg om oudere delen van de applicaties te refactoren i.c.m. het toevoegen van nieuwe functionaliteiten? Dan komen wij graag met je in contact. Eisen • HBO werk- en denkniveau (ze kijken niet naar papieren, maar naar denkniveau, motivatie en zelfredzaamheid)

Bekijk vacature »

Senior Software Developer C++

Vacature details Vakgebied: Software/IT Opleiding: Senior Vacature ID: 13342 Introductie Do you want to work for one of the most innovative companies located in the region of Eindhoven. Currently Due to growth we are looking for a Senior Software Developer. Our client is a high-tech company with international roots and can provide you with a challenging opportunity. Functieomschrijving Responsibilities: Design, develop, and maintain high-quality software applications in C++ Collaborate with other engineers, product managers, and stakeholders to understand requirements and develop solutions Write clean, maintainable, and efficient code Conduct thorough testing and debugging to ensure high-quality software Optimize applications for

Bekijk vacature »

Back-end Developer

Functieomschrijving Heb jij kort geleden jouw HBO ICT diploma in ontvangst mogen nemen? Of ben je toe aan een nieuwe uitdaging? Voor een gewaardeerde werkgever in regio Oosterhout zijn wij op zoek naar een back-end developer. Kennis of ervaring met C# & SQL is een must! Je bent verantwoordelijk voor de beheer en ontwikkeling van de software; Je draagt bij aan de implementatie van aanpassingen, verbeteringen en aanvullingen in de C# based applicaties; Je test de software en ontwikkelt deze door; Je houdt je bezig met het ontwikkelen van nieuwe functionaliteiten; Je brengt de aanpassingssuggesties van klanten in kaart, om

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

18/05/2024 08:18:20
 
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.