You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AngularJS如何阻止<script>标签等危险输入存入数据库?

我完全理解你的顾虑——把未过滤的HTML/脚本存入数据库确实是个安全隐患,哪怕前端Angular的{{}}渲染会自动转义,脏数据留在库里始终是个定时炸弹。针对你的需求,我给你一套分层处理的最优方案,从后端核心防护到前端辅助优化,一步步解决问题:

核心后端解决方案(C#)

你选择后端处理是完全正确的方向,因为前端防护都能被攻击者绕过。千万别自己写正则处理HTML,这很容易出错(比如嵌套标签、大小写问题、多语言字符干扰),用成熟的工具库才是靠谱的选择:

  • 使用HtmlSanitizer库(首推):这是.NET生态中专门用于HTML安全清理的库,能一次性解决你提到的所有风险——包括<script>标签、onerror这类事件属性、javascript:协议的链接等等,而且完全适配多语言场景。
    用法非常简单:

    // 先安装NuGet包:HtmlSanitizer
    var sanitizer = new HtmlSanitizer();
    // 可自定义允许的安全标签/属性,比如只开放纯文本常用格式标签
    sanitizer.AllowedTags.AddRange(new[] { "p", "b", "i", "br" });
    // 限制a标签的href只能用http/https协议
    sanitizer.AllowedSchemes.Add("http");
    sanitizer.AllowedSchemes.Add("https");
    
    // 清理用户输入
    string cleanComment = sanitizer.Sanitize(UserComment.text);
    // 将清理后的内容存入数据库
    

    这个库会基于HTML解析而非字符匹配处理内容,能精准移除所有危险元素,比自己维护正则省心百倍。

  • 如果暂时只想快速处理

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 09:02:15