2012-07-07 15 views
6

私は現在ハニーポットのソリューションを使って自分のサイトで迷惑メールを防止しています。ランダムな名前のフィールドをいくつか追加し、HTMLエレメントにstyle="display : none;"を追加してCSSで非表示にします。提出されたときに、これらのフィールドのいずれかが空でない場合、これはすべきことです。これは、スパムロボットがフォームを送信したばかりです。それまたは悪意のあるユーザーいずれにしても、投稿は拒否されます。アクセシビリティ機能を備えたブラウザでCSSまたはJavaScriptをサポートしていますか?

これで完全に動作しますが、私はすべてのユーザーがCSSをサポートするブラウザを持っていると仮定しています。

CSS display属性がに等しいすべてのフィールドを削除すると、CSSサポートのないブラウザでは、非表示のフィールドが表示されなくなる可能性があります。

ので、これがサポートするブラウザのために正常に動作します:

  • CSSとJavaScript
  • 両方のみCSS
  • JavaScriptのみ

私の質問は、その後、用のブラウザを行うれますブラインドまたはその他のアクセシビリティをターゲットとしたブラウザはCSSとJavaScriptのみをサポートし、CSSのみ、またはJavaScriptまたはなし

答えて

4

ブラインドやその他のアクセシビリティをターゲットブラウザ

用のブラウザを行う一切のブラウザでは、障害を持つ人々に向けているこれらの日がありません。かつてはいくつかのプロジェクトがあったが、主要な支援技術(AT)製造業者が協力して、まずはIEで、次にFirefoxでソフトウェアを稼働させた。 ChromeまたはOperaをATで使用するチャンスを逃していますが、サポートは打撃を受けています。

CSSとJavaScriptのみ、JavaScriptのみ、またはnone?

JS、CSS、およびATの組み合わせが実際に使用されています。一般的に、ATはCSSで問題ありません。問題を引き起こす可能性のある領域は、色/コントラスト、display:tabledisplay: noneおよびvisibility:hiddenの4つです。最初の2つは質問の一部ではないので、私たちはそれらをスキップします。 JAWSは、display:noneまたはvisibility:hiddenのコンテンツを<span>にのみ発表します。私はJSに関するコメントを残しておきますが、WebAIMにはan overview of JS and accessibilityという記事があります。

は、HTML要素にstyle="display : none;"を追加することで、ランダムな名前のフィールドをいくつか追加し、CSSで非表示にします。

すべてのフォーム要素に正しく<label>を追加しているものとします。読んだ場合に備えて、ハニーポットの欄に追加してください。私は<label>にも "このフィールドを無視する"を追加します。

読書:他の人の回答に追加

Screen Readers and display: none

JAWS, Window-Eyes and display:none: Return to 2007

+0

あなたの答えをありがとう! (そして誰もがelses)。私が追いつくとは思わない唯一のアドバイスは、 "このフィールドを無視する"ラベルを追加することです。スパンボットがそれを認識するのが非常に簡単になるからです。 – federicot

+0

記事表示によれば、ほとんどの場合、noneは動作しますが、JSも機能します。ユーザーはフィールドを表示しなくなる可能性が最も高いため、ラベルが見つからないことがアクセシビリティになることはないと推測していますここに問題があります – federicot

+0

私はスパムボットのエキスパートではありませんが、特に 'label'タグで言い回しを解釈するとは思えません。ボットはたぶん 'input'sを探してジャンクを押し込もうとしているページを擦っているだけなので、これは無視されます。ボットが "無視"、 "スキップ"などの入力をスキップすることを知っていることを示す記事がある場合は、共有してください。 –

2

現代のスクリーンリーダーは通常、通常のウェブブラウザ(例えば、Internet Explorer)にテキスト - スピーチインターフェースをフックすることによって動作する。したがって、ブラウザが通常サポートするすべてのCSSとJavascriptをサポートします。 display:noneは完全にコーシャーです。

他のブラウザまで:display: noneのような基本的なCSSルールは、Netscape 4以降のすべての主要なWebブラウザでサポートされています。誰かがCSSをまったくサポートしていないブラウザを使用している場合、あなたの登録フォームよりも扱うべき大きな問題があります。

+0

通常のウェブブラウザとInternet Explorerは同じ文章で表示されますか? –

+0

フェアポイント!私はそれが主流のブラウザであるという意味で「普通」を意味しています。特殊なレンダリングエンジンではありません。 – duskwuff

1

悪意のあるユーザーのためにそれをやっているのなら、は役に立たない方法です - 私の意見です。私はその悪い人ではないが、それはCSSスタイルを無効にするために私に1クリックの費用がかかる。現代のブラウザで簡単にプラグイン。 Web開発にはいいし、他のものにはおそらく。そのような固定された形式でランダムに隠された入力名で動作するホイールの再発明。 1つのワーキングコンビネーション(ソースコードF4を読む)をキャッチし、何回でも使用できます。

単純に余分な名前を表示するだけでなく、名前をセッションに保存して送信後に比較するのはなぜですか?

または、<input type="hidden"に追加コード(ハッシュまたはその他のもの)を1つだけ貼って、アプリだけで認識できるものを入れます。

+0

ほとんどのスパムロボットは、そのような罠に陥るほど愚かではありません。なぜなら、彼らの愚かな方法は他の場所でも働き、サイトが動作しないサイトは、アクティブなウェブマスターがスパムを削除して戦うサイトなのです。あなたがGoogle、Hotmail、銀行、またはアンチスパムを解くことができる場合は大きな報酬があるサイトを除きます。その後、莫大な努力が払われます。 – FelipeAls

2

私は時々世界に失望し、CSSをサポートしていないときにLynxを使用します。このような場合、私は次のような隠しフィールドにデフォルト値を書きます:Please DON'T fill anything into this field

これは、見えないが愚かなボットがまだそれを上書きするものです。値がとちょうどPlease DON'T fill anything into this fieldと異なる場合、私は自分のコードをチェックして利益を得る!

はBTW この隠しフィールド法は、とにかく決定した攻撃を停止することはありませんので、ページのソースアウト攻撃者かどうかをチェックし、何が起こるかについて議論するために議論の余地がポイントです。私たちは大量のボットを止めるだけです。このようなテキストを認識できるボット(各デベロッパーは自分の言葉を使ってメッセージを伝えます)は、たとえ存在していてもスクリプトの児童の手に届きません。まあ最後の部分は推測です。

0

、私はdisplayプロパティのJAWSのサポートなどの支援ソフトウェアでも動的変更(たとえば、表示/非表示と言うことでしょうボタンを押してdiv)。

関連する問題