跨站点请求伪造 (着急)
首先第一步--》生成验证码Tonk
/// <summary>
/// 生成 Token
/// </summary>
/// <returns></returns>
protected string OnGetTonk()
{
///生成 Token
string Token = new Random().NextDouble().ToString();
Session["token"] = Token;
return Token;
}
第二步页面生成Tonk
<input type="hidden" name="token" id="token" value="<%=OnGetTonk() %>" />
第三步页面AJAX提交
function onSave() {
var login_id = $("#txtlogin_id").val();
var pwds = $("#txtpwd").val();
var user_name = $("#txtuser_name").val();
var mobile_phone = $("#txtmobile_phone").val();
var IdCard = $("#txtIdCard").val();
var parma={
"login_id":login_id,
"pwds": pwds,
"user_name":user_name,
"mobile_phone":mobile_phone,
"IdCard":IdCard,
"token": $("#token").val()
};
byshow.GetJSON("onSave", parma, function (r) {
if (r == "Token空请求不合法") {
top.$.messager.alert("Token空请求不合法")
return;
}
if (r == "请求不合法") {
top.$.messager.alert("请求不合法")
return;
}
if (r == "1" || r == 1) {
window.location.href = "login.aspx";
}
else {
top.$.messager.alert("保存失败", '保存失败,请联系管理员', 'warning');
}
});
}
第四步 AJAX提交过来的程序验证
BusinessResult br = new BusinessResult();
string Token = GetToString("token");
if (string.IsNullOrWhiteSpace(Token) || Session["token"] == null)
{
br.Data = "Token空请求不合法";
}
else if (Token != Session["token"].ToString())
{
br.Data ="请求不合法";
}
else
{
业务逻辑
}
但是扫描还是有“跨站点请求伪造 ”漏洞