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>

これは単なる可能な解決策です。しかし、覚えておいてください。ユーザーは、難読化されているかどうかに関係なく、すべてのコードを知っているため、100%安全なJavaScriptソリューションはありません。

于 2012-10-23T10:29:59.327 に答える