的子集,假設我有一個Perl(或Python)腳本,做一些高度機密的;我只想讓某些用戶真正能夠使用腳本。目前,我通過保持稱爲allowedUsers.txt
和只讀的文本文件獲得此功能檢查以下各項:限制腳本用戶
my $username = `whoami`;
my %allowedUsers;
open ALLOWED_USERS, "allowedUsers.txt";
while(<ALLOWED_USERS>) {
$allowedUsers{$_} = 1;
}
if($allowedUsers{$username} != 1) {
die "Sorry, user $username does not have access.\n";
}
這只是正常,但因爲腳本是必然可讀(否則Perl本身就不能執行它),沒有什麼能阻止人們簡單地複製腳本,註釋掉這段代碼,然後運行他們的「黑客」版本來規避身份檢查!
有沒有更好的方式來實現腳本執行的限制用戶的子集?例如,我可以讓perl代碼不可讀,但可以通過某種方式由每個人執行嗎?
在'開放ALLOWED_USERS, 「貓allowedUsers.txt |」 貓與管;'是無用的。編寫'open(ALLOWED_USERS,「allowedUsers.txt)更清晰;' – ChrisJ 2012-02-08 22:34:28
夠公平的...... – asf107 2012-02-08 22:35:20
你知道如果用戶可以複製腳本並使用它,那也意味着他們對你的系統有權限訪問你試圖從他們隱藏的任何數據,換句話說,這是[「通過隱晦的安全性」](http://en.wikipedia.org/wiki/Security_through_obscurity)。 – TLP 2012-02-08 22:44:41