2011-08-26 4 views
0

우리는 ASP.NET 응용 프로그램에서 사용자 생성 기능을 가지고 있습니다. 이렇게하면 데이터베이스에 새 사용자에 대한 항목이 만들어지며 Active Directory에 새 계정이 만들어집니다. 모든 기존 사용자는 응용 프로그램의 다른 기능을 사용하여 검색 할 수 있습니다.특수 문자에 대한 필수 검증

현재 사용자 작성을 위해 영어 영문자와 숫자 만 입력 할 수 있습니다. 그러나 클라이언트는 특수 문자도 입력하려고합니다. 우리가 시도했을 때 견인 문제를 발견했습니다. 사용자가 전용 특수 문자를 만들 때 %를 입력하여 검색하면

1),가) 오류

2 던지고있다() 이름에 @를 가진 사용자 만보고, 모든 사용자가 반환됩니다.

% 허용해서는 안되는 등 필요한 검증을 할 수 있도록 가능한 다른 문제를 나열 해주십시오.

참고 : "영문자와 숫자"이외의 문자는 특수 문자로 간주됩니다. 보안에 대한 심각한 경우

DECLARE @CharacterVal VARCHAR(10) 
SET @CharacterVal = '%' 

SELECT * FROM USerDetails WHERE First_Name LIKE @CharacterVal 

감사

Lijo

답변

0

는 지금까지 액티브 디렉토리에 관한 this Microsoft article는 로그온 이름에 사용할 수 없습니다 caracters이라는 것을 discribed :

"/ \ [] :; | = , + *? <>

0

는 블랙리스트를 통해이 작업을 수행하지 마십시오. 클라이언트가 원하는 문자 목록을 얻은 다음 해당 목록 만 허용합니다.

+0

안전하게 허용 된 특수 문자를 제공 할 수 있다면이를 클라이언트에게 제안 할 수 있습니다. – Lijo

+0

클라이언트에서 목록을 가져 와서 모두 시도하고 허용되지 않는 목록을 다시보고하십시오. –

+0

"안전"을 정의하십시오. % 안전하지 않은 이유는 무엇입니까? – tripleee

0

(1) 특수 문자는 넓은 문제있다 - 당신이 입력을 변환 할 필요가 있습니다 http://support.microsoft.com/kb/232580

(2) 모든 문자는 SQL 서버에 이스케이프 절을 사용하여 허용 될 수 있습니다 SELECT 열을 테이블 곳에서 열 LIKE '%의 \의 @ %의'ESCAPE '\'

관련 문제