-3

私は現在、スパムが送信されているWebプロジェクト(コメントボックス)に取り組んでいます。

mysql_real_escape_stringSQLインジェクションについていくつか知っているので、データベースに「害を及ぼす」可能性のあるデータであるエスケープ()を試しました。

しかし、成功しません。

また、サイト上のすべてのフォームを非表示にしようとしましたが、データベース(コメントボックス)がスパムになり続けています。

データはURL(getまたはpost)を介して直接送信されません。だから私は他にどこが問題になるのかわかりません。何か案が?

編集

フォームのtextarea(コメント)は投稿されません。フォームは現在削除されており、スパムは継続しています。したがって、「送信」ボタンが押されていないため、キャプチャはオプションではありません。コメントはログインしたユーザーのみを対象としています

ありがとう、セバスチャン

4

1 に答える 1

3

mysql_real_escape_stringは、いかなる方法でもインジェクションから保護しません。
「インジェクション」、「害」、「保護」などの単語は名前に含まれて
いません。この関数は文字列の書式設定のみを行います。正しくフォーマットされた文字列は無防備ですが、独自のフォーマットを必要とする他のタイプもありますが、文字列のフォーマットは役に立ちません。

スパムについては、ばかげたハニーポットを作成します
。たとえば、「city」という名前のフィールドを追加します。そして、それを埋めないように人々に言います。
いっぱいになったら、ボットです。メッセージを黙って破棄します(「Gotcha」、「you'rebot」などのばかげたバナーを書かないでください)。保存せず、残りを同じに保つ

編集された質問に答えるには:

フォームのtextarea(コメント)は投稿されません。フォームは現在削除されており、スパムは継続しています。

:)フォームハンドラー
無効にし ますコメントを投稿するためのフォームは必要ありません。これは、実際にすべての作業を行うフォームアクションスクリプトです。フォームを保持することはできますが、投稿を無効にするには、ハンドラーコードを無効にする必要があります

于 2013-02-21T14:49:12.017 に答える