javascript - 混淆网页中的文件名

标签 javascript html obfuscation jplayer deobfuscation

我正在创建一个网络应用程序,它将获取调查类型的数据。 用户会看到几个文件并被问到一个问题。用户为了不扭曲数据,一定不能知道文件的文件名。

为 JPlayer 实例创建一个空 div,并在该 div 中添加了“location”属性,因此在客户端设置 JPlayer 实例时,JPlayer 知道要播放什么 .wav

 <div id="jquery_jplayer" class="jp-jplayer" location="sound.wav"></div> 

这是 javascript 的一部分,用于设置要播放的声音,在这里很容易看到文件位置只是从 div 中拖动

$("#jquery_jplayer").jPlayer("setMedia", {
    wav: $(this).attr("location")
});

基本上,目的是从 HTML 文档中隐藏“sound.wav”并保持 JavaScript 动态。 混淆和反混淆之间的翻译文件是可能的,但保持这种动态会很好。

最佳答案

如果您想真正对查看者隐藏逻辑,那么您需要在服务器端而不是使用客户端 JavaScript 来完成。您可以使对客户端代码中发生的事情的剖析“复杂化”,但您无法真正隐藏它。

如果您需要有关混淆的进一步帮助,您必须更好地描述您真正想要做什么。当前的描述似乎没有提供足够的信息。这个文件路径是什么?它的用途是什么?为什么需要隐藏它?

如果您真正想要的只是一个 Javascript 函数来混淆和反混淆声音文件名,您可以通过 Google 找到很多选项,具体取决于您想要获得的详细程度。我的猜测是,确定的作弊行为不会被愚弄(因为所有代码都是用于反混淆的),因此您真正要做的就是使其乍一看并不明显。因此,任何简单的算法都可以。

由于您已经在使用 jQuery,因此这里有一个执行简单字符串混淆的 jQuery: http://plugins.jquery.com/project/RotationalStringObfuscator 。您必须在某种测试应用程序中自己运行混淆器来记录服务器应将每个文件名设置为什么,然后当您想要实际使用文件名时在客户端中执行相反的操作。

如果你问我,更好的解决方案是从一开始就给文件名指定无意义的名称。这将是像 395678264.wav 这样的名称,并且以这种方式使用它们(在服务器和客户端上)。那么,这个名字对于任何窥探的人来说就毫无意义。不需要反混淆或转换表,因为这是真实的文件名。

关于javascript - 混淆网页中的文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6795042/

相关文章:

android - 混淆代码

javascript - jQuery 元素未传递给 perl cgi

javascript - Angular 5 Material snackbar

Sinatra 与 NGINX 与 Unicorn 上的 Javascript 错误

html - JAWS 不会在 IE 中的选择框上公布 aria-describedby

node.js - 任何适用于 Nodejs Express 源代码的混淆器

javascript - 如何使用 Jquery 解码 JSON(不同数量的元素、不同的键)

javascript - applyBindingsToNode 与 observable

php - 有没有更简洁的方法来编写这个避免包含

java - ProGuard 修改(增加大小)跳过的类