Процесс обеспечения правильности и полезности компьютерных данных
В вычислительной технике проверка данных или проверка ввода — это процесс обеспечения того, что данные прошли очистку данных для подтверждения их качества , то есть, что они являются как правильными, так и полезными. Он использует процедуры, часто называемые «правилами проверки», «ограничениями проверки» или «проверочными процедурами», которые проверяют правильность, осмысленность и безопасность данных, которые вводятся в систему. Правила могут быть реализованы с помощью автоматизированных средств словаря данных или путем включения явной логики проверки прикладной программы компьютера и его приложения.
Это отличается от формальной проверки , которая пытается доказать или опровергнуть правильность алгоритмов для реализации спецификации или свойства.
Обзор
Проверка данных предназначена для предоставления определенных четко определенных гарантий пригодности и согласованности данных в приложении или автоматизированной системе. Правила проверки данных могут быть определены и разработаны с использованием различных методологий и развернуты в различных контекстах. [1] Их реализация может использовать декларативные правила целостности данных или бизнес-правила на основе процедур . [2]
Гарантии проверки данных не обязательно включают точность, и ошибки ввода данных, такие как опечатки, могут быть приняты как действительные. Другие канцелярские и/или компьютерные средства контроля могут применяться для уменьшения неточности в системе.
Разные виды
Оценивая основы проверки данных, можно сделать обобщения относительно различных видов проверки в зависимости от их объема, сложности и цели.
Например:
- Проверка типа данных;
- Проверка диапазона и ограничений;
- Проверка кода и перекрестных ссылок;
- Структурированная проверка; и
- Проверка согласованности
Проверка типа данных
Проверка типа данных обычно выполняется по одному или нескольким простым полям данных.
Самый простой вид проверки типа данных заключается в проверке того, что отдельные символы, предоставленные посредством пользовательского ввода, соответствуют ожидаемым символам одного или нескольких известных примитивных типов данных, определенных в языке программирования или механизме хранения и извлечения данных.
Например, для целочисленного поля может потребоваться использовать только символы от 0 до 9.
Простая проверка диапазона и ограничений
Простая проверка диапазона и ограничений может проверять входные данные на соответствие минимальному/максимальному диапазону или соответствие тесту для оценки последовательности символов, например, одному или нескольким тестам на соответствие регулярным выражениям. Например, значение счетчика может быть неотрицательным целым числом, а пароль может соответствовать минимальной длине и содержать символы из нескольких категорий.
Проверка кода и перекрестных ссылок
Проверка кода и перекрестных ссылок включает операции по проверке того, что данные соответствуют одному или нескольким возможно внешним правилам, требованиям или коллекциям, относящимся к конкретной организации, контексту или набору базовых предположений. Эти дополнительные ограничения достоверности могут включать перекрестные ссылки на предоставленные данные с известной таблицей поиска или службой информации каталога, такой как LDAP .
Например, для определения текущего геополитического региона может потребоваться указанный пользователем код страны.
Структурированная проверка
Структурированная валидация позволяет комбинировать другие виды валидации вместе с более сложной обработкой. Такая сложная обработка может включать тестирование условных ограничений для всего сложного объекта данных или набора операций процесса в системе.
Проверка согласованности
Проверка согласованности гарантирует, что данные являются логичными. Например, можно запретить, чтобы дата доставки заказа предшествовала дате его отправки.
Пример
Для 10-значных номеров ISBN до 2007 года актуальны различные виды проверки данных (издание ISO 2108 2005 года требовало, чтобы с 2007 года номера ISBN имели 13 цифр [3] ).
- Размер. ISBN до 2007 года должен состоять из 10 цифр с необязательными дефисами или пробелами, разделяющими его четыре части.
- Проверки формата. Каждая из первых 9 цифр должна быть от 0 до 9, а 10-я должна быть либо от 0 до 9, либо X.
- Контрольная цифра . Для обнаружения ошибок транскрипции, при которых цифры были изменены или переставлены, последняя цифра ISBN до 2007 года должна соответствовать результату математической формулы, включающей остальные 9 цифр ( контрольные цифры ISBN-10 ).
Типы проверки
- Разрешенные проверки символов
- Проверяет, чтобы убедиться, что в поле присутствуют только ожидаемые символы. Например, числовое поле может разрешать только цифры 0–9, десятичную точку и, возможно, знак минус или запятые. Текстовое поле, такое как личное имя, может запрещать символы, используемые для разметки . Адрес электронной почты может потребовать по крайней мере один знак @ и различные другие структурные детали. Регулярные выражения могут быть эффективными способами реализации таких проверок.
- Итоги партии
- Проверяет отсутствующие записи. Числовые поля могут быть сложены для всех записей в пакете. Вводится общая сумма пакета, и компьютер проверяет правильность общей суммы, например, складывает поле «Общая стоимость» нескольких транзакций.
- Проверка мощности
- Проверяет, что запись имеет допустимое количество связанных записей. Например, если запись контакта классифицируется как «клиент», то она должна иметь по крайней мере один связанный заказ (кардинальность > 0). Этот тип правила может быть усложнен дополнительными условиями. Например, если запись контакта в базе данных заработной платы классифицируется как «бывший сотрудник», то она не должна иметь никаких связанных выплат заработной платы после даты увольнения (кардинальность = 0).
- Контрольные цифры
- Используется для числовых данных. Для поддержки обнаружения ошибок к числу добавляется дополнительная цифра, которая вычисляется из других цифр.
- Проверки согласованности
- Проверяет поля, чтобы убедиться, что данные в этих полях соответствуют друг другу, например, если срок действия уже прошел, то статус не «активен».
- Проверки согласованности между системами
- Сравнивает данные в разных системах, чтобы убедиться в их согласованности. Системы могут представлять одни и те же данные по-разному, в этом случае сравнение требует преобразования (например, одна система может хранить имя клиента в одном поле Name как «Doe, John Q», в то время как другая использует First_Name «John» и Last_Name «Doe» и Middle_Name «Quality»).
- Проверки типов данных
- Проверяет соответствие ввода типизированным данным. Например, поле ввода, принимающее числовые данные, может отклонить букву «О».
- Проверка существования файла
- Проверяет, существует ли файл с указанным именем. Эта проверка необходима для программ, использующих обработку файлов.
- Проверка формата
- Проверяет, что данные находятся в указанном формате (шаблоне), например, даты должны быть в формате ГГГГ-ММ-ДД. Для такого рода проверки можно использовать регулярные выражения.
- Проверка присутствия
- Проверяет наличие данных, например, у клиентов может быть запрошен адрес электронной почты.
- Проверка дальности
- Проверяет, находятся ли данные в указанном диапазоне значений, например, вероятность должна быть в диапазоне от 0 до 1.
- Ссылочная целостность
- Значения в двух таблицах реляционной базы данных могут быть связаны через внешний ключ и первичный ключ. Если значения в поле внешнего ключа не ограничены внутренними механизмами, то их следует проверить, чтобы гарантировать, что ссылающаяся таблица всегда ссылается на строку в ссылаемой таблице.
- Проверка орфографии и грамматики
- Ищет орфографические и грамматические ошибки.
- Проверка уникальности
- Проверяет уникальность каждого значения. Это может быть применено к нескольким полям (например, Адрес, Имя, Фамилия).
- Проверка таблицы поиска
- Проверка с помощью таблицы сравнивает данные с набором допустимых значений.
Действия после проверки
- Правоприменительные действия
- Действие по обеспечению соблюдения обычно отклоняет запрос на ввод данных и требует от субъекта ввода внести изменение, которое приведет данные в соответствие. Это наиболее подходит для интерактивного использования, когда реальный человек сидит за компьютером и делает ввод. Это также хорошо работает для пакетной загрузки, когда ввод файла может быть отклонен, а набор сообщений отправляется обратно в источник ввода с указанием причины отклонения данных.
- Другая форма принудительного применения включает автоматическое изменение данных и сохранение соответствующей версии вместо исходной версии. Это наиболее подходит для косметических изменений. Например, преобразование записи [все заглавные] в запись [регистр Pascal] не требует ввода данных пользователем. Неправильное использование автоматического принудительного применения может иметь место в ситуациях, когда принудительное применение приводит к потере деловой информации. Например, сохранение усеченного комментария, если его длина больше ожидаемой. Обычно это нехорошо, поскольку может привести к потере значительных данных.
- Консультативное действие
- Консультативные действия обычно позволяют вводить данные без изменений, но отправляют сообщение исходному субъекту, указывающее на те проблемы проверки, которые были обнаружены. Это наиболее подходит для неинтерактивных систем, для систем, где изменение не является критически важным для бизнеса, для этапов очистки существующих данных и для этапов проверки процесса ввода.
- Действие проверки
- Действия по проверке являются особыми случаями рекомендательных действий. В этом случае исходному субъекту предлагается проверить, что эти данные являются тем, что он действительно хотел бы ввести, в свете предложения об обратном. Здесь шаг проверки предлагает альтернативу (например, проверка почтового адреса возвращает другой способ форматирования этого адреса или предлагает другой адрес вообще). В этом случае вы хотели бы предоставить пользователю возможность принять рекомендацию или сохранить свою версию. Это не строгий процесс проверки по замыслу и полезен для захвата адресов в новом месте или в месте, которое еще не поддерживается базами данных проверки.
- Журнал проверки
- Даже в случаях, когда проверка данных не выявила никаких проблем, важно предоставить журнал проверок, которые были проведены, и их результаты. Это полезно для выявления любых недостающих проверок проверки данных в свете проблем с данными и для улучшения
Проверка и безопасность
Ошибки или упущения при проверке данных могут привести к повреждению данных или уязвимости системы безопасности . [4] Проверка данных проверяет, соответствуют ли данные своему назначению, [5] являются ли они действительными, разумными, обоснованными и безопасными, прежде чем они будут обработаны.
Смотрите также
Ссылки
- ^ Методология проверки данных 1.0
- ^ Проверка данных, целостность данных, проектирование распределенных приложений с помощью Visual Studio .NET
- ^ Часто задаваемые вопросы о новом стандарте ISBN. Архивировано 10 июня 2007 г. на Wayback Machine ISO .
- ^ Глава 10. Проверка данных
- ^ Более эффективная проверка данных с помощью Spotless
Внешние ссылки
- Проверка данных, OWASP
- Проверка входных данных, серия шпаргалок OWASP, github.com