我是一名想要設計在線評審系統的學生。如何限制程序的文件權限
我有一個問題:爲了保證服務器的安全,我必須讓程序無權讀取或寫入任何文件。 該程序是另一個用戶通過在線評審系統提交的內容。這不是嚴重程序本身。
在線評審系統的用戶提交他們的源代碼,然後服務器程序編譯並運行它。所以服務器程序必須保證服務器的安全。
我的平臺是Windows,我使用C++進行編程。
任何人都可以給我一些建議嗎?
我是一名想要設計在線評審系統的學生。如何限制程序的文件權限
我有一個問題:爲了保證服務器的安全,我必須讓程序無權讀取或寫入任何文件。 該程序是另一個用戶通過在線評審系統提交的內容。這不是嚴重程序本身。
在線評審系統的用戶提交他們的源代碼,然後服務器程序編譯並運行它。所以服務器程序必須保證服務器的安全。
我的平臺是Windows,我使用C++進行編程。
任何人都可以給我一些建議嗎?
你不能輕易地阻止程序本身的功能,並且無法驗證程序是否非惡意。
你能做什麼:以一個有限(接近非)訪問權限的用戶身份運行程序。您的服務器程序需要成爲該用戶並執行它編譯的程序。您可能還想使用該用戶帳戶來實際編譯該程序(在不太可能的情況下,有人知道如何利用您的編譯器)。
作爲不同用戶執行程序的windows命令是:runas
。
您可以更改文件和目錄的權限,然後使用CreateProcessAsUser以具有有限(接近非)訪問權限的用戶身份運行用戶提交的程序。
如何更改文件和目錄的所有權限? – SXKDZ 2012-07-11 16:49:26
爲什麼你想讓你的程序在C++ @ Windows中? – 2012-07-11 14:26:13
我認爲這將是一個有效的問題,如果您的在線法官想支持的語言是C++。 – nhahtdh 2012-07-11 14:26:55
以主機上沒有權限的用戶身份運行程序(類似於* nix框中的'nobody')。 – 2012-07-11 14:27:03