簡體   English   中英

確保php腳本僅在本地運行

[英]Making sure php script is only run locally

我正在通過linux cronjob運行PHP腳本,我想確保它只能從我指定的IP地址的計算機遠程運行,再加上通過cronjob。 現在,我可以從$_SERVER['REMOTE_ADDR']檢查遠程IP地址,但這樣做也會通過cronjob停止執行。所以,如何讓兩件事都有效?

將cronjob移出您的網絡根目錄。

然后,您可以檢查cron是否在cli上運行:

if (php_sapi_name() != 'cli') {
    die();
}

在您的Web服務器上調整Cron並不是一個好主意。 然后每個人都可以啟動它。

您還需要檢查它是否也從命令行運行以處理cron情況

if (php_sapi_name() == 'cli' || $_SERVER['REMOTE_ADDR'] == 'your.ip.add.ress') {
    // allow
}

除了檢查IP地址之外,您還可以使用php_sapi_name函數檢查本地(cron)執行,如下所示:

if (php_sapi_name() == 'cli' || $_SERVER['REMOTE_ADDR'] == 'xxx.yyy.zzz.vvv') {
    //do your stuff
}
else {
    /show some error
}

也就是說,你需要記住,遠程地址很容易被欺騙,因此依賴它是不好的,至少如果服務器是對互聯網開放的話。 如果您在本地網絡上運行,它會更安全一些。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM