跨站点请求伪造 (着急)
首先第一步--》生成验证码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
{
业务逻辑
}
但是扫描还是有“跨站点请求伪造 ”漏洞
/// <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
{
业务逻辑
}
但是扫描还是有“跨站点请求伪造 ”漏洞
...全文
相关推荐
Ajax与跨站点请求伪造漏洞
Ajax与跨站点请求伪造漏洞,近日,我们的网站请微软的工程师作了一次漏洞扫描,扫描结果中有两个“跨站点请求伪造漏洞”。通过查资料,我做了一番研究,包括此漏洞的入侵条件,被攻击后的损失以及防范措施等。
csrf跨站请求伪造简单示例
一个简单的csrf跨站请求伪造的示例,只有一个简单的表单提交功能.通过伪造表单提交,完成一个简单的钓鱼案例
CSRF(跨站请求伪造)详细说明
Cross-SiteRequestForgery(CSRF),中文一般译作跨站请求伪造。经常入选owasp漏洞列表Top10,在当前web漏洞排行中,与XSS和SQL注入并列前三。与前两者相比,CSRF相对来说受到的关注要小很多,但是危害却非常大。通常情况下,有三种方法被广泛用来防御CSRF攻击:验证token,验证HTTP请求的Referer,还有验证XMLHttpRequests里的自定义header。鉴于种种原因,这三种方法都不是那么完美,各有利弊。在跨站请求伪造(CSRF)攻击里面,攻击者通过用户的浏览器来注入额外的网络请求,来破坏一个网站会话的完整性。而浏览器的安全策略是允许当前页面
跨站请求伪造-CSRF防护方法
跨站请求伪造-CSRF防护方法跨站请求伪造-CSRF防护方法
CSRF跨站请求伪造,含使用教程和测试工具
CSRF跨站请求伪造,使用OWASP CSRFTester工具可以抓取并伪造请求,其测试原理是,使用代理抓取我们在浏览器中访问过的所有的连接以及所有的表单等信息,通过在CSRFTester中修改相应的表单等信息,重新提交,相当于一次伪造客户端请求,如果修改测试的请求成功被网站服务器接受,则说明存在CSRF漏洞。


