提供一个防止用户下载服务器上的Swf,PPT,Avi文件的方案 通过servlet跳转到ppt文件之类.. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 to: jFresH_MaN(TM) 有例子吗?给点代码也行谢谢 其实道理不复杂的,我说个例子吧页面上有个链接<a href="abc/abc.avi">abc</a>我们以前都是这么写的现在不直接写出地址<a href="abc/one.jsp">abc</a>那么这时候我们点了链接就转发到这个jsp了我们可以实现在session里面setAttribute()来控制权限。如果getAttribute()有值说明是正常地使用这个avi,那么就可以返回地址如果有人直接使用链接来得到这个avi,那么在session里面就没有控制权限的attribute了,这时候我们就不会返回avi的地址。这样就能控制不让客户直接得到地址下载资源文件了。 to: jFresH_MaN(TM)one.jsp里面放一个Avi代码要怎么写的,麻烦你了 在one.jsp里写一个流输出就可以的 首先可以告诉你,这仅靠IE或者Mozilla等是完全不可能的,不管你怎么去隐藏,我只要使用Charles或CommView之类的软件捕捉网络连接就完全截获数据,因此,简单的依靠变换地址是无法完成的如果你需要完成类似的功能,可以使用流文件来实现,这样别人虽然知道了地址,却无法保存文件,不过令人遗憾的是,使用“影音传送带”之类的软件可以将流文件下载因此,唯一可行的办法就是自己写一个ActiveX控件,在控件中完成输出,并且要对源进行适当的加密,在你自己的控件中来完成解码的过程,这样,即使别人下载地址中的流,却也无法还原 对楼上的补充一下:也许我的话武断了一些,但是到目前为止,不使用ActiveX等程序进行前台控制的文件,基本上我都能找到最终的URL,不管他隐藏得多深,唯一一个没有能够下载的是使用ColdFusion(MacroMedia的服务器软件)做为服务器,前台使用Flash来进行电影播放的网站。 可以防止。如果你是要所有的用户在任何情况下都不能下载,那就比较简单。但网页上也不能调用这些文件了。如果是让用户不能直接下载,但是网页上面可以看,那就比较复杂了。比如你可以要求用户登录,然后可以检测session. 但是并不能完全实现,因为浏览器会把内容都缓存下来。如果你是用jsp,那么是有办法实现的,就是 Filter (过滤器)。当请求发送到服务器(如Tomcat)时,如果对应该文件扩展配置了过滤器,就会先经过该过滤器,在这个过滤器中可以进行一些判断,决定让请求继续或者转移向别的页面。过滤器一个较常用的用法是检测用户是否登录,未登录就转向到登录页面,而不用在每个页面都放置检验登录的代码。 public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { RequestDispatcher dispatcher = null; HttpSession session = ((HttpServletRequest)request).getSession(); String sPath = ((HttpServletRequest)request).getServletPath().toLowerCase(); boolean bAvi = sPath.endsWith(".avi"); boolean bSwf = sPath.endsWith(".swf"); boolean bPpt = sPath.endsWith(".ppt"); boolean bNeedCheck = (bAvi || bSwf || bPpt); //检测是否已经登录 if(bNeedCheck && session.getAttribute("UserId")==null){ dispatcher = request.getRequestDispatcher("/login.jsp"); dispatcher.forward(request, response); }else{ chain.doFilter(request, response); } } 我用FlashGet直接下在服务器上的AVI文件的地址,确实不能下载到这个AVI文件 jsp 嵌入视频问题 mysql linux 存储过程 struts2 的传值问题 页面乱码问题 我的applet中出现了一个问题,请问是怎么回事? 运行一个"标签实现类"出错,请问怎么调试? JSP运行时错误,帮个忙!!! 庆祝JSP回到java,热烈庆祝!!! resin和servlet的问题? java 文件下载谷歌可以IE不可以 JSP程序SESSION与ASP中的SESSION共享问题 如何实现读取硬盘上任意位置的文件,然后实现文件下载功能呢?请指教!
有例子吗?给点代码也行
谢谢
<a href="abc/abc.avi">abc</a>
我们以前都是这么写的
现在不直接写出地址
<a href="abc/one.jsp">abc</a>那么这时候我们点了链接就转发到这个jsp了
我们可以实现在session里面setAttribute()来控制权限。
如果getAttribute()有值说明是正常地使用这个avi,那么就可以返回地址
如果有人直接使用链接来得到这个avi,那么在session里面就没有控制权限的attribute了,这时候我们就不会返回avi的地址。
这样就能控制不让客户直接得到地址下载资源文件了。
one.jsp里面放一个Avi代码要怎么写的,
麻烦你了
也许我的话武断了一些,但是到目前为止,不使用ActiveX等程序进行前台控制的文件,基本上我都能找到最终的URL,不管他隐藏得多深,唯一一个没有能够下载的是使用ColdFusion(MacroMedia的服务器软件)做为服务器,前台使用Flash来进行电影播放的网站。
如果你是要所有的用户在任何情况下都不能下载,那就比较简单。但网页上也不能调用这些文件了。
如果是让用户不能直接下载,但是网页上面可以看,那就比较复杂了。比如你可以要求用户登录,然后可以检测session. 但是并不能完全实现,因为浏览器会把内容都缓存下来。
如果你是用jsp,那么是有办法实现的,就是 Filter (过滤器)。
当请求发送到服务器(如Tomcat)时,如果对应该文件扩展配置了过滤器,就会先经过该过滤器,在这个过滤器中可以进行一些判断,决定让请求继续或者转移向别的页面。
过滤器一个较常用的用法是检测用户是否登录,未登录就转向到登录页面,而不用在每个页面都放置检验登录的代码。
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException {
RequestDispatcher dispatcher = null;
HttpSession session = ((HttpServletRequest)request).getSession(); String sPath = ((HttpServletRequest)request).getServletPath().toLowerCase();
boolean bAvi = sPath.endsWith(".avi");
boolean bSwf = sPath.endsWith(".swf");
boolean bPpt = sPath.endsWith(".ppt");
boolean bNeedCheck = (bAvi || bSwf || bPpt); //检测是否已经登录
if(bNeedCheck && session.getAttribute("UserId")==null){
dispatcher = request.getRequestDispatcher("/login.jsp");
dispatcher.forward(request, response);
}else{
chain.doFilter(request, response);
}
}