-4

多くの皆さんと同じように、JavaScriptの関数またはメソッドはブラウザのアドレスバーから実行できることをご存知でしょう。アドレスバーで実行されて機能しない場合に、関数の引数に何を入力する必要があるのか​​がユーザーにわからない場合に、どのような概念を使用すればよいのでしょうか。

twitter-follow-buttonのようなコンセプトを使いたいです。しかし、人々が特定のこと(id、dateなど)を知っている場合、より多くのフォロワーやものを獲得することでそれをハックすることができます。クリックされたときにのみ実行したい。

プログラムの使用:PHP、jquery、css。例は上記の以下に基づくことができます。

必要なヘルプ。前もって感謝します。

4

3 に答える 3

2

javascriptの関数またはメソッドは、ブラウザのアドレスバーから実行できます。それを防ぎたい

できません。

アドレスバーで実行されて機能しない場合に、関数の引数に何を入力する必要があるのか​​がユーザーにわからない場合に、どのような概念を使用すればよいのでしょうか。

コードを難読化することはできますが、それによってリバースエンジニアリングや単純な書き直しが妨げられることはありません。重要なのはHTTPリクエストであり、それらを作成するJSではありません。

twitter-follow-buttonのようなコンセプトを使いたいです。しかし、人々が特定のこと(id、dateなど)を知っている場合、より多くのフォロワーやものを獲得することでそれをハックすることができます。

サーバー上で、要求を行っているユーザーが要求を行うことが許可されていることを認証する必要があります。その特定のインスタンスでは、現在ログインしているユーザーのセッションデータを使用して、どのユーザーがフォロワーになるかを決定することでそれを行うことができます。

また、別のサイトがユーザーを自分のサイトに転送できないように、CSRF保護を実装する必要があります。

マロリーがアリスにリクエストを行うアドレスバーに配置するJavaScriptを与えるのを簡単に止めることはできません。これはソーシャルエンジニアリング攻撃です。ただし、ブラウザは現在、それに対する保護を実装しています(たとえば、アドレスバーからjavascript:urisをブロックし、代わりに開発者ツールを使用するようにします)。

レート制限を実装して、スクリプトがユーザーに短時間で数十人をフォローさせないようにすることができます。

別のサブドメインへのフルページリクエストを必要とするリクエストを作成し、そのサブドメインにコンフォメーションリクエストを元のサーバーにプルバックさせることができます。ユーザーは2つのホスト名のデータを操作する必要があるため、貼り付けた1つのスクリプトで完全なプロセスを実行することはできません(同じオリジンポリシーが存在するため)。それはおそらくやり過ぎです。

于 2012-07-24T19:57:36.890 に答える
0

あなたの最善のアプローチは、グローバルスコープに変数を追加しないことだと思います。

グローバルに到達できないものは、ページの無名関数やアドレスバーなどからアクセスできません。ページにスクリプトを挿入する方法がない場合は、かなり安全です。

それ以外に、ユーザーがアドレスバーでスクリプトを実行できないようにする方法はないと思います。

于 2012-07-24T19:53:36.290 に答える
0

要するに、あなたがそれを説明する方法では、それは不可能です。

于 2012-07-24T19:57:32.710 に答える