javascript - 使用 JavaScript 进行输入清理不是毫无意义吗?

标签 javascript security

背景:

我一直在寻找一种方法来使用 JavaScript 清理某些表单输入,以防止提交包含未列入白名单的字符的表单。

我根据出色的 Stack Overflow 想出了这个 answer

function allowSubmission(string) {
    return string == string.replace(/[^\w\s]/gi, 'X');
}


var s1 = 'simple string';
var s2 = 'alert(0);';
var s3 = '<nasty>string';

console.log(allowSubmission(s1)); //true
console.log(allowSubmission(s2)); //false
console.log(allowSubmission(s3)); //false

问题

但这是否意味着潜在的攻击者可以关闭 JavaScript 并提交他们喜欢的任何内容?或者简单地即时编辑 JavaScript 并覆盖验证方法以仅返回 true。

问题

那么...使用 JavaScript 进行输入清理不是毫无意义吗?

最佳答案

这仅意味着您应该始终验证和清理您的输入服务器端。不管它是否也在前端检查过。

在 JavaScript 中执行此操作可以帮助您避免不必要的请求到达您的后端并增加负载并改善用户体验,但它们不应被视为一种安全手段。

当被视为一道防线时,它毫无意义。一般来说,它的用途有很多。

关于javascript - 使用 JavaScript 进行输入清理不是毫无意义吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22332934/

相关文章:

javascript - 通过所选页面响应 native 导航导出

security - 如何使用 WScript.Shell 对象调试 ASP 权限问题?

javascript - [Element].onXXX 可以用来制造不平凡的黑客问题吗?

javascript - 脚本小子用这个片段淹没了我的网站

javascript - 加载外部第三方 CSS 有什么危险吗?

c# - ASP.NET 限制登录重试次数

javascript - IE Javascript 点击问题

javascript - 修改倒计时脚本以允许每页多个倒计时

javascript - 使用 Javascript 将 URL 转换为可点击的链接

javascript - 在 JavaScript 中加密大文件并高效存储在 S3 中