问题标签 [input-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 投票
1 回答
267 浏览

linux - R,如何在带有时区和垃圾 Unicode 字符的 Linux 上使用 strptime

当我从网上看到发布日期时,我看不到

<U+200E>

在日期之前,但是在我抓取网页之后,我以某种方式在日期之前看到“<U+200E>”。所以我将它保存为 csv 文件某处并读入。

我想计算这些日期和今天之间的天数差异,所以我使用 gsub 删除了 <U+200E>。

如果我只使用下面的 difftime,

它抛出一条错误消息。

但是如果我使用 strptime,它可以在窗口上工作,但它在 Linux 上给出 NA

经过广泛的谷歌搜索,似乎两个平台上的 strptime 使用没有区别。有什么建议可以让我在 Linux 上运行这个 strptime?

0 投票
1 回答
285 浏览

php - 存储用户提供的链接 PHP/MYSQL

处理用户提供的网址的最佳或最安全的方法是什么。我正在寻找人们社交媒体网站的网址;twitter、google+、facebook、youtube 等。我希望能够获取这些 url 并将它们存储在我的数据库中,而不会对数据库或网站造成风险。

我有哪些选择?我是否过滤输入和转义/排除字符,我是否只接受部分 url?

我仍然不确定安全过滤这些链接的最佳方法,我正在考虑一个系统,将用户提供的链接与一系列可接受的格式进行比较

IE。

我的 Facebook 链接是https://www.facebook.com/lilbugga,但我也可以使用https://www.facebook.com/532850510

马上就是 2 种不同的变体,然后人们也可以尝试使用 http、https、www、无 www 等提交指向他们个人资料的链接

如何处理所有这些不同的可能格式变化,是否创建一个数组,其中存储了多种不同格式的链接,以比较用户提供的字符串?

0 投票
3 回答
7862 浏览

java - 在使用正则表达式之前如何清理输入?

我正在制作一个用正则表达式解析用户输入的 Java 程序。例如,如果用户输入/me eats,它应该匹配/me并将其替换为<move>。但是,Java 没有正确匹配,因为/它是正则表达式的特殊字符。如何使用转义符自动替换所有各种特殊的 Java 正则表达式字符?

例如:

  • /me变成\/me
  • *变成\*
  • [变成\[
  • 等等...

它被放入之前Pattern.compile

这不是一个命令系统。我允许用户指定如何表示角色扮演动作。如果有帮助,这里是用户如何指定他们认为角色扮演动作的模型:

将控制此系统的首选项窗格的模型

0 投票
1 回答
9843 浏览

php - filter_input() $_SERVER["REQUEST_URI"] 和 FILTER_SANITIZE_URL

我正在过滤 $_SERVER["REQUEST_URI"] 这样:

php.net中所述:

FILTER_SANITIZE_URL

删除除字母、数字和 $-_.+!*'(),{}|\^~[]`<>#%";/?:@&= 之外的所有字符。

然而,

浏览器发送此 REQUEST_URI 值 urlencode'd,因此在此 filter_input() 函数中未对其进行清理。说地址是

http://www.example.com/abc/index.php?q=abc ��123

然后经过清理的请求网址是

/abc/index.php?q=abc%EF%BF%BD%EF%BF%BD123

但应该是

/abc/index.php?q=abc123

有可能 urldecode($_SERVER["REQUEST_URI"]) ,然后使用 filter_var() 我们可以获得经过清理的值。

我不知道为什么最后一个在我看来“不优雅”,我正在寻找一种优雅的方式来清理 $_SERVER["REQUEST_URI"]。

也许,在编码时直接访问超级全局数组 ($_SERVER['REQUEST_URI']) 会打扰我,因此“不雅”。

有没有优雅的方法?

0 投票
1 回答
214 浏览

php - 如何使用 python 过滤用户的输入(html,带有 PHP 后端)?

有一个用 PHP 和 HTML 编写的 Web 应用程序。我想要的是针对各种情况过滤用户输入并对其进行清理。例如,我想将来自表单(字符串)的输入与允许的字符串列表进行比较,并根据触发合适的 PHP 函数来处理它是对还是错。

我的问题是如何将用户输入与 python 脚本绑定,然后将这个 python 脚本的结果作为 PHP 的输入?

谢谢

0 投票
3 回答
2092 浏览

python - 最佳实践:处理具有大量参数和保留名称的函数

我正在为 uwsgi.it的 api 开发一个 python 客户端,我发现有必要编写接受大量(可选)参数的方法,这些参数将通过 http 请求发送。

最初我想声明用户可以插入哪些参数,因为它们太多了,我认为让用户将列表作为参数而不是让他自由地在字典中插入任何东西会更容易,更安全,我最终像这样:

但它非常难看,我真的不喜欢这种处理“_class”参数的方式。因此,我想到的另一种可能性是接受可以包含任何内容(或 **kwargs)的字典,在文档字符串中列出接受的键,然后对输入进行清理。一种可能的方法是声明一个只接受允许的参数的“私有”方法。但随后同样的问题又出现了!有什么建议吗?有这么多参数的方法有什么最佳实践吗?

0 投票
2 回答
3864 浏览

php - 在 Yii 2 中清理数据 - 内置还是扩展?

我找到了这个扩展Yii 1.1但没有看到任何相关的扩展Yii 2。所以我想知道是否有一个或者它是默认内置的?

此外,当在您的表单中设置数据属性时,model例如:

这些数据是默认清理的还是必须自己清理?

所以我想我的主要问题是——如何使用 Yii 2 清理数据?

0 投票
1 回答
306 浏览

python - numpy 计算的输入/输出验证/转换

这是我的代码中经常发生的情况。假设我有一个函数do_sth(a,b),仅出于本示例的目的,只需a+b使用a,b一维numpy数组或标量进行计算。在很多情况下,我需要函数来广播操作,这样如果两者a,b都是一维数组,结果将是一个二维数组。我的意思的一个例子如下:

这有点类似于 numpy 的ufunc行为方式。一个可能的实现如下:

如您所见,有很多样板。第一个问题是:这是进行这种输入/输出转换的正确方法吗?有没有理由不使用装饰器来处理这种情况?有没有关于此事的指导方针?

此外,更复杂的计算,在这里被加法模拟,如果a或者b是具有 2D、3D 形状的 numpy 数组,通常会严重失败。从某种意义上说,计算失败的点并不明显,或者在代码的不同版本中可能会随时间变化,并且很难看出错误与错误输入形状之间的联系。我认为不建议将复杂的计算放在一个try/except块中(遵循python EAFP)。在这种情况下,在函数开头检查 2 个数组的形状是否正确?有没有其他选择?是否有一个 numpy 函数允许同时将输入转换为 numpy 数组,并检查输入是否与一定数量的维度兼容,例如asarray_withdim(arr,ndim=5)

0 投票
2 回答
999 浏览

powershell - 清理richtextbox中的输入以删除空白行

我正在尝试清理richtextbox 中的输入以删除空白行。

当我运行程序时,它会清理输入并运行命令。

这是我在运行命令之前用来清理输入的代码:

如果它是逗号或分号分隔的列表,它将将每个项目分隔成一个新行,以便以后可以将每一行输入到一个数组中。

我要做的是在richtextbox中找到一行空白并删除该行。从 excel 复制单元格时可能会出现空行。

任何帮助,将不胜感激。如果您有任何问题,我会尽力解释更多。

富文本框中的示例输入:

所需的净化输入:

**编辑:**我找到了一个草率的解决方案,它适用于我的应用程序,但可能不适用于需要为大量数据执行此操作的人。(我不是一个大程序员,只用它来制作工具,所以我确信有一种方法可以更有效地做到这一点。)

0 投票
3 回答
18031 浏览

json - 如何在服务器端使用 JSON Sanitizer?

我想实现 OWASP 提到的“JSON Sanitizer”验证。我的理解是,这需要在两个地方完成:

  1. 从客户端或其他系统接收的 JSON 数据(在请求中) - 这需要在服务器端进行清理,然后再进行处理

  2. 要发送到客户端的 JSON 数据(响应中) - 这需要在服务器端进行清理,然后再发送到客户端

我只在那个 JSON 数据上调用 JSON 消毒库中的消毒方法就足够了吗?

是否会执行所有消毒或在这方面是否需要进行任何其他验证?