2010-07-03 6 views
9

입력 유효성 검사의 일반적인 관행은 무엇입니까? 즉, 클라이언트 쪽, 서버 쪽 또는 양면에서 입력 유효성 검사를 확인합니까?ASP.NET에서 입력 유효성 검사에 대한 유용한 정보

또한 성능이 중요한 경우 웹 사이트에 대한 클라이언트 측 입력 유효성 검사만으로 보안 위험을 나타내지 않고 충분합니까?

답변

11

항상 서버 측 유효성 검사를 수행하십시오. 사용자 경험을 향상 시키려면 클라이언트 측 유효성 검사가 유용 할 수 있습니다. 또한 서버에 대한 불필요한 요청을 피할 수 있습니다.

클라이언트 측 유효성 검사만으로는 충분하지 않으며, 예를 들어 자바 스크립트를 비활성화하여 쉽게 우회 할 수 있습니다.

항상 서버 측 유효성 검사를 추가하는 것이 좋습니다. 테스트를 마친 후에는 클라이언트 측 유효성 검사를 사용할 수 있습니다.

2

일반적으로 양쪽에 있습니다. 클라이언트 쪽은 의도적으로 또는 무의식적으로 (noscript의 보급으로) 쉽게 우회 할 수 있지만 사용상의 이유로 인해 가치가 있습니다.

보안 위험이 있는지 여부. 사용자 입력을 무엇으로 사용하고 있으며 유효성 검사의 현재 특성은 무엇입니까?

양식에 누군가가 필수 입력란을 채웠다면 보안 위험이 따르지 않을 가능성이 있습니다.

1

클라이 사이드 유효성 검사를 매우 쉽게 무시할 수 있으므로 서버 측 유효성 검사를 사용하지 않아야합니다.

btter 사용자를 유효하게하려면 클라이언트 쪽 유효성 검사도 사용하십시오. 유효하지 않은 양식이 서버에 전송되지 않으므로 서버에 대한 HTTP 요청 수를 줄일 수 있으므로 성능이 향상됩니다.

4

클라이언트 측 검증에 의존하지 마십시오 !!!
정직한 사용자를위한 것입니다. 부정한 사용자는 아무 때 나 빠져 나갈 수 있습니다.

자바 스크립트를 종료하면 앱을 망칠 수 있습니다. 항상에서 서버 측 유효성 검사를 넣어 ... 그건하지 어려운

''# VB 
If Page.isValid Then 
    ''# submit your data 
End If 

// C# 
if(Page.isValid) { 
    // submit your data 
} 

형성 MVC

''# VB 
If ModelState.IsValid Then 
    ''# submit your data 
End If 

// C# 
if(ModelState.IsValid) { 
    // submit your data 
} 

서버 측 유효성 검사가 작동되면, 그때 가서 클라이언트 측 유효성 검사를 추가합니다. 사용자에게 더 나은 환경을 제공합니다.

1

가장 일반적인 것은 클라이언트 및 서버 측 유효성 검사를 모두 사용하는 것입니다.

클라이언트 측 입력 유효성 검사만으로도 보안상의 위험을 나타내지 않고 내 웹 사이트에 충분합니까?

아니요. 서버 측 유효성 검사도 사용해야합니다. 파이어 버그와 같은 클라이언트 유효성 검사를 제거하는 것은 매우 간단합니다. 분명히 클라이언트 쪽 유효성 검사를 제거한 후 악의적 인 사람은 모든 데이터를 서버로 보낼 수 있습니다. 따라서 서버 측 유효성 검사 또한 강력하게 필요합니다. 나는 동일한 규칙에 따라 클라이언트 및 서버 측 유효성 검사를 을 수행하기 위해 함께 FluentValidation, xValJQuery와를 사용하는 것이 좋습니다

4

한 가지.

FluentValidation은 서버 측에서 .net 개체의 유효성을 검사하는 규칙 기반 프레임 워크입니다. 여기에는 xVal에 대한 규칙 제공자가 있으며, 이는 서버 측 및 클라이언트 측 유효성 검사 프레임 워크 중 원하는 것을 연결할 수있는 또 다른 프레임 워크입니다. 클라이언트 측에서 JQuery 유효성 검사기 생성 지원

관련 문제