2011-08-04 9 views
5

少しの背景。私は非営利団体のウェブサイトを運営しています。私は死んだリンクに気付いた後、サイト上でリンクチェッカーを実行し、さらに2つのリンクを見つけました。だから、失敗したリンクを記録するカスタム404ページを実装しました。これは私に私の壊れたリンクを修正し、リンクが壊れている私たちにリンクする他の人に警告することができます。ウェブサイトをハックしようとする試みに最適なアプローチ

それは非常に高速興味深い発見につながる:彼らはなど、驚くほどセキュリティを回避し、phpMyAdminの、フォーラムなどの一般的なサイトで発見されている標準的なソフトウェアパッケージの脆弱性を悪用しようとする試みがたくさんある

私はログイン犯罪者のIPアドレスは、ほとんどが彼らが米国出身ではなく、私たちの組織は厳密に米国の小規模な地域に焦点を当てているので、PHPを介して禁止することを考えました。すべてのページで使用されるヘッダーファイル内の犯罪者で、リストに属している場合は単にメッセージで死ぬことになります。

これは良いアプローチですか?何か良いことがありますか?私が懸念しているのは、彼らがになり、アクセスを得ることです。

+2

404エラーを生成するすべてのIPを禁止する必要がある場合 - fail2banソフトウェアを見てください – zerkms

+0

これは恐ろしいことです。あなたがURLのスペルを間違えた場合、あなたは禁止されますか?または私はあなたを誤解しましたか? –

+0

はい、あなたは誤解しています。唯一のハッキング試みは禁止されている – steveo225

答えて

4

米国外のIPをブラックリストに登録する方法は、短期間では少し有効ですが、長期的には本当に敗戦になるでしょう。ユーザーベースに影響を与えずに米国外のIPを除外することができる場合は、Maxmind GeoIPのようなサービスを利用してPHPコードで国を識別し、その国外へのアクセスを拒否することができます。

これらをヘッダーファイルのリストまたは配列にロードすると、しばらくすると扱いにくくなり、パフォーマンスに影響する可能性があります。禁止リストをデータベースに保存し、サイトにセッションを確立するときにIPをチェックする方がよいでしょう。

しかし、フォーラム、ブログ、Wikiなどのサードパーティ製のソフトウェアパッケージにセキュリティパッチが適用されていることを常に確認することが最も重要です。一般的なWebアプリケーションの脆弱性は非常によく知られており、広く公開されているため、パッチを適用し続けることが重要です。

補遺http://www.exploit-db.com/新しい悪用を遅らせるように習熟する傾向があります。

+0

正直言って、私はbaddiesを維持することを助けてくれたものは、サイトが家庭用ソフトウェアでしか使用しないということだと思います。正直なところ、ブロックされたIPはおそらく最終的にリストされるのではなく、データベースに格納されます。現在、リストは非常に小さいです。 – steveo225

1

米国のIPアドレスを釘にするには、MaxMind GeoLite Countryがすべきです。
無料GPLです。サイトにはかなり隠れています。

ほとんどのIPは、この無料のDBを使用
と私の経験で、それは常に国の権利を取得そこロケーター。

(彼らから購入する価値がある1がのGeoIP市データベースであり、データの種類は、より可変であるとGeoLite Cityは、右の時間の70%未満にそれを取得します - かなり壮観なエラーで)

GeoLiteには、データベースとバイナリフレーバーが付属しています。
バイナリにはインデックス付き検索を行うPHPライブラリがあります。

とにかく私はそれらを完全に禁止しません。とにかくです。

なぜですか?多くの理由。
1つは:いつか海外旅行に行く人で、祝日にサイトをチェックしたいと思うかもしれません。

私があなたの場合は、ページにrecaptchaを入れて、合格すれば、秘密の毎日のクッキーに設定してください。以下のような
何か:

hash('md5',$salt.date('Ymd')); 

MD5がそのために使用すべきではない、とにかく - SHA-1を使用してハッシュをカルクその日のためにそれをキャッシュ)

あなたはを設定することができます秘密の毎日のクッキーもGeoLiteテストに合格したIPに送信します。
だから、1回の訪問ごとにそれを調べる必要はありません。

関連する問題