예를 들어 연락처 양식을 통해 사용자의 입력을 검증 할 때 클라이언트 측 및 서버 측 유효성 검사 기술을 나란히 사용합니까?
그렇다면 정말로 필요한가? 당신은 엔지니어링을 넘습니까?
답변
그렇습니다.
이렇게하면 포스트 백을 낭비하지 않고 즉각적인 사용자 피드백을 유지하면서 JavaScript를 비활성화하는 사용자를 막을 수 있습니다.
이것이 ASP.NET 유효성 검사 컨트롤의 작동 방식입니다.
다른 것을 사용하지 않고 하나를 사용하면 단점이 있기 때문에 과도하게 엔지니어링하지 않습니다.
답변
그렇다면 정말로 필요한가?
예.
당신은 엔지니어링을 넘습니까?
아니.
인터페이스가 풍부한 프런트 엔드 유효성 검사는 즉각적인 피드백을 제공 할 수 있습니다.
백엔드는 여러 프런트 엔드에서 사용할 수 있습니다. 그리고 HTML 전용 (자바 스크립트 없음) 대체 계획에 대한 유일한 유효성 검사입니다.
답변
내가 보안에 대해 배운 첫 번째 기본 사항 중 하나는 해커가 UI를 사용하지 않는다는 것입니다.
웹 애플리케이션에 자체 로컬 버전의 양식이있는 경우 클라이언트 측 유효성 검증은 일반적으로 웹 애플리케이션에서 쉽게 우회하여 서버로 다시 제출할 수 있습니다.
클라이언트 쪽 유효성 검사는 사용자 환경을 개선하고 서버로의 불필요한 왕복을 줄여 유효성 검사를 수행하는 데 유용합니다.
답변
서버 측 유효성 검사는 최소한이어야합니다.
잘못된 입력에 대해서는 클라이언트 측 검사도 추가해야합니다.
예를 들어, 전자 메일이 클라이언트와 서버 측 모두에서 올바르게 형식화되어 있는지 확인하지만 고유한지 확인하면 서버 측 검사가 될 수 있습니다.
답변
예, 둘 다 사용하는 것은 나쁜 생각이 아닙니다. 클라이언트 측에서 간단한 사용자 입력 오류가 발생할 수 있으면 데이터를 전송하고 서버를 다운시키기 전에 해당 오류에 대해 사용자에게 알려주는 것이 좋습니다. 예를 들어 사용자가 ‘이메일’입력란에 이메일 주소가 아닌 것으로 입력하거나 비밀번호 입력란에 5 자 길이의 문자열을 입력 한 경우 사이트에서 비밀번호가 6 자 이상이어야한다는 것을 알고 있다면 서버로 무엇이든 보내기 전에 사용자에게 알려 주어야합니다.
다음 두 가지 이유로 서버에서 정확히 동일한 유효성 검사를 복제하는 것이 중요합니다. 1) 사용자가 Javascript를 비활성화 한 경우 어떻게됩니까?
2) 사용자가 악의적으로 클라이언트 측 유효성 검사를 우회하려고 시도했습니다. 정말 쉽습니다.