2011-12-05 5 views
4

ここに問題があります:コンテンツは私のサイトから消えています。それはそこで最も安全なサイトではない、それはいくつかの問題があります。今は、私のサイトからコンテンツを削除できるページをアップロードするたびに、GETリクエストに接続された単純なリンクを使用して、対応するコンテンツが大量に削除されています。WebbotはGETリクエストに接続されたリンクを使用してウェブサイトのコンテンツを削除できますか?

例では、自分のサイトに画像をアップロードする機能があります。ユーザーがイメージをアップロードすると、管理者(所有者)は別のページを使用して、サイトからすべての(所有している)イメージを削除できます。削除機能は、アップロードされた画像の各サムネイルの下にあるリンクをユーザがクリックすると、サイトのデータベースから画像情報を削除し、サーバファイルシステムから画像を削除するget要求を送信するように実装されます。

先日、私はその機能をアップロードし、翌朝私はすべての画像が削除されていることを発見しました。ページはブラウザを使用して表示すると、ユーザー認証を使用して保護されます。しかし、驚いたことに、私はwgetそのページに問題がありませんでした。

私はいくつかの悪意のあるWebロボットがそれらのリンクを使用して私のコンテンツを削除しているのだろうかと思いましたか?それは可能ですか?私のウェブサイトをさらに安全にするためにあなたは何をアドバイスしますか?

+5

GETを使用してウェブサイトを変更することは、一般的には悪い考えです。一部のブラウザは、特定のページですべてのGETリクエストを先読みしているため、ブラウズを高速化してリンクを実行します。 POST(あるいはそれ以上のHTTP DELETE)に切り替える – konsolenfreddy

+2

それ以外は、あなたのユーザー認証が機能していないと言えます。 –

+0

@ÁlvaroG.Vicario、私はあなたの権利を考えます。私は深刻なバグを見つけました。適切なWebフレームワークに移行するのを待つことはできません。 – tsega

答えて

0

通常、検索ボットは任意のリンクのページをスキャンし、そのリンクを覗いて、そのページの後ろにあるページを表示します。だから、両方のページにアクセスできる場合、ページにはアイテムやアイテムを削除するためのリンクが含まれていて、そのリンクを開いてその背後にあるものを見ると、コードがトリガーされます。

ボットをスキャンするページをブロックするには、いくつかの方法があります。 robot.txtの実装を見てください。また、管理者認証システムのメカニズム/安全性を調べることもできます。;-)

3

これは絶対に可能です。悪ではないWebボットでさえそれをやっている可能性があります。 Googleのロボットは、それに続くリンクに特定の機能があることを知らない。

これを解決する最も簡単な方法は、適切なrobots.txtファイルを設定して、ボットに特定のページに移動しないように指示することです。ここからスタート:http://www.robotstxt.org/

+0

ありがとう@Ericはそれを私のサーバに追加するだけです。私はこのファイルを無視する他の非準拠のボットが私のファイルにアクセスしないようにする必要があることを読んだ。私は.htaccessがこれのために行く方法だと思う。入力してくれてありがとう。 – tsega

3

RFC 2616 (HTTP protocol), section 9.1.1: Safe Methods

大会は、GETとHEADメソッドは、検索以外の行動を取るの重要性を持つべきではないことが確立されてきました。これらの方法は「安全」と考えられるべきです。これにより、ユーザエージェントは、POST、PUT、DELETEなどの他のメソッドを特別な方法で表現することができるため、安全でない可能性のあるアクションが要求されていることをユーザに認識させることができます。

基本的に、アプリケーションでGETリクエストによる削除が許可されている場合は、間違っています。ボットはパブリックリンクをたどり、そうするときには削除することを期待する義務はなく、どちらもブラウザーを使用しません。リンクが保護されている場合でも、ブラウザのプリフェッチや何らかのアクセラレーションが可能です。

編集:It might also be Bing. Nowadays Internet Explorer sends data to Microsoft about everywhere you go to gather data for its shitty search engine.

+0

入力していただきありがとうございます。私たちはちょうど速く働くためにGETメソッドを使用しました。どのような非常に悪い考えでした!私たちは今すぐ変化を起こすでしょう。助けてくれてありがとう。 – tsega

0

あなたは、いくつかのウェブボットへのアクセスをブロックするようにrobots.txtファイルを使用することができます。 robots.txtファイルを探していない人には、javascriptを使用することもできますが、それを解釈するWebbotは多くはいけません。

<a href="#" onclick="document.location.href='./delete'; return false;">delete</a> 
関連する問題