我拥有 ASP MVC 3下的一些遗留代码(绝对破坏了所有理论ASP MVC的想法)。 因为我低估了这个代码是可能的,通过发送假回发到控制器? 我只是想知道如何破解ValidateAntiForgeryToken和Session假会话。什么是人们可以使用的软件?
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult ProcessSignUpRequest()
{
string message = "";
string username = Request.Form["txtusername"];
string email = Request.Form["txtemail"];
string name = Request.Form["txtusername"];
string password = Request.Form["txtoldpassword"];
string txtCaptcha = Request.Form["txtcaptcha"];
string startTime = Request.Form["startTime"];
string userphone = Request.Form["phone"];
try
{
if (txtCaptcha != (string)Session[Constants.CaptchaCodeSessionKey])
{
message = "captcha is wrong";
return GetStandardJsonActionResult(false, message);
}
// some code about adding user to database
return GetStandardJsonActionResult(true, message);
}
catch (Exception ex)
{
return GetStandardJsonActionResult(false, "Not possible to create user. " + username);
}
}
答案 0 :(得分:1)
AntiForgeryToken将在表单中创建一个隐藏字段,并在其中添加一个值。在发布期间,如果值与MVC生成的值不匹配,您的请求将被取消。它只是确认帖子来自您的网站。搜索CSRF(跨站点请求伪造)。
验证码将“验证”表格中填写了“人物”,并且它不是机器人/爬虫。