2011-12-07 12 views
3

私のウェブサイトでは、歪んだテキストCAPTCHASを使用することを心配していませんでした。だから私は隠されたフィールドcaptchaのために行くことに決めた。隠しフィールドのCAPTCHAは十分安全ですか?

<form> 

<input type="text" name="surprise" value="" style="display: none; visibility: hidden;"/> 

</form> 

実際のユーザーはスパムボットは、それを埋めるする場所として、したがって、彼らは空白のままになり、このフィールドは表示されません。「驚き」フィールドが空であるかではなく、それが空の場合は継続した場合、私はそれから確認することができますもの。

しかし、私は今この方法を尋ねていますが、私はそれが非常に安全だとは思いません。だからあなたはお勧めできますか?それは安全ですか?ユーザーが画像からテキストを入力する必要がないCAPTCHAの他の方法はありますか?

+0

どのように記入するのですか?私は過去に掲示板を運営していましたが、すべてのフィールドがスパムボットで埋められているわけではなく、* name *、* country *などのような明白なものでした。 –

+1

http: //stackoverflow.com/questions/2603363/good-form-security-no-captcha/2603408#2603408 –

+1

私の隠された入力のために私はname = "address" id = "address"などを使用しています明らかなフィールドのと同時に私は実際のユーザーからアドレスを収集する必要はありません。 – Ilja

答えて

8

ここにあるものはスパムを防ぐのに役立つでしょうが、それは完全な解決策ではありません。適切なCAPTCHAを使えばさらに多くのことが得られますが、ニーズや使用シナリオに応じて、の解決策はとなります。

+1

私はこのサイトが好きです。http://caca.zoy.org/wiki/PWNtchaあなたがcaptchaの保護に真剣に関心を持っているなら、それは良い現実のチェックです。彼が言ったように、それはあなたのニーズに本当に依存しているので、+1する。 – ToddBFisher

4

ほとんどの現代のスパムロボットは、隠されたフィールドを無視します。

2

シンプルな数学的な問題や単純な単語パズルを解くよう求める他の種類のキャプチャがあります。主な目的は、コンピュータと人間を区別することです。だからあなたが試みることができる多くのアイデアがあります。もう1つは、ユーザーに複数の異なる色のボックスを表示し、青いボタンをクリックするように指示することです。彼らはすべてセキュリティと様々な長所と短所を持ち、あなたの状況を知っているだけです

2

ボットは隠しフィールドを埋めます。しかし、あなたはcssファイルを使ってそれを隠すべきです、入力HTMLでそれをすることは、それがまだ隠れたフィールドであるかどうかを検出することを可能にします。

+0

私の場合、私はディスプレイを適用する:なしと可視性:隠された大丈夫ですか? – Ilja

+0

はい、cssファイルで処理すると、隠しフィールドを検出しようとしているボットが除外されます。また、JavaScriptを介して行うことができるかもしれませんが、CSSはより洗練されています。 –

5

このような場合は、より良いスパンボット餌の使用をおすすめしますか?
"city"や "phone"のような 'name'属性のキーワードを入力すると、スパムロボットが認識してどのような種類のテキストを入力できるかを知ることができます。これによりチャンスが増えます。

4

ceejayozと記載されているのは、hereです。私のような他の方法と一緒にこれをしたい

:フォームが2秒の下に提出された場合

  • は、要求を拒否します。
  • ajaxを使用して全体の検証を行います。これにはJavaScriptが有効になっている必要があります。

まず、私たちのフォームフィールド内の余分な入力を追加することができます:

:私は私の本当のパスワードフィールドに名前を付ける

<input class="not_in_my_house" type="password" name="password"> 

振りかける少しCSSのマジックを "合格"

.not_in_my_house { position: absolute; /* don't bother other elements on the page */ width: 0; /* small */ height: 0; /* very small */ margin: 0; /* tiny */ padding: 0; /* very tiny */ border: 0; /* tada */ } 

次のしかし、私はそれを行う汚い感じ - それはあなた次第です。

.not_in_my_house { 
    position: absolute; 
    left: -9999em; 
} 

最後には、ポストが埋めているフォームフィールドに提出されるたびに、あなたは要求を拒否し、多分IPを禁止します。

if(!empty($_POST['password'])){ 
    echo 'Nope, not in my house.'; 
} 
関連する問題