終端仿真器必須嵌入到一個網頁中,用戶必須通過網頁訪問來編譯和運行在服務器上創建的Java程序。我想在終端中編譯和運行程序。客戶端不需要安裝任何應用程序軟件。如何訪問客戶端網頁中的服務器端終端?
0
A
回答
2
我想提出以下建議:
- 使一個文本編輯DIV(設置CONTENTEDITABLE屬性爲true)和風格它看起來像一個控制檯。
- 然後綁定到它的keypress事件來監視一個輸入,在這個輸入上你ajax請求一個服務器端腳本來執行你輸入的任何內容。例如。使用php的exec()並輸出它的返回值。
- 追加服務器端腳本到div響應,並重復..
雖然開放控制檯給用戶時,你應該非常小心。您可以通過明確地向所有終端命令預先添加功能來進一步限制終端的能力,例如, <?php echo exec('git '.$_GET['cmdtxt']); ?>
是確保調用git的一種方法,但由於您可能潛在地執行第二個命令,因此它仍然很脆弱。我相信你可以弄清楚你的安全需求是什麼,並正確地驗證它們。
如果這看起來很模糊,那只是因爲你的問題不是太具體。這是你正在尋找的答案嗎?讓我知道:)
0
首先,您可以創建一個顯示結果的div和命令的textarea。檢查textarea的按鍵,並在用戶按下Enter鍵時使用AJAX將命令發送到服務器。你可以讓它們看起來更像終端一樣。
請注意,將控制檯暴露給用戶很容易被黑客入侵。始終檢查用戶輸入以確保無法執行危險命令。如何過濾命令
示例代碼:
<?php
$cmd = $_POST['cmd'];
$allowed = array('ls','git','grep','...');//The allowed commands
foreach($allowed as $part){
if(strpos($cmd,$part) === false){
echo 'Command not recognized!';
}
}
ob_start();
passthru($cmd);
$result = ob_end_clean();
echo json_encode(array('result'=>$result));
希望這可以幫助你。
相關問題
- 1. 如何訪問Silverlight客戶端和服務器端?
- 2. 如何從客戶端訪問服務器端WebControl?
- 3. 如何從客戶端訪問服務器主機名知道客戶端訪問服務器FQDN
- 4. JavaScript中的客戶端服務器端
- 5. Java:服務器/客戶端 - >客戶端/客戶端
- 6. 哪個客戶端的服務器端網頁編程更好?
- 7. 在服務器端或客戶端建立網頁?
- 8. 從服務器端,如何更新客戶端網頁中的數據?
- 9. 訪問客戶端數組在服務器端ASP.Net
- 10. 從客戶端程序訪問服務器端代碼
- 11. 在服務器端訪問客戶端變量
- 12. 訪問跟蹤 - 服務器端/客戶端
- 13. 會話服務器端或客戶端(可否訪問)?
- 14. 在服務器端通過客戶端訪問sqlite javascript
- 15. 客戶端或服務器端的ServicePointManager.DefaultConnectionLimit?
- 16. Phpmyadmin Mysql網絡客戶端和終端客戶端的差異
- 17. 客戶端網絡服務
- 18. Tcp客戶端/服務器 - 客戶端消息問題
- 19. 如何從服務端客戶端
- 20. asp.net驗證客戶端或客戶端或服務器端
- 21. 如何從終端訪問分析客戶端密鑰?
- 22. Java客戶端訪問.net WCF服務
- 23. 訪問Wsdl Web服務客戶端GWT
- 24. 服務器端客戶端程序C
- 25. 服務器端和客戶端javascript
- 26. 服務器端與客戶端計算
- 27. 服務器端MVC +客戶端MVC
- 28. 客戶端與服務器端異步
- 29. 客戶端到服務器端調用
這不是問題。請重新說明它,以便它要求具體的東西。 – adrusi