切记一定要防止恶意用户直接访问Ajax请求地址
多年前的一个web项目, 有一个地方是用ajax发送短信验证码, 当时没考虑好, 没判断来路, 这几天被人恶意滥用发送了很多垃圾短信, 投诉到公司来了。 今天一看代码吓出一身冷汗!
以后一定要记得判断来路, 禁止直接请求Ajax地址。
方式1, 判断来路, 不能为空且必须同是HostUrl
if(Request.UrlReferrer!=null && Request.UrlReferrer.Host==Request.Url.Host) { //do.. }
方式2, 判断httpHeaders是否ajax请求
public static bool AjaxRequest() { string sheader = Request.Headers["X-Requested-With"]; bool isAjaxRequest = (sheader != null && sheader == "XMLHttpRequest") ? true : false; if (isAjaxRequest) return true; else return false; }