首页 > 解决方案 > 消毒功能太卫生?

问题描述

我正在开发一个为视图清理模型的 web 应用程序。但是,它剥离了太多想要的字符,例如正斜杠、分号、冒号、美元符号、引号和来自外语的重音字母。例如3/8"W变成38w.

我是否需要修改该功能以降低攻击性,或者我应该根本不使用 sanitize 功能?我想更大的问题是,消毒是为了什么?

完全披露 - 我没有编写函数,我对正则表达式并不出色。

value = value.replace(/[^a-z0-9áéíóúñü .,_-]/gim, "").trim();

标签: javascriptregexsanitize

解决方案


清理概念的主要目的是在将数据保存在数据库中或使用任何类型的查询处理之前清理坏字符中的数据。也就是说,你不应该太关心前端的数据清理,因为可以禁用 javascript。客户端的任何东西都可以被绕过。您应该非常关心后端的这一点。在保存到数据库之前,应对数据进行清理。从数据库中检索数据后,应对数据进行转义。


推荐阅读