最近、悪意のあるユーザーがHTMLファイルを直接取得しないようにhttpHandlerを設定しました。私は前にこのようなことをしたことが一度もなかったし、多くの研究をした後、httpHandlerを使うのが最良の結果だったようだ。しかし、すべてのチュートリアルでハンドラを設定する方法が説明されていましたが、すべてが "今すぐ要求が正当かどうかを確認するだけです!これがどのように行われるか説明することなく説明します。HttpHandlerで要求が正当であるかどうかを確認する
他のドメインからの要求を停止する方法の例がたくさんあります。たとえば、イメージリーチを止めるなどです。私がしたいのは、Angularレイヤーで作成されたHTMLファイルの要求を許可し、ブラウザーで直接要求をブロックすることです。つまり、AngularがHTMLテンプレートをリクエストした場合は取得する必要がありますが、誰かが "mysite.com/static/templates/template.html"をブラウザバーに入力した場合はブロックする必要があります。
私が思いついた解決策は、Angularがすべてのリクエストでカスタムヘッダーを送信することです。 httpHandlerはこのヘッダーの存在を探し、ヘッダーが存在する場合はHTMLファイルを返します。したがって、要求がAngularエコシステム内から来ない場合、ヘッダーはなく、バウンスされます。この方法には2つの問題があります。
少し壊れています。私たちは、ユーザーからの報告が拒否されたときに(まれにしかない)報告していましたが、なぜこれが起こるのかを特定できませんでした。
たとえば、javaScriptファイルでは機能しません。 JSファイルは同じ方法で読み込まれないので、同じ方法でそれらを保護することはできません。
要求は、ブラウザバーから、または合法的に私のUIから直接来たかどうかを伝えるためのより良い方法はありますか?
フロントエンドは角度があり、バックエンドは.NET 4.5です。