フィードバックフォームを攻撃から保護する方法

この状況を想像してください。



仕事に来て、座ってあなたのメールをチェックし、あなたのパートナーからの応答、少しのスパムを見たいと思っていますが、代わりにあなたはこれを見ます: Inbox(164 532)









もちろん、写真は偽物です。

さらに、すべてのメールはサイトのフィードバックフォームから送信されました。 何万という文字を理解する必要があり、それらが簡単に識別されて削除されたとしても、特に本当に必要な対応を見逃さないように注意する必要があるため、問題の解決に膨大な時間を費やします。



週末に攻撃者の1台のコンピューターからのフィードバックフォームから何通の文字が来るかを計算するのは簡単です。



金曜日の営業日は18.00で終了します。18.30にオフィスがロックされているとします。 月曜日、営業日は9.00から始まりますが、オフィスは例えば8.00で開きます。 攻撃者が迅速な開示を恐れることなく、業務に取りかかることができるようにするために、合計で61.5時間を確保しています。 彼が10スレッドでスパムを送信するとします(ブラウザを使用してこれを行うこともできます)。 彼は同時に10通の手紙を送ることができます。 彼が3秒ごとに手紙を送るなら、月曜日の朝8:00に738,000の手紙を見つけます。 当然、より多くのフローがあり、レターを送信する間の時間が短くなり、このプロセスに関与するコンピューターは数十または数百に及ぶ場合があります。



しかし、時間の損失は最悪の事態ではありません。誤ってクライアントの手紙を削除したり、長距離旅行中のディレクターからの注文を削除したりすることができます。 そして、そのような手紙の紛失は、従業員からの回復だけでなく、会社にとっての重大な財政的損失も脅かしています。



また、悲しい結果のために、あなたのサイトが置かれているサイトのホスティングプロバイダーで深刻な問題が発生する可能性があります。 また、フィードバックフォームからのメッセージが別のホスティングサイトにあるメールボックスに送信された場合(特に無料の場合)、ドメインはブラックリストに入る可能性があり、そこから選択するのは非常に面倒です。



同様のフィードバックフォームが文字通りRunetをあふれさせました。 それらは何万もあります。つまり、あなたの会社もその中にいるかもしれません。 そして、攻撃者の最初のリクエストでいつでもワークフローを停止できます。 結局のところ、ほとんどの場合、電子メールは多くの企業にとって最も重要なコミュニケーション手段です。



残念ながら、たとえ攻撃者を正確に知っていても、攻撃者を罰することはほとんど不可能です。 サンクトペテルブルク市のコンピューター犯罪部の従業員の一人がこれについてコメントする方法は次のとおりです。

実際、今日、コンピューター犯罪の分野はロシア連邦の法律の弱点であり(また、世界全体でも)、これまでのところ、この分野に目立った重大な変化はありません。

現在、この分野に直接関係するロシア連邦刑法の3つの基本的な記事があります。



刑法第28章

コンピューター犯罪

第272条コンピュータ情報への不正アクセス

記事273.コンピューターマルウェアの作成、使用、および配布

セクション274。コンピューター、コンピューターシステム、またはネットワークの操作に関する規則への違反



そして、2007年7月1日に導入された2006年3月13日付けの「広告に関する」連邦法の追加修正N38-On

第18条電気通信ネットワークを介して配信され、郵便物に掲載される広告



したがって、犯罪者によって犯されたこの行為は、第274条の範囲内に収まります。コンピュータ、コンピュータシステム、またはそれらのネットワークを運用するための規則への違反 十分な数のリクエスト、いわゆる DDoS攻撃に伴う

(引用:法律で保護されたコンピューター情報のブロック)および可能な罰、形式

(引用:特定の地位を占める権利または特定の活動に最大5年間従事する権利の剥奪、または188〜240時間の強制労働、または最大2年間の自由の制限)



しかし、この特定のケースでは、コーパスデリチが事実上存在しないため、ケースはほぼ即座に却下されます。 容疑者のPCを削除しても、このPCにインストールされたこの特定のソフトウェアの不完全性では説明できない、とられたアクションの悪意の痕跡を見つけることは不可能です。



負傷者が調査の継続を主張している場合でも、同様の状況が発生する可能性のある状況を100%正確に再現し、ソフトウェア開発者にリクエストを送信する必要があります。ほとんどの場合、障害と彼と直接やり取りするソフトウェア開発者です。なぜなら 状況は必ずしもそうではなく、プログラムの1つだけが原因であり、それらの相互作用のエラーが原因ではありません。 そして、これには2年ではなく1年以上かかる可能性があります。 したがって、犯罪者を罰することは不可能です。


次に、脆弱なフィードバックフォームがどのように機能するかを見てみましょう。



ほとんどの場合、フィードバックフォームはPOSTメソッドを使用して、またはすぐにmail()関数を介して情報を送信します。 ジャングルを掘り下げることはしませんが、これらの解決策は、フィードバックフォームからのメッセージが送信されるボックスへの膨大な数の手紙の送信を自動化する可能性があるため、罪を犯します。 以下は、サーバーへの情報の再送信に関するFirefox2ブラウザーの警告です。



Mozilla Firefox 2.0.0.12ブラウザー

あなた自身が理解しているように、キーボードのF5ボタンを押すだけで、再度メールが送信されます。 繰り返しますが、このプロセスを自動化することはまったく難しくありません(少なくともOperaの助けを借りれば)。



次に、フィードバックフォームを放棄せずに状況を修正する方法について説明します。



私は5つのオプションを提供しています。各オプションにはプラス面とマイナス面があります。



オプション番号1:

アヤックス。



それらのいくつかを次に示します。

AJAXお問い合わせフォーム-[ 説明 ] [ デモ ]

AJAXお問い合わせフォーム-[ 説明 ] [ デモ ]

Ajax.Form.Mootools-[ 説明+デモ ]



良い:多くの既製の例; ページをリロードせずにメッセージが送信されます。



悪い:ユーザーがJavaScriptを無効にしている場合、フォームは機能しません。


オプション番号2:

リダイレクト



メッセージを送信した後-他のページ、たとえばフォームのあるページへのインスタントリダイレクト。 フォームの上に、レターが送信されたことを示すメッセージを表示できます。



これにはいくつかの方法がありますが、最も不格好なのはMETAタグを使用することです。

  <meta http-equiv = "refresh" content = "0; url = index.html"> 




良い:それは機能し、ほとんどの場合に役立ちます。



悪い点:このソリューションは使い勝手が悪い。


オプション番号3:

データベースを操作します。



フォームはメッセージをメールボックスに送信しませんが、データベースに追加します。 したがって、スパムの試みを簡単かつ控えめに遮断できます。 たとえば、内容が前のメッセージの内容と完全に一致する場合、送信IPが同じまたは同じサブネットからのものであれば、データベースにレコードを入力しないでください。 ここで多くのオプションを考え出すことができます。 フィードバックフォームからのメッセージは、たとえばCRMと統合できます。



良い:私の意見では、非常に良い防御です。



悪い:データベースが必要であり、スクリプトの実行時間が増加し、容量の要件が増加します(特にサイトが人気の場合)、まだだまされます。


オプション番号4:

クッキー



[送信]ボタンをクリックすると、Cookieをブラウザに記録できます。Cookieがある場合は、しばらくしてからメッセージを再送信できます。



良い:この方法は機能し、スパムの潜在的な量が減ります。



悪い:Cookieを無効にすることができます(意図的かどうか-ただし、Cookieが無効になっているからといってメッセージの送信を禁止しないでください)、Cookieは自動的に消去されます。


オプション番号5:

キャプチャ。



Captcha(曲線でない場合)は、フィードバックフォームを介してスパムからあなたを救います。



リンクはあなたを助けます:

reCaptcha

CAPTCHA.ru

クリプトグラフ

w3captcha



良い:この方法は効果的です。



悪い点:個人的に、キャプチャは私にとって不便です。特に複雑なものはキャプチャが認識され、バイパスされる可能性があります。




とにかく絶対的な万能薬は存在しないことを考慮する価値があります。これらの方法(偶然にも、簡単に近代化、組み合わせなど)が、若くて経験のないネットワークフーリガンを防ぐのに役立ちます。

追加してくれたmetalalisa metalalisaに感謝します。 正直に言うと、私はキャプチャについて書きたかった、私は忘れていた:)



私のブログからクロスポスト。



All Articles