通过装饰来清理属性以避免 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 攻击的主要内容,如果未能解决你的问题,请参考以下文章