c# - 通过装饰来清理属性以避免 XSS 攻击
问题描述
目前我在我的网络 API 中接受模型。我正在考虑装饰我容易受到 xss 攻击的属性。那应该删除所有脚本标签等。是否有任何库可以帮助我...
public class ClassToSanitze
{
public int Id {get;set;}
[Sanitize]
public string Name {get;set;}
}
解决方案
没有什么可以做你想要达到的目标。阅读有关防止 XSS 的 Microsoft 指南
我发现以下最重要的准则
验证可以成为限制 XSS 攻击的有用工具。例如,仅包含字符 0-9 的数字字符串不会触发 XSS 攻击。在用户输入中接受 HTML 时,验证变得更加复杂。解析 HTML 输入很困难,如果不是不可能的话。Markdown 与剥离嵌入式 HTML 的解析器相结合,是接受丰富输入的更安全的选择。永远不要只依赖验证。无论执行了何种验证或清理,始终在输出之前对不受信任的输入进行编码。
这里也有一些很好的答案:How can I strip html tags in C#
基本上,唯一要做的就是对字符串进行 Html 编码。
推荐阅读
- jinja2 - 无法使用 jython pip 安装 jinja2?
- javascript - 无法解构 'auditlogs' 的属性 'executor',因为它未定义。discord.js 频道更新事件
- r - ggplot2中具有多个分组的有序条形图
- python - Python:如何从数组中删除值
- c# - gridview 行数不等于 gridview DataSource 行数
- google-chrome - 剪贴板在 Chrome 之外监听?
- maven - 是否有从 maven pom 中删除旧依赖项的最佳实践?
- css - 为什么让我的轮播变窄会在幻灯片之间产生故障过渡?
- postgresql - 为什么即使没有时区偏移,PostgreSQL 也会将带有时间戳的字符串强制转换为“TIMESTAMP WITH TIME ZONE”?
- c++ - 将一个矩阵“就地”乘以另一个方阵以提高内存效率?