最近有人向我展示了他们如何通过将网站没有预期的值放入URL并且MVC默认验证消息然后运行它来在MVC网站上执行某些操作。
他们做了类似的事情:
?page=Start%20%7B%7Bsum%3d(2*2.0)%7D%7D%20End
该网站在验证邮件中输入了"值'开始4结束'对页面无效。"所以它做了总和。
在同一个网站上虽然它无法尝试将javascript放入并让它执行。
所以我有点困惑,我找不到有关将这种代码注入网站的任何信息。那么,这是一个大问题吗?您可以使用此语法运行哪种其他类型的代码?你会如何解决这个问题呢?
更新 - 其他信息:
MVC版本是4
页面属性定义为:
public class SearchContext
{
public int Page { get; set; }
}
将其传递给控制器,以便在用户返回时记住该页面:
[HttpGet]
public ActionResult Create( SearchContext searchOptions )
{
var viewModel = new MyViewModel( ){
SearchOptions = searchOptions
};
// .....
return View( viewModel );
}
然后剃刀文件有:
@using ( Html.BeginForm( ) )
{
@Html.AntiForgeryToken()
@Html.HiddenFor( m => m.SearchOptions.Page )
// ValidationSummary calculating 'Start 4 End'??
@Html.ValidationSummary( false )
// ... form fields ....
<span class="right">
<input type="submit" value="Save" class="button saveOrSubmit" />
</span>
@Html.ActionLink( "Cancel", "Index", Model.SearchOptions )
}
样品:
答案 0 :(得分:0)
好的,刚刚发现它是一个Angular页面,摘要位于Angular评估范围内......