URL 有效负载如 Start {{sum=(2*2.0)}} End 在 razor 验证消息中执行 helper
URL with payload like Start {{sum=(2*2.0)}} End executes in razor validation message for helper
最近有人向我展示了他们如何通过将网站未预期的值放入 URL 和 运行 它的 MVC 默认验证消息来在 MVC 站点上执行某些操作。
他们做了类似的事情:
?page=Start%20%7B%7Bsum%3d(2*2.0)%7D%7D%20End
网站将验证消息作为 "The value 'Start 4 END' is not valid for page." 所以它做了总和。
在同一个站点上,尽管尝试将 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 );
}
razor 文件有:
@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 )
}
样本:
使用 /Create?page=Hello
使用/Create?Page=Start%20%7B%7Bsum%3d(2*2.0)%7D%7D%20End
好的,刚发现它是一个 Angular 页面,摘要位于 Angular...
评估的范围内
最近有人向我展示了他们如何通过将网站未预期的值放入 URL 和 运行 它的 MVC 默认验证消息来在 MVC 站点上执行某些操作。
他们做了类似的事情:
?page=Start%20%7B%7Bsum%3d(2*2.0)%7D%7D%20End
网站将验证消息作为 "The value 'Start 4 END' is not valid for page." 所以它做了总和。
在同一个站点上,尽管尝试将 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 );
}
razor 文件有:
@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 )
}
样本:
使用 /Create?page=Hello
使用/Create?Page=Start%20%7B%7Bsum%3d(2*2.0)%7D%7D%20End
好的,刚发现它是一个 Angular 页面,摘要位于 Angular...
评估的范围内