多年前的一个web项目, 有一个地方是用ajax发送短信验证码, 当时没考虑好, 没判断来路, 这几天被人恶意滥用发送了不少垃圾短信, 投诉到公司来了。 今天一看代码吓出一身冷汗!web
之后必定要记得判断来路, 禁止直接请求Ajax地址。ajax
方式1, 判断来路, 不能为空且必须同是HostUrl spa
if(Request.UrlReferrer!=null && Request.UrlReferrer.Host==Request.Url.Host) { //do.. }
方式2, 判断httpHeaders是否ajax请求code
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; }