首页 > 解决方案 > 通过装饰来清理属性以避免 XSS 攻击

问题描述

目前我在我的网络 API 中接受模型。我正在考虑装饰我容易受到 xss 攻击的属性。那应该删除所有脚本标签等。是否有任何库可以帮助我...

public class ClassToSanitze
{

    public int Id {get;set;}
    [Sanitize]
    public string Name {get;set;}

}

标签: c#asp.net-coresecurityxsswebsecurity

解决方案


没有什么可以做你想要达到的目标。阅读有关防止 XSS 的 Microsoft 指南

我发现以下最重要的准则

验证可以成为限制 XSS 攻击的有用工具。例如,仅包含字符 0-9 的数字字符串不会触发 XSS 攻击。在用户输入中接受 HTML 时,验证变得更加复杂。解析 HTML 输入很困难,如果不是不可能的话。Markdown 与剥离嵌入式 HTML 的解析器相结合,是接受丰富输入的更安全的选择。永远不要只依赖验证。无论执行了何种验证或清理,始终在输出之前对不受信任的输入进行编码。

这里也有一些很好的答案:How can I strip html tags in C#

基本上,唯一要做的就是对字符串进行 Html 编码。


推荐阅读