2013-02-01 3 views
1

내 사이트에 문의 양식이 있습니다. 나는 "허용 된"주제에 대한 드롭 다운을 가지고 있습니다. 그러나, 나는 내 드롭 다운 양식에없는 과목과 함께 양식에서 보낸 이메일을 받고 있습니다.문의 양식 스팸

양식은 ExpressionEngine 템플릿이며 추가 된 URL 세그먼트 .i.e '/ contact/submit'을 사용하여 제출됩니다. 템플릿은 전송 세그먼트를 확인한 다음 전자 메일을 작성한 EE 플러그인에 값을 보냅니다. 폼의 메서드는 POST입니다.

어떻게 주제 드롭 다운을 피할 수 있습니까?

+0

양식에 captcha 항목이 있습니까? –

+0

아니요, 회사는 보안 문자를 원하지 않습니다. – MB34

+0

그들은 스팸을 피하는 확실한 방법 중 하나가되어야합니다. –

답변

2

아마 무슨 일이 벌어지는지는 그들이 자신의 주제를 주입하고 있다는 것입니다. 드롭 다운 값이 문자열이고 그대로 사용하는 경우 자신의 주제를 사용하는 것이 매우 쉽습니다.

해결 방법으로 각 드롭 다운 값에 숫자 ID를 연결 한 다음 백엔드에서 가능한 값 사이를 전환 할 수 있습니다. 예 : (PHP에서)

<?php 
$reject = false; 
if(isset($_POST['subject'])) 
{ 
    switch(intval($_POST['subject'])) 
    { 
     case 1: // General inquiry: 
      $subjectStr = "General Inquiry"; 
      break; 
     ... 
     default: 
      $reject = true; 
      break; 
    } 
} 
else 
{ 
    $reject = true; 
} 
if(!$reject) 
{ 
    // Process email 
} 
?> 
+0

비슷한 변화를 만들었지 만 어떻게 테스트 할 수 있습니까? 내 양식에서 다른 제목을 선택할 수 없습니다. – MB34

+0

개발자 툴 (대부분의 최신 브라우저에서 사용 가능)을 사용하면 현재 사용중인 페이지의 HTML을 변경할 수 있습니다. 거기에서 옵션 중 하나를 임의의 문자열로 변경하고 제출하십시오. –

+0

다른 두 가지 고려 사항 : 문자열의 intval은 0으로 평가되기 때문에'case 0 :'은'default :'와 함께 사용되어야합니다. 또한 전자 메일 주소, 본문, 다른 드롭 다운 등의 다른 필드를 유효화 할 수 있습니다. .) –

1

사용자 (또는 브라우저 또는 스팸 스크립트/앱)는 서버에 거의 모든 것을 "POST"할 수 있습니다. 입력을 기반으로 유효성을 판단하고 조치를 취하거나 요청을 무시하는 것은 웹 애플리케이션의 책임입니다. 나는 당신의 EE 템플릿을 좀 더 튼튼하게 재 작성하는 것을 고려할 것을 제안한다. 즉, 행동을 취하기 전에 입력을 검증한다.

1

예. 이것은 매우 간단하고 주위에 로봇을 만들 것입니다. Captcha 또는 MintEye와 유사한 것이 현재 봇 기반 스팸을 피하는 가장 좋은 방법입니다.

1

브라우저에서 볼 수있는 모든 것은 어떤 식 으로든 손상 될 수 있습니다. 드롭 다운이 표시되고 시각적으로 안전하다고 보일 수도 있습니다. 보안상의 메커니즘이 captcha 나 그 라인을 따라 존재하지 않는다면 10 배가 더 나빠집니다.이 경우 누구나 yuor 형식의 동작을 가리키는 스크립트를 작성할 수 있습니다. 그렇지 않으면 사람들은 "십대"방법을 고수 할 수 있습니다. 파이어 폭스에는 firebug라는 확장 기능이있어 html과 특정 경우에 드롭 다운 메뉴를 수정할 수 있습니다. Chrome에는 기본적으로 통합되어 있습니다 (f12를 누르십시오). 가장 좋은 방법은 보안 메커니즘을 재 작업하는 것입니다.