通过装饰来清理属性以避免 XSS 攻击

Posted

技术标签:

【中文标题】通过装饰来清理属性以避免 XSS 攻击【英文标题】:Sanitize properties by decorating it for avoiding XSS attack 【发布时间】:2021-02-22 03:09:03 【问题描述】:

目前我在我的 web apis 中接受模型。我正在考虑装饰我容易受到 xss 攻击的属性。那应该删除所有脚本标签等。 有没有图书馆可以帮助我...

public class ClassToSanitze


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


【问题讨论】:

【参考方案1】:

没有什么能达到你想要达到的效果。阅读this Microsoft guide on preventing XSS

我认为以下最重要的准则

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

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

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

【讨论】:

以上是关于通过装饰来清理属性以避免 XSS 攻击的主要内容,如果未能解决你的问题,请参考以下文章

72 什么是 XSS 攻击,如何避免?

通过 PHP 在 GET 中清理用户数据

73 什么是 CSRF 攻击,如何避免?

73 什么是 CSRF 攻击,如何避免?

什么是 XSS 攻击,如何避免?

什么是CSRF攻击?如何避免?