2011-12-10 29 views
5

Estoy seguro de que esta pregunta se ha formulado antes, pero no puedo encontrar un hilo que lo explique de una manera que tenga sentido para mí.Cómo "proteger" las llamadas AJAX?

Estoy creando un complemento bookmarklet/browser escrito en Javascript. Este script hace llamadas a una API, enviando efectivamente la información de actividad de un usuario de un sitio a otro. (piense, haciendo un tweet cuando un usuario publica un estado de Facebook)

Este sitio carga javascript directamente en el sitio. La API que estoy usando requiere que se genere un hash MD5 usando un código secreto API. Esto no es problema, estoy haciendo una llamada ajax a un script PHP que estoy hospedando en otro lado, que devuelve la cadena correcta.

Problema es que no quiero que el usuario pueda realizar una llamada a este mismo script para generar sus propias cadenas, con el secreto incrustado para abusar de la API. ¿Es su manera de que solo pueda permitir llamadas a esta API cuando quiero hacerlas?

O tal vez me estoy acercando a esto desde la dirección equivocada.

Respuesta

0

1) debe abrir un token en su DB como GUID.

este guid representará algo de información y solo se puede ejecutar una vez (ponga un campo db en la tabla llamado "isAlreadyuse" bit de tipo).

ahora,

cuando el Ajax llamará a sí mismo - se envía este GUID al servidor.

el servidor va a ver si existe el GUID

y emite su lógica y actualizar thefield a "1".

3

No se puede dictar cómo un cliente ejecuta su javascript. No hay forma de crear una solicitud "segura" o asegurar que no fue modificada por un atacante. Esta es la naturaleza del sistema cliente/servidor. La página en sí misma se puede modificar con GreaseMonkey y cualquier solicitud puede modificarse o reproducirse utilizando TamperData.

+0

Los ataques de repetición pueden protegerse contra ... pero eso es asumiendo que es una repetición y no una operación permitida [inicialmente]. –

+1

@pst Si puede hacerlo en JavaScript, un atacante también puede hacerlo en JavaScript. – rook

Cuestiones relacionadas