0

私は最初のウェブサイトを構築しています。それはオンライン不動産会社です。ユーザーは自分でプロファイルを作成してから、広告を挿入して写真をアップロードできます。

ブルートフォース攻撃から保護するために、複数のロギングの試みを検出する必要があると言われました。さて、次のコードで私はIPを検出します:

if(isset($_SERVER['HTTP_X_FORWARDED_FOR']))
{ $ip=$_SERVER['HTTP_X_FORWARDED_FOR'];} else
{ $ip=$_SERVER['REMOTE_ADDR'];} 

システムは、特定の遅延内に失敗したロギングの試行をカウントし、DBに禁止リストを保持します。それは素晴らしい働きをします...少なくとも私がそれを自分でテストするとき!

次に、「偽のIPによる著作権侵害に注意してください」と言われたとき、上記の保護システムが無効になっているという印象を受けます。

がある :

1)実際のIPを隠すことができるプロキシを含む海賊が利用できるソフトウェア

2)実際のIPを隠すこともできるWeb上のプロキシ。

1)と2)の違いは何ですか?

プロキシがどのように使用され、違法行為の観点から何ができるのか知りたいです。

  • 誰かが自由に変更できますか?それはIpですか?
  • 中国またはロシアの誰かが西ヨーロッパまたは米国のIPを「シミュレート」できますか?
  • 疑わしいアクティビティを検出するために行ったこと以上のことを行うことはできますか?

どうもありがとう。

4

3 に答える 3

5

誰でもip、proxy、vpnを変更でき
ます。有効な場合は、この関数を使用してREALIPアドレスを検出します。

function getrealip() {
    if (getenv('HTTP_CLIENT_IP') && long2ip(ip2long(getenv('HTTP_CLIENT_IP')))==getenv('HTTP_CLIENT_IP') && validip(getenv('HTTP_CLIENT_IP')))
        return getenv('HTTP_CLIENT_IP');

    if (getenv('HTTP_X_FORWARDED_FOR') && long2ip(ip2long(getenv('HTTP_X_FORWARDED_FOR')))==getenv('HTTP_X_FORWARDED_FOR') && validip(getenv('HTTP_X_FORWARDED_FOR')))
        return getenv('HTTP_X_FORWARDED_FOR');

    if (getenv('HTTP_X_FORWARDED') && long2ip(ip2long(getenv('HTTP_X_FORWARDED')))==getenv('HTTP_X_FORWARDED') && validip(getenv('HTTP_X_FORWARDED')))
        return getenv('HTTP_X_FORWARDED');

    if (getenv('HTTP_FORWARDED_FOR') && long2ip(ip2long(getenv('HTTP_FORWARDED_FOR')))==getenv('HTTP_FORWARDED_FOR') && validip(getenv('HTTP_FORWARDED_FOR')))
        return getenv('HTTP_FORWARDED_FOR');

    if (getenv('HTTP_FORWARDED') && long2ip(ip2long(getenv('HTTP_FORWARDED')))==getenv('HTTP_FORWARDED') && validip(getenv('HTTP_FORWARDED')))
        return getenv('HTTP_FORWARDED');

    $ip = htmlspecialchars($_SERVER['REMOTE_ADDR']);
    /* Added support for IPv6 connections. otherwise ip returns null */
    if (strpos($ip, '::') === 0) {
        $ip = substr($ip, strrpos($ip, ':')+1);
    }

   return long2ip(ip2long($ip));
}

X-Forwardedの詳細

于 2012-10-30T09:07:41.953 に答える
2

Dagonが言うように、IPアドレスはユーザーを識別する非常に弱い方法であり、ハッカーはほぼ確実に自分のIPアドレスを使用するのではなく、盗まれたマシンまたはボットネットを使用します。一方、多くの企業ユーザーはすべて同じIPアドレスから来ているように見える場合があり、誰かがパスワードを忘れた場合、その建物/会社からすべてのユーザーを簡単にブロックしてしまう可能性があります。

ブルートフォース攻撃に対する最初の防御策は、強力なパスワードポリシーを設定することです。通常、これは少なくとも7文字で、少なくとも1つの数字と1つの句読点が付いていると見なされます。これはしばしばユーザーを苛立たせ、ユーザーをあなたのサイトを嫌わせます。

次の防御策(本当に危険にさらされていると思われる場合)はCAPTCHAです。これにより、ユーザーはあなたをさらに嫌うようになります。

つまり、最初のWebサイトを構築する場合は、すべてを自分で発明するのではなく、既成のフレームワークを検討します。PEAR:authを検討してください。

于 2012-10-30T09:21:11.850 に答える
2

プロキシは、IPをマスクできるサーバーです。それがそうであるかのようにあなたの要求を送り、それからあなたに得た応答を送り返します。

誰かが自由に変更できますか?それはIpですか?

いいえ、IPを好きなように変更することはできません。しかし、彼らはそれを隠すことができます。

中国またはロシアの誰かが西ヨーロッパまたは米国のIPを「シミュレート」できますか?

はい

疑わしいアクティビティを検出するために行ったこと以上のことを行うことはできますか?

あるユーザー名がブルートフォース手法を使用して間違ったパスワードで何度もログインしていることを検出した場合は、sleep関数を使用してユーザーの速度を落とすことができます。この手法では、悪意のない方法でプロキシを使用しているユーザーを遮断することはなく、ブルートフォースハッキングを遅らせることができます。

if($wrongAttempts > 5) sleep(3000);

if($password == $_GET[pass]) 
{
   // ...
}

また、セキュリティを強化したり、アカウントをしばらくブロックしたりするために、キャプチャ画像を含めることもできます。

于 2012-10-30T09:24:30.460 に答える