¿Cómo aseguró Evernote su API Thrift de cara al público?

A primera vista, mirando los documentos API de Evernote [1] exponen sus servidores Thrift a través de HTTP, lo que ayudaría a evitar algunos trucos que de otra manera confundirían algo como TBinaryProtocol en un TSocket.
Poner un servidor HTTP / proxy delante de Thrift puede ayudar con

  • limitar el tamaño de los datos pasados ​​a un servidor.
  • los tiempos de espera de almacenamiento en búfer / proxy completos primero, por lo que no puede dejar una conexión con un mensaje incompleto que se cuelga para siempre, ya que TNonblockingServer mantiene un hilo por conexión [inactiva].

Eso no evita los problemas codificados en los propios mensajes de Thrift, pero mirando un correo electrónico [2] Seth Hitchings enviado a la lista de correo, también evita activamente algunos problemas conocidos en el servidor:

“nuestro lado del servidor realiza algunas comprobaciones para limitar el tamaño máximo de mensaje, establece una profundidad máxima de omisión, verifica los parámetros requeridos, etc.”

[1] http://www.evernote.com/about/de…
[2] http://mail-archives.apache.org/…