2012-07-07 5 views
6

저는 허니팟 솔루션을 사용하여 내 사이트에서 임의의 이름을 가진 몇 개의 필드를 추가하고 HTML 요소에 style="display : none;"을 추가하여 CSS로 숨기는 스팸을 방지하기 위해 노력하고 있습니다. 제출 될 때이 필드 중 하나라도 비어 있지 않으면 - 스팸봇이 방금 양식을 제출했음을 나타냅니다. 그 또는 악의적 인 사용자. 어느 쪽이든, 게시물은 거부됩니다.내게 필요한 옵션 기능이있는 브라우저에서 CSS 또는 JavaScript를 지원합니까?

이제 완벽하게 작동하지만 모든 사용자가 CSS를 지원하는 브라우저를 사용한다고 가정합니다.

CSS display 속성이 none 인 모든 필드를 삭제하면 CSS가 지원되지 않는 브라우저에서 숨겨진 필드가 표시되지 않을 수 있습니다.

  • 모두 CSS와 자바 스크립트
  • 에만 CSS
  • 에만 자바 스크립트

내 질문은, 다음을 위해 브라우저를 할 수있다 :

그래서,이 지원하는 브라우저를 위해 잘 작동 것 블라인드 또는 기타 접근성 타겟 브라우저는 CSS 및 JavaScript 만 지원합니다 (CSS 만 가능) 또는 없음?

답변

4

은 장애인을 위해 개발되는 요즘에는 브라우저에게이 없습니다 맹인 또는 기타 접근성 대상 브라우저

을 위해 브라우저를 않습니다. 예전에는 몇 개의 프로젝트가 있었지만 주요 보조 기술 (AT) 제조업체들은 그들의 행동을 함께 모았고 소프트웨어를 먼저 IE로, 그 다음 Firefox로 작업했습니다. Chrome 또는 Opera with AT를 사용하여 기회가 주어지면 지원이 중단됩니다.

CSS 및 JavaScript 만 지원, JavaScript 만 사용하거나 없음?

정말 JS, CSS 및 AT 조합을 사용하고 있습니다. 일반적으로 AT는 CSS와 잘 맞습니다. 색상/대비, display:table, display: nonevisibility:hidden의 네 가지 영역에서 문제가 발생할 수 있습니다. 첫 번째 두 개는 질문의 일부가 아니기 때문에 건너 뜁니다. JAWS는 또는 visibility:hidden 인 내용 만 <span>에 발표합니다. 나는 JS에 관해서 너무 많이 언급 할 것이지만 WebAIM에는 an overview of JS and accessibility을 제공하는 기사가있다.

은 HTML 요소에 style="display : none;"을 추가하여 임의의 이름으로 몇 개의 필드를 추가하고 CSS로 숨기는 것으로 구성됩니다.

모든 양식 요소에 정확하게 <label>을 추가한다고 가정합니다. 읽었을 경우를 대비하여 허니팟 필드에 추가하십시오. 나는 "ignore this field"를 <label>에 추가합니다.

읽기 :

Screen Readers and display: none

다른 사람의 답변에 추가

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

+0

답변 해 주셔서 감사합니다. (그리고 모든 사람들도 elses). 내가 따르지 않을 유일한 조언은 "이 필드 무시"레이블을 추가하는 것입니다. 스팸봇이이를 쉽게 인식 할 수 있도록하기 위해서입니다. – federicot

+0

기사 표시에 따르면 아무 것도 거의 모든 경우에 작동하며 JS도 작동하므로 사용자는 필드를 볼 수 없을 가능성이 높습니다. 따라서 누락 된 레이블이 액세스 가능성이되지 않을 것이라고 생각합니다. 문제점은 – federicot

+0

입니다. 스팸 봇 전문가는 아니지만 특히 'label'태그에서 문구를 해석하지는 않습니다. 봇은 아마도'input's을 찾고 정크를 밀어 넣으려고하는 페이지를 긁어 냈을 것입니다. 그래서 이것은 AT를위한 것입니다. 봇이 "ignore", "skip"등의 단어로 입력을 건너 뛰는 것을 알고 있다는 기사가 있다면 공유하십시오. –

2

최근의 스크린 리더는 보통 텍스트 - 음성 인터페이스를 일반 웹 브라우저 (예 : Internet Explorer)에 "연결"하여 작동합니다. 따라서, 그들은 브라우저가 일반적으로 지원할 모든 CSS와 Javascript를 지원합니다. display:none 완벽하게 정성을 다하고 있습니다.

다른 브라우저로 이동 : Netscape 4.something 이후 모든 주요 웹 브라우저에서 display: none과 같은 기본 CSS 규칙을 지원합니다. 다른 사람이 CSS를 전혀 지원하지 않는 브라우저를 사용하고 있다면 등록 양식보다 처리해야 할 더 큰 문제가 있습니다.

+0

동일한 문장의 일반 웹 브라우저와 인터넷 익스플로러?! –

+0

공정한 포인트! 일반 용도의 렌더링 엔진이 아니라 주류 브라우저라는 점에서 "정상적인"것을 의미합니다. – duskwuff

1

악의적 인 사용자가 있기 때문에 이것을 수행하는 경우은 쓸모가 없습니다. 제 의견. 나는 그 나쁜 녀석이 아니지만 CSS 스타일을 사용하지 못하도록 한 번의 클릭으로 비용이 들었습니다. 최신 브라우저에서 쉽게 플러그인. 웹 개발에 적합하고 다른 것들에 유용 할 수 있습니다. 그것의 고정 된 형태로 임의의 숨겨진 된 입력 이름 작업 휠의 다시 같은 발명. 하나의 작업 조합 (소스 코드 F4 읽기)을 잡아서 원하는만큼 여러 번 사용할 수 있습니다.

단순히 추가 이름을 볼 수있는 입력을 저장하지 않고 세션에 이름을 저장하고 제출 후 비교해 보는 것이 어떻습니까?

또는 <input type="hidden"에는 앱에서 인식 할 수있는 코드 (해시 또는 다른 것)가 추가됩니다.

+0

대부분의 스팸봇은 이러한 트릭에 실패 할 정도로 충분히 멍청합니다. 왜냐하면 그들의 벙어리 방식은 다른 곳에서 작동하고 사이트가 작동하지 않는 사이트는 활성 웹 마스터가 스팸을 삭제하고 대처하여 주장 할 필요가없는 사이트이기도합니다. Google, Hotmail, 은행 또는 스팸 방지 캠페인을 해킹 할 수있는 경우 큰 보상이있는 사이트를 제외하고 그런 다음 엄청난 노력을 기울일 것입니다. – FelipeAls

2

글쎄, 때로는 실망했다고 느낄 때 Lynx를 사용합니다. CSS를 지원하지 않습니다. 이런 경우 다음과 같이 숨겨진 필드에 기본값을 작성합니다. Please DON'T fill anything into this field

볼 수는 있지만 멍청한 봇은 계속 덮어 씁니다. 그런 다음 값이 과 정확히 일치하면Please DON'T fill anything into this field이고 수익이 발생하면 내 코드를 체크인합니다.이 페이지의 소스에서 경우 공격자 검사를 무슨 논의하기 위해 논쟁 점은 그래서

은 BTW 이 숨겨진 필드의 방법은, 어쨌든 정해진 공격을 멈추지 않을 것입니다. 우리는 단지 대량 봇을 멈추기를 원합니다. 이런 식으로 텍스트를 인식 할 수있는 로봇 (각 개발자는 메시지를 전달하기 위해 자신의 단어를 사용합니다)이 존재하더라도 스크립트 아가씨의 손에 떨어지는 것과는 거리가 멀습니다. 그럼 마지막 부분은 추측입니다.

0

, 나는 디스플레이 등록 정보의 JAWS 지원도 동적 변화와 같은 보조 소프트웨어 (예를 들어, 표시/A를 숨기고 말 것 버튼을 눌러 div).

관련 문제