Daha sonra e-posta ile gönderilecek bu kullanıcı girişi sterilize - Ben endişe ne olmalıdır?

3 Cevap php

Hindistan'da bir STK (Seva Mandir, http://sevamandir.org) için staj ve bunların kırılmış "bültenine abone" kutusunu düzeltmek için çalışıyorum. Personel çok karmaşık değildir ve bizim web barındırma büyük değil çünkü, ben onun yerine bir MySQL veritabanında saklanması mail () üzerinden yayınları kişiye ilgili verileri göndermeye karar verdi.

Ben kötü niyetli kullanıcı girişi olarak tedavi etmek en iyisi olduğunu biliyorum, ve ben bir posta iletisinde göndermek için kullanıcı verilerini kaçan ilgili mesajlar için SO forumlar aradık. Ben veri kaçtı gerektiğini biliyorum; ne endişe olmalı ve ne göndermeden önce girdiyi en iyi yolu nedir?

Ayrıca org web konak hala PHP 4 kullanıyor, bu yüzden sadece dizeleri için filter_var kullanamazsınız unutmayın. I working with them to fix the problem değilim, ama şimdi ben Regexes veya sayisinda strip_tags veya başka bir yöntemi kullanmak zorunda.

Form flow:
1. User enters email on homepage and clicks Submit
2. User enters name, address, more information on second page (bad usability, I know, but my boss asked me to) and clicks "Submit"
3. Collect the data via $_POST and email it to the publications editor (and possibly send a confirmation to the subscriber).

I am going to sanitize the email in step 2 and the other data in step 3. I appreciate your help,
Kevin

3 Cevap

Sen Email Header Injection saldırıların farkında olmak gerekir.

Eğer şerit Temel olarak eğer \n ve \r gelen $name, $from, $to ve {[(itibaren 5)]} sen oldukça güvenli olmalı, ama bir beyaz liste yaklaşım almak her zaman en iyisidir.

Eğer bir onay göndermek için kullanıcı tarafından girilen e-posta adresini kullanarak ediyorsanız, sadece bir e-posta girdiğinizden emin olun. Eğer dikkat etmezseniz bir spam satır sonları gizlice, ve bu nedenle keyfi uzun Bcc: girişleri, mesaj başlıklarını içine olabilir.

Bkz email injection.

Bildiğim kadarıyla ben biliyorum, sürece düz metin kullanarak ve sadece e-posta vücuda kullanıcının girdiği veri eklemek konum olarak, sterilize etmek için bir şey yok.