php安全方式从服务器检测localhost

有很多方法可以检测您是否在localhost或服务器上运行
PHP代码.但是他们使用$_SERVER和http标头,这可能是用户假的.

这对我来说很严重,因为我在我的网站上创建了一个开发人员php shell interactive,如果它不在localhost上,那么应该转到404.

最佳答案 最简单的答案是$_SERVER [“REMOTE_ADDR”].它通常被认为是相当安全的.

但是,如果通过脚本提供对命令行命令的访问,则可能还不够.有可能通过IP spoofing.从外部向您的脚本发送请求即使IP欺骗通常意味着攻击者不会收到响应,这可能足以触发破坏性命令. (这是一个非常深奥的场景,我对此知之甚少,而不是可能.)

你能做什么:

>不要在PHP中检查IP,而是确保无法使用更强大的方法从外部访问页面,例如通过设置防止来自外部的任何访问的硬件或软件防火墙,或者将Web服务器配置为仅侦听到当地的要求.
>不是从PHP中检查IP,而是使用某种密码身份验证来保护页面.
>与安全专家交谈(可能在http://security.stackexchange.com),解释您的网络设置,并询问是否在您的特定情况下可以进行IP欺骗.
>通过服务器的本地命令行CLI而不是Web服务器使您的脚本可用.将脚本放在Web服务器的根目录之外. (但是这个选项可能会破坏你拥有交互式shell的特定目的)

或者你当然可以相信没有人会发现.如果这是一个低风险的私人项目,那么考虑IP欺骗可能会大规模地过度思考.

点赞