gpt4 book ai didi

asp.net-core - Blazor 表单 - 用户输入清理( 等)

转载 作者:行者123 更新时间:2023-12-04 10:14:06 30 4
gpt4 key购买 nike

我正在开发 Blazor 应用程序,其中我有一个接受用户输入的表单(带有一些文本框和文本区域的表单)。防止跨站点脚本和XSS 的最佳方法是什么?攻击。

我正在使用 Microsoft.AspNetCore.WebUtilities用于编码和解码 html 的其他组件。对用户输入的编码和解码是否足以防止攻击、漏洞等。

我是否必须使用一些库,例如 Gans.XSS.HtmlSanitizer或者 Blazor 中是否有一些内置功能。

提前致谢。

最佳答案

由于输入应该绑定(bind)到 <EditForm> 中的模型组件,并且那个模型是一个类,你可以使用内置的<DataAnnotationsValidator />使用正则表达式完成此操作?您可以在相关属性上使用正则表达式数据注释构建您的模型类:

using System.ComponentModel.DataAnnotations;

public class ModelToBindTo()
{
[RegularExpression(@"[A-Za-z0-9 _.-]*")] //Check/tweak this before use, going from memory
public string PropertyToBindInputText { get; set;}
}


通过绑定(bind)到 this 并使用验证器 this 应该 限制任何可能给您带来麻烦的输入字符,如果需要在持久化数据或对其进行任何其他操作之前进行仔细检查,您可以再次在服务器端针对正则表达式运行它。

Further details on validator can be found here
Data Annotations reference can be found here

关于asp.net-core - Blazor 表单 - 用户输入清理(<InputText>、<InputTextArea> 等),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61169047/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com