[.net]若干小知识

2022-12-09 15:00:09 浏览数 (1)

记录一些小知识点。

防止 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>

则会显示如下警告。

image.pngimage.png

0 人点赞