2012-12-12 66 views
1

我使用Perl PAR模塊來打包用Perl編寫的應用程序。作爲安全請求,我想阻止用戶修改腳本。是否有可能在PAR模塊中做到這一點,或者有沒有其他的方法來解決這個問題?防止用戶修改Perl腳本

+2

以下是對一些方法及其侷限性的有用討論:http://www.perlmonks.org/?node_id=848604。最終,你不能阻止用戶獲得你的代碼,但你可以讓它變得更加困難。 – dan1111

回答

0

那麼,顯而易見的方法是修改腳本的安全性,以僅允許您想要(或在某個組中)用戶寫入權限。

在Linux中,您可以使用chmod 755 [文件名]。這會給腳本所有者讀取,寫入和執行權限,並且其他人都可以讀取和執行(以便它們可以運行它)。如果您想要更具體的答案,請告訴我們您的確切目標是什麼。是否只有特定的組可以讀取和執行此腳本?

+2

嗯......如果他們可以讀取它,他們可以將它複製到一個新文件,然後修改它的內容! – dan1111

+0

當然。你是絕對正確的。但是我假設PAM用戶的設置對於運行腳本很重要,這就是爲什麼他不希望用戶運行這個腳本,特別是(例如,可能是腳本的所有者是root)。在這種情況下,用戶將其複製到另一個文件將無權運行所複製的腳本並影響其影響的任何內容。有很多問題,這就是爲什麼我要求提供更多信息。 :) –

+1

他們仍然可以使用'perl -e'來修補腳本...覆蓋一些內置...;做「script.pl」或死於$ @''。他們甚至可以讓Perl自動加載一個模塊,該模塊將鉤入其解析器並更改腳本的解析方式。 (減去自動加載,這是我的模塊[Syntax :: Feature :: Loop](http://search.cpan.org/perldoc?Syntax::Feature::Loop)是如何工作的。) – ikegami