问题标签 [whitelist]

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 回答
185 浏览

javascript - 通过白名单/黑名单组合保护网站免受过时的浏览器和插件的影响?

除了使用浏览器标头之外,我还想将我网站中的浏览器和插件列入黑名单/白名单,这样我就可以防止这些较旧的未打补丁的系统 (1) 成为我网站的普通用户 (2) 从潜在用户中删除这些“目标” - 攻击者到达。

我的目标是为访问我的站点但不直接管理环境的用户定义某种端点安全标准,因为他们是客户。

是否有使用白名单或黑名单控制浏览器访问我网站的标准方法?

例如,我想阻止任何具有过时 Flash 的浏览器,但如果它们根本没有 Flash,我想允许它们。

0 投票
1 回答
2979 浏览

java - 如何在 Java 中为用户代码创建类白名单?

我正在创建一个运行下载的 Java 代码的应用程序,并且我希望能够准确指定代码可以访问哪些内置 Java 类。我想这涉及使用 ClassLoader 和 SecurityManager,但我在 google 上找到的内容并没有帮助。

0 投票
2 回答
4852 浏览

javascript - 如何将 utf-8 字符串中的字符列入黑名单?

我有一个 HTML 文本输入,用户可以在其中为自己写一个名字。该名称只是一个用户友好的显示名称,它不用于识别数据库中的用户或后端的任何内容。

我想允许 utf-8 字符,这样人们就可以输入他们母语的字符,无论是中文还是瑞典语等等。

但是,我想将某些字符(如 <、>、[、]、?、* 等)列入黑名单,以阻止任何潜在的脚本小子试图利用输入进行 SQL 注入或其他操作。

我认为这将是一个简单的代码,在网络上会有很多示例,但是答案,如果它在那里,隐藏在如何使用白名单来验证电子邮件地址的示例中(只有英文字母数字字符,没有亚洲或其他语言特定字符),或者,奇怪的是,如何完全停止某些字符的按键。

我不想完全停止按键,因为我认为这可能会使用户感到困惑。相反,我会输出一个错误,说如果他们输入了一个列入黑名单的字符,他们就不能使用字符 X。

那么,对于像我这样完全不擅长正则表达式的人来说,有没有一种直接的方法可以将 Javascript 中的字符列入黑名单?

如果它不会抑制用户从他们使用的任何语言中输入时髦字符的能力,我也会选择白名单解决方案。

0 投票
4 回答
4611 浏览

php - 在 PHP 中将 utf-8 字符列入白名单的最有效方法是什么?

我的目标是通过为从客户端收到的任何和所有 POST 数据创建一个严格的允许字符白名单来保护我的网站免受攻击。

当停留在 ASCII 字符内时,这是小菜一碟。就像是:

但是,我需要能够允许任何和所有 utf-8 字符,尤其是亚洲字符集,如日文、中文和韩文。但我不想排除任何有古怪字符的人,比如阿拉伯语或俄语,或者其他什么。一个世界,一份爱!;)

我怎样才能允许人们输入他们母语的字符,同时排除邪恶脚本中使用的讨厌的东西,比如*、?、尖括号等等?

0 投票
3 回答
3686 浏览

ruby-on-rails - 使用设计列入白名单

我正在使用设计来管理我的 rails 应用程序中的用户身份验证。设计真的很棒。

但是我对我的应用程序有一个特殊要求:用户必须先被列入白名单,然后才能注册为用户。

所以有一个管理员可以创建一个允许的电子邮件列表。用户使用电子邮件注册,如果该电子邮件在白名单表中,他将被注册。但是,如果该邮件不在白名单中,则应中止注册,并显示“您尚未被邀请”之类的消息。

你知道如何通过设计解决这个问题吗?

提前致谢。

0 投票
1 回答
1395 浏览

javascript - 使用 jQuery 将标签列入白名单是否明智?JavaScript 中是否有现有的解决方案?

我的问题

我想清理粘贴在富文本编辑器中的 HTML(目前为 FCK 1.6)。清理应该基于标签的白名单(可能还有另一个带有属性的)。这主要不是为了防止 XSS,而是为了移除丑陋的 HTML。

目前我看不到在服务器上做这件事,所以我想它必须在 JavaScript 中完成。

当前的想法

我找到了jquery-clean 插件,但据我所知,它使用正则表达式来完成这项工作,我们知道这是不安全的。

由于我没有找到任何其他基于 JS 的解决方案,因此我开始使用 jQuery 自己实现一个。它可以通过创建粘贴的 html ( $(pastedHtml)) 的 jQuery 版本来工作,然后遍历生成的树,通过查看属性删除每个与白名单不匹配的元素tagName

我的问题

  • 这更好吗?
  • 我可以相信 jQuery 能够很好地表示粘贴的内容(可能有不匹配的结束标签和你有什么)?
  • 有没有我找不到的更好的解决方案?

更新

这是我当前的基于 jQuery 的解决方案(详细且未经过广泛测试):

我想知道一些要点(请参阅代码中的注释);

  1. 我真的需要将我的元素包装在一个虚拟父级中以便能够将它与 jQuery 的 ":not" 匹配吗?
  2. 这是创建新节点的推荐方法吗?
0 投票
5 回答
13893 浏览

javascript - Javascript限制文本输入字符

我想将文本框的输入字符限制为[a-z0-9_-]. 但是,无论何时执行此操作,例如退格键和箭头键都不起作用。我在这个网站和其他网站上发现了一些尝试,但它们要么不能在所有浏览器上正常工作,要么使用黑名单。例如W3Schools 网站示例黑名单号码。有没有办法使用白名单(上面的那个)并且仍然允许退格、箭头、主页、结束等键?还是我必须添加与我想要允许的键匹配的每个键码?我做这样的事情(为了简单起见,这被缩短了)。

编辑- 添加代码

0 投票
1 回答
59 浏览

html - 链接恶作剧?

如果使用 HTML 白名单和 HTMLPurifier,如果允许,恶意用户是否可以执行任何恶作剧<a></a>

对于气氛:

恶作剧!

0 投票
3 回答
4839 浏览

google-app-engine - Appengine 服务器的 IP 地址块?

我正在与第三方网络服务合作,该服务要求对其服务的所有调用都来自列入白名单的 IP 地址。也就是说,我必须给他们 IP 地址,我将从那里调用他们的服务。

问题是我正在使用 Google Appengine。从 Appengine 发出传出 http 请求时,有什么方法可以获取静态 IP 地址?如果做不到这一点 - 是否存在所有请求都来自的 IP 地址块?我可以将整个集团列入白名单。如果这种情况存在,它改变的可能性有多大?

我知道我可以设置一个简单的 Amazon EC2 实例以用作代理(将询问另一个问题,具体如何执行此操作),但只是想确保没有其他方法。

0 投票
1 回答
692 浏览

security - 网站登录 安全系统双重检查:基于 ip 的白名单,通过已在系统中的电子邮件地址

我最近不得不保护一个网站管理登录系统,并且想对我正在使用的方法获得一些第二意见,因为安全往往会从第二意见中受益。

实现细节:Linux、Debian、Mysql、Php

ip白名单系统

部分:数据库内:用户名,密码,电子邮件,IP地址,用户提供的IP白名单:用户名,客户端提供的密码:当前IP地址

除了需要正确的用户名和密码外,您连接的系统的 ip 必须被列入白名单以允许登录。因此系统的逻辑级联如下:

  • 如果 ip 未列入白名单:您无法登录,您必须验证该 ip。
  • 验证您当前的 ip:转到一个页面,输入用户名,您会收到“我们将验证该用户名 [someUsername](如果存在),您将直接收到该帐户的自动电子邮件。” 验证电子邮件将通过电子邮件发送到该帐户的存档电子邮件(如果该电子邮件存在且处于活动状态)。否则它只会显示消息而不做任何事情。
  • 验证电子邮件:只需一个带有与验证数据库中的密钥匹配的私钥的链接,链接到站点,页面链接验证数据库中该记录的 ip。

  • 如果 ip 白名单:一旦被列入白名单,正确的用户名/密码组合将正常登录,不正确的将被拒绝。

那就是系统。它似乎与银行用来验证设备的方法略有相似,但并不完全相同,因此可能需要重构。有什么建议吗?