jquery ajax 调用.net 一般处理文件安全问题

最近在维护一个客户的积分网站的时候,发现了这样一个问题,有人通过.ashx的漏洞,往我们数据库里面插入短信发送数据,导致我们短信费用有了一定的损失

一般处理文件 也就是后缀名为 .ashx 的文件

一般处理文件 我们主要用于与前段jquery ajax 做异步调用,例如:

$.ajax({

sync: false,

dataType: "text",

url: "../Handler/HandlerVPhone.ashx",

data: { txtPhone: txtPhoneValue },

success: function (result) {

},

error: function (result) {

alert("验证手机号是否已注册出错!");

}

});

$.ajax({

sync: false,

dataType: "text",

url: "../Handler/HandlerSmsService.ashx",

data: { txtPhone: txtPhoneValue, type: "Get", prType: 1 },

success: function (result) {

},

error: function (result) {

alert("手机验证码发送出错!");

return false;

}

});

以上是做手机号短信发送,调用短信接口,往数据库里面插入值

这些都可以被别人调用,别人只需要在这些一般处理文件的前面加上域名,然后在后面加上参数就可以在其他程序上访问了

例如:

http://www.xxx.com/Handler/HandlerVPhone.ashx?txtPhone=xxxxxxxxxxx

http://www.xxx.com/Handler/HandlerSmsService.ashx?txtPhone=xxxxxxxxxxx&type=Get&prType=1

解决的办法:

.net  页面后台,通过GUID 产生出唯一值,赋值给session,   前台一般处理文件参数传值到后台做验证

Session["chkcode"] = Guid.NewGuid().ToString();

hdnchkcode.Value = Session["chkcode"].ToString();

前台ajax 给参数

$.ajax({

sync: false,

dataType: "text",

url: "../Handler/HandlerSmsService.ashx",

data: { txtPhone: txtPhoneValue, type: "Get", prType: 1, chkcode: hdnchkCode },

success: function (result) {

},

error: function (result) {

alert("手机验证码发送出错!");

}

});

一般处理文件里面内容做判断:

if (context.Session["chkcode"] != null

&& context.Session["chkcode"].ToString() == context.Request.QueryString["chkcode"])

{

}

else

{

}

这样就能避免别人通过调用你的一般处理文件,往你的数据库插入值啦,,

时间: 2024-10-09 05:27:47

jquery ajax 调用.net 一般处理文件安全问题的相关文章

Jquery ajax调用后台aspx后台文件方法(不是ashx)

在asp.net webForm开发中,用Jquery ajax调用aspx页面的方法常用的有两种:下面我来简单介绍一下. (1)通过aspx.cs的静态方法+WebMethod进行处理 简单的介绍下WebMethod方法的用法 1.修饰符主要用public static修饰 2.方法前面加上[WebMethod]属性表明这是WebMethod方法 3.前台html页面(Client端)访问时要使用post方法,和后台.cs文件进行数据交互,否则会返回整个html页面. 4.当后台页面返回数据后

jquery.ajax请求aspx和ashx的异同 Jquery Ajax调用aspx页面方法

1.jquery.ajax请求aspx 请求aspx的静态方法要注意一下问题: (1)aspx的后台方法必须静态,而且添加webmethod特性 (2)在ajax方法中contentType必须是"application/json", (3)data传递的数据必须是严格的json数据,如"{'a':'aa','b':'bb'}",而且参数必须和静态方法的参数一 一对应 (4)aspx的后台方法返回的数据默认形式是"{'d':'返回的内容'}",所

Jquery Ajax调用aspx页面方法

原文:Jquery Ajax调用aspx页面方法 在asp.net webform开发中,用jQuery ajax传值一般有几种玩法 1)普通玩法:通过一般处理程序ashx进行处理: 2)高级玩法:通过aspx.cs中的静态方法+WebMethod进行处理: 3)文艺玩法:通过WCF进行处理. 第一种和第三种方法不在本文介绍范围之内,下面重点介绍第二种方法. 说明 在我们的印象里 asp.net的Web服务是以.asmx来结尾的,而我们现在的asp.net也能实现Web服务,这是因为默认Web.

jquery ajax调用返回json格式数据处理

Ajax请求默认的都是异步的 如果想同步 async设置为false就可以(默认是true) var html = $.ajax({ url: "some.php", async: false }).responseText; 返回json数组取条数用result.length <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs"

Jquery ajax调用webservice总结

jquery ajax调用webservice(C#)要注意的几个事项: 1.web.config里需要配置2个地方 <httpHandlers>      <remove verb="*" path="*.asmx"/>      <add verb="*" path="*.asmx" validate="false" type="System.Web.Script

Jquery Ajax调用asmx出错问题

1.//若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释.      [System.Web.Script.Services.ScriptService] 这个错误已经明显提示了,犯错几率不大. 2.在web.config的<system.web></system.web>中间加入如下配置节内容 <webServices>         <protocols>            <add name=&quo

JQuery ajax调用asp.net的webMethod

在vs2010中,用JQuery ajax调用asp.net 2.0的  webMethod 方法时,怎么都调不出来,原来和3.5 有点出入. 3.5中,无需特殊设置,可以直接用$.ajax调用在aspx.cs中,访问级别public,静态的,标记为[webmethod]的方法. aspx.cs: using System.Web.Services; [WebMethod] public static string PollCount() { …… return getResultHTML(ds

Jquery Ajax 调用 WebService

原文:http://www.cnblogs.com/andiki/archive/2010/05/17/1737254.html jquery ajax调用webservice(C#)要注意的几个事项: 1.web.config里需要配置2个地方 <httpHandlers>       <remove verb="*" path="*.asmx"/>       <add verb="*" path="*

Jquery(Ajax) 调用 SharePoint 2013 Search Rest API 并使用Josn反回结果并简单显示

Jquery(Ajax) 调用 SharePoint 2013 Search Rest API 并使用Josn反回结果并简单显示 2013年01月05日 21:51:43 天涯海角 阅读数 4970 文章标签: Josn反回结果并简单显示JqueryAjaxPostQuerySearch Rest APISharePoint 2013 更多 分类专栏: SharePoint JavaScript 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明.