的子集,假设我有一个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