多年前的一個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; }