javascriptの関数またはメソッドは、ブラウザのアドレスバーから実行できます。それを防ぎたい
できません。
アドレスバーで実行されて機能しない場合に、関数の引数に何を入力する必要があるのかがユーザーにわからない場合に、どのような概念を使用すればよいのでしょうか。
コードを難読化することはできますが、それによってリバースエンジニアリングや単純な書き直しが妨げられることはありません。重要なのはHTTPリクエストであり、それらを作成するJSではありません。
twitter-follow-buttonのようなコンセプトを使いたいです。しかし、人々が特定のこと(id、dateなど)を知っている場合、より多くのフォロワーやものを獲得することでそれをハックすることができます。
サーバー上で、要求を行っているユーザーが要求を行うことが許可されていることを認証する必要があります。その特定のインスタンスでは、現在ログインしているユーザーのセッションデータを使用して、どのユーザーがフォロワーになるかを決定することでそれを行うことができます。
また、別のサイトがユーザーを自分のサイトに転送できないように、CSRF保護を実装する必要があります。
マロリーがアリスにリクエストを行うアドレスバーに配置するJavaScriptを与えるのを簡単に止めることはできません。これはソーシャルエンジニアリング攻撃です。ただし、ブラウザは現在、それに対する保護を実装しています(たとえば、アドレスバーからjavascript:urisをブロックし、代わりに開発者ツールを使用するようにします)。
レート制限を実装して、スクリプトがユーザーに短時間で数十人をフォローさせないようにすることができます。
別のサブドメインへのフルページリクエストを必要とするリクエストを作成し、そのサブドメインにコンフォメーションリクエストを元のサーバーにプルバックさせることができます。ユーザーは2つのホスト名のデータを操作する必要があるため、貼り付けた1つのスクリプトで完全なプロセスを実行することはできません(同じオリジンポリシーが存在するため)。それはおそらくやり過ぎです。