javascript - 消毒功能太卫生?
问题描述
我正在开发一个为视图清理模型的 web 应用程序。但是,它剥离了太多想要的字符,例如正斜杠、分号、冒号、美元符号、引号和来自外语的重音字母。例如3/8"W
变成38w
.
我是否需要修改该功能以降低攻击性,或者我应该根本不使用 sanitize 功能?我想更大的问题是,消毒是为了什么?
完全披露 - 我没有编写函数,我对正则表达式并不出色。
value = value.replace(/[^a-z0-9áéíóúñü .,_-]/gim, "").trim();
解决方案
清理概念的主要目的是在将数据保存在数据库中或使用任何类型的查询处理之前清理坏字符中的数据。也就是说,你不应该太关心前端的数据清理,因为可以禁用 javascript。客户端的任何东西都可以被绕过。您应该非常关心后端的这一点。在保存到数据库之前,应对数据进行清理。从数据库中检索数据后,应对数据进行转义。
推荐阅读
- javascript - 事件处理程序节流或延迟(去抖动)的特定于侦听器的超时变量?
- javascript - 简化 javascript 颜色更改功能
- django - 将图像保存在 django 模板中
- ssl - OpenSSL V3.0.0 是否与 V1.1.1 兼容
- rocket-chip - 如何使用 hex 文件而不是 efls 进行模拟?
- cocoa - CGImageForProposedRect 和 CGImageRelease
- x86 - 在保护模式下如何为 x86 (80286) 初始化段寄存器?
- groovy - Jmeter构造动态http请求体
- android - 如何使用 WindowInsetsControllerCompat.OnControllableInsetsChangedListener?
- php - 返回两个日期时间之间的迭代日期时间以在 Laravel 中添加记录