Применение web-технологий для проверки и корректировки первичной вводимой информации

Выполнен анализ проблем, которые возникают при проверке корректности данных в web-приложениях. Предложены методики проверки корректности ввода данных на основе функций PHP и защиты от SQL-инъекций. Определение особенностей разработки надежных приложений.

Рубрика Программирование, компьютеры и кибернетика
Вид статья
Язык русский
Дата добавления 20.01.2018
Размер файла 14,6 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Размещено на http://www.allbest.ru/

Применение web-технологий для проверки и корректировки первичной вводимой информации

Р.В. Кравченко, Н.М. Зайцева

Выполнен анализ проблем, которые возникают при проверке корректности данных в web-приложениях. Предложены методики проверки корректности ввода данных на основе функций PHP и защиты от SQL-инъекций. web приложение корректность инъекция

Разработка надежных приложений - цель каждого разработчика. Правильность ввода первичных данных в приложение является одним из основных методов, используемых для повышения надежности приложения. В web-приложении пользователь обеспечивает ввод, чтобы манипулировать приложением. При вводе данных могут возникнуть ошибки во время набора вводимой информации [1]. «Проверка ввода» является практикой программирования, в котором разработчик web-приложения пытается обнаружить неправильные входные данные пользователя и сделать соответствующее предупреждение. Необходимость проверки объясняется следующим: при разработке серьезных web-приложений есть много причин, которые могут навредить стабильной работе приложения и целостности данных. Во время написания приложения сценарии отказа возникают, один за другим и должны быть обработаны разработчиком. Здесь потребуется обработка данных введенных пользователем, обработка приведет к снижению сценариев отказа в значительной степени. «Проверка входных данных» позволяет быть уверенным и сосредоточить внимание на основах приложения, а не тратить время обработки каждого случая входных данных [2].

Существуют различные способы [3], через которые к web-приложению получат доступ:

Веб-формы.

Клиентские приложения.

Приложения и службы.

Файлы на основе записей.

Поэтому для стабильной работы приложений необходимо, чтобы все эти входы проверялись по определенными правилами. Для этого у каждого поля должен быть определенный тип данных и ограничительные условия для каждого поля ввода, этот процесс проверки будет охватывать большинство входных сценариев почти для всех приложений.

Различают несколько методов проверки вводимых данных на корректность [4]:

Ограничение длины вводимой информации.

Если от пользователя требуется ввести текст не более некоторого количества символов, можно, конечно, задать свойство maxlength у соответствующего input'а, но этот вариант не безопасен, ибо данные могут придти и в обход формы. Поэтому для этих целей лучше использовать функцию substr:

$variable = substr($HTTP_POST_VARS['variable'], 0, 10);

Проверка на наличие специальных символов.

Перед вставкой принятых от пользователя строковых данных в БД их следует проверить на наличие спецсимволов и экранировать их. Лучше всего для этого использовать функцию mysql_escape_string:

$sql = »INSERT INTO table VALUES \»« . mysql_escape_string($text)

Числовые данные.

Если пользователем передаются числовые данные, то перед использованием рекомендуется их проверить на то, действительно-ли они являются числами. Делается это с помощью функции intval:

$myint = intval($_POST['myint']);

Проверка на корректность адреса Email.

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

Код, выполняющий проверку данного типа:

if(!preg_match(«/[a-zA-Z0-9_-.+]+@[a-zA-Z0-9-]+.[a-zA-Z]+/», $email)) die(«некорректный email-адрес»);

Проверка на заполнение необходимых полей.

Ниже приведен код, выполняющий проверку на заполнение полей данными:

if ($name == »« or $mail == »« or $password == »« or $rpassword == »«)

{ print »Заполните все необходимые поля!<BR>«; $er = 1; }

Переменная $er = 1 означает, что была ошибка [5].

В настоящий момент при использовании современных средств internet-технологий появилась возможность через поля ввода в web-приложения получать доступ к данным сайта. В этом случае содержимое полей ввода невозможно проверить простыми ограничительными границами и приложение сохраняет вредоносные входные данные. Это особенно относится к свободной форме текста или строковым типам данных. В таких ситуациях, содержание и значение входного поля должны быть проверены на предмет несанкционированного входа - наличие тегов или SQL команд. От SQL инъекции страдает не только база данных MySQL, но и любая база, поддерживающая языки запросов (а таких большинство) [6].

Для того, чтобы предотвратить SQL-инъекции, можно использовать функции языка PHP:

Mod_rewrite. Структура предлагаемой информации имеет следующий вид - вместо ссылок вида index.php?id=1, например, используются ссылки вида html. Кроме защиты это придает более эстетический вид ссылок и более качественную индексацию сайта поисковыми системами. Реализация предлагаемого метода выглядит следующим образом в файл .htaccess вписываются строчки:

RewriteEngine on Options +FollowSymlinks RewriteBase

RewriteRule ^.htaccess$ - [F]

RewriteRule ^([0-9]*).html index.php?id=$1

Защита от SQL-инъекции происходит следующим образом: при вводе строки, например, http://сайт.ru/1?.html , mod_rewrite не пропустит этот запрос, так как выше упомянутая строка не удовлетворяет условию перенаправления.

Следующим методом защиты от SQL-инъекций может быть предложена фильтрация данных, полученных от пользователя. Кроме «обычной» фильтрации данных, экранируются все опасные символы с помощью специальной функции: mysql_real_escape_string.

$data = mysql_real_escape_string ($data, $connect);

Где $data-переменная, хранящая какие-то данные, полученные от пользователя (данную операцию нужно проделать со всеми переменными, используемыми в SQL-запросах!), а $connect - подключение к базе MySQL (задаваемое функцией mysql_connect). Для того, чтобы эта защита работала, любые данные, передаваемые в SQL-запросе, необходимо оформлять одинарными кавычками:

mysql_query (”SELECT * FROM table WHERE id = `$id'”), вместо

mysql_query (”SELECT * FROM table WHERE id = $id”)

Выводы:

Предлагается методика проверки корректности заполнения полей ввода на основе функций PHP.

Предлагаются методы защиты от SQL-инъекций.

Литература

1. http://www.beansoftware.com/ASP.NET-Tutorials/Validating-ASP.NET-2-0.aspx - Validating User Input In ASP.NET 2.0 Web

2. http://www.devshed.com/c/a/PHP/Advanced-PHP-Form-Input-Validation-to-Check-User-Inputs/ - Advanc ed PHP Form Input Validation to Check User

3. http://www.owasp.org/index.php/How_to_create_a_general_purpose_input_validation_system - How to create a general purpose input validation system.

4. http://www.comptechdoc.org/independent/ programming/ programming-standards/input-validation.html - Input

5. http://www.phpro.org/tutorials/Validating-User-Input.html - Validating user input in

6. http://blog.theringing.net/zashhita-ot-sql-inekcii-s-pomoshhyu-mod_rewrite/ - Защита от SQL-инъекции с помощью mod_rewrite.

Размещено на Allbest.ru

...

Подобные документы

  • Характеристика технологического процесса и существующей системы обработки информации. Автоматизированная система ввода, проверки логической целостности и корректировки вводимой информации. Требования к функциям, видам обеспечения. Спецификация атрибутов.

    дипломная работа [3,1 M], добавлен 31.03.2011

  • Основная цель этого блока, ввод данных для работы программы. Дополнительная цель, вывод информации. Два условия проверки вводимых данных. Первое условие проверки на количество точек. Второе, на правильность ввода координат точек. Созданные подпрограммы.

    лабораторная работа [154,3 K], добавлен 13.02.2009

  • Изучение строкового типа данных, построение классов обработки строк. Описание программы, выводящей слова, состоящие только из гласных латинских букв (a, e, i, o, u). Операторы для проверки корректности вводимых значений c помощью условного оператора if.

    контрольная работа [12,7 K], добавлен 26.05.2016

  • Иерархия типов данных. Определение понятий "указатель", "массив". Получение количества машинных слов, отведенных под каждый тип данных. Проверка программы на переполнение типа int. Анализ заданных выражений на предмет из синтаксической корректности.

    лабораторная работа [176,6 K], добавлен 07.06.2014

  • Универсальная модель данных. Использование функций пакета. Нечёткая логика в таблицах принятия решений. Динамические SQL-запросы и их использование. Прямой и обратный логический выводы. Контроль корректности данных. Адаптивный интерфейс пользователя.

    дипломная работа [5,2 M], добавлен 23.07.2015

  • Составление алгоритма генерации полиномов по введенной степени и корням. Написание программы, реализующей этот алгоритм. Организация ввода значений и проверка его корректности. Проверки, чтобы при работе не произошел выход за диапазон используемого типа.

    курсовая работа [65,6 K], добавлен 28.05.2009

  • Сущности и функциональные зависимости базы данных. Атрибуты и связи. Таблицы базы данных. Построение ER-диаграммы. Организация ввода и корректировки данных. Реляционная схема базы данных. Реализация запросов, получение отчетов. Защита базы данных.

    курсовая работа [2,4 M], добавлен 06.02.2016

  • Технологии защиты персональных данных и их применение. Юридический аспект защиты персональных данных в России. Описание результатов опроса среди рядовых российских пользователей. Прогноз развития технологий в связи с аспектом защиты персональных данных.

    дипломная работа [149,6 K], добавлен 03.07.2017

  • Разработка пользовательского интерфейса и создание базы данных на основе реляционной СУБД Microsoft Access. Процедуры для ввода, корректировки, просмотра входных данных, их обработка и анализ. Формирование запросов и отчетов, их вывод на экран монитора.

    курсовая работа [2,7 M], добавлен 03.05.2014

  • Распределенная обработка данных. Двухуровневые модели распределения основных функций. Применение модели сервера приложений и баз данных. Основные пути распараллеливания запросов. Общая характеристика программных средств подготовки табличных документов.

    отчет по практике [52,6 K], добавлен 30.09.2009

  • Формы представляемой информации. Основные типы используемой модели данных. Уровни информационных процессов. Поиск информации и поиск данных. Сетевое хранилище данных. Проблемы разработки и сопровождения хранилищ данных. Технологии обработки данных.

    лекция [15,5 K], добавлен 19.08.2013

  • Изучение основных принципов разработки приложений баз данных в среде Delphi. Создание таблиц, псевдонима и вычисляемых полей базы данных. Особенности организации поиска и фильтрации. Сортировка данных в таблицах. Построение запросов. Генерация отчетов.

    курсовая работа [1,3 M], добавлен 05.02.2017

  • Модель, отражающая логические взаимосвязи между элементами данных. Таблицы, запросы, отчеты и экранные формы в Microsoft office Access 2007. Проверка корректности данных при вводе. Доступ к данным в связанных таблицах с помощью подчиненных форм.

    курсовая работа [1,6 M], добавлен 06.06.2013

  • Разработка модуля для вычисления значения функции, который впоследствии подключается к программе ввода исходных данных с контролем допусимого значения в таблицу. Проектирование модуля для работы со строками и для обработки массивов текстовой информации.

    курсовая работа [17,8 K], добавлен 24.09.2010

  • Разработка реляционных баз данных. Обслуживание и применение сервисных средств. Применение языков запросов для создания приложений. Базы данных в корпоративных сетях. Автоматизация работы с базой данных. Объединение компонентов в единое приложение.

    методичка [430,2 K], добавлен 22.11.2008

  • Виды неопределенностей в исходных данных систем и процессов защиты информации. Методы восстановления пропущенных значений в исходных данных. Моделирование методом экспертного построения функций, принадлежности оценки уровня риска информационной системы.

    дипломная работа [735,3 K], добавлен 13.07.2011

  • Разработка и реализация алгоритма динамического контроля корректности использования директив OpenMP в программах, написанных на языке Fortran. Минимизация количества потребляемых ресурсов при работе отладчика. Сравнительный обзор существующих отладчиков.

    дипломная работа [83,0 K], добавлен 14.10.2010

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

    статья [32,8 K], добавлен 05.05.2010

  • Построение инфологической, логической и физической модели предметной области. Ограничения целостности базы данных. Организация ввода и корректировки данных. Описание информационных потребностей пользователей. Реализация запросов, построение отчетов.

    курсовая работа [2,9 M], добавлен 22.01.2015

  • Построение инфологической (концептуальной) модели предметной области. Проектирование логической и физической структуры базы данных. Реализация проекта в среде конкретной СУБД. Организация корректировки и ввода данных в БД. Разработка интерфейса.

    курсовая работа [1,4 M], добавлен 14.01.2018

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.