Lek mail-script weer veilg maken?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

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 »

Medior Java developer (fullstack)

Wat je gaat doen: 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 je eventueel ook andere ontwikkelaars begeleiden in het softwareontwikkelproces. Verder draag je positief bij aan de teamgeest binnen een projectteam en je kijkt verder dan je eigen rol. Je gaat software maken voor verschillende opdrachtgevers in jouw regio. Je bent een professional die het IT-vak serieus neemt en kwaliteit levert. Je leert snel vanwege je diepgaande

Bekijk vacature »

Senior PHP Developer

Als Senior PHP Developer bij Coolblue zorg je ervoor dat onze webshops elke dag een beetje beter zijn en coach je andere developers op de hard en soft skills. Wat doe je als Senior PHP Developer bij Coolblue? Als PHP Developer werk je met andere development teams samen om onze webshop zo optimaal mogelijk te laten werken en onze klanten blij te maken. Hoewel je een PHP Developer bent, sta je open om C# of Typescript in te zetten of te leren. Ook PHP Developer worden bij Coolblue? Lees hieronder of het bij je past. Dit vind je leuk om

Bekijk vacature »

React developer Inhouse cloudplatform

Functie De functie: Als front-end developer kom je te werken naast 2 andere front-end/React developers, waaronder één senior. Een hele mooie kans dus om in korte tijd veel nieuwe kennis en ervaring op te doen. Ze hebben momenteel veel werk hierin en daarom willen ze het team graag uitbreiden. Het is van belang dat je, zeker gezien het vele thuiswerken, in ieder geval al een aantal projecten hebt gedaan in React. Taken waar je aan kunt denken zijn het ontwikkelen van client-applicaties o.b.v. HTML5, React en andere open standaarden. Ook ben je nauw betrokken bij het implementeren van designs o.b.v.

Bekijk vacature »

Back-end developer

Dit ga je doen Development d.m.v. XQuery, JSON/XML en REST API's; Ontwikkelen aan een tof en complex zorgplatform; Koppelingen maken met de NoSQL database; Testen en documenteren van de ontwikkelde functionaliteiten; Samenwerking met andere front- en back-end ontwikkelaars. Hier ga je werken Voor een vooruitstrevende organisatie binnen de zorg in Den Haag zijn wij opzoek naar een Back-end Developer die ervaring heeft met o.a.XQuery en Vue.JS of daarin graag zou willen ontwikkelen. Je zal ontwikkelen aan een tof en complex zorgplatform en koppelingen maken met de NoSQL database. Ook het testen en documenteren van de ontwikkelde functionaliteiten behoort tot jouw

Bekijk vacature »

Senior Java developer

Als Senior Developer bij Sogeti ben je onderdeel van onze toonaangevende best-gecertificeerde Java community. Deze bestaat uit ruim 100 gepassioneerde 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 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, Aval en de Nationale Politie. Natuurlijk krijg jij de mogelijkheid je verder te certificeren in dit vakgebied. We

Bekijk vacature »

Ontwikkelaar Identity & Access Management

Dit ga je doen Als Identity & Access Management Ontwikkelaar zorg jij er voor dat studenten, medewerkers en docenten de juiste benodigdheden op het juiste moment kunnen gebruiken; Het juist opslaan van onderzoeksdata en het openbaar beschikbaar stellen van publicaties (Open Access); Studenten, collega's en wetenschappers ondersteunen; Agile en Scrum werken; Technisch Applicatiebeheer; Ontwikkelen in One Identity Manager en VB.NET. Hier ga je werken Als Ontwikkelaar kom je terecht in een hecht team die zich richt op wetenschappelijke informatie en ICT. Jij bent degene die er voor zorgt dat alle informatie, uit diverse onderzoeken, bij de juiste personen terecht komt.

Bekijk vacature »

Frontend Developer

Dit ga je doen Door ontwikkelen van het online platform Deel uitmaken van verschillende ontwikkelteams Meedenken over UI/UX vraagstukken Uitdragen van Front-end binnen de organisatie Hier ga je werken Deze organisatie, gevestigd in de omgeving van Amsterdam, is een grote onderwijs instelling met meerdere vestigingen en een groot aantal studenten. Zo telt deze organisatie +/- 35.000 gebruikers. Bij deze organisatie staat jouw ontwikkeling centraal en is er veel ruimte voor eigen initiatieven. In samenwerking met jouw team ga jij de online omgeving verder ontwikkelen. In de rol van Front end Developer zal jij 50% van jouw tijd werken in het

Bekijk vacature »

T-SQL Database developer

Functie omschrijving Ben jij een ETL database specialist? Houd jij ervan om te puzzelen met Databases, Query's & Stored procedures? Zoek jij uitdaging, vrijheid en verantwoordelijkheid? Zoek dan niet verder! Wij zijn per direct op zoek naar medior en senior database developers. Je gaat werken voor een relatief klein softwarebedrijf in omgeving Tilburg. Samen met 12 collega's (allemaal techneuten), ga jij je bezig houden met het bouwen en/of onderhouden van database software. Deze software wordt internationaal ingezet voor het automatiseren van logistieke processen. Jouw werkzaamheden gaan er als volgt uit zien: Je bent in een klein team met developers, verantwoordelijk

Bekijk vacature »

C# .NET Developer

Dit ga je doen Ontwikkelen van de Back-end in .NET6 / C# en WebAPI (Focus);) Ontwikkelen van de Front-End in Nodje.js en Angular (secundair); Ontwikkelen in Blazor; Opstellen van een technisch ontwerp; Testen, documenteren en implementeren van de nieuwe applicatie; Verzorgen van de nazorg, na de implementatie. Hier ga je werken Binnen deze organisatie werken duizenden mensen binnen allerlei verschillende disciplines. Tevens hebben zij veel specialiteiten in huis, waaronder ook .Net Developers. Ter uitbreiding van een nieuw team en ter ondersteuning van het project zijn ze opzoek naar een nieuwe collega voor het team. Als C#.NET Developer zal jij je

Bekijk vacature »

.NET developer

Functie The position we have for you As a .NET developer you will work for one of our customers active in the High Tech Industry. Our customers are mainly located in the Eindhoven area. We are very selective when it comes to the projects we accept and therefore only focus on innovative and complex projects. Because our customers are mainly specialized in machine construction, you often work close to the machines. Our team currently consists of Embedded engineers, IOT developers and Cloud engineers. We mainly work on Microsoft projects where WPF, UWP, .NET Core and Microsoft Azure are used. Eisen

Bekijk vacature »

SQL database developer

Functieomschrijving Heb jij ongeveer 3 jaar ervaring als SQL database developer? Dit bedrijf bouwt applicaties om processen in distributiecentra te optimaliseren. Ter uitbreiding van het development team zijn wij op zoek naar een SQL database ontwikkelaar. Wil jij werken voor een groeiende werkgever in regio Breda waar jij de ruimte en tijd krijgt jezelf te ontwikkelen? Lees dan snel verder! Hoe ziet jouw takenpakket eruit? Je houdt je bezig met het creëren en bouwen van MS SQL server databases; Je werkt aan innovatieve softwareoplossingen voor het verbeteren en/of vernieuwen van logistieke processen; Je gaat projecten vanaf het begin tot het

Bekijk vacature »

Medior Java developer (fullstack)

Wat je gaat doen: 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 je eventueel ook andere ontwikkelaars begeleiden in het softwareontwikkelproces. Verder draag je positief bij aan de teamgeest binnen een projectteam en je kijkt verder dan je eigen rol. Je gaat software maken voor verschillende opdrachtgevers in jouw regio. Je bent een professional die het IT-vak serieus neemt en kwaliteit levert. Je leert snel vanwege je diepgaande

Bekijk vacature »

Software Programmeur PHP

Functie Ben jij op zoek naar een nieuwe uitdaging als PHP developer en zoek je een leuke platte organisatie? Lees dan snel verder! Voor een opdrachtgever in omgeving Capelle aan den IJssel dat zich gespecialiseerd heeft in het realiseren van veilige netwerkverbindingen zijn wij op zoek naar een leuke software developer ter versterking van het huidige team. Hoe kan jouw dag er straks uitzien? Je gaat software en webapplicaties ontwikkelen met behulp van de talen PHP, JAVA en Node.js. Je gaat technische klussen uitvoeren op locatie bij klanten. Je onderhoudt contact met de projectleider om er zeker van te zijn

Bekijk vacature »

Front-end Developer

Dit ga je doen Je komt in een DevOps-cultuur te werken waarbij je met je team werkt aan de front-end van diverse brand websites; Het ontwerpen van functionele en grafische ontwerpen die worden geïmplementeerd; Draagt zorg voor het maken van analyses; Je werkt nauw met je collega’s samen en geeft elkaar feedback en suggesties waar nodig; Het uitwerken van vraagstukken die afkomstig zijn van verschillende klanten; Hier ga je werken Deze marktleider op gebied van fietsen en fietservaring is gevestigd in twee provincies, verspreid over meerdere locaties. Jij zult voornamelijk in regio Joure aan de slag gaan. De organisatie doelt

Bekijk vacature »
MArk Peters

MArk Peters

10/05/2013 12:53:17
Quote Anchor link
Ik kreeg van mijn provider te horen dat mijn mailscript zo lek als een mandje was.
Kan iemand mij uitleggen waarom dat is en hoe ik dat moet aanpassen. Mochten de aanpassingen te veel zijn houd ik me aanbevolen voor een goed en veilig alternatief.
Hier de code
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
<?  
//pas de onderstaande variabelen aan naar jouw wensen
$adminaddress = "xx@xx,nk";
$siteaddress ="http://www.xxx.nl";
$sitename = "XXX";

//hieronder hoeft in principe niets ge-edit te worden...


// Haalt de tijd en de datum van de server

$date = date("d/m/Y H:i:s");


// Haalt de informatie dat gepost is door Flash
$action = $HTTP_POST_VARS['action'] ;
$email = $HTTP_POST_VARS['email'] ;
$naam = $HTTP_POST_VARS['naam'] ;
$bericht = $HTTP_POST_VARS['comments'] ;

//De informatie uit de tekstbalken (de variabelen) wordt gestructureerd naar jouw email adres gestuurd.

if ($action == "send") {
    //hieronder kan de tekst worden aangepast
    //een harde enter wordt weergegeven als /n
    //alles na een $-teken is een variabele

    mail ("$adminaddress","Bericht van $siteaddress",
    "Een bezoeker van $sitename heeft het volgende bericht achtergelaten\n
    Naam: $naam
    Email: $email
    ______________________________
    
    $bericht
    
    

    ______________________________

    Date/Time:  $date"
,"FROM:$adminaddress" ) ;
    
    
    //De verzender van de email krijgt automatisch een bedankje
    //deze tekst is ook aan te passen.

    mail ("$email","Dank U voor het bezoeken van $sitename",
    "Geachte $naam,\n
    Dank u voor uw interesse in $sitename.\n
    Uw mail wordt zo snel mogelijk in behandeling genomen.\n

    Met Vriendelijke Groet,\n
    t \n
    $siteaddress"
,"FROM:$adminaddress"
    ) ;
    
    //Deze bevestiging wordt naar Flash gestuurd als alles is afgerond.
    $sendresult = "Dank u wel. U ontvangt binnen enkele seconden een bevestigingsmail.";
    $send_answer = "answer=";
    $send_answer .= rawurlencode($sendresult);
    echo $send_answer;
}

?>
Gewijzigd op 10/05/2013 12:54:30 door MArk Peters
 
PHP hulp

PHP hulp

19/04/2024 09:33:56
 
Eddy E

Eddy E

10/05/2013 12:58:04
Quote Anchor link
Je kopieert kwakkeloos de variabelen uit $_HTTP_POST_VARS (en dat moet $_POST worden).

Als ik pagina.php met $_POST['action'] = 'send' open kan ik dus op jouw naam naar elk emailadres een mail laten sturen.
Je kan nog net niet het bericht doorgeven, want dan had het helemaal mooi geweest.
 
Frank Nietbelangrijk

Frank Nietbelangrijk

10/05/2013 13:11:30
Quote Anchor link
Bouw een captcha in. Dat voorkomt spamming.
 
Landleven Tips

Landleven Tips

10/05/2013 13:22:48
Quote Anchor link
Frank Nietbelangrijk op 10/05/2013 13:11:30:
Bouw een captcha in. Dat voorkomt spamming.


Captcha voorkomt spamming, maar niet het probleem dat het script onveilig is.

Controleer of er daadwerkelijk ook wel een formulier is verzonden met $_SERVER['REQUEST_METHOD'] == 'POST' dit maakt je code direct al een stuk veiliger. Daarnaast kan je die HTTP_POST_VARS ook vervangen door $_POST zoals Eddy al vermeld.
 
- SanThe -

- SanThe -

10/05/2013 13:29:49
 
Frank Nietbelangrijk

Frank Nietbelangrijk

10/05/2013 13:38:42
Quote Anchor link
Landleven,

er is hier niets onveilig, behalve dat je server overbelast kan raken door spamming. De ontvanger is in dit script altijd $siteaddress, er worden geen gegevens opgeslagen, er is geen privacy gevoelige data die beschermd dient te worden, dus waar heb je het over?

Zelfs $_SERVER['REQUEST_METHOD'] == 'POST' maakt je script 0,0% veiliger, dit controleert alleen maar of de request een post of een get is!

Frank

Excuses, dit is niet juist. Het formulier kan naar elk willekeurig email adres verstuurd worden dus dat is niet wenselijk. Maar het beste middel om dit tegen te gaan is een captcha inbouwen.
Gewijzigd op 10/05/2013 13:54:31 door Frank Nietbelangrijk
 
Ivo P

ivo P

10/05/2013 17:16:36
Quote Anchor link
als iemand als adres een hele lijst met mail adressen aanbiedt (met komma's ertussen) dan wordt de mail zo aan 100 adressen verstuurd.

Pas echt ernstig wordt het, als bij het From adres ook het adres vanuit de POST data zou komen. Dan kan iemand het hele mailtje overnemen, incl ontvangers EN de inhoud
 
MArk Peters

MArk Peters

10/05/2013 19:26:52
Quote Anchor link
Mmm oke stukje duidelijker. Als ik dus $_POST gebruik icm $_SERVER['REQUEST_METHOD'] == 'POST' kan ik dit scriptje dan (redelijk) veilig gebruiken of zijn er veiliger scripts?
 
Eddy E

Eddy E

10/05/2013 19:32:23
Quote Anchor link


Even de titels onder elkaar, wat gelijk de tips zijn:
- controleer het emailadres op juistheid (dat het er maar 1 is etc)
- geef de juiste mailheaders weer, zoals een FROM
- gebruik htmlentities() om eventuele zaken tegen te houden.

Daarnaast:
- laat het script per gebruiker/ip niet meer dan 1 mail per minuut versturen (dmv session/cookie)
- controleer of het vorige mailtje niet exact hetzelfde is (zo wel: beetje nutteloos dus)
- Controleer of alles goed is ingevuld voordat je wat gaat doen.
 
Landleven Tips

Landleven Tips

10/05/2013 19:35:40
Quote Anchor link
Hallo Mark,

Dan is het veilig, wat Frank zegt klopt niet helemaal jij controleer nu namelijk niet of er een formulier op JOUW server is ingevuld. Met $_SERVER['REQUEST_METHOD'] doe je dat wel, zo weet je bijna 99,9% dat het formulier van jouw website afkomt.

Daarnaast kan je nog een captcha maken, alleen ik ken al BOTS die dit kunnen aflezen (door een heel libary aan images en die met elkaar vergelijken). Wat je kan toepassen is een hidden input maken, en vervolgens controleren of die is ingevuld of niet (tip van SanThe volgens mij). Aangezien de meeste spam-bots alles invullen bij formulieren, ook hidden inputs voorkom je ook direct spam :)

Daarnaast kan je de tips, van Eddy, en SanThe gebruiken om het nog veiliger te maken.
Gewijzigd op 10/05/2013 19:37:59 door Landleven Tips
 

10/05/2013 20:13:48
Quote Anchor link
$_SERVER['REQUEST_METHOD'] kijkt helemaal niet of de request van de server zelf afkomt. Probeer het eens met cURL. Het zal ook lukken als je alleen $_SERVER['REQUEST_METHOD'] gebruikt!

Wat ik aanraad is het volgende.
- Filter_var gebruiken om het e-mailadres veld te controleren. Zo kan er maar één e-mailadres mee verstuurd worden en moet het ook een echt e-mailadres zijn.
- Naam en content ook valideren op bijvoorbeeld lengte etc.
- Eventueel een captcha als het niet stopt.

Misschien is het ook aan te raden om SWIFT mailer of PHP Mailer te gebruiken. Dan ben je zeker dat je de juiste headers en dergelijke hebt. Daarnaast heeft SWIFT mailer ook heel wat handige classes enzovoort.

@Eddy
Daarvoor moet je een database gebruiken en geen sessies en cookies! Gewoon eens je browser sluiten en voilà. Sessies en cookies zijn verdwenen (als men een bot gebruikt gebeurt dit natuurlijk automatisch).

Maar zelfs met een database is het niet waterdicht omdat sommige spammers misschien iedere keer van IP veranderen (spoofen). Dan is een captcha een mogelijke oplossing.
Gewijzigd op 10/05/2013 20:18:39 door
 
Eddy E

Eddy E

10/05/2013 20:29:44
Quote Anchor link
Jep.
Maar filteren op enkel IP is ook waardeloos, dat is zo verwisseld (goed, cookies en sessies ook).
 



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.