nodejsを使用して画像アップロードサービスを作成しています。有料クライアントは、自分のサーバーに設定したエンドポイントに画像ファイルを送信できます。しかし、すべてのリクエストが来たら、それが実際に要求を出している有料クライアントであることを確認する必要があります。私はクライアントが自分のドメイン名を私に与えることを考えていました。しかし、誰かがRefererヘッダーを簡単にスプーフィングし、支払いをせずにサービスを利用することができます。 SaaS開発者はこの技術的な問題にどのように直面しますか?私のクライアントにサーバーサイドコードを持たせることなくこれを修正することは可能ですか?HTTPリクエストでリファラー/リファラーを知る安全な方法は何ですか?
答えて
参照者ヘッダーでブラウザを認証することはできません。
個人を認証する場合は、(username/pwd)に資格情報を提供するログインシステムが必要になり、許可されたユーザーベースに対して資格情報を確認する必要があります。これらが合格すると、特定のタイプのCookieをブラウザに設定して、それらが正当なユーザーであることを示します。このユーザーからの後続のリクエストには、リクエストごとに確認できるCookieが含まれます。
クッキーは、セッションやサーバーからの暗号化されたトークンなど、簡単に推測や偽造ができないことを確認できるように作成する必要があります。あなたは通常、ある時間後にクッキーの有効期限を設定して、ユーザーが再度ログインする必要があります。
合意。 OAuthと呼ばれる無料のオープンソースフレームワークがあります。これは、あなたのために多くの作業を行います:http://oauth.net。あなたの質問にJavascriptを付けたので、使用できるJavaScriptコードへのリンクは次のとおりです:http://oauth.googlecode.com/svn/code/javascript/ –
あなたはウェブサイトのための外部の画像ホスティングサービスを構築するか、それががを確保プライベートとするを持っているものを共有することですされていますか?前者の場合は先読みしてください。
もちろん、ヘッダーはなりすますことができます。あなたはそれを心配べきではない理由はここにあります:
代替は醜いです:安全なプロビジョニングサービスを構築するには、ウェブサイトの所有者は、同様に彼の最後で実装トークンシステムのいくつかの種類を開発する必要があります。チャンスは、利用できるより簡単な選択肢があるので、彼はあなたにサインアップしないだろう。
クライアント側でなりすましを行う必要があります。実際にこれを行うユーザーはごくわずかです。自分のマシン上の2つのオタクがヘッダーを偽装しても、大きな違いはありません。彼らがこの仕事を自動的に行うプロキシやミドルウェアを書くと多くの人がそれを使い始めると問題になるかもしれません。しかし、これはあまり起こりそうもありません。
ご存知のことですが、言及していないので、Hotlinking
と呼ばれています。 Googleは、このトピックは、より多くのリソースを見つけることができます。
- 1. 最も安全なハッシュ方法は何ですか? (PHP)
- 2. Javascriptで安全なリファクタリングを容易にする方法は何ですか?
- 3. Webサーバー(HTTP/FTP)からファイルをプログラマチックにダウンロードする最も安全な方法は何ですか?
- 4. HTTPリクエストがBOTであるかどうかを知る方法
- 5. スレッドセーフなシングルトンパターンを実装する最も安全な方法は何ですか?
- 6. node.jsでリクエストがhttpかhttpsかどうかを知る方法
- 7. PHPでデータベースに接続する最も安全な方法は何ですか?
- 8. オブジェクトを共有する最も安全な方法は何ですか?PHP
- 9. Webサービス/ APIを実装する最も安全な方法は何ですか?
- 10. セッションを安全にカウントする方法:Session_Start/End in Global.Asaxは安全で安全ですか?
- 11. メモリで安全な方法は?
- 12. howtoはjqueryで安全なajaxリクエストを作成しますか?
- 13. 安全な方法と安全でない方法のPlay Frameworkコントローラ。可能?
- 14. PHP $ _REQUESTのスーパーグローバルを読むための安全な方法は何ですか?
- 15. 安全なJavascriptのGETリクエスト
- 16. WAI/scottyでHTTPリクエスト全体を記録する方法はありますか?
- 17. httpsサイト(安全なhttp)
- 18. セッションを使用してサイト構成を保存するのは、安全で安全な方法ですか?
- 19. 一般的な方法でこのキャストは安全ですか?
- 20. jspでgetParameterを使用する方法安全な方法
- 21. Paypal Proのパスワードを安全に保存する方法は何ですか? (PHP)
- 22. Cでは、strtrnsより安全な関数は何ですか?
- 23. iPhoneからサーバーへの安全なリクエスト
- 24. ソケットからテキストを出力する安全な方法です。
- 25. httpリクエストではなく、PHPで安心なapi-centricデザインinternalを使用する方法
- 26. 有効なHTMLで自動抜粋を生成する最も安全な方法は何ですか?
- 27. Tomcat:Javaで安全なポート番号を取得する方法は?
- 28. Javaで安全なランダムAESキーを作成する方法は?
- 29. 最も安全な方法は、PHPでセッションを作成する
- 30. ハッシュ暗号で安全なログインページを作成する方法は?
この種のジョブではクライアント側に依存しないでください。 –
[OAuth](http://oauth.net/documentation/getting-started/)はどうですか? – ghoti