2012-07-17 7 views
5

Construyo un script PHP para enviar correos electrónicos (basados ​​en Amazon SES).¿Cómo asegurar el uso de un script PHP que desencadena correos electrónicos?

que yo pueda hacer un GET o una llamada de POST Ajax a mi script PHP:

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

desencadena un correo electrónico que se enviará a [email protected]

Mi sitio web tiene un formulario de registro que al enviar realiza una llamada jquery ajax al script PHP (el sitio web y el script PHP están en el mismo servidor). Yo uso el script también para otros eventos.

Ahora estoy preocupado de que este script obviamente podría ser abusado si alguien se apodera de su URL.

¿Cómo puedo asegurar el acceso a este script?

+4

Si permite que un usuario especifique 'Para:' para el correo electrónico, se maltratará la secuencia de comandos del correo ** ** WILL ** para enviar spam. No hay forma de asegurar esto, aparte de tener una lista blanca de direcciones permitidas, o de codificar la dirección y enviar solo a eso. –

+0

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

Respuesta

3

Paso 1: Cuando el usuario abre el formulario de inscripción, de la que puede enviar correo y pasa código de imagen, establezca un parámetro $_SESSION.

$_SESSION["mail_allowed"] = true; 

Paso 2: La solicitud se envía como de costumbre a

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

Paso 3: Por último, en el guión de correo, hacer algo como lo siguiente:

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

Este De esta forma, el usuario puede enviar correo una vez que abre la página, pero no puede ejecutar directamente la secuencia de comandos.

+0

Interesante. Gracias. – tucson

4

Puede usar captcha para proteger el acceso a este script y hacer que los abusos sean un poco más difíciles.

1

Sí, esto podría abusarse fácilmente. No hay una solución sólida, pero un par de formas de protegerlo vienen a la mente: (? Código de imagen)

  • solo permiten el enlace de trabajar para los usuarios autenticados que está seguro de que no son los robots
  • Prevenir la misma IP dirección de emisión de solicitudes repetidas.
Cuestiones relacionadas