Foto's via mail verwerken in je website, tips?
Het idee is erg simpel:
1) Een redactielid maakt een foto en stuurt deze per mail naar een bepaalde speciale mailbox
2) het mailadres als afzender wordt geverifieerd als legitiem (om spammers buiten te houden)
3) De foto wordt door een script via een cronjob die elke paar minuten draait uitgelezen en door een ander script verwerkt tot de gewenste fotoformaten, en aan het artikel toegevoegd.
Nu vraag ik me af, of dit veilig is? We weten dat mailadressen ook kunnen worden gefaked, dus er kan misbruik van het systeem gemaakt worden. Zijn er mogelijkheden om dit beter te kunnen beveiligen? Iemand die hier wat ideeën over heeft?
Zo op het oog is het niet veilig, maar er zijn manieren om het veilig te maken. Denk bijvoorbeeld aan PGP of een S/Mime certificaat voor de verzender (welke je uiteraard verifieert) of eenvoudiger een bepaalde tekst die in de mail moet voorkomen. Overigens ben ik geen voorstander van met cron een mailbox uitlezen. Pipe de mails dan gewoon naar een script, dan ben je sneller klaar. Desnoods kun je dan alsnog de mails in een mailbox bewaren.
Ik denk er wel over om misschien speciale tokens in de Adminbackend te genereren die beperkt geldig zijn, die je aan de mail moet meegeven. Dat zou het al een stuk beter beveiligen.
- Ariën - op 04/04/2018 11:18:38:
Ik denk er wel over om misschien speciale tokens in de Adminbackend te genereren die beperkt geldig zijn, die je aan de mail moet meegeven. Dat zou het al een stuk beter beveiligen.
Is het dan niet handiger om ze gewoon in dat "Adminbackend" in te laten loggen, en de foto's op de "gebruikelijke manier" te uploaden?
Ik snap dat mailen (soms) makkelijker is. Maar zoals zo vaak betekent "gemak" ook "minder veilig". Als je dat dan weer probeert te "repareren" breng je het gemak weer om zeep en ben je eigenlijk niks opgeschoten.
Ik zou voor elke redacteur gewoon een enorm "random" e-mailadres aanmaken (bijvoorbeeld bhz7tncbk0ycochkjfxzuze5lei5mrlsf9807x2mzopc3x9tmwnvcwhfzmxgbhhcck047vzgh8zhi7pxabpras9cpyf4jbmm2spmlwbfmixomv2kacppyijnls18eirt@redactie.nl), dan vanuit het systeem een mailtje naar de redacteur sturen (met als afzender dat adres). Dan kunnen ze 'm bij hun contactpersonen zetten, en vervolgens daar de mail naartoe sturen. Kleine kans dat iemand dit e-mailadres gaat raden / brute-forcen. Mocht het toch gebeuren (of op een andere manier gelekt - dat lijkt me eerder gebeuren), dan maak je voor de betreffende redacteur een nieuw random e-mailadres aan.
Ik houd het bij een random aan te maken mailadres, en een controle op het mailadres. Mocht er misbruik komen, dan is dat toch snel te detecteren ;-).
Ik ga eerst maar even uitvogelen hoe attachments met imap in PHP kunnen worden uitgelezen.
Van alle mailadressen die een mail mogen sturen naar de mailbox foto@... maak je een whitelist aan. Staat jouw mailadres niet op de whitelist, dan wordt de mail genegeerd.
Nu komt ie ... voordat je de foto gaat mailen, stuur je een lege mail naar foto@... Jouw mailadres wordt herkend en naar datzelfde mailadres wordt een simpele token teruggestuurd van 4 cijfers.
Jij moet nu binnen 10 minuten een foto sturen naar foto@... en als onderwerp geef je de token van 4 cijfers mee. Stuur je later dan 10 minuten een mail, dan wordt die genegeerd.
Ideetje?
Klinkt als omgekeerde greylisting. Kan interessant zijn. Je zou in dat geval ook nog kunnen zeggen "reply op deze mail", wat te zien is aan de References (of In-Reply-To) header, afhankelijk van de gebruikte client.
>> Je zou in dat geval ook nog kunnen zeggen "reply op deze mail" ...
Dat was ook mijn eerste gedachte, maar als ik het goed begrijp wil hij rechtstreeks kunnen mailen. Bijv. vanuit je gallery op je telefoon selecteer je een foto, dan klik je op delen en kies je je mail-app. Bij een reply kan dat niet, dan moet je de foto als bijlage gaan invoegen wat iets lastiger is. Vandaar mijn idee met de simpele token. De beveiliging zit in het feit dat 1) je een gewhitelist mailadres moet hebben 2) een token wordt gebruikt die naar een gewhitelist mailadres wordt gestuurd (kan dus niet aankomen bij een kwaadwillend persoon) 3) de token is maar kort geldig.
Lijkt me dat dit niet te hacken valt omdat een hacker niet op die whitelist staat.
Al gekeken naar filesharing diensten zoals, ik noem maar een dwarsstraat, Dropbox ofzo? Geen idee of dat aansluit bij wat je zoekt, maar het idee lijkt mij duidelijk (NB, je hoeft dan ook geen aparte programma's te installeren en misschien bestrijken die diensten zelf ook meerdere media middels apps enzo, zodat foto's van de mobiel mogelijk ook een optie worden).
Enige wat je dan rest is het schrijven van een PHP-koppeling met een API.
Gewijzigd op 04/04/2018 23:05:18 door Thomas van den Heuvel
Ik geef toe dat er echt geen 5 MB per foto over de lijn gaat, maar iets wat op de telefoon/camera al verkleind is.
Ik ga zeker kijken of ik iets met een tijdelijk token kan doen die je per mail/sms of whatever krijgt.
Is het een idee om daarvoor een formulier te maken, die alleen te gebruiken is door members die jij aangeschakeld hebt. Op het formulier kun je dan de afbeelding en de tekst laten invoeren. Op het moment van updaten, weet jij dat het uit betrouwbare bron komt. En de foto voorzien is van informatie/tekst die jij nodig acht. Dat voorkomt mi een hoop gedoe. Is maar een idee.
Jan te Pas op 05/04/2018 08:54:11:
Is het een idee om daarvoor een formulier te maken, die alleen te gebruiken is door members die jij aangeschakeld hebt.
Die is er, maar dat werkt vrij omslachtig als de foto snel online moet komen.
Gewijzigd op 05/04/2018 09:19:12 door - Ariën -
Nog een idee, kan een member een prioriteit meegeven op het formulier. Jij kunt die prioriteit dan afvangen en sneller plaatsen.
Ze klikken een foto, mailen die door naar een bepaalde mailbox met eenbepaalde code/token en het staat bij het artikel.