WEB中如何保护文件的安全性。

BearRui 2008-03-10 09:50:52
在WEB中提供一些机密文件给很多用户下载看,很容易禁止没有权限的用户下载文件。

但请问如何让有权限的用户可以查看文件,但不能把文件下载到本地,或者就算把文件下载到本地也不能打开。

然后如何控制用户在查看文件的同时不能使用系统的copy功能(防止用户copy文件)。

请大家都出点子,不要讨论需求合不合理。

谢谢。
...全文
666 57 打赏 收藏 转发到动态 举报
写回复
用AI写文章
57 条回复
切换为时间正序
请发表友善的回复…
发表回复
tj202 2009-02-02
  • 打赏
  • 举报
回复
我也想问下楼主,问题解决了吗?
我现在也是碰到一个同样的问题
reacle 2008-12-24
  • 打赏
  • 举报
回复
我想下楼主,问题解决了吗?
我现在也是碰到一个同样的问题,在WEB中浏览PDF文件,禁止用户复制,保存和打印。急待解决中~~~~~~~~~~~~
whirlyzhq 2008-04-30
  • 打赏
  • 举报
回复
我司的解决方案(基于微软rms技术开发)可以批量完成
office文档,pdf文档,cad档,各种图档,flash档,catia档等的加密授权。
并提供多种编程语言的二次开发接口,方便与现有系统整合。
如有需要,可与我联系,我司可为你先安装演示环境
联系邮箱:outrace@gmail.com
spark_li 2008-03-12
  • 打赏
  • 举报
回复
rere
boogood 2008-03-11
  • 打赏
  • 举报
回复
学习ing
  • 打赏
  • 举报
回复
回复半天也没结果。csdn又抽筋了


“/”应用程序中的服务器错误。
--------------------------------------------------------------------------------

未能加载文件或程序集“CSDN.Community.SectionConfigDataCenter”或它的某一个依赖项。另一个程序正在使用此文件,进程无法访问。 (异常来自 HRESULT:0x80070020)
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.IO.FileLoadException: 未能加载文件或程序集“CSDN.Community.SectionConfigDataCenter”或它的某一个依赖项。另一个程序正在使用此文件,进程无法访问。 (异常来自 HRESULT:0x80070020)

源错误:

执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。

程序集加载跟踪: 下列信息有助于确定程序集“CSDN.Community.SectionConfigDataCenter”无法加载的原因。


警告: 程序集绑定日志记录被关闭。
要启用程序集绑定失败日志记录,请将注册表值 [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD)设置为 1。
注意: 会有一些与程序集绑定失败日志记录关联的性能损失。
要关闭此功能,请移除注册表值 [HKLM\Software\Microsoft\Fusion!EnableLog]。



堆栈跟踪:


[FileLoadException: 未能加载文件或程序集“CSDN.Community.SectionConfigDataCenter”或它的某一个依赖项。另一个程序正在使用此文件,进程无法访问。 (异常来自 HRESULT:0x80070020)]
System.Reflection.Assembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, Assembly locationHint, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection) +0
System.Reflection.Assembly.nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, Assembly locationHint, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection) +54
System.Reflection.Assembly.InternalLoad(AssemblyName assemblyRef, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection) +211
System.Reflection.Assembly.InternalLoad(String assemblyString, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection) +141
System.Reflection.Assembly.Load(String assemblyString) +25
System.Web.Configuration.CompilationSection.LoadAssemblyHelper(String assemblyName, Boolean starDirective) +32

[ConfigurationErrorsException: 未能加载文件或程序集“CSDN.Community.SectionConfigDataCenter”或它的某一个依赖项。另一个程序正在使用此文件,进程无法访问。 (异常来自 HRESULT:0x80070020)]
System.Web.Configuration.CompilationSection.LoadAssemblyHelper(String assemblyName, Boolean starDirective) +596
System.Web.Configuration.CompilationSection.LoadAllAssembliesFromAppDomainBinDirectory() +211
System.Web.Configuration.CompilationSection.LoadAssembly(AssemblyInfo ai) +46
System.Web.Compilation.BuildManager.GetReferencedAssemblies(CompilationSection compConfig) +177
System.Web.Compilation.BuildProvidersCompiler..ctor(VirtualPath configPath, Boolean supportLocalization, String outputAssemblyName) +185
System.Web.Compilation.ApplicationBuildProvider.GetGlobalAsaxBuildResult(Boolean isPrecompiledApp) +230
System.Web.Compilation.BuildManager.CompileGlobalAsax() +49
System.Web.Compilation.BuildManager.EnsureTopLevelFilesCompiled() +462

[HttpException (0x80004005): 未能加载文件或程序集“CSDN.Community.SectionConfigDataCenter”或它的某一个依赖项。另一个程序正在使用此文件,进程无法访问。 (异常来自 HRESULT:0x80070020)]
System.Web.Compilation.BuildManager.ReportTopLevelCompilationException() +57
System.Web.Compilation.BuildManager.EnsureTopLevelFilesCompiled() +612
System.Web.Hosting.HostingEnvironment.Initialize(ApplicationManager appManager, IApplicationHost appHost, IConfigMapPathFactory configMapPathFactory, HostingEnvironmentParameters hostingParameters) +644

[HttpException (0x80004005): 未能加载文件或程序集“CSDN.Community.SectionConfigDataCenter”或它的某一个依赖项。另一个程序正在使用此文件,进程无法访问。 (异常来自 HRESULT:0x80070020)]
System.Web.HttpRuntime.FirstRequestInit(HttpContext context) +3465427
System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context) +69
System.Web.HttpRuntime.ProcessRequestInternal(HttpWorkerRequest wr) +279




--------------------------------------------------------------------------------
版本信息: Microsoft .NET Framework 版本:2.0.50727.1433; ASP.NET 版本:2.0.50727.1433
Ivony 2008-03-11
  • 打赏
  • 举报
回复
嗯,RMS倒是个办法。
cshadow 2008-03-11
  • 打赏
  • 举报
回复
用微软的RMS吧
beijixing8858 2008-03-10
  • 打赏
  • 举报
回复
学习
fcxxfcxx 2008-03-10
  • 打赏
  • 举报
回复
学习
wdzr_826 2008-03-10
  • 打赏
  • 举报
回复
充其量,能挡一批电脑盲。
viena 2008-03-10
  • 打赏
  • 举报
回复
让我想起了那个经典图片,给低矮的栅栏围起来的院子装的防盗门,防君子不防小人,那又何必呢?
Soloboy1020 2008-03-10
  • 打赏
  • 举报
回复
要是我抓屏呢...
viena 2008-03-10
  • 打赏
  • 举报
回复
同意Ivony的说法,关于类似的问题,以前也讨论过很多次了,现在我都懒得说了~
随风醉舞 2008-03-10
  • 打赏
  • 举报
回复
同意加密~~~~
SeerMi 2008-03-10
  • 打赏
  • 举报
回复
用flash播放器打开文件,就是给flash播放器传入文件id,在里面通过脚本打开相应的文件,并控制文件流.不下载到本地
Ivony 2008-03-10
  • 打赏
  • 举报
回复
我一直说Web有Web的游戏规则,不按照游戏规则的没有好结果。

就好比LZ这个需求,从LZ的角度来看,只要能有一个方案能够提高窃取资料的难度就行了。然而Web的游戏规则是你不能改变客户端,Web的游戏规则就是做好身份验证,比如说证书、比如说非对称加密,这些都是Web游戏规则内的事情。

LZ偏偏不,偏偏认为身份验证一定不能阻挡所有的入侵,要让别人看到了也带不走。问题是别人既然能冲破你的身份验证,你这点儿小把戏对他又有什么用呢?

还是你要防止合法用户带走资料?那合法用户跑到别人公司打开这个东西然后直接打印出来就行了,你到底在防虾米?

LZ始终不过是在于自己一个虚构的敌人在作战。这个敌人他能伪造身份,而且他一定要把这些资料Copy走。在我看来,这与唐吉珂德无异。LZ一直说我没做过所以不清楚需求,我为政府开软件日子也不算短了,什么稀奇古怪的需求没见过?在我看来,帮助客户解决问题才是我们软件人该做之事,而不是按照合同去敷衍各种奇思妙想。
BearRui 2008-03-10
  • 打赏
  • 举报
回复
[Quote=引用 20 楼 hdt 的回复:]
既然都能控制别人不允许照像,哪还非那么大劲干嘛,把计算机的除了显示器,键盘鼠标以外的输出设备拆了就行

[/Quote]

兄弟可能看错,我说禁止别人照相是举例说明的。并不是不能照相什么的。

因为是WEB程序,到哪里都可以访问的。不是需求的问题。

Ivony 2008-03-10
  • 打赏
  • 举报
回复
显示器放在几公里外,要看的人拿望远镜在山头往那边看,望远镜看后没收。
BearRui 2008-03-10
  • 打赏
  • 举报
回复
[Quote=引用 18 楼 asmetoyou 的回复:]
不明白您说的查看是指什么情况
但是有权限的用户查看时,文件至少已经缓存到客户端机器的内存里了
偶觉得这样一来不存在什么不被下载的概念,所以只能给文件加密了
[/Quote]

只要不直接在硬盘就好,在内存是肯定已经在内存中了,但这样就大大增加用户窃取资料的难度了。

毕竟直接从硬盘上窃取文件谁都会,但会从内存中窃取文件的可能就不多了吧。

呵呵!!!
加载更多回复(37)

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧