我编写了一个简单的服务器应用程序(带有 HTTP 接口)。我想确保只处理来自本地计算机的调用 - 即我想阻止外部人员访问/使用我的服务器。
我如何限制外部人员(即来自远程机器的请求)?
顺便说一句,我正在 Linux 上部署
答案1
其他答案假设您已经编写了一个 CGI/模块化 apache 应用程序 - 我假设您已经编写了自己的定制应用程序,该应用程序也监听端口 80,以便于管理。
在 Linux 上,最简单的方法(不需要编写自己的 .htaccess访问控制列表系统或类似系统),就是使用iptables为了防止除本地访问您选择的端口之外的任何访问:
iptables -A INPUT -p tcp --dport 80 -s 127.0.0.1 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j DROP
显然,最好将其放入初始化脚本它将在启动时加载,并且可能变得更加强大,但对于您当前定义的有限目的而言,这应该可以完成工作。:)
答案2
尝试添加一个.htaccess(到您的 web 应用程序)文件,在其中指定类似的内容:
允许来自 192.168.1。
或者您正在使用的本地 url 的任何 ip 模式(127.0.0.1 也应该是有效的)。
答案3
在 Apache 中,你可以通过使用.htaccess
文件来轻松实现这一点。这里有一些通过 IP 地址限制访问的示例在这个网站上。
要禁止外部连接并使其仅可由本地主机访问:
order deny,allow
deny from all
allow from 127.0.0.1
只需确保指定order deny,allow
优先权deny
即可。另外,请确保指定deny from all
禁止所有其他 IP 访问该应用程序。
您还可以通过省略最后一个数字组在最后一行指定地址范围。
答案4
您希望将打开的侦听套接字“绑定”到特定 IP 地址。如果绑定到环回地址,则只有本地计算机上的程序才能连接(本地主机网络永远不会路由到给定计算机之外)
这比防火墙配置更简单,因为它完全包含在您的程序中,并且是可移植的。