问题标签 [security-by-obscurity]

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

javascript - 解“压缩”Javascript

毫无疑问,这将是重复的,但我不知道还能叫它什么。

我的一个朋友正在尝试学习 Javascript。他不小心将“压缩”(删除了所有空格)版本保存为他拥有的版本,并希望我再次帮助格式化它。他通过电子邮件向我发送了一个巨大的 .js 文件,然后……我不知道该怎么办。

我不想安装(毫无疑问 Eclipse 有一个)Eclipse 的 Javascript 插件,只是为了右键单击并格式化一次。有这个工具吗?一个将构建 AST 然后格式化该 AST 的解析器?

0 投票
2 回答
1024 浏览

javascript - 是否有任何 JS 库来掩盖字符串操作?

我想让字符串操作尽可能模糊。

现在我写了一个小函数,从原始字符串制作 HEX 字符串(结果的长度是原始长度的两倍)。但即使在丑化之后,代码也过于简单,黑客无法理解。

是否有任何库可以将字符串转换为 is self(= 不会对原始代码进行任何更改或对原始代码进行细微更改)?

0 投票
5 回答
1748 浏览

php - 我应该在应用程序前端隐藏数据库主键(id)吗

我正在开发一个允许版主编辑用户信息的应用程序。所以,目前,我有类似的 URL

我在这里有点担心,因为我直接从数据库中公开用户表主键(id)。我只是从 URL 中获取 id(例如:从上面的 URL 中获取 1 和 2),使用 ID 查询数据库并获取用户信息(当然,我清理了输入,即来自 URL 的 ID)。

请注意:

我正在验证每个请求以检查版主是否有权编辑该用户

这就是我正在做的事情。这安全吗?如果没有,我应该怎么做?

我可以想到一种替代方法,即为带有 25 个字符键的用户表设置一个单独的列,并使用 URL 中的键并使用这些键查询数据库

但,

  • 它有什么区别?(因为密钥现在暴露了)
  • 按主键查询比其他列更快产生结果
0 投票
0 回答
55 浏览

php - 数据库安全编码

我想问你是否有(在实践中)以这种方式对数据库进行编码的技术,即表名是任意的,并且字段以某种方式被编码(未加密)。

例如考虑一个MVC类,其中模型分为“低”和“高”级别。高级别与低级别和控制器通信,低级别与高级别和DB通信。

低级模型知道 DB 结构以及它是如何编码的(以及在编码结构和逻辑结构之间进行转换),而高级模型只知道 DB 逻辑结构。

示例:实际数据库包含名为“ff”的用户表,其中包含字段“a”-> 用于用户 ID,“fdas”-> 用于用户名和“g12ds”-> 用于密码。

高层认为有一个名为“users”的表,包含字段“uID”、“uName”、“uPass”。

底层知道两者以及如何将一个翻译成另一个。

如果高层想要获取用户名为“john1234”的行,它会询问低层,如 $LOW->getRow("users.uName",EQUALS,"john1234"),然后低层询问数据库“select * from ff where fdas=='john1234'", 翻译响应并返回高级别结果,如 array("uName" => "john1234", "uID" => "75", "uPass" => "whatever ")

字段值也可以被编码(如映射'a'到'b','b'到'c','@'到'g','g'到'+'等等......)而不影响搜索能力,只要低级模型知道如何翻译(和逆向过程)。

目标是提高数据库的安全性,因为如果攻击者获取数据,他将无法直观地判断用户存储在哪个表中以及用户名是什么。

我的问题是:在实践中是否有类似的实现?

0 投票
1 回答
387 浏览

java - What's the optimal method to obscure String(Java - Serialization)

What's the optimal method to obscure String


For learning purposes I've decided to dig in a bit more into Java Serialization, most of it is fine. However I've been coming across this weird issue when trying to apply simple obscuring to String values.

Situation breakdown: I'm looking to 'obscure' not encrypt certain data that is passed from Profile Creation frame. Adding simple noise to all the profile details such as Profile Username, Password, Name, Surname etc.

The desired result is simple and works at times and sometimes it simply misses certain characters. Example:

Profile name: "John" is then turned into " ~nh#j@o^ " and ofcourse de-obscured back to "John"

The issue presents itself in the obscuring part. I'm printing the results to check if everything is alright, instead of "John" it will lose certain characters(1-2) and continue adding characters, like so:

Profile name: "John" is then turned into " ~n#j@o^ " and then de-obscured back to "Jon"

Which is a strange issue. I've looked around in articles and sort of 'mimicked' the obscuring style so that I wouldn't go way off touch.

Here is an example of how my Profile name is obscured:


Note: nSplit is simple the length of getName() divided by 3(To produce 3 'slices')

Also, wanted to add. This is far worse when trying to obscure the password from a JPasswordField#getPassword() as opposed to JTextField#getText(). Not sure as to why either

0 投票
1 回答
1172 浏览

ruby-on-rails - URL 的混淆 - rails

我正在做一个让我难过的项目,希望有人能提供一些有趣的意见。我看到有几个可用于混淆 url 的 gem,但它们似乎停止在 slug 级别而不是控制器级别 - 即 www.foo.com/mycontroller/8sZ16lp。我正在寻找一种方法来产生类似于 www.foo.com/8asd31Ud 的内容,删除控制器名称。我检查了 obsufacate_id gem 的文档,但似乎并没有那么远。

提供更多背景信息 - 我真的希望有 www.foo.com/mycontroller/15/edit = www.foo.com/95Ali32

0 投票
2 回答
248 浏览

c++ - 在 C 或 C++ 应用程序中使用 @

我来到了这个晦涩难懂的事情......我想知道@符号是否有可能出现在有效的 C/C++ 应用程序的源代码中,除了以下情况:

  • 一个const char*值,例如const char* addr = "xyz@gmail.com"
  • 一个const char值,例如char c = '@'
  • 从未使用过的宏:#define NEVER_EVER ABC@
  • 在注释掉的部分

问的原因:好奇:)

0 投票
1 回答
496 浏览

apache - 一个不起眼的文件下载链接有多安全?

这是我正在尝试做的事情:

我想通过将我的 Vcard (.vcf) 文件托管在我的个人网站上来分发它(这部分是一个严格的要求)。人们将通过我名片上的二维码访问它,但是,我的网页上不存在该文件的链接

我想让文件公开访问,同时确保它不会被机器人抓取。它将包含在一个不允许通过 robots.txt 被“普通”机器人访问的文件夹中,并且我将禁用 Apache 中的目录列表。

我不想介绍额外的步骤,例如验证码或身份验证。

我的想法类似于 google drive 如何进行公共共享 - 一个代表文件的 44 个字符的随机字符串。所以....

http://mywebsite.com/private/34599771831821330576336168849178778047996955.vcf

我的问题是:

1)这有多安全?据推测,只要我禁用 Apache 上的目录列表,机器人可以在没有直接链接的情况下偶然发现文件的唯一方法是通过随机猜测。机器人真的会费心去做一件事吗?

2)如果它是安全的,大概字符串长度是关键。字符串需要多长时间才能使其“安全”?

3)有比文件名模糊更好的方法吗?

0 投票
1 回答
52 浏览

vba - 数值模糊

类似于 C# 中的这个问题:User ID obfuscation

我正在寻找一种解决方案VBA来通过编码方法来掩盖长值,而且我还需要能够解码产生的数字。

0 投票
1 回答
27 浏览

java - 不可访问的配置设计

由于设计限制,我目前正在处理的项目不允许我们在纯文本文件(例如属性文件)中编写某些配置参数集(主要是由于安全限制)。

有没有办法隐藏这个配置参数,以便代码程序员可以访问它们。到目前为止,我唯一的想法是一个普通的 Java 对象。

此外,值得注意的是硬编码值对我们来说不是一个好的解决方案,因为有许多“子应用程序”需要自己的配置。在这一点上考虑某种资源包,但仍然存在最初的问题。

编辑:所以我遇到了这里提出的Jasypt,但我认为对于我的情况,将其保存在某种混淆文件中就足够了,因为这是我们所需要的,以使用户停止篡改配置文件。