¿Cuál es una forma segura de usar tokens de PHP en una aplicación de C #?

0

Tengo una aplicación C # que está enviando solicitudes de publicación hacia y desde un script php. Tengo una configuración de autenticación basada en token en el php, y tengo mi aplicación C # enviando tokens, sin embargo, incluso con ofuscación, si alguien recibe mi cadena de token, tenerla allí en primer lugar es inútil. ¿Hay una mejor manera de hacer este tipo de seguridad? ¿Es imposible, considerando que alguien puede simplemente desenfocar mi fuente?

    
pregunta ody sol 24.09.2018 - 01:00
fuente

1 respuesta

2

Parece que usted, como muchos antes de hacerlo, está tratando de hacerlo para que solo un cliente "autorizado" pueda acceder a su API en línea (probablemente un servicio web). Esto, como sospechabas, es imposible. Puede tomar muchas medidas para hacer que sea más difícil para alguien escribir un cliente funcional no autorizado (ofuscación, cifrado de tokens localmente, bloqueo del uso de un proxy interceptor mediante el uso de identificación de certificados, varios otros esquemas DRM, etc.) pero al final de el día, si les da a los usuarios un cliente que funcione, pueden (y, si tienen algún motivo para molestarse, ) duplicarán todo lo que el cliente haga para que su servidor piense que es legítimo.

La pregunta más grande es, ¿por qué te importa? En general, solo hay algunas razones por las que las personas intentan evitar clientes no autorizados:

  1. Están poniendo demasiada confianza en el cliente. Un ejemplo podría ser un juego en línea donde el cliente le dice al servidor si el usuario ganó o no, en lugar de que el cliente le diga al servidor qué hizo el usuario y si el servidor decide quién ganó. Nunca confíes en el cliente.
  2. El servicio es costoso de usar de alguna manera (monetaria, computacional, de almacenamiento, lo que sea) y quieren limitar la frecuencia con la que se pueden realizar las solicitudes. El enfoque correcto aquí es requerir la autenticación del usuario, en lugar del cliente, y cobrar al usuario o limitar el número de solicitudes que pueden hacer.
  3. No quieren que la gente automatice la interacción con el servicio, por ejemplo, porque es un juego con muchos comportamientos repetitivos y no quieren que la gente escriba bots para él. En ese caso, duro. Solo se puede hacer mucho contra esto, y generalmente se trata de una especie de revisión humana de repeticiones o algo así para detectar tramposos.
  4. Solo quieren admitir usuarios específicos (por ejemplo, no quieren molestarse con una aplicación de Linux) y están preocupados de que si alguien transfiere su aplicación, serán bombardeados con solicitudes de asistencia para el código que no. escribir. Honestamente, no hay una buena manera de evitar esto (aparte de la marca registrada de su nombre de servicio y el uso de amenazas legales contra cualquiera que intente publicar algo como usted, pero eso no impide que publique algo que sea un cliente no oficial de YourService (TM) ").

Si es algo más, agregue la información relevante a su pregunta y lo abordaré. En general, sin embargo, no se puede hacer realmente. No puedes darle a alguien la llave de una puerta, pero evita que la copien o la compartan.

    
respondido por el CBHacking 24.09.2018 - 03:59
fuente

Lea otras preguntas en las etiquetas