我正在用Java servlets編寫服務器應用程序,並且在某些時候,必須執行用戶上傳的Python腳本。是否有可能創建一個有限制的進程,比如只能訪問某個目錄(可能使用ProcessBuilder)?用Java執行未知的Python腳本
我已經看過了pysandbox,但是我不確定在執行未知的Python腳本時這是否足夠安全。
腳本所要做的就是使用某些庫處理給定的String,並使用print函數返回String。
我的方法是否正確或是否有更好的方法來執行未知腳本?
我正在用Java servlets編寫服務器應用程序,並且在某些時候,必須執行用戶上傳的Python腳本。是否有可能創建一個有限制的進程,比如只能訪問某個目錄(可能使用ProcessBuilder)?用Java執行未知的Python腳本
我已經看過了pysandbox,但是我不確定在執行未知的Python腳本時這是否足夠安全。
腳本所要做的就是使用某些庫處理給定的String,並使用print函數返回String。
我的方法是否正確或是否有更好的方法來執行未知腳本?
作爲我的回答,白名單和黑名單目前爲止只能走到盡頭,而且最容易被黑客破解。不要打擾這些安全風格。
儘可能安全地使用pypy-sandbox它會創建一個操作系統級別的沙箱,並嘗試隔離可能導致惡意執行的進程。
爲了實際安全,您可能需要更類似於以下模型的內容。
或者,也許我只是偏執。
嗯,我認爲在安全問題上有點偏執不是壞事:) 你提到的步驟是關於我在找什麼,我會看看那些。我可能不會爲每個用戶運行一個虛擬機,因爲它會更安全,但對於我的場景來說有點超載。 – user2035039
沒有安全措施。 什麼都不會保護你。 –