可以查看网站功能并从控制台运行它们吗?

问题描述

Javascript 问题在这里。是否应该能够在开发者控制台的主体中看到一个脚本标签,然后直接在网站上运行这些功能?这似乎是一个安全问题,应该有一种方法可以通过某种加密或安全方法来防止这种显示在浏览器中,这会使您的 JavaScript 函数无法读取。

谢谢,

解决方法

虽然从技术上讲没有办法做到这一点,并且您应该始终假设前端的任何事情都不安全,但您可以使用范围界定来完成您所追求的一些事情,例如:

const Sample = (() => {
    function Sample() { 
        const hiddenFunc1 = (() => { });
        const hiddenFunc2 = (() => { });
        
        hiddenFunc1();
        hiddenFunc2();
    }

    Sample.prototype.visibleFunc1 = function(){ }
    Sample.prototype.visibleFunc2 = function(){ }

    return Sample;
})();

现在,当在单独的文件中时,您将只能访问 Sample.visibleFunc1Sample.visibleFunc2hiddenFunc1hiddenFunc2 仅限于构造函数范围并且本质上是私有函数。

请注意,为了使用上面的设计模式,您需要像这样初始化它:

const sample = new Sample();
sample.visibleFunc1();
sample.visibleFunc2();