簡體   English   中英

在遠程服務器上執行一個 PHP 腳本文件而不復制到遠程服務器上

[英]Execute a PHP script file on a remote server without copying it on the remote server

我有兩個 (linux) 服務器:A 和 B

PHP 腳本在 A 上,我想在 B 上執行它但不在 B 上復制它,這個腳本永遠不應該存在於 B 上(僅在 ram 中),所以沒有“在 B 上復制,在 A 上執行來自 ssh 命令,在上擦除乙”。

我有 ssh 鍵可以從 A 訪問 B,但不能從 B 訪問 A。可能是這樣的:

ssh root@B 'php -r ' | echo /myscript/on_serverA

要么

<?php
$script=file_get_contents('executable_php_script');
system('ssh root@IP \'php -r "'.$script.'"\'');

有任何想法嗎?

注意:這是一個非常具體的案例,所以我不需要替代或安全建議。

  • 您可以指定要在遠程計算機上運行的命令的名稱作為 ssh 的參數
  • PHP 將執行通過 STDIN 傳輸到其中的腳本
  • 任何通過管道傳輸到ssh的內容都將傳遞到正在運行的程序的 STDIN 中

因此:

ssh example.com php < test.php

…將 ssh 轉換為example.com ,在那里運行php和 pipe test.php的內容從本地機器進入遠程php


關於對該問題的評論:請注意,如果對example.com具有根訪問權限的人想要竊取腳本,他們可以將php可執行文件替換為包裝器,該包裝器將 STDIN 記錄到文件中,然后再將其轉發到真正的php 這遠非防彈安全措施。

暫無
暫無

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

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