2011-07-18 10 views
1

webappを構築するときに、フォームデータ/インタラクションをすべてAJAX APIによって駆動したいと考えています。しかし、これらのAPIの多くはデータオブジェクト(JSON)を取得することになり、私は実際にそれらを使用する私のWebアプリケーションが好きです。自分のウェブサイトだけが呼び出せるような方法でAPIを構築する方法はありますか?それは失われる戦いのように感じる。AJAX APIを非表示にすることはできますか?

たとえば、要求を行ったドメインが私のものであるかどうかを確認できますが、ホストヘッダーを偽装することができます。誰かがちょうど私がセキュリティトークンで何か一つの生成があるかもしれないと思ってい

ブラウザのサンドボックスの外にリクエストを作成するには、Javaか何かでサービスを書くことができますので、 JSONPは私のためにそれを解決していませんが、私は感じます私が取る実際の尺度のように、巧妙なスクレーパーで偽装することができます。

答えて

1

あなたはそれが失われた戦いだと言うのは間違いありません。クライアントのプロトコルコードを正当に実行するように指定すると、クライアントはコードを違法に実行することができます。

あなたの唯一の防御は難読化であると私は思っています。攻撃者がコードを使用できないようにコードを理解しにくくし、攻撃者がHTTPプロトコルアナライザを使用できないようにプロトコルを理解しにくくするという2つの要素があります。

免責事項:AJAX APIを隠す方法については、それが道徳的であるか倫理的であるかには答えられません。

1

カスタム秘密を使用してWebアプリケーションによって生成された信頼性トークンに基づいて、Railsで使用される手法を使用できます。

ヘッダーページでそれらを印刷し、ajaxリクエストヘッダーで送信して検証することができます。

+0

これはトークンの正しい説明ですか? http://stackoverflow.com/questions/941594/understand-rails-authenticity-token?その場合、クライアントがページをリクエストしてフォームの認証トークンを見つけて、それを使用してAPIを厳重に叩くことはできないだろうか? – Anon

関連する問題