1

ハンドラーに届くリクエスト(ハンドラーがgetとpostに応答すると仮定します)が実際のブラウザーとプログラマティッククライアントのどちらで実行されているかを判断する方法はありますか?

User AgentやReferrerのようなものをスプーフィングするのは簡単であることはすでに知っていますが、スプーフィングするのがより難しい他のヘッダーはありますか?たぶん、.netのHttpWebRequestのようなクラスでは一般的に利用できないヘッダーですか?

私が見たもう1つのパスは、暗号化されたビューステートを使用して、サーバー側で検証される値をブラウザーに送信することですが、その値を前の応答から単純に取得して、投稿パラメーターとしてに追加することはできませんでした。次のリクエスト?

どんな助けでも大歓迎です、乾杯、

4

3 に答える 3

1

最終的に、投稿はプログラム上、ユーザーがブラウザから投稿したものと同じように見えるため、区別する簡単な方法はありません。

前述のように、キャプチャは投稿を制御するために使用できますが、完全ではありません (コンピューターで解決するのは非常に困難ですが、不可能ではないため)。また、ユーザーを悩ませることもあります。

もう 1 つの方法は、認証されたユーザーのみに投稿を許可することですが、これはプログラムで行うこともできます。

人々があなたのサイトをどのように悪用しようとしているのかを知りたい場合は、http://seleniumhq.org/を参照してください。

これは、コンピュータ サイエンスで有名な停止問題と非常によく似ています。証明の詳細とアラン・チューリングはこちら: http://webcache.googleusercontent.com/search?q=cache:HZ7CMq6XAGwJ:www-inst.eecs.berkeley.edu/~cs70/fa06/lectures/computability/lec30 .ps+alan+turing+infinite+loop+compiler&cd=1&hl=en&ct=clnk&gl=us

于 2012-04-05T23:23:35.533 に答える
1

最も一般的な方法は、キャプチャの. もちろん、キャプチャには独自の問題があります (ユーザーはあまり気にしません) が、プログラムでデータを投稿することははるかに困難です。コンテンツを配信する前にキャプチャを解決するように強制することはできますが、GET ではあまり役に立ちません。

于 2012-04-05T23:17:28.153 に答える
-2

ヒューマン タスクでのみ作成できる動的に生成された XHR リクエストなど、これを行うための多くの方法があります。

NP 困難な問題に関するすばらしい記事を次に示します。ここで大きな可能性を見ることができます: http://www.i-programmer.info/news/112-theory/3896-classic-nintendo-games-are-np-hard.html

1 つの方法: いくつかのトリッキーな JS を使用して、クリック時にトークンを処理することができます。したがって、サーバーは、バックエンドのレンダリング段階でページ上の要素に token-id を発行します。これらをデータベースまたはデータ ファイルに記録します。次に、ユーザーがクリックして送信すると、onclick() 関数を介して送信された ID を比較できます。これを回避する方法はたくさんありますが、いくつかのヒューリスティックを適用して、投稿が人間であるには速すぎるかどうかを判断することができます。クリック イベント間の時間は自動化されているように見えます。最近、Twitter アカウントにサインアップしましたか? 彼らは受動的な人間検出を使用しており、100% 誰にでもできるわけではありませんが、速度が遅く、破るのがより困難です。そこにあるスパム アカウントのすべてではないにしても、その多くは人間が開設する必要がありました。

別の方法: http://areyouahuman.com/

安っぽいCAPTCHAなしで人類を検証する暗号化された方法を使用している限り、可能です。つまり、ヘッダーも無視しないでください。これらは補完的な方法です。

鍵となるのは、NP 完全問題を解決するための十分な複雑さを持たせることです。問題の総数は驚異的です。http://en.wikipedia.org/wiki/NP-complete

AI が複数の複雑な人間の問題を単独で解決できるようになる日が来ると、リクエストの改ざん以外にも心配する必要があります。

http://louisville.academia.edu/RomanYampolskiy/Papers/1467394/AI-Complete_AI-Hard_or_AI-Easy_Classification_of_Problems_in_Artificial

興味深い研究を行っている別の会社http://www.vouchsafe.com/play-gamesは、RTT をだまして RTT を訓練し、人間だけで解決できるようにするために設計されたゲームを実際に使用しています。

于 2012-04-05T23:09:58.407 に答える