¿Qué tan seguro es mi método?

0

Quiero seleccionar datos de un MySql database en un dispositivo iphone. El método que parece que es el más fácil es conectarse a un archivo php con GET argumentos y luego devolverlo como una cadena.

Ahora me pregunto cuáles son las posibilidades de que alguien encuentre IP-address y el archivo y lo use desde un lugar que no sea la aplicación.

    
pregunta Arbitur 17.06.2014 - 14:15
fuente

3 respuestas

3

Las posibilidades son del 100%. Es fácil para cualquiera ver su código y encontrar la URL en él, o ver el tráfico de la red e inferir cómo se realizan sus solicitudes.

Cuando deba pensar en la seguridad de su aplicación, suponga que esta información es pública y vaya desde allí.

Si desea ralentizar el trabajo del atacante (¡pero tenga en cuenta que no podrá evitarlo!), puede buscar confusiones y pensar en cifrar su tráfico HTTP (asegúrese de verificar el certificado en su aplicación!).

    
respondido por el executifs 17.06.2014 - 14:26
fuente
1

Tu idea no tiene nada que ver con la seguridad. En el mejor de los casos, es la oscuridad.

Un script PHP que es accesible para todos es público por definición. Puede intentar ocultarlo un poco para que el visitante medio no lo encuentre de inmediato. Pero ni las direcciones IP ni los nombres de los archivos son datos secretos, por lo que cualquier persona con un poco de motivación los encontrará tarde o temprano. Y una vez que se conoce la URL, las personas pueden compartirla.

Si desea asegurarse de que solo pueda acceder al script, necesita autenticación . Hay muchas variaciones diferentes que van desde una contraseña simple hasta una autenticación sofisticada basada en certificados.

En su caso, obviamente se trata de datos de bajo valor. autenticación HTTP básica puede ser la opción correcta. Y, por supuesto, puede implementar su propia verificación de contraseña.

    
respondido por el Fleche 17.06.2014 - 14:50
fuente
0

No, no, no, no, no y no. Esto es completamente, completamente inseguro al 100%. No hay que arreglarlo. Está roto. La IP del servidor SQL no solo se puede descubrir de manera trivial (y sin una forma posible de evitar que se descubra de forma relativamente trivial, ya que cualquier información necesaria para conectarse está contenida dentro de la propia aplicación), sino que lo deja completamente abierto a las inyecciones y la manipulación en el camino también.

La forma correcta de manejar algo como esto es configurar un servicio web público que se ejecutará sobre la instancia del servidor SQL y enviará solicitudes válidas para la aplicación. El servicio web se ocupará de la esterilización y validación de que la entrada sea un caso de uso legítimo que podría provenir de la aplicación, generar el SQL apropiado o, preferiblemente, la llamada al procedimiento almacenado y luego devolver los datos a la aplicación.

Con cualquier sistema de tipo servidor, NUNCA debe confiar en el cliente. Puede haber excepciones muy raras si tiene un control estricto sobre el cliente, pero incluso así debería evitarse si es posible.

    
respondido por el AJ Henderson 17.06.2014 - 15:18
fuente

Lea otras preguntas en las etiquetas