问题标签 [sanitization]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
14 回答
18924 浏览

xss - 何时最好清理用户输入?

用户等于不可信。永远不要相信不可信用户的输入。我明白了。但是,我想知道清理输入的最佳时间是什么时候。例如,您是否盲目地存储用户输入,然后在访问/使用时对其进行清理,或者您是否立即清理输入然后存储此“清理”版本?除了这些之外,也许还有一些我没有想到的其他方法。我更倾向于第一种方法,因为任何来自用户输入的数据仍然必须谨慎处理,“清理”的数据可能仍然在不知不觉中或意外危险。无论哪种方式,人们认为哪种方法最好,出于什么原因?

0 投票
15 回答
5876 浏览

database - 在数据库中找到重复的地址,阻止用户提前输入它们?

如何在数据库中找到重复的地址,或者在填写表格时更好地阻止人们?估计越早越好?

是否有任何抽象街道、邮政编码等的好方法,以便可以检测到拼写错误和获取 2 个注册的简单尝试?像:

我说的是德国地址...谢谢!

0 投票
6 回答
39720 浏览

bash - 在 bash 脚本中,如何清理用户输入?

我正在寻找获取简单输入的最佳方法:

并通过删除非字母数字字符、小写(大写)和用下划线替换空格来清理它。

顺序重要吗?是tr最好/唯一的方法吗?

0 投票
18 回答
83683 浏览

sql - 我可以通过转义单引号并用单引号包围用户输入来防止 SQL 注入吗?

我意识到参数化 SQL 查询是在构建包含用户输入的查询时清理用户输入的最佳方式,但我想知道接受用户输入并转义任何单引号并用单引号包围整个字符串有什么问题。这是代码:

用户输入的任何单引号都将替换为双单引号,这消除了用户结束字符串的能力,因此他们可能键入的任何其他内容,例如分号、百分号等,都将成为字符串的一部分,并且实际上并未作为命令的一部分执行。

我们使用的是 Microsoft SQL Server 2000,我相信单引号是唯一的字符串定界符,也是转义字符串定界符的唯一方法,因此无法执行用户输入的任何内容。

我看不出有任何方法可以对此发起 SQL 注入攻击,但我意识到,如果这在我看来是防弹的,那么其他人早就想到了,这将是常见的做法。

这段代码有什么问题?有没有办法通过这种清理技术进行 SQL 注入攻击?利用此技术的示例用户输入将非常有帮助。


更新:

我仍然不知道有什么方法可以有效地对这段代码发起 SQL 注入攻击。一些人建议反斜杠将转义一个单引号并留下另一个以结束字符串,以便将字符串的其余部分作为 SQL 命令的一部分执行,我意识到这种方法可以将 SQL 注入MySQL 数据库,但在 SQL Server 2000 中,唯一的方法(我已经能够找到)转义单引号是使用另一个单引号;反斜杠不会这样做。

除非有办法阻止单引号的转义,否则用户输入的其余部分都不会被执行,因为它们都将被视为一个连续的字符串。

我知道有更好的方法来清理输入,但我真的更有兴趣了解为什么我上面提供的方法不起作用。如果有人知道针对这种清理方法发起 SQL 注入攻击的任何特定方法,我很乐意看到它。

0 投票
5 回答
1544 浏览

html - 我应该清理托管 CMS 的 HTML 标记吗?

我正在考虑为客户启动类似 CMS 的托管服务。

实际上,它将要求客户输入文本,这些文本将提供给任何访问其网站的人。我计划使用 Markdown,可能与 WMD(SO 使用的实时降价预览)结合使用来处理大块文本。

现在,我应该清理他们对 html 的输入吗?鉴于只有少数人编辑他们的“CMS”,所有付费客户,我应该去掉坏的 HTML,还是应该让他们疯狂?毕竟,这是他们的“网站”

编辑:我为什么要这样做的主要原因是让他们使用自己的 javascript,并拥有自己的 css 和 div 以及不用于输出的东西

0 投票
5 回答
572 浏览

javascript - 最喜欢的 Web 表单验证技术

每个人最喜欢清理用户数据的方式是什么?

我一直在使用 Javascript,但最近需要一些更安全的东西(毕竟人们可以关闭它),所以我在看 Flex,但我想我会问社区他们的想法。

0 投票
2 回答
6397 浏览

mysql - 清理 MySQL 用户参数

当用户的输入将被插入到 MySQL 查询中时,应该在用户输入中替换哪些危险字符?我知道引号、双引号、\r 和 \n。还有其他人吗?
(我没有使用接受参数的智能连接器的选项,因此我必须自己构建查询,这将在多种编程语言中实现,包括一些晦涩难懂的语言,因此mysql_real_escape_stringPHP 等解决方案无效)

0 投票
4 回答
7701 浏览

php - 清理 URL 变量的整洁方法?

我想知道在我使用它们之前是否有一个快速简便的函数来清理我的 url 中的 get 变量。(或者 $_POST 想到它......)

我想我可以使用正则表达式来替换不允许的字符,但我很想听听人们用什么来做这种事情?

0 投票
6 回答
203 浏览

html - 从 HREF 中删除 Javascript

我们希望允许“正常”href 链接到其他网页,但我们不想让任何人潜入客户端脚本。

在 HREF 和 onclick/onmouseover/etc 中搜索“javascript:”。活动够好吗?或者还有其他需要检查的东西吗?

0 投票
3 回答
1247 浏览

python - 用于完整性检查的循环函数参数

我有一个 Python 函数,我正在对输入参数进行一些清理:

这迎合了作为None而不是空字符串传递的参数。是否有更简单/更简洁的方法来循环函数参数以将这样的表达式应用于所有参数。我的实际函数有九个参数。