仅接受来自本地主机的获取/发布请求

2022-08-30 20:48:31

由于我的Web应用程序需要加载的数据大小并不小,因此它有时会变得非常慢,因此我决定添加一些jQuery ajax函数来根据请求加载某些数据,然后将其保存在缓存中。

我想知道的是,如何限制仅来自本地主机/同一服务器/同一IP的任何请求,以便我可以避免从外部对我的应用程序进行任何调用?GETPOST

这意味着我的返回数据的php函数应该只在从localhost请求时才返回数据。

我的Web应用程序在CodeIgniter的框架上运行,我的Web服务器的配置是在ubuntu上运行的LAMP。

有什么想法吗?


答案 1

在您可以使用的构造函数中

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

但是,如果此方法不是您要查找的。使用,您可以执行快速Google搜索以返回拒绝所有人获取/发布的特定示例,然后允许127.0.0.1 / localhost。.htaccess


答案 2

使用.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>  

推荐