API personalizada segura [duplicado]

0

Creo un cliente de escritorio para una tienda electrónica y este cliente utilizará algunas funciones utilizando la API de la tienda electrónica, como:

GetOrders
UpdateOrder
SetOrder
etc...

Estoy creando una autenticación personalizada para ese cliente, pero no sé si es seguro contra ataques.

Todas las comunicaciones con cliente-servidor se realizan a través de HTTPS.

Funciona así:

  1. En la primera solicitud, el cliente debe proporcionar un nombre de usuario y contraseña para servidor. Así que el cliente tendrá esa contraseña lo que el usuario ingresa y luego cliente enviará solicitud al servidor con nombre de usuario y hash contraseña.

  2. El servidor compara la contraseña con hash con la contraseña con hash en DB para eso nombre de usuario, si es igual, entonces el servidor genera el token (como la clave api) con tiempo de vida limitado y este token se enviará al cliente.

  3. El cliente usará este token en futuras solicitudes.

  4. Cada vez que el servidor de solicitud de token se renueve, la vida útil del token se renueva.

Las solicitudes deben tener este aspecto:

POST /orders/get HTTP/1.1
Host: example.com
token=123456789&orderid=10

¿Hay alguna recomendación de seguridad si debo usar solicitudes POST o GET? ¿No es POST más seguro que GET? Por ejemplo, POST almacena los datos en el cuerpo de la solicitud HTTP, pero GET los almacena en la URL.

    
pregunta tomsk 02.09.2018 - 13:05
fuente

1 respuesta

1

Generalmente depende de lo que quieras hacer con los datos. Hay muchas diferencias entre POST y GET. Si desea transmitir datos a su servidor, prefiero POST. Es un poco más seguro que GET porque no envía la información con la URL y no se almacenan datos. Si está utilizando una PC compartida, es posible que otro usuario esté buscando si las URL están almacenadas. Tal vez un individuo haya enviado su contraseña u otros detalles, se almacenarán en la PC y otro puede encontrarla en el historial.

Obtener es agradable de usar si desea mostrar un mensaje al usuario. Como ejemplo: un chico intenta iniciar sesión, pero escribió mal su nombre, por lo que no se concede el acceso. El servidor web ahora puede responder de esa manera - > serverurl.com/login?error=1

Si el error se establece en uno, puede mostrar el mensaje de error. A continuación puede encontrar más diferencias entre POST y GET.

    
respondido por el CD Rohling 02.09.2018 - 14:14
fuente

Lea otras preguntas en las etiquetas