Принимать запросы на получение / отправку только с локального хоста

Поскольку размер данных не так много, что мое веб-приложение нужно загружать, оно становится довольно медленным несколько раз, поэтому я решил добавить некоторые функции jQuery ajax для загрузки определенных данных по запросу, а затем сохранить их в кеше.

Я хотел бы знать, как ограничить любые запросы GET или POST только с localhost / same server / same ip, чтобы я мог избежать любых вызовов извне в мое приложение?

Это означает, что мои php-функции, которые возвращают данные, должны возвращать данные только при запросе с localhost.

Мое веб-приложение работает на основе CodeIgniter, а конфигурация моего веб-сервера – LAMP, работающая на ubuntu.

Есть идеи?

в конструкторе, который вы могли бы использовать

 if ($_SERVER['SERVER_ADDR'] != $_SERVER['REMOTE_ADDR']){ $this->output->set_status_header(400, 'No Remote Access Allowed'); exit; //just for good measure } 

Однако, если этот метод не является тем, что вы ищете .. используйте .htaccess вы можете выполнить быстрый поиск по Google, чтобы вернуть конкретный пример отказа от получения / публикации всем, а затем разрешить 127.0.0.1/localhost.

Использование .htaccess, вероятно, лучший способ, разрешить только с вашего локального адреса и 127.0.0.1. Я нашел этот пример на petergasser.com и немного изменил его:

 AuthName "bla" AuthType Basic <Limit GET POST> order deny,allow deny from all allow from 127.0.0.1 allow from <your-ip-here> </Limit> 

Используйте ключ (подумайте о ключах API), чтобы отправить запрос на ваш сервер. Затем на вашем сервере вы проверяете этот ключ, и если он правильный, вы возвращаете данные.

Я использую это, благодаря @gorelative

 if( isset($_SERVER['REMOTE_ADDR']) AND ( $_SERVER['REMOTE_ADDR'] !== $_SERVER['SERVER_ADDR'] ) ){ die(' Access Denied, Your IP: ' . $_SERVER['REMOTE_ADDR'] ); }