有没有办法阻止在控制台中执行Javascript命令?

时间:2012-10-23 10:23:06

标签: javascript security console

根据问题标题。

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

我尝试了一些事情,这是我最接近的事情 - 但这不起作用:(

    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:
所以,要做到这一点......现在根本无法检测到控制台的crossbrowser?

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);

1 个答案:

答案 0 :(得分:2)

尝试通过窗口宽度检测控制台是不好的。这也可能导致其他浏览器出现一些问题。如果您只想保护您的功能:

你有一个按钮:

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

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

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

这只是一种可能的解决方案。但是rembember,没有javascript解决方案可以100%安全,因为用户知道你的所有代码,是否有混淆。