比如:
若用户在地址栏里输入:http://www.mysite.com/source/1.rar
然后就得到了该资源,请问如何避免这样。1.rar在我的网站的目录下存放的。
若用户在地址栏里输入:http://www.mysite.com/source/1.rar
然后就得到了该资源,请问如何避免这样。1.rar在我的网站的目录下存放的。
解决方案 »
- 数字、字母 ASC码互相转换? 在线等
- 郁闷..repeater与checkboxLister求解..
- asp.net2.0 的编译模型有两种,其一:动态编译,书中说居然要把.aspx 、 .aspx.CS 、Web.config 和 类文件全部上传到服务器上去,这不是泄
- 请教超级简单sql语句
- 如何提示“用户名中包含非法字符”
- 如何使用自己的按钮删除记录
- 页面里点击弹出后的窗口,在PageLoad事件里如何取父窗口页面中的控件值?
- asp.net(c#)里如何获取访问者的真实ip地址?
- 高手们,请教关于datatable导出excel退出后,excel进程没退出的问题?(真的好急)
- DataGrid中数据修改后为什么我得到的值还是更新前的。
- Model返回失败
- 急!各位大侠帮帮我这刚入道的新手啊!!在线等各位了~
Httphander 一般通过对比原始请求的地址和文件后缀名来处理,这里不能处理吧
创建一个类,继承IHttpHandler,就能实现功能了
创建一个类,继承IHttpHandler,就能实现功能了
public void ProcessRequest (HttpContext context) {
//请求的上一页面的(来源)
string host= context.Request.UrlReferrer.Host;
//当前请求的主机名称
string host2= context.Request.Url.Host;
if (host!=null && host==host2)
{
//允许下载文件,
context.Response.ContentType="rar";
context.Response.WriteFile(context.Request.PhysicalPath); }
else
{
//转到错误页面
context.Response.Redirect("~/ErrorPage.aspx");
}
} public bool IsReusable {
get {
return false;
}
}
<httpHandlers>
<add verb="*" path="文件.rar" type="类名"/>
</httpHandlers>
根据用户输入的序列号,下载对应该序列号的版本(有三个版本都是.exe文件)
假设一个用户输入的是一个合法的序列号,然后开始下载,针对该资源会有个连接:http://www.mysite.com/source/1.exe
但是这个用户把这个连接拷贝给一个非法的用户,那么这个用户就不用输入序列号,直接在IE浏览器地址栏里输入该地址就能下载到了。
我想做的就是要阻止这种行为。你上面说的,我还是没太明白,这样做就能防止我上面描述的行为发生吗???
请指教
获取请求页的前一个url(this.Request.UrlReferrer),
判断如果是本站的话就是站内的就是合法链接,
10L的例子就是这样。
如果再严格一点,判断登陆用户的session。
<add verb="*" path="文件.rar" type="类名"/>
</httpHandlers>
path里就是你要控制的,用户下载的文件地址,如:path="source/1.exe,source/2.exe,可以有多个"
type是你创建的那个类名
所有不希望用户直接访问的后缀一律过滤或者放在不能通过请求访问的文件下面,tomcat的WEB-INF文件夹内容只能在服务端访问,不能通过浏览器请求访问到