2011-01-19 19 views
3

制限時間内に何かをアップロードした後にクライアントがアップロードを続けるのを防ぐにはどうすればよいですか? IPアドレスに基づいています。制限時間内にアップロードを無効にする方法

+1

IPは無効な認証方法です。クライアントは簡単にTorを使用することができます。 – Jonah

+0

@Jonah:ところで、より効果的な方法は何ですか? – Chetan

+0

@Jonah - 「** Tor **」についてもっと教えていただけますか?私はそれを検索しようとしましたが、特定の直接の答えを得ることができませんでした。たぶん私の脳は二日酔いしています。 –

答えて

2

$ _SERVER ['REMOTE_ADDR']と$ _SERVER ['HTTP_X_FORWARDED_FOR']変数を使用してIPアドレスを取得し、要求日とともに(たとえばデータベースに)格納することができます。各アップロードリクエストで、(このIPからの最後のアップロード時刻) - (現在の時刻)>の期間を確認できます。

ところで、ユーザーが単一のIPに常にバインドされているとは限らず、多くのユーザーが単一のIPを使用できます。たとえば、同じNATの背後に隠れているユーザーからのアップロードを制限します。

3

ユーザーのIPアドレスを無効にすることは効果がありません。 Kelの言葉に加えて、クライアントは動的IPを持っていてもTorを使っているかもしれません。

本当に唯一の方法は、ユーザーに何らかの形で自分を識別させることです。そこにはたくさんのオプションがあります:Facebook、OpenID、Twitterなどあなたのサイトのためのユーザーアカウントシステムを作ることができますが、それはユーザーにとってずっと不便です。すでに設置されているインフラストラクチャを使用する方が良いでしょう。

技術的な面では、基本的にファイルをアップロードしたユーザーのデータベーステーブルと、アップロードした時間を保持するタイムスタンプの列を保持します。このテーブルをCronジョブで定期的にトラバースし、あらかじめ定義されたしきい値より古いユーザーを削除します。

人がアップロードしようとすると、データベースに入っているかどうかを確認します。そうであればアップロードできません。もしそうでなければ、彼らは行きたい。

+1

まだ多くのサイトでそれを使用しています(rapidshare、megauploadなど)。これを使用して多くをアップロードする場合は、帯域幅の多くを自分で安全にすることができます。 – Alfred

0

私は完全な証明方法はないと思いますし、提案には反論があります。

ただし、ウェブサイトでもアップロードとライブが可能です。

あなたはユーザーを識別する異なる方法組み合わせることができます。

  1. 正規クッキー

  2. のFlashクッキー

  3. をIPアドレス

これらのすべてを克服することができますしかし、誰もがフラッシュクッキーについて知っているわけではありません。モデムをオン/オフに切り替えることによってIPを変更する人もいます。人々の怠惰/無知を決して過小評価しないでください:)

関連する問題