Другие статьи

Цель нашей работы - изучение аминокислотного и минерального состава травы чертополоха поникшего
2010

Слово «этика» произошло от греческого «ethos», что в переводе означает обычай, нрав. Нравы и обычаи наших предков и составляли их нравственность, общепринятые нормы поведения.
2010

Артериальная гипертензия (АГ) является важнейшей медико-социальной проблемой. У 30% взрослого населения развитых стран мира определяется повышенный уровень артериального давления (АД) и у 12-15 % - наблюдается стойкая артериальная гипертензия
2010

Целью нашего исследования явилось определение эффективности применения препарата «Гинолакт» для лечения ВД у беременных.
2010

Целью нашего исследования явилось изучение эффективности и безопасности препарата лазолван 30мг у амбулаторных больных с ХОБЛ.
2010

Деформирующий остеоартроз (ДОА) в настоящее время является наиболее распространенным дегенеративно-дистрофическим заболеванием суставов, которым страдают не менее 20% населения земного шара.
2010

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

Для более объективного подтверждения мембранно-стабилизирующего влияния карбамезапина и ламиктала нами оценивались перекисная и механическая стойкости эритроцитов у больных эпилепсией
2010

Нами было проведено клинико-нейропсихологическое обследование 250 больных с ХИСФ (работающих в фосфорном производстве Каратау-Жамбылской биогеохимической провинции)
2010


C использованием разработанных алгоритмов и моделей был произведен анализ ситуации в системе здравоохранения биогеохимической провинции. Рассчитаны интегрированные показатели здоровья
2010

Специфические особенности Каратау-Жамбылской биогеохимической провинции связаны с производством фосфорных минеральных удобрений.
2010

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

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

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

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

  1. Веб-формы.
  2. Клиентские приложения.
  3. Приложения и службы.
  4. Файлы на основе записей.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  1. 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 не пропустит этот запрос, так как выше упомянутая строка не удовлетворяет условию перенаправления.

  1. Следующим методом защиты от 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”)

Выводы:

  1. Предлагается методика проверки корректности заполнения полей ввода на основе функций PHP.
  2. Предлагаются методы защиты от 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.

Разделы знаний

Архитектура

Научные статьи по Архитектуре

Биология

Научные статьи по биологии 

Военное дело

Научные статьи по военному делу

Востоковедение

Научные статьи по востоковедению

География

Научные статьи по географии

Журналистика

Научные статьи по журналистике

Инженерное дело

Научные статьи по инженерному делу

Информатика

Научные статьи по информатике

История

Научные статьи по истории, историографии, источниковедению, международным отношениям и пр.

Культурология

Научные статьи по культурологии

Литература

Литература. Литературоведение. Анализ произведений русской, казахской и зарубежной литературы. В данном разделе вы можете найти анализ рассказов Мухтара Ауэзова, описание творческой деятельности Уильяма Шекспира, анализ взглядов исследователей детского фольклора.  

Математика

Научные статьи о математике

Медицина

Научные статьи о медицине Казахстана

Международные отношения

Научные статьи посвященные международным отношениям

Педагогика

Научные статьи по педагогике, воспитанию, образованию

Политика

Научные статьи посвященные политике

Политология

Научные статьи по дисциплине Политология опубликованные в Казахстанских научных журналах

Психология

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

Религиоведение

Научные статьи по дисциплине Религиоведение опубликованные в Казахстанских научных журналах

Сельское хозяйство

Научные статьи по дисциплине Сельское хозяйство опубликованные в Казахстанских научных журналах

Социология

Научные статьи по дисциплине Социология опубликованные в Казахстанских научных журналах

Технические науки

Научные статьи по техническим наукам опубликованные в Казахстанских научных журналах

Физика

Научные статьи по дисциплине Физика опубликованные в Казахстанских научных журналах

Физическая культура

Научные статьи по дисциплине Физическая культура опубликованные в Казахстанских научных журналах

Филология

Научные статьи по дисциплине Филология опубликованные в Казахстанских научных журналах

Философия

Научные статьи по дисциплине Философия опубликованные в Казахстанских научных журналах

Химия

Научные статьи по дисциплине Химия опубликованные в Казахстанских научных журналах

Экология

Данный раздел посвящен экологии человека. Здесь вы найдете статьи и доклады об экологических проблемах в Казахстане, охране природы и защите окружающей среды, опубликованные в научных журналах и сборниках статей Казахстана. Авторы рассматривают такие вопросы экологии, как последствия испытаний на Чернобыльском и Семипалатинском полигонах, "зеленая экономика", экологическая безопасность продуктов питания, питьевая вода и природные ресурсы Казахстана. Раздел будет полезен тем, кто интересуется современным состоянием экологии Казахстана, а также последними разработками ученых в данном направлении науки.  

Экономика

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

Этнология

Научные статьи по Этнологии опубликованные в Казахстане

Юриспруденция

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