![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
|
Hola,
Yo sigo aquí un poco a mi bola, lo reconozco. En esta ocasión me gustaría comentaros cómo pienso implementar el método "EnlacesUsuario", mejor dicho, cómo he pensado implementarlo, para que me podáis dar vuestra opinión si lo creéis conveniente. ¿Eh? Pues eso. ![]() El método "EnlacesUsuario" trataría de retornar los enlaces de un determinado usuario de Loturak, de modo que pudieran listarse en una aplicación, por ejemplo. Mi idea es no retornar todos los enlaces al mismo tiempo, puesto que no existe límites para los enlaces que un usuario puede albergar, la consulta en cuestión podría costar más de la cuenta. Así que me planteo utilizar la cláusula "LIMIT" de MySQL, de modo que el método "EnlacesUsuario" retorne los datos de los enlaces de un usuario poco a poco, de veinte en veinte, he pensado, de diez en diez, acaso, pero, claro, me atrapan algunas dudas, porque al cabo "más peticiones" pueden acaso ser tan costosas como una consulta "grande". Esto último creo que no es del todo así. Me explico. No se trata de que en el primer caso pudiera darse una consulta "grande", es que podría darse una consulta "verdaderamente grande". Es decir, una consulta que retornara los miles de enlaces... pasaría de grande para considerarse algo desorbitado, desaconsejable al cien por cien. Entonces, teniendo claro que el método "EnlacesUsuario" debe retornar los enlaces "poco a poco" hay que meter mano a este asunto y se me ocurre lo siguiente. El método recibiría un Array de datos como único parámetro, como en los métodos "InsertarEnlace" y "ActualizarEnlace". Los elementos de dicho Array numérico, por cierto, podrían quedar tal que así, por orden: - string Login del usuario - string Contraseña del usuario - integer Límite inferior para la consulta de enlaces Una vez el usuario sea autentificado contaremos con su correspondiente ID de usuario. Es decir, la idea sería terminar conformando una consulta SQL como la siguiente (utilizo el * por abreviar):
O sea, que el método "EnlacesUsuario" retornaría 20 enlaces del usuario a partir del límite inferior que se indique. La primera llamada al método, los primeros 20 enlaces, se conseguirían indicando como límite inferior "0", los 20 siguientes se obtendrían indicando como límite inferior "20", los siguientes 20 enlaces indicando como límite inferior "40" y así sucesivamente. Ahora bien, ¿cómo véis vosotros todo esto? ¿Os parece la mejor forma de implementar el método "EnlacesUsuario"? ¿Tal vez tengáis alguna idea de cómo podría mejorarse el asunto? Cualquier cosa que se os ocurra será bienvenida y se agradece desde ya mismo. O sea. Sabed que cualquier otro comentario en relación a lo que tratamos en este Hilo sería igualmente bienvenido: añadir un método que consideréis puede dar juego, sugerencias, comentarios, críticas, lo que queráis. ![]() En fin. Eso es todo por el momento. Gracias a todos otra vez. Que paséis un buen fin de semana. ![]() PD. Seoane, si has llegado hasta aquí y esto lees, coméntame qué te parece del ejemplo que he añadido basándome (je, je, je) en el código que más arriba publicaste. Ya sabes que si quieres que añada cualquier referencia, que quite algo, que añada cualquier cosa, no tienes más que decirlo. ![]() Última edición por dec fecha: 02-12-2006 a las 21:55:43. |
|
#2
|
||||
|
||||
|
Cita:
Si llegue hasta aquí. Y estoy esperando ese nuevo método, ya estoy imaginando una aplicación, con un icono quizá en la bandeja del sistema, y por supuesto standalone, que se pueda llevar en un usb y ejecutándola en cualquier equipo nos permita ver una lista con nuestros enlaces ... aunque quizá tenga que planearla un poco mas.En cuanto a lo de agregar el código a tus ejemplos, la verdad me siento abrumado, solo era una pequeña diversión y vas tu y lo colocas en tu web . Estoy encantado de que me menciones en tu pagina, por mi perfecto. Solo comentarte que con las prisas en la unidad Hash me olvide de borrar la función SHGetFolderPath que no uso para nada, pero con esto de cortar y pegar .... Y el ejemplo me parece bien, como no tengo el componente TSpinEdit tuve que colocar el puerto fijo, y me fije que tienes por defecto la dirección localhost y una Uri que me supongo es local y que usas para las pruebas. Por el resto, esta bien, todo lo bien que le permite mi chapuza de código ![]() |
|
#3
|
||||||||||||
|
||||||||||||
|
Hola,
A ver. Gracias por vuestros comentarios. De veras que son muy útiles para continuar adelante. Vayamos por partes, pues, como dijo Jack el destripador. Cita:
Cita:
En en el caso de Loturak no se da límite a la hora de importar enlaces, ni tampoco al exportarlos, y esto me preocupa. No acuciantemente, porque Loturak no es demasiado utilizada y el usuario que más enlaces tiene cuenta con unos 600. Con estas cifras, la importación y exportación de enlaces es plausible hasta el momento, a lo menos con las pruebas que he ido realizando en este sentido. Lo que se me ha ocurrido últimamente sobre esto es no limitar el número de enlaces que puede tener un usuario, pero sí los que puede importar y exportar "de un golpe"; pienso en una cifra razonable, digamos de 500 a 1.000 enlaces. En fin. Es algo que todavía está verde y para lo que también acepto vuestras sugerencias, si véis otra forma de burlar este problema, si no lo véis un problema, etc. Respecto del API ocurriría algo parecido. Habría que limitarla o controlarla de algún modo, no ahora, porque no tendrá mucho uso (de hecho las pruebas las realizo casi todas "en local", y mi deseo sería que quien probase la API o se planteara realizar una aplicación hiciera lo mismo: instalara Loturak (¡ajá!) en su sistema e hiciera las pruebas allí mismo. Al fin y al cabo Loturak se comportará igual "en local" que en el Sevidor, y así las pruebas "en local" serán perfectamente "válidas", pueden servir perfectamente. Cita:
Cita:
En todo caso la API está muy, muy verde aún. Seoane dice que se atreve a hacer algo con ella... es posible que a mí también se me ocurriera algo, pero, reconozco que aún le queda mucho a ese API para que pueda ser considerado algo más o menos digno de llamarse así. Para eso estoy aquí, entre otras cosas, para ver qué pensáis vosotros, como programadores, que podría añadirse a dicho API para que diera cierto juego y pudieraservir de algo a alguien. Quiero decir que te sientas libre, Mario, de indicarme qué le falta, según tú, al API en ciernes, porque, seguramente serán cosas interesantes que acaso convenga tener en cuenta. Ahora, el que para usar determinados métodos del API sea preciso usar un usuario y una contraseña... es necesario, por las características de la aplicación. Piensa en un cliente de correo electrónico, que ha de solicitar al usuario su dirección de correo y su contraseña, pues, ¿cómo sino iba a llevar a cabo su trabajo de gestionar el correo? Guardando todas las distancias, claro. Cita:
Cita:
Cita:
Cita:
Cita:
Bueno. Gracias por tus comentarios Mario. Resultarán muy útiles. Cita:
http://www.loturak.es/rss2?e=Delphi La anterior URL retornaría en formato RSS los últimos 20 enlaces publicados en Loturak con la etiqueta Delphi. Y, por otro lado: http://www.loturak.es/rss2?u=seoane Que retornará los últimos 20 enlaces añadidos por el usuario Seoane en Loturak, no sé si te suena. ¿Qué te parece? ¡Tato pensao! Cita:
[quote=Seoane] Solo comentarte que con las prisas en la unidad Hash me olvide de borrar la función SHGetFolderPath que no uso para nada, pero con esto de cortar y pegar .... [quote] ¿Lo dices por mí, verdad? Je, je, je... yo sí que he copiado y he pegado esta vez... Bueno. Procuraré corregir eso luego luego. Cita:
En cuanto al "Host" de los ejemplos, efectivamente, se trata del Servidor local que utilizo para las pruebas. Y de la chapuza de tu código... eso que lo dices tú. Estoy seguro de que a más gente, además de a un servidor, le parece todo lo contrario. Te lo agradezco otra vez Domingo. Y termino ya... ¡que menudo rollo he soltado! Reconozco que si alguien considera todo esto "demasiado" está en su perfecto derecho. Nada que objetar... gracias otra vez a todos. Nos leemos. PD. Al enviar este mensaje me encuentro con el límite de caritas... así que las he quitado todas... pero para vengarme ahora, aquí: ![]() Última edición por dec fecha: 02-12-2006 a las 23:40:29. |
|
#4
|
||||||||||||
|
||||||||||||
|
Hola,
A ver. Gracias por vuestros comentarios. De veras que son muy útiles para continuar adelante. Vayamos por partes, pues, como dijo Jack el destripador. Cita:
Cita:
En en el caso de Loturak no se da límite a la hora de importar enlaces, ni tampoco al exportarlos, y esto me preocupa. No acuciantemente, porque Loturak no es demasiado utilizada y el usuario que más enlaces tiene cuenta con unos 600. Con estas cifras, la importación y exportación de enlaces es plausible hasta el momento, a lo menos con las pruebas que he ido realizando en este sentido. Lo que se me ha ocurrido últimamente sobre esto es no limitar el número de enlaces que puede tener un usuario, pero sí los que puede importar y exportar "de un golpe"; pienso en una cifra razonable, digamos de 500 a 1.000 enlaces. En fin. Es algo que todavía está verde y para lo que también acepto vuestras sugerencias, si véis otra forma de burlar este problema, si no lo véis un problema, etc. Respecto del API ocurriría algo parecido. Habría que limitarla o controlarla de algún modo, no ahora, porque no tendrá mucho uso (de hecho las pruebas las realizo casi todas "en local", y mi deseo sería que quien probase la API o se planteara realizar una aplicación hiciera lo mismo: instalara Loturak (¡ajá!) en su sistema e hiciera las pruebas allí mismo. Al fin y al cabo Loturak se comportará igual "en local" que en el Sevidor, y así las pruebas "en local" serán perfectamente "válidas", pueden servir perfectamente. Cita:
Cita:
En todo caso la API está muy, muy verde aún. Seoane dice que se atreve a hacer algo con ella... es posible que a mí también se me ocurriera algo, pero, reconozco que aún le queda mucho a ese API para que pueda ser considerado algo más o menos digno de llamarse así. Para eso estoy aquí, entre otras cosas, para ver qué pensáis vosotros, como programadores, que podría añadirse a dicho API para que diera cierto juego y pudieraservir de algo a alguien. Quiero decir que te sientas libre, Mario, de indicarme qué le falta, según tú, al API en ciernes, porque, seguramente serán cosas interesantes que acaso convenga tener en cuenta. Ahora, el que para usar determinados métodos del API sea preciso usar un usuario y una contraseña... es necesario, por las características de la aplicación. Piensa en un cliente de correo electrónico, que ha de solicitar al usuario su dirección de correo y su contraseña, pues, ¿cómo sino iba a llevar a cabo su trabajo de gestionar el correo? Guardando todas las distancias, claro. Cita:
Cita:
Cita:
Cita:
Cita:
Bueno. Gracias por tus comentarios Mario. Resultarán muy útiles. Cita:
http://www.loturak.es/rss2?e=Delphi La anterior URL retornaría en formato RSS los últimos 20 enlaces publicados en Loturak con la etiqueta Delphi. Y, por otro lado: http://www.loturak.es/rss2?u=seoane Que retornará los últimos 20 enlaces añadidos por el usuario Seoane en Loturak, no sé si te suena. ¿Qué te parece? ¡Tato pensao! Cita:
[quote=Seoane] Solo comentarte que con las prisas en la unidad Hash me olvide de borrar la función SHGetFolderPath que no uso para nada, pero con esto de cortar y pegar .... [quote] ¿Lo dices por mí, verdad? Je, je, je... yo sí que he copiado y he pegado esta vez... Bueno. Procuraré corregir eso luego luego. Cita:
En cuanto al "Host" de los ejemplos, efectivamente, se trata del Servidor local que utilizo para las pruebas. Y de la chapuza de tu código... eso que lo dices tú. Estoy seguro de que a más gente, además de a un servidor, le parece todo lo contrario. Te lo agradezco otra vez Domingo. Y termino ya... ¡que menudo rollo he soltado! Reconozco que si alguien considera todo esto "demasiado" está en su perfecto derecho. Nada que objetar... gracias otra vez a todos. Nos leemos. PD. Al enviar este mensaje me encuentro con el límite de caritas... así que las he quitado todas... para vengarme aquí: ![]() Actualización: Ya he arreglado el asunto de la unidad "Hashes.pas" Seoane. Última edición por dec fecha: 02-12-2006 a las 23:59:47. |
|
#5
|
||||
|
||||
|
Hola,
Pues nada, que no se me ocurre cómo. Le estoy dando vueltas al tema de hacer necesario contar con cierta "clave" para poder utilizar la API de que venimos hablando. No se me ocurre cómo. Llevo tiempo dándole vueltas y cuantas más le doy más perdido me encuentro. No sé si es que estoy un poco cansado y no quiero ponerme con lo que se me ocurre, si inconscientemente lo que se me ocurre no me parece bien, si es que no quiero precipitarme... Qué sé yo. El caso es que supongamos que es precisa cierta clave para utilizar la API de que hablamos. ¿En qué puede consistir esta clave? Vale. Supongamos que es el "hash" de una determinada cadena, pero, ¿de qué cadena? ¿Con qué formamos la cadena? Está también el tema de que habría que pasar a los métodos que lo requirieran un nuevo parámetro, es decir, un nuevo elemento del "Array numérico" que se pasa como parámetro de los métodos... un nuevo elemento que evidentemente contendría la clave de marras... ¿Cómo se validaría el asunto? Es decir, alguien pretende usar la API, se comprueba la clave... ¿que estaría guardada en la base de datos? En una nueva tabla, ¿pero qué y cómo comprobamos exactamente que la clave es válida? Creo que no me estoy explicando. Alguien utiliza un método y proporciona una determinada clave, hasta ahí llego, ahora bien, comprobamos que la clave existe en la base de datos, ya se va entendiendo, pero, ¿qué ocurre si alguien, sencillamente, copia la clave de encuentre por ahí y la utiliza? ¿Cómo saber quién es quién o quien dice ser? No sé. A mí no se me ocurre sino utilizar el "Agente de usuario" que se presente, que realize la petición al Servidor, pero, eso sería obligar a especificar dicho Agente de usuario, además de la clave... y me temo que con esta última no habría problema, pero, el Agente de usuario podría causarlos, por ejemplo, porque no pudiera "editarse" por quien realiza la petición al Servidor. Así que esas tenemos. Luego me surgen también otras dudas respecto a esto mismo, pero, no quiero ser pesado y siempre acabo soltando unos tochos que no hay quien los lea... así que me callo ya que ya está bien. Como dice por ahí un compañero, buenos días, buenas tardes, buenas noches a todos. ![]() |
|
#6
|
||||
|
||||
|
Hola, voy a hablar desde la ignorancia pero bueno..
No entiendo la preocupación de mandar el usuario y contraseña. O mejor dicho, sí la entiendo pero no como un problema inherente a lo que estás haciendo. Es decir, actualmente manejas en loturak, via http, una autentificación y tal y es lo mismo de insegura que en el caso que te ocupa ahora. Si vía http no te quita el sueño, ¿por qué te lo quita ahora? Por otro lado, no entiendo eso de mandar la contraseña cifrada. Hasta donde entiendo, en el caso de la autenticación de loturak, la contraseña cifrada te sirve para poder mantener al usuario en sesión (no digo logueado porque suena horrible) sin necesidad de guardar la contraseña real en una cookie, pero en algún momento debe hacerse la autenticación. ¿Cómo se llevaría esto a cabo con la LAPI? Otra cosa, ¿me podría alguien explicar qué es una API-KEY? // Saludos |
|
#7
|
||||
|
||||
|
Hola,
Cita:
No sé. Supongo que he ido a salvar la contraseña por todos los medios posibles mientras que el resto de datos he dado por supuesto que viajarían en claro... sin más. Lo que significa le hecho de que lo decidiera así es que ahora pienso que podría hacer lo mismo con la contraseña en la autentificación en Loturak, no en el API... sino en la propia página Web. Se me ocurre que podría codificar la contraseña igualmente con MD5 valiéndome de JavaScript. La seguridad es algo que habría que tener en cuenta... a lo menos hasta donde pudiera llegar uno. Mismamente al liarme con todo esto del API he solucionado (hasta donde llego) un par de problemas de seguridad en sendas partes de Loturak: era posible hasta anteayer para un usuario registrado editar así como borrar enlaces de otros usuarios. No sencillamente, es decir, requería comerse un poco la cabeza, pero, no demasiado. Y sin embargo, pensando en todo esto... los datos siguen viajando en claro... Cita:
Cita:
![]() Ahora bien, en todo caso, no sé si te aclarará el asunto un poco si te digo que las contraseñas de los usuarios no se guardan en claro en la base de datos, sino que se guarda el "doble MD5" de las contraseñas. Los métodos del API que lo necesiten ya recogen el doble MD5 de una contraseña de usuario, así que la autentificación se lleva a cabo con el login de usuario y con la contraseña tal cual llega, pues es justo lo que se necesita. ![]() Cita:
![]() |
|
#8
|
||||
|
||||
|
Hola,
Ya contamos con un método "EnlacesUsuario" y con otro "NumeroEnlaces" (del usuario). Se han preparado "ejemplos" de uso de estos métodos tanto en PHP como en Delphi. También he quitado los "SpinEdits" de todos los ejempos de Delphi que los usaban. He repasado, en general, todos los ejemplos. Y creo que eso es todo. Ya me diréis si os place y tenéis tiempo lo que os parece. ¡Que paséis un buen domingo! ![]() |
|
#9
|
||||
|
||||
|
Ok, algunas cosas:
- Es cierto que al trabajar una pagina web por http es igual de inseguro y se estan enviando los datos de claves en plano. Diantre, no habia caido en eso. Es por eso que es muy comun que la pagina de login y perfil de usuario sea por https y el resto por http. Un punto que debo analizar ahora para mi propia portal! Por otro lado, desde un punto de vista estricto, es lo mismo pasar una sola clave o un conjunto de parametros de autenticacion o lo que sea. Una vez se lee, se usa la misma clave y ya. El punto es que clave/id no es un atributo de SEGURIDAD. Es un atributo de AUTENTICACION. Para que sea algo *realmente* seguro debe haber un mecanismo de comunicacion seguro y un mecanismo de autenticacion verificable. Porque API-key VS Usuario-Contraseña? - Porque es indespensable que el usuario AUTORIZE el uso del mecanismo automatizado. Por ejemplo, magnolia o yahoo demandan la solicitud del API key, lo que equivale a firmar un documento autorizando el uso de mecanismos robotizados para manipular los comandos. - Por Usuario/Clave = 1 Sola cadena para efectos practicos. De hecho, una cadena muy larga puede ser mas segura que 2 muy cortas. Ademas, aunque la clave pase con MD5 igual la *mitad* de la clave ya se sabe, y esta se puede interelacionar con otras cosas. Al igual que muchos, yo siempre uso mamcx en mis registros asi que tengo un sistema 1/2 de seguro que lo que podria ser... - Otro beneficio algo dudoso es que es mala idea guardar claves y nombres de usuario en texto plano en el codigo fuente, sobre todo en lenguajes como PHP que demandan el despliegue de codigo. Bueno, como dije, quizas me estoy pasando de neurotico. - Porque si todos los demas usan API-Key, porque no estar a la moda ![]() Me preocupa eso si lo de MD5 doble. Estas haciendole MD5 asi: "holamundo".MD5().MD5() ???? Porque si eso es verdad, has minado la seguridad de tu clave y haz reducido la efectividad de la misma. Contrario a lo que uno intuitivamente cree, aplicar multiples encriptaciones a un dato disminuye y no aumenta su seguridad. Como generar el API-Key? Simplemente un dato autogenerado que sea un poco largo y que carezca de sentido, busca como generar info aleatoria (o puedes reusar por ejemplo la generacion de GUID)
__________________
El malabarista. |
|
#10
|
||||
|
||||
|
Hola,
Cita:
Cita:
De este modo ni siquiera nosotros conocemos las contraseñas de los usuarios. El usuario entrega su contraseña a la aplicación, y esta comprueba su "doble MD5" con que el hay guardado en la base de datos. Entendí que era mejor un "doble MD5", aunque, puesto que Loturak es una aplicación de código abierto... esta información es perfectamente conocible. Sólo sé que no sé nada |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| A ver si me queréis dar vuestra opinión | dec | La Taberna | 12 | 02-08-2006 17:05:43 |
| ¿Quisiera saber vuesta opinión sobre como realizar una aplicación ...? | Jose Manuel | Varios | 3 | 25-05-2006 20:45:16 |
| Opinion Aplicacion Multinivel | Jvilomar | Varios | 1 | 25-10-2004 14:20:24 |
|