Cómo garantizar que las peticiones http se originan a partir de un lugar específico?

StackOverflow https://stackoverflow.com/questions/1123690

  •  13-09-2019
  •  | 
  •  

Pregunta

HTTP Referer es la manera en que yo estoy haciendo en el momento.Como todos los que utilizan este método sabe que no es 100% exacta, ya que el encabezado Referer es opcional y tal vez jugueteó con.

Mirando cómo-para-garantizar-acceso-a-mi-web-de-servicio-de-mi-código-sólo Todavía estoy seguro de cómo ir sobre esto de manera mínima.

La situación:

La publicidad en otro sitio.El uso de un iFrame para que yo pueda cambiar el contenido o la función a voluntad.Tengo que pagar $x.xx por cada vez que una acción se ha completado.Por lo tanto necesito para asegurarse de que la acción se está llevando a cabo, en donde me dijo que se le permite ser completado desde.

Lo que estoy tratando de evitar:

algunos otros webmaster llegando a lo largo de va - "hey esa es una buena herramienta, permítanme poner eso en mi sitio" Así que como he dicho en la parte superior, lo que yo hago atm es si el referer no coincide I redirigir a una página que tiene la misma herramienta, sin embargo las acciones que se administran en esa página no me cuesta nada de dinero.

Mientras trataba de evitar que el anterior, permite los siguientes:

No me importa si el webmaster/propietario del sitio que estoy pagando en efectivo para "acciones completar" pone el código en otros sitios - obviamente, esto es una buena cosa.Mucha más cobertura, el propietario de la web se hace más efectivo y conseguir más acciones finalizadas, lo que me genera más dinero.

Pregunta

¿Qué puedo obtener de la otra parte a hacer lo que yo sé todas las peticiones que venían en mi página web son de la otra parte tengo un acuerdo con el y no al azar.

Gracias :)

info re app

otras partes del sitio web tiene un iFrame.iFrame muestra un html/js/php de la página de la mina que se encuentra en uno de mis dominios.Esta página usa peticiones ajax para interactuar con el real webservice que es un rubí/aplicación sinatra.Tengo un montón de páginas diferentes que encajan en la mirada y la sensación de las otras partes del sitio web.


Así que estoy pensando en algún tipo de charla entre las otras partes de servidor y de mi servidor sería una buena idea.A continuación, el resultado de esta charla sería de alguna manera presentes durante el iFrame solicitud.

Sin embargo no estoy seguro de si la otra parte sería capaz de establecer una cookie para el dominio que se sirve en el iFrame - de hecho, estoy bastante seguro de que no se puede.

Ahora, para evitar que la limitación que podría tener una secuencia de comandos que se incluye como parte del iFrame en la página que se podría establecer una cookie.

Aceptar las ideas anteriores en resumen:

  • OtherParty servidor envía una solicitud a mi servidor recibe una respuesta.
  • muestra la página con esa respuesta como un parámetro a un <script src="...?param"></script>
  • mi script establece una cookie
  • como script antes de iFrame, el script se carga por primera vez
  • iFrame que carga con la página de un cookie en el dominio de la cookie antes de que se envían así
  • bingo, solicitud verificada de fiar

¿Suena bien?

por cierto mi herramienta que quiero acción terminada en sólo funciona si JS está habilitado para...

¿Fue útil?

Solución

Si realmente desea asegurar que puede cargar su marco flotante, entonces una forma de hacerlo es a través de OAuth (es decir, que su pareja "señal" de confianza la solicitud GET iframe). A continuación, el servidor puede conceder acceso basado en una firma criptográfica válida y una fiesta de firma conocida. Usted querrá hacer cumplir tiempos de vida relativamente cortos válidos para las peticiones firmadas para evitar que alguien más simplemente copiarlos y la incrustación de ellos en su propio sitio.

Esto también le da la ventaja de sólo tener que hacer un intercambio inicial, fuera de línea clave sin tener a su pareja hacer peticiones adicionales en el servidor de ustedes delante de la inserción iframe.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top