Veiligste manier

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Full-stack developer

Als Full-stack developer bij KUBUS houd je je bezig met het ontwikkelen van de (web)applicatie en services van BIMcollab. Samen met je SCRUM team werk je aan zowel de front- als de back-end. Als softwarebedrijf bevindt KUBUS zich in een unieke positie. We bouwen aan onze eigen producten die wereldwijd door tienduizenden gebruikers worden gebruikt. Ons bedrijf heeft precies de juiste grootte: groot genoeg om echt impact te maken in de markt, maar klein genoeg om als individuele ontwikkelaar invloed uit te kunnen oefenen en echt het verschil te kunnen maken. Ons ontwikkelteam bestaat uit ruim 40 ontwikkelaars, testers, scrum

Bekijk vacature »

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 »

Medior PHP Developer

Functie omschrijving Ben jij een getalenteerde PHP Developer en aan de slag in een gemotiveerd team? Lees dan snel verder! Voor onze opdrachtgever in de omgeving van Valkenswaard zijn we op zoek naar een ervaren PHP developer. Jij gaat hier zorg dragen voor het optimaliseren en up-to-date houden van de bestaande applicaties. Je werkt verder aan de applicaties die jij verder ontwikkelt. Dit doe je voornamelijk met PHP en MySQL. Verder ga je je bezig houden met: Het uitbouwen van het E-commerce software platform. Deelnemen aan overleggen met het team. Het ondersteunen van jouw team developers (3 man) en helpen

Bekijk vacature »

Junior Software Developer C# Verhuursector Verhuur

Samengevat: Wij ontwikkelen en leveren softwaresystemen voor de logistieke sector en de verhuursector. Ben jij geschikt als Junior Software Developer? Heb je ervaring met Delphi? Vaste baan: C# Software Developer Logistiek HBO €2.500 - €3.900 Deze werkgever is een software ontwikkelaar, gericht op software voor de logistieke sector. Deze werkgever heeft eigen producten ontwikkelen en leveren ook maatwerk. Ons bedrijf kent een boeiende en inspirerende werkomgeving met een open cultuur en mogelijkheden voor je verdere ontwikkeling. Bij bij hun werk je aan onze eigen bedrijfsapplicaties. Je ontwikkelt met ons de meest nieuwe software. Wij blinken uit als het gaat om

Bekijk vacature »

Freelance JAVA / C# Developer

Functieomschrijving 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! Voor een opdrachtgever in omgeving Delft 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. 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 »

Junior .NET developer

Functie Ons programma is voor afgestudeerde enthousiastelingen die het als een uitdaging zien om met een klein dynamisch team bij de grootste bedrijven van Nederland aan de slag te gaan. Tijdens jouw dienstverband word jij begeleid door een talent manager. Het ontwikkelen van jouw talent staat hierbij centraal. Het programma doorloop je met een team van circa 8 Mede- trainees. De eerste maand start je met een fulltime inhouse opleiding. Deze staat geheel in het teken van de werkzaamheden die jij verder in het programma zult uitvoeren. Na deze opleidingsmaand ga je aan de slag in een dynamische omgeving bij

Bekijk vacature »

Lasrobot Programmeur

Over de functie Off-line programma’s maken die het beste resultaat bij de lasrobot mogelijk maken De programma’s met behulp van teach verder optimaliseren Proactief meedenken over oplossingen en over de juiste invulling van lasmallen Het lasrobotproces zoveel mogelijk optimaliseren Over het bedrijf Onze opdrachtgever is gespecialiseerd in de engineering, productie en assemblage van samengestelde plaatwerkproducten en monodelen uit metaal. Onze klant werkt samen met het team aan de mooiste producten van de toekomst. Binnen dit bedrijf staat een sterk team van specialisten op het gebied van industrial design, mechanical engineering, in-house prototyping en all-round projectmanagement. Met daarbij uiteenlopende kennis in

Bekijk vacature »

.Net developer

Sogeti is een organisatie met een goede werksfeer en zo min mogelijk hiërarchische verhoudingen. Ga je bij ons als .Net Developer aan de slag? Dan werk je dagelijks met collega’s aan de mooiste IT-projecten. Deze snelgroeiende groep collega’s krijgt energie van hun vak en dat merk je op de werkvloer. Natuurlijk krijg jij de mogelijkheid je te certificeren. We organiseren regelmatig technische Meet-ups en doen we veel aan kennisdeling. Mede hierdoor zij wij dit jaar Microsoft Partner of the year geworden. Sogetisten staan klaar voor elkaar, hebben lol met elkaar en daarmee behalen we de mooiste resultaten! Werken bij Sogeti

Bekijk vacature »

Fullstack Developer

Functieomschrijving Heb je kort geleden jouw HBO diploma ICT development behaald? Of zit je nog aan het begin van je carrière en heb je affiniteit met C#.NET? Voor een erkende werkgever in de omgeving van Oosterhout zijn wij op zoek naar een fullstack developer. Als C#.NET developer werk je samen met een vooruitstrevend team aan het ontwikkelen van maatwerk software voor klanten. Je hebt affiniteit met SQL, maar nog belangrijker is dat je kennis en ervaring hebt met C#.NET. Jouw werkzaamheden zien er als volgt uit: Het ontwikkelen van onze high-availability en high-performance backend; Je begint de dag rond 8:30

Bekijk vacature »

Back-end programmeur

Functieomschrijving Heb jij recent jouw HBO ICT diploma in ontvangst mogen nemen? Of ben je toe aan een nieuwe uitdaging? Voor een erkende werkgever in regio Waalwijk zijn wij op zoek naar een back-end developer. Kennis of ervaring met C# & SQL is een must! Je houdt je bezig met het ontwikkelen van nieuwe functionaliteiten; 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 brengt de aanpassingssuggesties van klanten in kaart, om ze

Bekijk vacature »

Java Developer

Java Developers opgelet! Bij Luminis zijn ze opzoek naar jou. Lees de vacature en solliciteer direct. Luminis is een software- en technologiebedrijf met meerdere vestigingen. Vanuit deze vestigingen werken 200 professionals aan technisch hoogwaardige oplossingen voor klanten zoals KLM, Nike en Bol.com. Ook ontwikkelt Luminis eigen oplossingen op het gebied van cloud, Internet of Things, data intelligence, e-sports en e-learning. Luminis onderscheidt zich door aantoonbaar voorop te lopen in technologie en innovatie. Luminis heeft drie kernpunten die verankerd zitten in alles wat we doen: het omarmen van nieuwe technologie, meesterschap en kennis delen. Functiebeschrijving First things first! Het is belangrijk

Bekijk vacature »

Java developer - procesoptimalisatie (Inhouse)

Functie Wat ga je doen als Java developer? Jij als back end developer hebt al enige ervaring opgedaan in jouw vakgebied. Voornamelijk het werken met Java en Spring spreekt jou aan. Jij wordt samen met je collega developers in het team verantwoordelijk voor de gehele back end van de applicatie. Hierdoor heb jij veel zelfstandigheid in je rol en zul je ook zelf beslissingen samen met de PO maken. Er wordt gewerkt volgens de SCRUM methodiek, om zo structuur te creëren in de werkzaamheden. Binnen de 2-wekelijkse sprints pak jij je taken op die samen met de PO afgestemd zijn.

Bekijk vacature »

.NET developer

Functie Voor jou als junior .NET ontwikkelaar staat er een flinke uitdaging klaar bij dit bedrijf waar jij veel van kan gaan leren. Zo willen zij een flinke uitbreiding doen op het webbased gedeelte dat zij nu hebben en willen zij het standaard deel gaan moderniseren. Jouw team is dan ook op zoek naar een junior .NET ontwikkelaar die het leuk vindt om op basis van research en development aan de slag te gaan. Jouw mening telt mee als het gaat om hoe en met wat deze applicaties gebouwd en herschreven gaan worden. Jouw functie bij dit bedrijf gaat dan

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 »

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 »
Yorick Scheyltjens

Yorick Scheyltjens

31/07/2017 23:31:59
Quote Anchor link
Hallo iedereen

Een jaartje terug ben ik met php beginnen werken.
Ik heb in mijn vrije tijd al veel projecten afgemaakt.

Soms zet ik php scripts in een html bestand en echo de juiste tekst die in de html weergegeven moet worden en soms stuur ik met javascipt een xml request naar een apart php bestand en stuur dan json terug.

Nu is mijn vraag wat de beste, snelste en veiligste manier van werken is?

Alvast bedankt

Groetjes Yorick
 
PHP hulp

PHP hulp

23/11/2024 10:30:10
 
- Ariën  -
Beheerder

- Ariën -

31/07/2017 23:40:06
Quote Anchor link
Het ligt een beetje aan je applicatie die je in elkaar zet, hoe de output verwerkt wordt en eruit moet komen.

Ikzelf heb een eigen MVC frameworkje gebouwd, waarin ik de view in Smarty templates (tegenwoordig zou ik Twig gebruiken) verwerk. Maar als de output JSON is, dan zorg ik gewoon voor die output en heb ik Smarty niet nodig.
 
Pipo Clown

Pipo Clown

31/07/2017 23:56:10
Quote Anchor link
Zo ver ik weet kan je geen PHP-code in een html-bestand gebruiken.
Andersom kan wel.
 
Yorick Scheyltjens

Yorick Scheyltjens

01/08/2017 00:01:43
Quote Anchor link
@Ariën: Mijn applicatie werkt vooral met mysql database.

Met javascript en html bouw ik de website op.
Met php haal ik een variabel aantal gegevens uit de database of voeg data toe.

Ik weet niet welke manier het veiligste tegen hackers.


@Pipo Clown: Ik heb het fout verwoord. Het gaat wel degelijk over een .php bestand. Hierin staat een html/javascipt website met stukjes php script
 
- Ariën  -
Beheerder

- Ariën -

01/08/2017 00:13:29
Quote Anchor link
Het maakt niet uit welke manier je toepast, als je maar op bewust bent op veiligheidsfouten.

@Pipo: Dat kan wel met dit in htaccess: "AddType application/x-httpd-php .html .htm", maar het is best zinloos. Als je html-extenties wilt tonen kan je je beter richten op mod_rewrite waarmee de URL alleen maar herschrijft.
 
Thomas van den Heuvel

Thomas van den Heuvel

01/08/2017 01:22:38
Quote Anchor link
Zolang je je bedient van het adagium filter input, escape output kom je een heel eind.

Wat houdt dit in?

Filter Input
Indien je bepaalde invoer en/of invoer van een bepaalde vorm verwacht, bijvoorbeeld je verwacht een numerieke querystring-variabele "id" op grond waarvan je een database-item laadt, dan controleer en filter je hier op. Je controleert dus zowel op het bestaan van $_GET['id'] en ook of deze variabele een numerieke waarde bevat (dit kan op verschillende manieren). Indien NIET aan deze voorwaarden is voldaan zou je applicatie een fout moeten genereren of zou deze dit moeten ondervangen. Het heeft in ieder geval geen zin om bijbehorende query uit te voeren, want $_GET['id'] is niet beschikbaar of ongeschikt.

Dit principe geldt ook voor de verwerking van formulier-invoer, initialisatie van gegevens et cetera. Eigenlijk zou je in alles wat je doet jezelf moeten afvragen: moet ik hier filteren / iets controleren?

Escape Output
Dit is eigenlijk de tegenhanger van filter input. Ten eerste moet je je te allen tijde bewust zijn van het feit dat je altijd in een context werkt. Bijvoorbeeld je bent een HTML-document aan het opbouwen, dan ben je in de HTML-context bezig. Of je doet iets met JavaScript (JS-context) of je bent een query aan het opbouwen (SQL-context).

In al deze contexten zijn er speciale karakters die speciale betekenissen hebben. Denk bijvoorbeeld aan de karakters <, >, & en " in HTML. Deze hebben mogelijk een betekenis die verder voert dan bijvoorbeeld enkel "het kleiner dan teken". Dit kan het begin zijn van een HTML-tag. Vaak is het verstandig om dit soort speciale karakters te ontdoen van hun speciale betekenis binnen die context. Te meer als deze invoer afkomstig is van eindgebruikers (User Input).

Elke context heeft speciale escaping-functies om data te ontdoen van de speciale betekenis die deze data mogelijk heeft. Zo is daar htmlspecialchars() voor het onschadelijk maken van HTML en de _real_escape_string() functies voor MySQL.

Het is echter HEEL BELANGRIJK dat deze escaping-functies op de juiste manier toegepast worden. De correcte werking van het escapen van data hangt namelijk nog van iets anders af: de character encoding. Dit is de opslagmethode van data in het geheugen. Afhankelijk van de character encoding kan een karakter (bijvoorbeeld ë) verschillende encoderingen (representaties in het geheugen) hebben, maar op je scherm zie je nog steeds een ë, mits je document voorzien is van een aanduiding van een overeenkomstige character encoding, bijvoorbeeld door middel van een meta-tag of een PHP header().

De beste manier is om altijd expliciet te vermelden om welke character encoding het gaat.

Ingeval van PHP waarbij je html wilt escapen met behulp van htmlspecialchars() kun je dit aangeven d.m.v. de derde parameter.

Ingeval je iets wilt escapen in een SQL-string (om het onderscheid te maken tussen SQL en DATA om zodoende SQL-injectie te voorkomen) moet je bij het maken van een connectie aangeven in welke character encoding je wenst te communiceren. Dit doe je doorgaans door middel van een _set_charset() methode net na het maken van een connectie of door een charset-parameter op te nemen in je DSN indien je van PDO gebruik maakt. De character encoding instellen na afloop van het maken van een connectie met behulp van SET NAMES of iets dergelijks is de verkeerde manier!

En om dingen nog complexer te maken dien je _real_escape_string() functies ALTIJD te gebruiken in combinatie met quotes. Het een is namelijk niet veilig zonder het ander, de _real_escape_string() functies zijn namelijk geen wondermiddel en ESCAPEN NIETS ALS ER NIETS TE ESCAPEN VALT.

Als je op enigerlei wijze de volgende string in een query kunt krijgen dan is SQL-injectie mogelijk als je wel _real_escape_string() toepast, maar geen quotes:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
OR 1=1

Dit komt namelijk omdat _real_escape_string() geen karakters escaped in bovenstaande string. Deze DATA zal dus (door het ontbreken van extra quotes) als SQL geinterpreteerd worden waarmee de SQL-injectie in principe is geslaagd.

En tot slot: Never Trust User Input. Simpelweg omdat je gebruikersdata eenmaal in je database hebt gekregen wil niet zeggen dat deze ineens onschadelijk is dus wanneer je deze weer uitleest (om bijvoorbeeld in een HTML-document te worden weergegeven) begint het spel opnieuw: deze zal opgehaald moeten worden met de character encoding die je in het document wilt gebruiken en zal vervolgens in overeenkomstige character encoding ge-escaped moeten worden bij het weergeven, tenzij je de gebruiker voldoende vertrouwt en/of dat het daadwerkelijk de bedoeling is dat deze zelf HTML kan schrijven. Er zijn natuurlijk altijd uitzonderingen mogelijk maar deze zouden dan wel gedocumenteerd moeten worden.
Gewijzigd op 01/08/2017 01:28:43 door Thomas van den Heuvel
 
Yorick Scheyltjens

Yorick Scheyltjens

01/08/2017 17:18:24
Quote Anchor link
@Thomas van den Heuvel

Bedankt voor je uitleg.

Ik had al een beetje gehoord over deze veiligheidsfuncties maar ik wist nooit wanneer ik deze moest gebruiken. Nu weet ik het dus wel.

Als ik je uitleg goed begrijp, maakt het eigenlijk niet uit of ik werk met een aparte php pagina of niet?
Ik moet gewoon altijd zorgen dat mijn data niet gehackt kan worden?

Of heb ik het fout begrepen?
 
Thomas van den Heuvel

Thomas van den Heuvel

01/08/2017 19:30:42
Quote Anchor link
Hoe je de (pagina-)opbouw van je website organiseert en hoe je deze beveiligt zijn in principe twee verschillende dingen ja. Wel moet je je natuurlijk bewust zijn van het feit dat alles wat in de publieke webdirectory staat opvraagbaar is (tenzij je directories, bestanden en/of bestandstypen afschermt met bepaalde voorzieningen maar je zou dit soort gevoelige bestanden natuurlijk ook buiten de publieke webdirectory kunnen parkeren).

Je hoeft er niet per se voor te zorgen dat je data niet gehacked kan worden in die zin dat je op voorhand alles desinfecteert met DDT zodat alles morsdood is - escape-on-input bijvoorbeeld (data op voorhand permanent onschadelijk maken) is meestal niet wenselijk (omdat je af en toe niet weet in welke context deze gebruikt gaat worden, op voorhand escapen voor een specifieke context is dan ook niet verstandig).

Wel moet je er voor zorgen dat je er altijd rekening mee houdt dat deze data potentieel gevaarlijk is, en vervolgens neem je passende maatregelen (waar nodig input filtering en output escaping).

Op het moment dat deze bewustwording er is, en je je altijd elke keer afvraagt "hee, dit is data uit bron X, moet hier iets speciaals mee" (en hier vervolgens op acteert, uiteraard) dan ben je al een heel eind.
Gewijzigd op 01/08/2017 19:31:47 door Thomas van den Heuvel
 
Yorick Scheyltjens

Yorick Scheyltjens

03/08/2017 21:59:27
Quote Anchor link
Bedankt voor je uitleg. Het heeft me echt verder geholpen.

Ik heb nog één vraag.

Je zei dat inhoud in je webdirectory altijd opvraagbaar is.
Kan je php code dan ook opvragen?
 
Ben van Velzen

Ben van Velzen

03/08/2017 22:37:55
Quote Anchor link
De code niet, maar scripts an sich zijn direct aan te roepen. Dat is iets om mee rekening te houden.
 
- Ariën  -
Beheerder

- Ariën -

03/08/2017 22:59:16
Quote Anchor link
Als de scripts voorzien zijn van .php extentie op het eind, dan is alles vrij veilig. Dus geen .inc als extentie, bij includes, wat soms nog wel eens gebeurt. Dat kan je dan moeiteloos uitlezen.

Maar je moet wel rekening houden dat je geen lekken openzet waarmee mensen files op de server kunnen uitlezen, zoals bijvoorbeeld met $_GET i.c.m. met file-functies.
Gewijzigd op 03/08/2017 22:59:45 door - Ariën -
 
Yorick Scheyltjens

Yorick Scheyltjens

04/08/2017 12:42:38
Quote Anchor link
Al mijn vragen zijn nu beantwoord.

Bedankt iedereen!
 



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.