Autor
|
Tema: [Ayuda] La mejor manera de encarar este sistema sin riesgo de BAN (Leído 2,487 veces)
|
PabloPbl
Desconectado
Mensajes: 188
|
Buenas estoy haciendo un sistema en el cual necesito consumir la API de Binance atravez PHP.
El sistema va a ser usado por varias personas y el problema es que Binance tiene un limite de peticiones hechas atreves de una misma IP. Por lo que se me ocurrió hacer que esas consultas a la API de Binance, se hagan del lado del cliente y no del servidor.
Se hace toda la lógica previamente desde PHP y el cliente solo hara las peticiones correspondientes a Binance desde el navegador.
Pero surge otro problema que no se como resolverlo, en el cual es que a la hora de mandar las consultas al cliente desde el servidor, este recibirá también las Api Key y Secrey Key de Binance, por lo que podrá cambiarlas y así burlar la seguridad del sistema del lado del cliente.
Hay alguna forma de que esto se pueda evitar?
Lo único que se me ocurrió es hacerlo desde el lado del servidor, pero con ese problema de que todas las peticiones se hacen de una misma IP y con el riesgo de que la puedan banear.
Ahora me pregunto, como hacen todas esas Apps, para manejar miles y miles de usuarios simultáneos desde un mismo servidor, sin riesgo de ban?
Por ejemplo: cryptohopper bitsgap
Otra forma que se me ocurrió es cifrar las info que va a ser consumida desde el cliente. Pero lo descarte por que la desencriptación debe hacerse del lado del cliente de todas formas y en algún lugar debo guardar la llave. Cosa que alguien fácilmente puede ver el script generado de JS y obtener la llave.
Gracias desde ya.
|
|
|
En línea
|
|
|
|
Danielㅤ
Desconectado
Mensajes: 1.675
🔵🔵🔵🔵🔵🔵🔵
|
Hola, con respecto a tu última idea, podes usar javascript y ofuscar el código, sin embargo además de eso podes crear tu propio algoritmo o método para que el servidor pueda recibir los datos, es decir el cliente envía un dato que puede estar cifrado o no y tú servidor internamente realiza unas operaciones y puede obtener la llave para así comprobar si es válida o no.
Si bien la persona cliente puede desofuscar el código javascript y mirar internamente lo que hay dentro pero no puede saber cuál es el algoritmo que utiliza tu servidor para obtener la llave, puede ser por ejemplo una clave larga incluso hasta con espacios irrompibles y tú servidor puede a esa clave revertirla, hacer operaciones matemáticas, cortar desde x cantidad de caracteres hasta x final, podes decodificarla. En resumen el cliente puede enviar un dato pero tú servidor a ese dato le puede hacer varias operaciones para obtener solo una parte de ese dato mientras el cliente piensa que ese dato entero es la llave cuando puede ser totalmente distinta.
Por ejemplo que el dato tenga un número 5 y tú servidor multiplique el dato en vez de 5 veces que le sume 2, entonces serían 7 veces.
Saludos
|
|
« Última modificación: 1 Julio 2021, 23:52 pm por [D]aniel »
|
En línea
|
|
|
|
el-brujo
|
Es realmente un problema estar limitado por la API, lo digo porque a mucha más gente le ha sucedido. Al final tienes que pagar más, limitar el servicio (te recomiendo usar servicio ReCaptcha) para validar humanos de robots y evitar peticiones excesivas. Por ejemplo API consultas Google Maps tiene límites: https://www.elhacker.net/geolocalizacion.htmlPero normalmente la API está limitada no solamente por IP, también al usar credenciales (API Key) te suelen limitar por número consultas de ese usuario Binance tiene un limite de peticiones hechas atreves de una misma IP Lee bien, porque en ningún momento dicen que tengan limitaciones de una misma IP, sólo dicen que bloquearán la IP si hace intentos excesivos https://www.binance.com/es-ES/support/faq/360004492232- 1200 solicitudes por minuto (ten en cuenta que no es necesariamente lo mismo que 1200 solicitudes) - 50 órdenes cada 10 segundos - 160 000 órdenes cada 24 horas Era una buena idea inicialmente usar el lado cliente en vez del servidor, pero en este caso no solucionas nada, y además siempre tendrás que enviar (aunque sea ofuscando) la API Key como hacen todas esas Apps, para manejar miles y miles de usuarios simultáneos desde un mismo servidor, sin riesgo de ban? - Pagando por un API con limites más altos - Cacheando contenido - Limitando consultas y evitando consultas robots y repetitivas (excesivas)
|
|
|
En línea
|
|
|
|
Danielㅤ
Desconectado
Mensajes: 1.675
🔵🔵🔵🔵🔵🔵🔵
|
También podes hacer las consultas sin usar la API, por ejemplo hay sitios webs para hacer consultas usando su API pero ésta tiene límites de consultas, entonces lo que podes hacer es usar por ejemplo el servicio de la web para que te brinde los datos haciendo peticiones GET o POST, hay sitios que limitan las consultas por la API pero no la otra parte.
Otra manera que podes hacer algo pero más automatizado y avanzado aunque no tan eficiente como usar el servicio pago en donde tendrás como bien comenta el brujo un límite más alto de consultas, de hecho suele ser mucho más alto el límite, bueno te comento es usar proxys, que cada proxy haga una x cantidad de consultas x día y si está llegando al límite entonces usarías otro proxy con otra API, tendrías que registrar varias APIs para lograr ésto y que tú software pueda buscar los proxys de alguna página web y los use para aumentar el límite de consultas, y también podrías crear por ejemplo una lista de user-agent para que parezca como si fuesen personas que hacen las consultas desde navegadores, el problema que tal vez puedas tener en ésto es que esa página puede tener algún sistema de detección y bloqueo de proxys, por ejemplo si utilizan EfnetRBL y DroneBL olvídate de esta alternativa, de igual manera lo que podrías hacer para comprobarlo es hacer las consultas usando varios proxys manualmente y así verificar si tiene o no un sistema de bloqueo de ese tipo, pero primero tienes que hacer la prueba y salir de dudas porque sino para que crear todo un sistema de consultas y que realmente no te vaya a servir/funcionar.
Saludos
|
|
|
En línea
|
|
|
|
PabloPbl
Desconectado
Mensajes: 188
|
Gracias amigos por las respuestas.
Después de pensarlo un buen rato, me decante por usar una API de terceros de pago la cual me pueda brindar un cambio de IP por cada peticion que se hace desde el servidor, o que se encargue de evitar los Rate Limit de Binance.
El problema es que no he logrado encontrar una, o no he sabido buscarla.
Probe con las siguientes frases en Google pero no logro dar con ningun servicio que me de esas opciones para cambiar IP por cada petición y asi evitar los rate limit.
Binance without rate limit Binance Api price increase api Binance limit 3rd party binance api
Probe con infinidad de palabras de ese estilo pero no se como buscar el servicio que me comentan.
Que servicio me recomendarian usar? o como lo buscarían en Google?
No necesariamente tiene que ser de Binance el servicio, si no una que me funcione como intermediario para hacer las peticiones, GET, POST, PUT y DELETE. y que por cada peticion que se lance, con la api key que me de el servicio, este cambie su IP. No importa si es de pago.
Muchas gracias amigos por las respuestas.
Saludos.
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
¿Mejor manera de restringir acceso?
PHP
|
19.5
|
5
|
2,165
|
18 Diciembre 2007, 08:57 am
por WHK
|
|
|
Que es mejor ?.. Joomla o Wordexpress u otro sistema?.. ayuda..
Desarrollo Web
|
ositocaro
|
5
|
4,896
|
3 Marzo 2011, 20:50 pm
por Anay
|
|
|
Mejor manera de formatear
« 1 2 »
Software
|
motocros_elche
|
19
|
5,706
|
3 Noviembre 2011, 16:08 pm
por motocros_elche
|
|
|
Cuál es la mejor manera de aprender php?
PHP
|
ccrunch
|
4
|
2,614
|
3 Octubre 2014, 22:14 pm
por sergio98
|
|
|
matriz en C nose como encarar el ejercicio se agradece la ayuda
Programación C/C++
|
DAOST420
|
3
|
2,773
|
13 Octubre 2020, 18:08 pm
por K-YreX
|
|