记录一些小知识点。
防止 overposting 攻击
overposting攻击指的是过多提交,也就是攻击者通过在浏览器上修改等手段,将不应该修改的字段值修改然后提交了。
对策便是使用Bind特性,可以白名单方式,将只允许修改的字段绑定。
代码语言:javascript复制[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> Edit(int id, [Bind("Id,Title,ReleaseDate,Genre,Price,Rating")] Movie movie)
......
防止CSRF(跨网站请求伪造)
使用注解ValidateAntiForgeryToken
具体择日再叙。
https://learn.microsoft.com/en-us/aspnet/core/tutorials/first-mvc-app/controller-methods-views?view=aspnetcore-7.0
C#中的!是怎么用的
如下前端的Razor代码
代码语言:javascript复制 <th>
@Html.DisplayNameFor(model => model.Movies![0].Title)
</th>
<th>
@Html.DisplayNameFor(model => model.Movies![0].ReleaseDate)
</th>
!的作用是什么。
!的作用是非空操作符(null-forgiving operator),声明model.Movies0不可能为NULL。如果去掉!的的话,
代码语言:javascript复制 <th>
@Html.DisplayNameFor(model => model.Movies[0].Title)
</th>
<th>
@Html.DisplayNameFor(model => model.Movies![0].ReleaseDate)
</th>
则会显示如下警告。