Evitar acceso a algo.php

  • Autor Autor Bakor
  • Fecha de inicio Fecha de inicio
Bakor

Bakor

Delta
Verificación en dos pasos activada
Verificado por Whatsapp
buen dia!

Tengo una consulta la cual no he podido resolver, tengo una api.php la cual se conecta a una app de android para mostrar imagenes y texto en la app, pero el problema es que si las personas pone miweb.com/api.php puede obtener la información que tengo ahí y no quiero eso me gustaría restringir el acceso para cualquier persona pero no se como hacerlo ya que si lo hago con dirección en el .htaccess mi app tampoco podrá tomar la información que necesita para mostrarla, alguien me podría decir si es posible realizar lo que comento.
 
Verficas si:

PHP:
// https://miweb.com/api.php?apikey=efhe9fh98948954

if ($_GET['apikey'] != 'efhe9fh98948954') {
    die();
}

De nada. Espero tu humilde donación jaja.
 
Última edición:
La solución que propone [MENTION=160416]cosme[/MENTION] es bastante sencilla y para tu caso también útil. Sin embargo, si quisieras algo más sofisticado podrías utilizar algo tipo el protocolo OAuth2 (el que usa Google, FB, TWT, etc.) y así tu información estaría más protegida.
 
Verficas si:

PHP:
// https://miweb.com/api.php?apikey=efhe9fh98948954

if ($_GET['apikey'] != 'efhe9fh98948954') {
    die();
}

De nada. Espero tu humilde donación jaja.

muchas gracias por tu ayuda, acabo de poner el codigo que me brindaste pero aun asi lo muestra 🙁
 
Pero los usuarios no conocen tu api key. Copia el codigo al inicio de todo.
 
Pero los usuarios no conocen tu api key. Copia el codigo al inicio de todo.

Si ya vi era el cache :ambivalence: y si funciona el problema es que la app en donde se deben de mostrar los datos de la api.php no los muestra sale en blanco y yo quiero que en la app si se muestren.
 
Si ya vi era el cache :ambivalence: y si funciona el problema es que la app en donde se deben de mostrar los datos de la api.php no los muestra sale en blanco y yo quiero que en la app si se muestren.

Tienes que enviar el pedido desde la app con la key, después en PHP miras si la key es real y muestras lo que quieres, si no es pues no muestra nada

Saludos
 
Si ya vi era el cache :ambivalence: y si funciona el problema es que la app en donde se deben de mostrar los datos de la api.php no los muestra sale en blanco y yo quiero que en la app si se muestren.


Has una pequeña modificación en el código para que puedas ver que está funcionando:

PHP:
// https://miweb.com/api.php?apikey=efhe9fh98948954

if (!isset($_GET['apikey']) || $_GET['apikey'] != 'efhe9fh98948954') {
    die("Accesso denegado.");
}

Esa es la clave. Ahora ve a tu app. Donde has escrito la url de tu api modificala y agregale tu apikey.
Ej:

Insertar CODE, HTML o PHP:
En algún lugar de tu app debe decir https://miweb.com/api.php
Debes cambiarlo por https://miweb.com/api.php?apikey=efhe9fh98948954
 
Podrías agregar código para que la página solo pueda ser vista por tu IP

Enviado desde mi Blade V6 Plus mediante Tapatalk
 
Podrías agregar código para que la página solo pueda ser vista por tu IP

Enviado desde mi Blade V6 Plus mediante Tapatalk

Pero cada usuario de la App tiene su propia IP, asi que nadie podría acceder, solo el dueño de la app podría.
 
Otra podría ser que verificará la procedencia de la solicitud, que lo mande como post y que añada la key cifrada.

Así seguro no podrán 🙂
 
Has una pequeña modificación en el código para que puedas ver que está funcionando:

PHP:
// https://miweb.com/api.php?apikey=efhe9fh98948954

if (!isset($_GET['apikey']) || $_GET['apikey'] != 'efhe9fh98948954') {
    die("Accesso denegado.");
}

Esa es la clave. Ahora ve a tu app. Donde has escrito la url de tu api modificala y agregale tu apikey.
Ej:

Insertar CODE, HTML o PHP:
En algún lugar de tu app debe decir https://miweb.com/api.php
Debes cambiarlo por https://miweb.com/api.php?apikey=efhe9fh98948954

gracias por la ayuda funciono perfecto
 
Genial. Ahora las personas que sepan la url de tu api no van a poder entrar, pero alguien con un poco mas de habilidad podría ver que request esta haciendo tu api y obtener la apikey. Para evitar esto debes usar el famoso https. Que tampoco es 100% seguro. Otra forma sería guardar todos los accesos que se hacen a la api en un archivo .log para detectar actividades sospechosas.
 
Gracia!, es justo lo que buscaba, y lo encontré sin googlearlo XD hahahah
 
Atrás
Arriba