Обязательные проверки для специальных символов - PullRequest
0 голосов
/ 26 августа 2011

У нас есть функция создания пользователя в нашем приложении ASP.NET. Это создаст запись в базе данных для нового пользователя, а также создаст новую учетную запись в Active Directory. Всех существующих пользователей можно искать, используя другую функцию в приложении.

В настоящее время для создания пользователя разрешено вводить только английские алфавиты и цифры. Однако клиент хочет также ввести специальные символы. Когда мы попробовали, мы обнаружили следующие проблемы с буксировкой.

1) Когда пользователь создается только со специальными символами, он выдает ошибку

2) При поиске путем ввода% (чтобы видеть только пользователей, имеющих @ в имени), возвращаются все пользователи.

Не могли бы вы перечислить другие возможные проблемы, чтобы мы могли сформировать необходимые проверки (например,% не должно быть разрешено).

Примечание: все, кроме «английских алфавитов и цифр», считается специальным символом.

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

SELECT * FROM USerDetails WHERE First_Name LIKE @CharacterVal

Спасибо

Lijo

Ответы [ 3 ]

0 голосов
/ 26 августа 2011

(1) Специальные символы - более широкая проблема - вам может потребоваться преобразовать входные данные: http://support.microsoft.com/kb/232580

(2) Все символы могут быть разрешены с помощью выражения escape на сервере SQL: столбцы SELECT из таблицыГДЕ столбец НРАВИТСЯ '% \ @%' ESCAPE '\'

0 голосов
/ 27 августа 2011

Что касается Active-Directory , то в этой статье Microsoft говорится, что символами, которые не разрешены при входе в систему, являются:

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

0 голосов
/ 26 августа 2011

Не делайте этого через черный список, если вы серьезно относитесь к безопасности. Получите список символов, которые хочет клиент, а затем внесите в белый список только эти символы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...