2012-07-17 11 views
5

E-posta göndermek için bir PHP betiği hazırlıyorum (Amazon SES'e dayanarak). E-postaları tetikleyen bir PHP betiğinin kullanımı nasıl güvenli hale getirilir?

Yani benim PHP komut dosyası için bir GET veya POST Ajax arama yapabilirsiniz:

envoi.php?nom=John&[email protected] 

[email protected] gönderilecek bir e-posta tetikler.

Web sitemde, başvuru sırasında PHP betiğine jquery ajax araması yapan bir kayıt formu vardır (web sitesi ve PHP betiği aynı sunucudadır). Komutu diğer etkinlikler için de kullanıyorum.

Şimdi, herhangi birinin URL'sini tutması durumunda bu betiğin açıkça kötüye kullanabileceğinden endişe duyuyorum.

Bu komut dosyasına erişimi nasıl güvenli hale getirebilirim?

+4

Bir kullanıcının e-posta için 'To:' belirtmesine izin verirseniz, e-posta komut dosyası ** WILL ** spam göndermek için kötüye kullanılmalıdır. İzin verilebilen adreslerin beyaz listesinin bulunması veya adresin kodlanması ve sadece ona gönderilmesi dışında, bunu güvence altına almanın bir yolu yoktur. –

+0

http://php.net/manual/en/features.http-auth.php – ManseUK

cevap

3

Adım1: kullanıcı o posta göndermek ve captcha'yı geçer alabileceğiniz kayıt formunu açar, bir $_SESSION parametresini ayarlayın.

$_SESSION["mail_allowed"] = true; 

Adım2: istek

envoi.php?nom=John&[email protected] 

Basamak 3'ten her zamanki gibi gönderilir:

if($_SESSION["mail_allowed"]){ 
    $_SESSION["mail_allowed"] = false; 
    //send mail 
} 
else{ 
    die('File cannot be executed directly'); 
} 

Bu: Son olarak, posta komut, aşağıdaki gibi bir şey yapmak Bu şekilde, kullanıcının sayfanızı açtığında posta göndermesine izin verilir, ancak postacı komut dosyasını doğrudan çalıştıramaz.

+0

İlginç. Teşekkür ederim. – tucson

4

Bu betiğe erişimi korumak ve kötüye kullanımı biraz daha zorlaştırmak için captcha kullanabilirsiniz.

1

Evet, bu kolayca kötüye kullanılabilir. Hiçbir katı bir çözüm, ama birkaç yolu o akla gelen korumak için: (? Captcha)

  • Sadece bağlantı Emin botlar değiliz olan doğrulanmış kullanıcılar için çalışmasına izin Aynı IP
  • önle tekrarlanan isteklerin yayınlanması adresi.
İlgili konular