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解析而非字符匹配处理内容,能精准移除所有危险元素,比自己维护正则省心百倍。
如果暂时只想快速处理
相关产品推荐
相关产品推荐

