问题标签 [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 投票
6 回答
1902 浏览

c# - 在 .net 中清理用户 HTML

我的 C# 站点允许用户提交要在站点上显示的 HTML。我想限制 HTML 允许的标签和属性,但无法弄清楚如何在 .net 中执行此操作。

我试过使用Html Agility Pack,但我看不到如何修改 HTML,我可以看到如何浏览 HTML 并找到某些数据,但实际上生成输出文件让我感到困惑。

有没有人有一个在.net 中清理 HTML 的好例子?敏捷包可能是答案,但缺少文档。

0 投票
18 回答
178858 浏览

php - 文件名的字符串清理程序

我正在寻找一个 php 函数,它将清理字符串并使其准备好用于文件名。有谁知道好用的吗?

(我可以写一个,但我担心我会忽略一个字符!)

编辑:用于在 Windows NTFS 文件系统上保存文件。

0 投票
2 回答
1197 浏览

asp.net - 我是否需要清理来自 ASP.NET MembershipProvider 控件的输入?

我正在使用各种开箱即用的 ASP.NET 控件,例如 CreateUserWizard 控件、登录控件等。对于自定义控件,我已经通过确保它们符合预期值来清理我的输入。但是,这是 CreateUserWizard 控件等控件所必需的,还是内部处理的?我是否需要为这些控件提供任何额外的服务器端验证,如果需要,最好在“CreateUserWizardControl_CreatingUser”事件中进行吗?谢谢

0 投票
2 回答
2701 浏览

asp.net - 是否需要对密码输入进行清理?

我正在尝试通过确保数据对特定字段有效(例如名称不能包含特殊字符/数字等)来清理输入的任何数据。但是,我不确定当它出现时该怎么做到密码字段。由于密码只是散列,我什至需要进行任何清理工作吗?如果用户要通过密码文本框注入任何恶意内容,我是否应该费心检查任何可疑内容?AFAIK,一些用户可能(应该!)具有特殊字符,例如“< >”,这通常会触发潜在的攻击警报。我应该不清理密码字段吗?限制密码输入对我来说是最后的手段,因为我觉得用户应该在密码中使用各种字符。

谢谢

0 投票
3 回答
12057 浏览

php - 什么是 URL 的“足够的清理”

网址是

  1. 保存到 MySQL 数据库
  2. 用于在用户个人资料上显示图片

strip_tags() 和 mysql_real_escape_string() 就足够了吗?

0 投票
4 回答
2690 浏览

php - PHP Markdown XSS 杀毒软件

我正在寻找一个简单的 PHP 库来帮助过滤 PHP Markdown 输出中的 XSS 漏洞。IE PHP Markdown 将解析以下内容:

我一直在做一些阅读,我在这里找到的关于这个主题的最好的就是这个问题。

尽管 HTML Purifier 看起来是最好的(几乎唯一的)解决方案,但我想知道是否有更通用的解决方案?HTML Purifier 似乎有点健壮,尤其是满足我的需求,而且配置起来很痛苦,尽管这样做后它看起来会很好用。

还有什么其他的东西可能不那么健壮和可配置但仍然做得很好吗?还是我应该深入研究并开始尝试配置 HTML Purifier 以满足我的需求?

编辑澄清:我不想偷工减料或类似的东西。HTML Purifier 只是提供了许多细粒度的控制,对于一个简单的小项目来说,根本不需要太多的控制,尽管也不可以选择不使用任何东西。当我要求更简单不太健壮的东西时,这就是我的出发点。

最后一点,我不是在寻找使用建议或类似的东西。我已经通过以类似方式对其进行清理,从而禁止在 PHP Markdown Extra 中嵌入 HTML。我正在寻找方法来防止 PHP Markdown OUTPUT 中的 XSS 漏洞htmlspecialchars()strip_tags()

谢谢。

0 投票
3 回答
6266 浏览

cakephp - 何时在 CakePHP 中进行清理

我从食谱中读到(第 4.2 节)

如果您使用 CakePHP 的 ORM 方法(例如 find() 和 save())和适当的数组表示法(即 array('field' => $value))而不是原始 SQL,CakePHP 已经保护您免受 SQL 注入。对于 XSS 的清理,通常最好将原始 HTML 保存在数据库中而不进行修改,并在输出/显示时清理。

那么我们确定我们永远不需要针对 SQL 手动清理用户数据,只要我们限制为 find() 和 save() 等方法吗?特别是,如果我直接从 $_POST 而不是从 $this->data 获取数据,这是真的吗?换句话说,假设我使用 $this->data 进行 find() 查询。那么在编写数组 $this->data 或编写 find() 查询时,CakePHP 会针对 SQL 进行清理吗?

我的第二个问题是对要显示的数据进行清理。Sanitize::html 是幂等的吗?那么,我可以在我的 beforeSave() 方法中使用它,还是在我第二次保存时它会中断,因为它会再次应用并给出新的结果?

0 投票
1 回答
761 浏览

ruby-on-rails - 清理 vimeo 嵌入代码

这是 vimeo 网址代码。

这是 Rails 文档中的示例

我只想显示视频,没有高度、宽度、标题等。我尝试在过去 20 分钟内对其进行修改,但无法使其正常工作。

有什么建议么?

0 投票
2 回答
960 浏览

java - 如何在模型级别清理包含 HTML 的字符串字段?

我有一个使用 Spring、JPA (Hibernate) 和 Java 验证框架 (Hibernate Validator) 的应用程序。我希望能够在我们的域模型中注释允许包含 HTML 的字段,并在提交时自动清理它们。有谁知道一个聪明的方法来做到这一点?

我曾尝试使用验证框架,但这不支持在验证时修改字段的值。我可以破解一些东西以使某些东西正常工作,但我希望有一个更清洁的解决方案。

0 投票
2 回答
406 浏览

php - 如何处理混合使用 HTML 和标点符号的用户输入?

我有一个包含 HTML 和文本混合的表单字段。我希望用户能够使用基本的 HTML和标点符号。

目前我正在使用mysql_real_escape_stringpreg_replace来清理数据并将其插入数据库。我的理解是 preg_replace 是去除不在允许字符白名单中的任何字符的最佳方法,并且 mysql_real_escape_string 可以防止 SQL 注入。

但是,当使用哈希字符时,它会不断中断。

我的问题是:

1)有没有更有效的方法来做到这一点?

2)如果这是最好的方法,我做错了什么?

我需要允许的字符是:所有字母数字字符和:

? !@ # $ % & ( ) - 。, : ; '" < > / + =

谢谢!