2

根据问题标题。

虽然不是必需的;我想阻止人们通过控制台在我的页面上执行功能......这甚至可能吗?

我已经尝试了一些东西,这是我最接近的 - 但这不起作用:(

    window.onresize = function(){
        if((window.outerHeight - window.innerHeight) > 100) {
            //stop commands here?
        }
    }
    window.onload = function() {
        if (typeof console !== "undefined" || typeof console.log !== "undefined") {
            if (window.console && (window.console.firebug || window.console.exception)) {
                    //stop commands here?
            }
        }
    }

编辑:
我不必禁用控制台,只需在其中进行函数调用 - 两种解决方案都可以;)

EDIT2:
所以,要做到这一点......现在根本没有办法检测控制台跨浏览器?

EDIT3:
我已经通过执行以下操作来解决它,尽管 JS 函数仍然存在 - 它们相关的元素不是......不是一个很好的修复,但我想它会做...... :(

        setInterval(function() {
            if (!$.browser.mozilla) {
                if((window.outerHeight - window.innerHeight) > 100) {
                    alert("DISABLED!");
                    $('body').remove();
                    return false;
                }
            }
            if (window.console && (window.console.firebug || window.console.exception)) {
                alert("DISABLED!");
                $('body').remove();
                return false;
            }
        }, 750);
4

1 回答 1

2

尝试通过窗口宽度检测控制台并不好。这也可能在其他浏览器上引起一些问题。如果您只想保护您的功能:

正如你有一个按钮:

<button onclick="someFunction()"></button>

someFunction 当然可以通过控制台访问。但是如果你不让用户知道你的函数名,他就不能调用这个函数,可以吗?看这里:

<script type="text/javascript">
//obsfuscate this code
$(function() {
$("#theButton").on("click", someFunction);
})
</script>
<button id="theButton"></button>

这只是一个可能的解决方案。但是请记住,没有任何 javascript 解决方案可以 100% 安全,因为用户知道您的所有代码,无论是否混淆。

于 2012-10-23T10:29:59.327 回答