Lek mail-script weer veilg maken?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Medior .NET developer

Functie Jij gaat als Medior .NET ontwikkelaar aan de slag in ons scrumteam met 6 developers die gepassioneerd en actief bezig zijn om onze spelers kwalitatieve en mooie spelervaringen aan te bieden. Als medior .NET developer ga jij werken aan een technisch hoogwaardig platform welke bezoekerspieken verwerkt van tienduizenden tot honderdduizenden gebruikers per minuut! Ons scrumteam werkt in drie wekelijkse sprints en wij beginnen iedere ochtend met een stand-up. Jij werkt bij ons met C# .NET, .NET Core, React.JS, Xamarin, Azure, Docker en Kubernetes. Wij hechten enorm veel waarde aan het leveren van hoogwaardige en kwalitatieve code. Zodra jij de

Bekijk vacature »

REMOTE - Front-end Angular developer

Functie Het IT-team bestaat momenteel uit de IT Manager, 2 back-end developers, 1 fullstack developer, 1 designer en een DevOps engineer. Ze zijn momenteel op zoek naar een ervaren Front-end developer die autonoom en gedisciplineerd aan de slag gaat, en bij aanvang als enige developer met hun Front-end applicaties bezig is. Wel hebben ze de ambitie om hier snel een 2e developer bij te vinden die jij dan ook zal kunnen aansturen/begeleiden. Je zult aan de slag gaan met het doorontwikkelen van hun bestaande UI in Angular. Maar ook het ontwikkelen van een mobiele app. Hierbij hechten ze veel waarde

Bekijk vacature »

Front-End React Developer

As a Front-End React Developer you improve the user-experience of our web applications for your colleagues in Coolblue. How do I become a Front-End React Developer at Coolblue? As a Front-End React Developer you are responsible for developing user interface components and implementing them using React.js concepts and workflows. You work with the UX Designer and get energy from coming up with creative solutions and present these within the team. During the day you gather and welcome feedback on your technical and soft skills. Would you like to become a Front-End React Developer at Coolblue? Read below if the job

Bekijk vacature »

Back-end ontwikkelaar

Functie omschrijving Wil jij meebouwen aan diverse databasesystemen in een klein bedrijf met een platte organisatie? In een team van ruim 10 ontwikkelaars wordt er aan diverse ICT oplossingen gewerkt. Jouw taken hierbij zullen bestaan uit: Het onderhouden en door-ontwikkelen van bestaande databases. Denk hierbij aan schema verbeteringen en performance-tuning. Bij nieuwe ontwikkelingen ga jij ook bezig met het bouwen van het databaseschema. Omdat je in een klein team werkt zal je ook de C# routine verder uitbouwen en ontwikkelen. Ook kan je meedraaien in algemene refactory-, ontwikkel- of testwerkzaamheden. Je zal voornamelijk gebruik maken van de volgende technieken: .NET

Bekijk vacature »

Team Lead Java Developer

Functie Wat ga je doen als Java developer? Als Team Lead Java Developer draag een grote verantwoordelijk je stuurt ontwikkelaars aan en staat dagelijks in contact met jou ICT Manager. De team Bestaat uit front-end en backend systemen. Je ben in staat op hoog niveau de technische vak te bepalen en ook te bewaren. Je dag zie er als volgt uit, ontwikkelen van nieuwe en bestaande applicaties, het uitvoeren van processen en analyses en het beschrijven van functioneel ontwerpen. Ook zal samen met jouw Tester applicaties gaan testen door middel van peer reviews en het leveren van support aan gebruikers

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 »

Belastingdienst - Freelance Applicatieontwikkelaar

Startdatum: 01.06.2023 Richttarief: €65,00 - €75,00 Duur van de opdracht: 6 maanden Uren per week: 36 Taal: Nederlands vereist! Gelieve in het Nederlands te solliciteren. Hybride. Kantoordagen in Utrecht, incidenteel in Apeldoorn Functieomschrijving: De afdeling IV – Generieke Voorzieningen – Interactie Online is onderdeel van de keten Interactie. De missie van de keten is: “het faciliteren van de interactie met alle burgers, bedrijven en hun vertegenwoordigers om hen in staat te stellen aan hun fiscale verplichtingen te voldoen en aanspraak te maken op hun rechten.” De afdeling Interactie Online heeft een belangrijke bijdrage binnen deze keten. Dit door het ontwikkelen

Bekijk vacature »

C# .NET Developer IoT SQL Server

Samengevat: Wij ontwikkelen innovatieve oplossingen om apparaten en bezittingen op een eenvoudige en flexibele manier te beveiligen. Ben jij een C# .NET developer? Heb jij ervaring met C# en SQL server? Vaste baan: C# .NET Developer IoT HBO €3.200 - €4.500 Deze werkgever is gespecialiseerd in hoogwaardige GSM/GPRS alarm- en telemetrietechnologie. Met een eigen productlijn en klantspecifieke ontwikkelingen biedt deze werkgever oplossingen om op afstand te meten, melden, loggen en aansturen, ook op plaatsen zonder stroomvoorziening. Onze producten worden gekarakteriseerd door flexibiliteit in de configuratie, betrouwbaarheid en een extreem laag stroomverbruik. Zij werken voor MKB klanten. Deze werkgever heeft veel

Bekijk vacature »

Software developer

Functie Momenteel zijn ze op zoek naar een Software developer die, veelal fullstack, mee gaat werken aan de ontwikkeling van de producten en zo helpt aan de uitvoering van hun ontwikkelprojecten. Je komt te werken binnen hun development team bestaande uit 6 ontwikkelaars. Ze staan zowel open voor meer junior als medior/senior developers. Je kunt snel veel verantwoordelijkheid krijgen en doorgroeien binnen het bedrijf. Bovendien ben je betrokken bij het bepalen van de product roadmap en de inbreng van (nieuwe) technologieën. De applicaties waaraan je werk worden gebruikt op onderwijsinstellingen door heel Nederland. De tech-stack bestaat voornamelijk uit Laravel (PHP),

Bekijk vacature »

Senior developer (PHP en VB.NET)

Functie De development afdeling bestaat uit 2 teams. Het productteam (10 developers) is verantwoordelijk voor verschillende applicaties met als doel om zoveel mogelijk te automatiseren en uit te werken tot standaard software. Met diverse Solutions Architecten en ervaren developers denken ze voortdurend mee met hun klanten en bouwen ze de basis van het uiteindelijke maatwerk dat wordt geleverd. Hiernaast hebben ze een maatwerk/projectteam. Dit team bestaat momenteel uit 8 developers (junior tot senior) en is verantwoordelijk voor het maatwerk in hun klantprojecten. Momenteel zijn ze op zoek naar een senior developer die aan de slag gaat in het productteam. Hierin

Bekijk vacature »

Low Code Developer voor o.a. overheidsprojecten!

Bedrijfsomschrijving Wil jij ook behoren tot de specialist in Low Code? Dan zou ik zeker aanraden om verder te lezen. Deze organisatie is ooit opgericht door twee studenten en is inmiddels uitgegroeid tot een serieuze werkgever met een groot aanzien op Low Code projecten. De sfeer is echter niet veranderd, er heerst een informele sfeer met een open deuren beleid, en hierin mag de eigen bar natuurlijk niet ontbreken. Momenteel maakt deze organisatie een flinke groei door en hier kan jij natuurlijk niet bij ontbreken. Daarom ben ik op zoek naar Low Code Developers met een degelijke technische achtergrond. Kennis

Bekijk vacature »

Oracle Apex Developer

Dit ga je doen Jouw taken bestaan uit: Het bouwen maatwerk Oracle applicaties voor Europese business units; Het implementeren van de nieuwste technieken om te blijven innoveren; Actief meedenken en aandragen van verbetervoorstellen. Hier ga je werken Deze organisatie in de regio Veenendaal is een van wereld grootste retailers met ruim 16.000 winkels in 27 markten en jaarlijks ruim 5,3 miljard klanten die winkelen bij een van hun welbekende retailmerken. Binnen de organisatie is er een IT Group actief die dient als IT Service Provider voor de hele organisatie en waar dagelijks IT'ers werken aan state-of-the-art IT oplossingen. Dit doen

Bekijk vacature »

Front-end developer - working on software for arou

Functie They have recently started looking for an experienced Front-end (mobile/app) developer. Because of the short lines within the team, they are also looking for someone who can communicate with the service desk, sales and support for technical questions. You will join their IT team consisting of about 10 colleagues divided over two teams in rooms opposite each other. Half of these are involved in their front-end. You will work together with, among others, the Architect, 1 senior, 1 junior and there is a Team Leader. In terms of technology, they work with a unique tech-stack, particularly because of the

Bekijk vacature »

Medior Java developer

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 Front-end developer

Functie Als front-end developer ga je aan de slag voor verschillende klanten, waarbij veel rekening wordt gehouden met waar je woont (dit is altijd binnen het uur), en word er gezocht naar een organisatie die past bij jou. Zowel qua persoonlijke ambities als de technische aansluiting. De opdrachten duren gemiddeld 1 à 2 jaar maar dit hangt ook af van je wensen. Je werkt in een teamverband voor een klant en zult nauw samenwerken met zowel eigen collega’s als die bij de klant werkzaam zijn. Ze zijn op zoek naar een technische front-end developer die ruime ervaring heeft in één

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

24/01/2025 13:41:28
 
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.