首页 新闻 搜索 专区 学院

ashx的文件如何控制安全性

0
[已关闭问题]

通过ashx返回javascript请求的数据。如何控制安全性?

只是通过RawUrl去判断是不是本站请求,但是那个可以伪造的啊?

不是很清楚

Ivan Jiang的主页 Ivan Jiang | 初学一级 | 园豆:145
提问于:2009-07-04 22:07
< >
分享
其他回答(3)
0

如果你这个服务是只针对网站的注册用户及登录才可以使用的话,那肯定简单,只要对状态判断下就好了!

第一种:但如果无状态的连接的话,你可以用ip来限制,通过配置在配置文件里配置自己的机器的ip,这样就可以防止了!如果只有自己的服务器可以访问,你可以直接配置成内网的ip,这样没法伪造了!

第二种:session ashx中默认不能使用session, HttpContext.Current.Session 为 null。

解决方法如下:

增加命名空间引用,实现指定接口

 

<%@ WebHandler Language="C#" Class="Handler" %>

using System;
using System.Web;
using System.Web.SessionState;

public class Handler : IHttpHandler, IRequiresSessionState {

public void ProcessRequest (HttpContext context) {
context.Response.ContentType
= "text/plain";
context.Response.Write(
"Hello World");
}

public bool IsReusable {
get {
return false;
}
}

}

 


                        
chen eric | 园豆:4 (初学一级) | 2009-07-04 23:42
0

如果你的数据是敏感内容,或需要保护,你可以这样,在页面首次载入时,在Session中存入:Guid.NewGuid(),并将这个guid发到发到页面隐藏域中,让js在回传时作为参数提交,提交时ashx审查提交的guid是否符合Session中存储的guid,符合就返回数据。

斯克迪亚 | 园豆:4124 (老鸟四级) | 2009-07-05 05:36
0

楼上正解,LZ可以查一下ashx防盗链的使用方法,也许有帮助;

winzheng | 园豆:8797 (大侠五级) | 2009-07-05 14:25
0

斯克迪亚 - 老鸟四级

老鸟,我印象中 IHttpHandle(ashx) 默认不支持 Session 的啊,好像访问时为 null。这段时间精神状态不好,晕的厉害啊。

陛下 | 园豆:3938 (老鸟四级) | 2009-07-06 09:39
是可以的,引入命名空间using System.Web.SessionState;然后继承IRequiresSessionState即可使用session。
支持(0) 反对(0) 阿Tai | 园豆:200 (初学一级) | 2011-07-22 16:12
感谢指教,呵呵。
支持(0) 反对(0) 陛下 | 园豆:3938 (老鸟四级) | 2011-07-23 08:06
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册