前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >[.net]若干小知识

[.net]若干小知识

原创
作者头像
东风压倒西风
修改2022-12-09 15:00:09
2900
修改2022-12-09 15:00:09
举报
文章被收录于专栏:卓谷山

记录一些小知识点。

防止 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.png
image.png

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 防止 overposting 攻击
  • 防止CSRF(跨网站请求伪造)
  • C#中的!是怎么用的
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档