클라이언트 측 및 서버 측 유효성 검사 기술을 모두 사용하십니까?


답변:


27

그렇습니다.

이렇게하면 포스트 백을 낭비하지 않고 즉각적인 사용자 피드백을 유지하면서 JavaScript를 비활성화하는 사용자를 막을 수 있습니다.

이것이 ASP.NET 유효성 검사 컨트롤의 작동 방식입니다.

다른 것을 사용하지 않고 하나를 사용하면 단점이 있기 때문에 과도하게 엔지니어링하지 않습니다.


8
+1. 서버 측 유효성 검사 imo가 없어서 변명 할 필요가 없습니다.
DBlackborough

11
서버 측이 필요하고 클라이언트 측이 편리합니다. 웹 응용 프로그램에서는 클라이언트 측 유효성 검사를 신뢰할 수 없습니다.
BillThor

@BillThor - 그래 정확히 잘 먹으 렴
billy.bob

클라이언트 측 유효성 검사가없는 경우 지능형 사용자가 앱을 악용 할 수 있습니다.
Umair

6

그렇다면 정말로 필요한가?

예.

당신은 엔지니어링을 넘습니까?

아니.

인터페이스가 풍부한 프런트 엔드 유효성 검사는 즉각적인 피드백을 제공 할 수 있습니다.

백엔드는 여러 프런트 엔드에서 사용할 수 있습니다. 그리고 HTML 전용 (자바 스크립트 없음) 대체 계획에 대한 유일한 유효성 검사입니다.


6

내가 보안에 대해 배운 첫 번째 기본 사항 중 하나는 해커가 UI를 사용하지 않는다는 것입니다.

웹 애플리케이션에 자체 로컬 버전의 양식이있는 경우 클라이언트 측 유효성 검증은 일반적으로 웹 애플리케이션에서 쉽게 우회하여 서버로 다시 제출할 수 있습니다.

클라이언트 쪽 유효성 검사는 사용자 환경을 개선하고 서버로의 불필요한 왕복을 줄여 유효성 검사를 수행하는 데 유용합니다.


+1, 클라이언트 측에서 전적으로 검증이 수행 된 많은 사례를 보았습니다
Karl

2

서버 측 유효성 검사는 최소한이어야합니다.

잘못된 입력에 대해서는 클라이언트 측 검사도 추가해야합니다.

예를 들어, 전자 메일이 클라이언트와 서버 측 모두에서 올바르게 형식화되어 있는지 확인하지만 고유한지 확인하면 서버 측 검사가 될 수 있습니다.


1
"확실하지 않은지 확인"은 유효성 검사가 아니므로 적용되지 않습니다. 차이점을 이해하십시오.
billy.bob

2
게시 한 내용을 읽었습니까? 이메일이 고유한지 확인하는 것이 유효성 검사입니다. 예를 들어 이메일과 비밀번호가 유효한 자격 증명인지 확인하는 것은 확인입니다. 어쨌든 이는 용어 문제 일뿐입니다.
Andrea

1

예, 둘 다 사용하는 것은 나쁜 생각이 아닙니다. 클라이언트 측에서 간단한 사용자 입력 오류가 발생할 수 있으면 데이터를 전송하고 서버를 다운시키기 전에 해당 오류에 대해 사용자에게 알려주는 것이 좋습니다. 예를 들어 사용자가 '이메일'입력란에 이메일 주소가 아닌 것으로 입력하거나 비밀번호 입력란에 5 자 길이의 문자열을 입력 한 경우 사이트에서 비밀번호가 6 자 이상이어야한다는 것을 알고 있다면 서버로 무엇이든 보내기 전에 사용자에게 알려 주어야합니다.

다음 두 가지 이유로 서버에서 정확히 동일한 유효성 검사를 복제하는 것이 중요합니다. 1) 사용자가 Javascript를 비활성화 한 경우 어떻게됩니까?

2) 사용자가 악의적으로 클라이언트 측 유효성 검사를 우회하려고 시도했습니다. 정말 쉽습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.