La ofuscación puede parecer el primer paso obvio, pero la ofuscación tiene que proteger algo en el código y que algo no puede ser una funcionalidad de servicio web porque se trata de ingeniería inversa al interceptar el tráfico, incluso si está cifrado SSL. La fijación de certificados puede evitar la simple intercepción de SSL confiando en un certificado predefinido.
Puede cifrar simétricamente los datos de comunicación y almacenar la clave en el cliente luego utilizar la ofuscación para dificultar el acceso a esa clave y al algoritmo de cifrado. Y también puedes proteger la ofuscación haciendo más difícil la descompilación. Un ejemplo de ofuscador flash y anti-decompilador es SWFencrypt y BISguard .
Las anteriores son protecciones de código fuente estático, pero no protegen contra ataques dinámicos / en vivo. Una forma de protegerse de estos ataques es que el cliente utilice verificaciones de integridad en la memoria y los recursos. También hay algunas técnicas de ingeniería inversa que pueden hacer que la depuración en vivo sea más difícil.
La otra forma de prevenir ataques en vivo es usar un software que busque cualquier manipulación del sistema que pueda usarse para la manipulación del software del cliente. Este es el reino de los motores anti-trampas similares a rootkits como Punkbuster, Warcraft's Warden y Valve's VAC.
Un tipo de protección diferente es la firma de código y la firma de memoria (hasta la página de memoria) en plataformas cerradas como iOS y Android. De esta manera, puede limitar las modificaciones estáticas a los binarios y dinámicos del cliente a su memoria y al sistema operativo.
Incluso el antiguo CAPTCHA puede usarse como protección contra la automatización, pero perjudica la facilidad de uso. También puede detectar la automatización en el servidor, a través del comportamiento del usuario y los patrones de uso y luego asociarlo con CAPTCHA para reducir los falsos positivos.
Además de las protecciones técnicas, puede utilizar con medios legales e incluso incentivos. Proporcione el mejor cliente para que los usuarios no se inclinen a piratear el suyo ni a escribir el suyo. O haga que un cliente personalizado o pirateado no le dé al hacker una ventaja mucho mayor. Los medios legales no son mi fortaleza y variarán según el país, pero he oído hablar de juicios sobre ingeniería inversa. La amenaza legal podría disuadir a las empresas y personas de vender o proporcionar clientes personalizados.
Finalmente, puede hacer que todo el problema se convierta en realidad y hacer que el servicio web sea fácilmente accesible a través de API flexibles y protegerlo contra el abuso en el servidor. También puede cobrar pequeñas tarifas por la funcionalidad superior que sus hackers están deseando. :)