2012-05-05 4 views
3

클라이언트 측 유효성 검사 (jQuery로 작성)를 많이 사용하는 긴 양식이 있습니다. 양식을 제출하는 자바 스크립트가 비활성화 된 사용자를 막기 위해 jQuery에서 "javascript_enabled"값으로 채워진 숨겨진 필드를 포함 시켰습니다. 브라우저에서 JS가 사용 중지 된 경우 파일은 공백으로 남겨지며 양식은 제출되지 않습니다.클라이언트 측 유효성 검사에 의존해야하는 것은 무엇입니까?

질문은 - 충분하며 안전하다고 생각합니까? 아니면 모든 필드에 대해 서버 측 유효성 검사를 포함해야합니까?

+0

가능한 복제 http://stackoverflow.com/questions/162159/javascript-client-side-vs-server-side-validation – kapa

답변

8

아니요. 클라이언트 측 유효성 검사는 서버를 보호하지 않고 사용자의 편의를 위해 여기에 있습니다.

모든 클라이언트 측 작업은 사용자가 쉽게 변경할 수 있습니다.

서버를 보호하려면 반드시 서버 측 유효성 검사를 추가해야합니다.

6

어느 정도까지? 없음. 에서 클라이언트 측 유효성 검사에 절대로 의존해서는 안됩니다. 클라이언트 측 유효성 검사는 순전히 UX 용입니다.

실제 유효성 검사는 항상 서버에서 수행됩니다.

0

서버 쪽 유효성 검사는 필수 사항입니다. 클라이언트 쪽 유효성 검사는 서버 왕복 오버 헤드없이 실용적인만큼 수행해야합니다.

4

위의 답변은 모두 유효합니다. 몇 가지 사항을 추가하고 싶습니다.

클라이언트 측

  • 클라이언트 측의 검증을 서버 (낮은 트래픽)에 추가 요청에 대한 필요없이 사용자에게 즉각적인 피드백을 제공 할 수있다.

  • 클라이언트 측 유효성 검사를 쉽게 우회 할 수 있습니다. (비활성화 자바 스크립트, 사용자 정의 HTTP 요청, 액세스 사용 예 CURL)

서버 측

  • (당신이 코드의 악용 조각을 떠 났어요하지 않는 한) 우회 할 수 없습니다

  • 서버 측 유효성을 검사하면 XSS 및 SQL Injection과 같은 잠재적 인 위협을 예방할 수 있습니다. (다른 사용자의 데이터를 획득으로 이어질 또는 휴식 데이터베이스를 수) 나는이 내가 웹 소켓 프로토콜의 발전을 기대하고

    을 바꿀 생각은 어떻게

그것은 더 널리되기 위해 웹 소켓은 양방향 (전이중) 연결을 허용합니다. 예를 들어 키가 입력 필드에 입력 될 때마다 서버 측에서 유효성을 검사하는 것이 매우 효율적입니다. 바라건대이 방법을 사용하면 클라이언트 측 유효성 검사를 제거 할 수 있기를 바랍니다.

+0

나는 성능과 편안함을 위해 웹 소켓을 많이 사용합니다.그러나 단순한 형태의 검증에서 이들의 사용에 대해서는 의문이 있습니다. 오늘 ajax를 사용하면 서버 측에서 웹 소켓에 사용할 기술을 사용하는 경우 왕복을 포함한 검증이 빠릅니다 (100 밀리 초 미만). 나는 너의 다른 점에 동의한다. –

+0

AJAX가 괜찮은 평균 웹 애플리케이션에 동의합니다. WebSockets는 오버 헤드가 적기 때문에 훨씬 큰 규모로만 이점을 보일 것입니다. – Jack

관련 문제