登陸

用戶

上一篇:php - 為什么很多第三方接口,都改成了基于http,直接傳遞json數據的方式來代替webservice? 下一篇:不使用三方包時,如何在ThinkSNS中建立優雅的用戶權限管理

七乐彩坐标走势图:PHP如何禁止外網訪問

榮華軟件  1490  1   2017-12-21 16:08

三d连线带坐标走势图 www.gjvgfb.com.cn 某個PHP文件,如果禁止外網訪問,即這個PHP僅限服務器訪問
因為很多數據需要用到定時任務定時運行php腳本生成,以防外網或蜘蛛運行此PHP而生成錯誤的數據,所以需要屏蔽外網,只限服務器訪問。

1條回答

  • 管理員2

    一般直接對外服務的服務器,都是由Web服務器接受HTTP請求,然后再轉給mod_php或者php-fpm解釋執行PHP程序。這意味著完全可以在Web服務器上限制。Apache服務器的限制方法 @iefsou 君已經提供了,我來寫個nginx的限制配置: location /uri/path/to/your/script.php { allow 192.168.0.0/16; allow 172.16.0.0/12; allow 10.0.0.0/8; allow 127.0.0.0/8; deny all; } 這個方法也可以用在外網限制個別IP可以訪問,具體請參考nginx的access??榕渲檬植?。 當然,在PHP程序里限制也不是不可以,按同樣的方式判斷用戶的IP是否局域網IP: function is_local_ip($ip_addr = null) { if (is_null($ip_addr)) { $ip_addr = $_SERVER['REMOTE_ADDR']; } $ip = ip2long($ip_addr); return $ip & 0xffff0000 == 0xc0a80000 // 192.168.0.0/16 || $ip & 0xfff00000 == 0xac100000 // 172.16.0.0/12 || $ip & 0xff000000 == 0xa0000000 // 10.0.0.0/8 || $ip & 0xff000000 == 0x7f000000 // 127.0.0.0/8 ; } 如果不是來自局域網,你就header輸出個403或者顯示個錯誤頁面給他看就行。 值得一提的是用PHP的方法判斷會導致請求必須交給PHP解釋器,然而PHP解釋器的性能比nginx直接返回403要差得太多,具體可以自己壓測一下。當然如果是在開發給客戶自己安裝的產品就不要讓沒經驗的小白客戶們改服務器配置了。

    2017-12-21

登陸后可回復

  1. 登陸
  2. 注冊
服務熱線

400-692-8081

( 周一至周五 09:00-17:00 )

聯系我們

名稱:煙臺榮華軟件科技有限公司

地址:煙臺市高新區航天路101號C棟5樓516

座機:0535-3458081

郵箱:[email protected]

Q Q:327195471

[email protected] 煙臺榮華軟件科技有限公司 版權所有 魯ICP備14003838號-1