2017-03-21 14 views
0

私はapiエンドポイントを持っていますが、特定のウェブサイトからのみアクセスできます。node.jsでの直接URLアクセスを許可しないAPIエンドポイント

apiはapi.mydomain.com/v1/ です。そのapiにしかアクセスできないウェブサイトはmydomain.comです。私はすでにCORSを実装していますが、私のウェブサイトは公開されているので、ログインする必要はなく、静的でapiはajaxによって呼び出されます。ユーザーが自分のサイトを表示している場合、apiエンドポイントが表示されます。したがって、エンドポイントを参照すると、データに直接アクセスできます。 URLのエンドポイントを直接アクセスするのではなく、自分のドメインにアクセスさせたい。 node.js expressプロジェクトでどうすればいいですか?

+0

エクスプレスモジュール[cors](https://github.com/expressjs/cors)は簡単にドメインをホワイトリストに登録できます。 –

+0

'get'の代わりに' post'要求を使うだけで、データを取得することができます。アプリケーションでは、リクエストが 'post/get'であるかどうかをチェックし、getでエラーを表示できます。すでにCORSが有効になっているため、他のサイトはエンドポイントからデータを取得できません。 –

+0

はブラウザレベルまでレスポンスを送信できますか?レスポンスヘッダーには 'AccessControl-Allow-Origin'が' somedomain.com'、 'Access-Control-Allow-Methods'には何も含まれていないので、ブラウザーはレスポンスの実行/表示を停止します。 httpクライアントを使用するプログラムを使用している場合でも、そこに完全な応答が表示されます。 – singsuyash

答えて

0

mydomain.com Webページのみで作成されたすべてのAPIリクエストにセキュリティトークンが含まれているようなCSRF保護機能を追加する必要があるようです(このセキュリティトークンの実装を提供するフレームワークまたは使用しているフレームワーク)SO Post助けてください

+0

これをプログレッシブWebアプリケーションでどのように実装できますか?私のウェブサイトを私のビルドPWAです – sse

+0

私は本当にPWAsに精通していない、私はPWAのタグを追加する必要があると思う。しかし、私は、Webサーバーが認証時にトークンを作成するためのAPIを提供する必要があることを伝えてお手伝いします。それらのAPIを探します。 CSRFと、あなたのサーバーフレームワークから期待するべき種類のAPIについてさらに読む。 https://www.troyhunt.com/understanding-csrf-video-tutorial/およびCSRFのwikiページに従うことができます。あなたはYouTubeでも多くのビデオを見つけることができます。 – singsuyash

関連する問題