6

私は現在、ランダムな名前のいくつかのフィールドを追加style="display : none;"し、HTML 要素を追加して CSS で非表示にすることで構成される、サイトのスパムを防止するためのハニーポット ソリューションに取り組んでいます。送信時に、これらのフィールドのいずれかが空でない場合 (当然のことですが)、スパムボットがフォームを送信したことを意味します。それまたは悪意のあるユーザー。いずれにせよ、投稿は拒否されます。

これで問題なく動作しますが、すべてのユーザーが CSS をサポートするブラウザーを持っていることを前提としています。

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

したがって、これは以下をサポートするブラウザーでは問題なく機能します。

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

私の質問は、視覚障害者向けのブラウザーやその他のアクセシビリティをターゲットにしたブラウザーは、CSS と JavaScript をサポートしていますか? CSS のみをサポートしていますか? JavaScript のみをサポートしてますか?

4

5 に答える 5

4

視覚障害者向けのブラウザまたはその他のアクセシビリティをターゲットにしたブラウザ

最近では、障害のある人向けのブラウザはありません。以前はいくつかのプロジェクトがありましたが、主要な支援技術 (AT) の製造元が協力して、ソフトウェアを最初に IE で動作させ、次に Firefox で動作させました。Chrome や Opera を AT で使用するチャンスがあります。サポートは当たり外れがあります。

CSS と JavaScript をサポートするか、CSS のみをサポートするか、JavaScript のみをサポートするか、サポートしないか?

実際には、どの JS、CSS、および AT の組み合わせが使用されているかにかかっています。一般に、AT は CSS で問題ありません。問題の原因となる可能性のある領域は、色/コントラスト、display:tabledisplay: noneおよびの 4 つvisibility:hiddenです。最初の 2 つは質問の一部ではないため、スキップします。display:noneJAWS は、 またはvisibility:hiddenを含むコンテンツのみをアナウンスします<span>。JS についてのコメントは割愛しますが、WebAIM にはJS とアクセシビリティの概要を説明する記事があります。

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

<label>すべてのフォーム要素に s を正しく追加していると仮定しています。読んでしまった場合に備えて、ハニーポットのフィールドに追加してください。「このフィールドを無視する」も追加<label>します。

読む:

スクリーン リーダーとディスプレイ: なし

JAWS、Window-Eyes、display:none: 2007年に戻る

于 2012-07-08T06:17:29.930 に答える
2

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

それは見ることができない人の世話をしますが、愚かなボットはそれでもそれを上書きします。次に、コードをチェックインして、値が正確に 異なるかどうかを確認し、Please DON'T fill anything into this field利益を上げます。

ところで 、この隠しフィールドの方法は、とにかく決定された攻撃者を止めることはないので、攻撃者がページのソースをチェックアウトした場合に何が起こるかを議論することは重要なポイントです。大量のボットを停止させたいだけです。このようなテキストを認識できるボット(各開発者は独自の単語を使用してメッセージを伝達します)は、たとえ存在していても、スクリプトキディの手に渡るにはほど遠いです。さて、最後の部分は推測です。

于 2012-07-08T00:35:44.730 に答える
2

最新のスクリーンリーダーは通常、テキスト読み上げインターフェイスを通常の Web ブラウザ (Internet Explorer など) に「フック」することによって機能します。そのため、ブラウザーが通常サポートするすべての CSS と Javascript をサポートします。display:none完全にコーシャです。

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

于 2012-07-08T00:06:20.537 に答える
1

悪意のあるユーザーのためにそれをしているのなら、それは役に立たない方法です-私の意見です。私はそんな悪者ではありませんが、CSSスタイルを無効にするにはワンクリックで済みます。最新のブラウザの簡単なプラグイン。Web開発やその他の用途に適しています。これは、固定形式のランダムな非表示の入力名を処理するためのホイールの再発明のようなものです。1つの作業の組み合わせ(ソースコードF4を読み取る)をキャッチすると、何度でも使用できます。

単に余分な名前を表示して入力し、その名前をセッションに保存して、送信後に比較してみませんか?

または<input type="hidden"、アプリだけで認識できる追加のコード(ハッシュなど)を追加したものを配置します。

于 2012-07-08T00:30:11.743 に答える
0

他の人の回答に加えて、JAWS のような支援ソフトウェアは、表示プロパティの動的な変更 (ボタンを押して div を表示/非表示にするなど) もサポートしていると言えます。

于 2012-08-17T17:58:53.747 に答える