问题标签 [sanitize]

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 投票
3 回答
376 浏览

php - 在不通过网络浏览器进行清理的情况下查看访问日志是否危险?

在不通过网络浏览器进行清理的情况下查看访问日志是否危险?

我正在考虑记录访问日志,我正在考虑通过wev浏览器查看它,但是如果攻击者修改了他的远程主机或用户代理之类的东西,他可以攻击我吗?

通过将攻击代码插入他的远程主机或用户代理等。

那么在通过网络浏览器打开访问日志文件之前,我是否需要通过 htmlspecialchar 进行清理?

我的意思是攻击者将一些攻击代码插入到他的远程主机或用户代理或某些软件中,然后我通过 Web 浏览器看到该访问日志,然后我的 PC 将受到该代码的影响。

0 投票
5 回答
34700 浏览

php - 如何在邮件发送前在 PHP 中清理用户输入?

我有一个简单的 PHP 邮件程序脚本,它从通过 POST 提交的表单中获取值并将它们邮寄给我:

如何清理输入?

0 投票
1 回答
1379 浏览

php - 用户输入、PHP、Javascript 和安全性

我正在开发一个方向服务,用户输入从地址和到地址并获取方向表(提供转弯信息)以及显示路线的地图。

下面是完整的源代码(getdirections.php):

如果您在系统名称上试用此代码,则将其命名为 getdirections.php。您唯一需要更改的是 google maps api 密钥。你可以在这里拿到钥匙。

生成密钥后,将密钥放入密钥参数中(为方便起见,复制了下面的行):

从上面的代码可以看出,我通过 PHP 获取输入并在 Javascript 中进行处理。现在,我不希望用户摆脱任何类型的输入(javscript、危险的 HTML 等)。我尝试在 PHP 中使用 urlencode 函数。但是,javascript 代码不接受编码的用户输入,即使输入良好也会失败。

作为这个问题的解决方法,我在 PHP 中编写了一个 filterInput 函数,它将替换/删除某些字符并阻止用户尝试通过输入执行 Javascript 代码的任何尝试。

这运作良好。但是,当用户确实尝试提供恶意输入时,例如 "+alert("hello")+" 包含开头和结尾的引号,filterInput 函数会修剪前导引号和尾引号,结果字符串如下:

现在当执行下面的代码时:

PHP 用它的返回值替换函数调用,如下所示:

脚本的执行因上面的行而停止并出现错误(缺少;之前的语句)

请注意,如果我没有修剪引号并直接使用 $_GET['location1'] 我会得到。

alert("hello") 会被执行!!

所以,我正在修复中。如果我过滤输入,我会在某些用户输入上得到一个 javascript 错误,如果我不过滤输入,我允许用户执行任何类型的 javascript。

那么我的问题是:

  • 什么是处理网络输入的正确且安全的方法?
  • 这种跨语言(从 PHP 到 Javascript)的用户输入可以吗?
  • 除了用户能够执行 javascript 之外,还有哪些其他类型的安全威胁,这段代码是否容易受到攻击?

谢谢阅读!!

请帮忙。

0 投票
2 回答
4054 浏览

sql - 在自定义条件下清理 SQL

我需要创建一个简单的搜索,但我负担不起使用 Sphinx。

这是我写的:

现在,sanitize_sql_for_conditions 不起作用!它返回只是返回原始字符串。

如何重写此代码以逃避恶意代码?

0 投票
2 回答
5187 浏览

ruby-on-rails - 如何最好地使用 rails 清理丰富的 html?

我正在寻找有关如何清理 Web 应用程序中提交的 html 的建议,以便将来可以在没有样式或未封闭标签破坏应用程序布局的情况下重新显示它。

在我的应用程序中,富 HTML 是由用户使用 YUI 富文本编辑器提交的,默认情况下会运行一些正则表达式来清理输入,我还调用 [filter_MSWord][1]来捕获从办公室发送的任何废话

在后端,我正在运行ruby-tidy以在显示为评论之前对 html 进行清理,但有时粘贴不好的 html 仍然会影响我正在使用的应用程序的布局 - 我该如何防范呢?

FWIW 这里是我正在使用的消毒剂设置 -

我在这里还有什么选择?

0 投票
3 回答
3138 浏览

ruby-on-rails - 在 Rails 中去除内联 CSS 和 JavaScript

我正在开发一个 Rails 应用程序,我想知道剥离 CSS 或 JavaScript 块的最佳方法是什么。

我使用strip_tags帮助器来处理大部分 HTML,但是当内容包含内联 CSS 时,它会留下一堆 CSS。谢谢

0 投票
1 回答
3663 浏览

php - 通过 PHP 清理 PostgreSQL 中所有用户的输入

这个问题是基于这个线程

使用 pg_prepare 时是否需要显式清理?

我觉得 pg_prepare 会自动清理用户的输入,这样我们就不需要这个了

我使用 Postgres 的上下文

0 投票
6 回答
7271 浏览

php - 何时过滤/清理数据:在数据库插入之前还是在显示之前?

当我准备解决输入数据过滤和清理问题时,我很好奇是否有最佳(或最常用)的做法?在将数据插入数据库之前过滤/清理数据(HTML、JavaScript 等)是否更好,还是应该在准备以 HTML 显示数据时进行?

几点注意事项:

  • 我在 PHP 中执行此操作,但我怀疑此问题的答案与语言无关。但是,如果您有任何特定于 PHP 的建议,请分享!
  • 这不是为了数据库插入而转义数据的问题。我已经让 PDO 处理得很好。

谢谢!

0 投票
4 回答
2769 浏览

php - 我的反 XSS 方法可以允许 PHP 中的用户 HTML 吗?

我正在寻找一种让用户提交数据的好方法,在这种情况下允许 HTML 并尽可能安全和快速。

我知道这个网站上的每个人似乎都认为http://htmlpurifier.org是这里的答案。我部分同意。 htmlpurifier拥有最好的开源代码,用于过滤用户提交的 HTML,但解决方案非常庞大,不利于高流量站点的性能。有一天我什至可能会使用那里的解决方案,但现在我的目标是找到一种更轻量级的方法。

我已经使用下面的 2 个功能大约 2 年半了,还没有出现任何问题,但我认为是时候从这里的专业人士那里获取一些意见,如果他们能帮助我的话。

第一个函数称为FilterHTML($string),它在用户数据保存到 mysql 数据库之前运行。第二个函数称为format_db_value($text, $nl2br = false),我在计划显示用户提交数据的页面上使用它。

这两个函数下面是我在http://ha.ckers.org/xss.html上找到的一堆 XSS 代码,然后我在这两个函数上运行它们,看看我的代码有多有效,我对结果,他们确实屏蔽了我尝试过的每一个代码,但我知道它显然仍然不是 100% 安全的。

你们可以看看它,给我任何关于我的代码本身甚至整个 html 过滤概念的建议。

我想有一天做一个白名单方法,但htmlpurifier是我发现的唯一值得使用的解决方案,正如我所提到的,它不像我想要的那样轻量级。

在网页上显示用户提交的代码时使用以下函数


下面的代码来自hackers.org,它们似乎都在我上面的函数中失败了

尽管还有更多,但我没有尝试该站点上的每个人,这只是其中的一部分。
原始代码在每组的最上面一行,运行完我的函数后的代码在下面一行。

0 投票
3 回答
1647 浏览

java - 在 Java 中清理 HTML Id 属性的函数

我已经编写了下一个函数。但肯定有人有更优雅的方式来执行这项任务。