【发布时间】:2010-02-15 20:53:24
【问题描述】:
使用我签名的小程序的用户之一无法从他的网络驱动器上传文件(基本上无法访问驱动器),并且使用我的签名小程序的其他用户中很少有人能够访问和上传文件从网络驱动器。我能知道背后的原因是什么吗?
注意:无法从网络驱动器访问文件的用户,他能够手动从网络驱动器访问文件并能够复制到他的本地驱动器。
【问题讨论】:
使用我签名的小程序的用户之一无法从他的网络驱动器上传文件(基本上无法访问驱动器),并且使用我的签名小程序的其他用户中很少有人能够访问和上传文件从网络驱动器。我能知道背后的原因是什么吗?
注意:无法从网络驱动器访问文件的用户,他能够手动从网络驱动器访问文件并能够复制到他的本地驱动器。
【问题讨论】:
确保您将代码包装在特权块中,否则您的签名将无关紧要。
您可以使用类似的方法来读取文件。
File inputFile = (File) AccessController.doPrivileged(new PrivilegedAction() {
public Object run()
{
File inputFile1 = new File("C:\\Program Files\\MyFolder\\MyFile.jpg");
return inputFile1;
}
});
FileReader in = new FileReader(inputFile);
如果您想使用变量而不是静态文本作为文件位置,您必须使用这样的最终变量。
final String myfilename = <path or string var of filename>
File inputFile = (File) AccessController.doPrivileged(new PrivilegedAction() {
public Object run()
{
File inputFile1 = new File(myfilename);
}
}};
FileReader in = new FileReader(inputFile);
【讨论】:
签署小程序并不一定会绕过所有安全限制,如果是这种情况,那么犯罪分子就会签署他们的漏洞利用程序。在授予小程序访问权限之前,用户仍然必须信任证书。我会确保小程序可以读取/写入local drive,因为我怀疑这也是禁区。
【讨论】: