Asp.Net Core 中的 [FromForm] 和 [FromBody] 有什么区别。我将使用其中之一作为 post 方法。如果我使用 FromForm,是否会出现安全问题?
Wea*_*n X 18
FromBody (ContentType: application/json):
{ "user" : "conejo", "password" : "panda" }
Run Code Online (Sandbox Code Playgroud)
FromForm (ContentType: application/x-www-url-formencoded):
user=conejo&password=panda
Run Code Online (Sandbox Code Playgroud)
考虑到要使用FromBody发送多个字段,您必须将它们包装在一个对象中。就其本身而言,FromForm 的安全性并不比FromBody差。漏洞主要来自未使用HTTPS
Xue*_*hen 10
该FromForm属性用于来自内容类型发送的提交表单的传入数据,application/x-www-url-formencoded而FromBody它将以默认方式解析模型,在大多数情况下由内容类型application/json从请求正文中发送。
对于安全问题,您可以使用ValidateAntiForgeryTokenAttribute for post 方法,该方法指定应用此属性的类或方法验证防伪令牌。如果防伪令牌不可用,或者令牌无效,则验证将失败并且不会执行操作方法。
MVC 中的防伪令牌是一种防止跨站点请求伪造 (CSRF) 攻击的方法。无需赘述,当用户访问不受信任的站点并输入一些信息,然后将这些信息发回用户已通过身份验证的站点时,就会发生 CSRF 攻击。
您可以参考以下链接,了解 AntiForgeryToken() 的实际工作原理:
| 归档时间: |
|
| 查看次数: |
10807 次 |
| 最近记录: |