Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

"PHP" для начинающих.Описание простейших php-скриптов. Вопросы безопасности при обработке пользовательских данных


Вопросы безопасности при обработке пользоватеьских данных

Статьи на эту и другие темы вы сможете увидеть на wzone.net.ru

Скрипты на связанные с рассмотреннымы вопросами находятся здесь: http://wzone.net.ru/scripts.php

Учебник по PHP находится здесь: http://wzone.net.ru/books.php

Доброго времени суток, Уважаемые подписчики!

Сегодня мы рассмотрим вопросы связанные с обеспечением безопасности при обработке пользовательских данных.Ведь самое меньшее что может произойти - это то что пользователь может просто ввести огромное количество беспорядочных символов,а в худшем в поле для ввода может выть введен какой либо код (например PHP-код) который не позволит правильно работать вашему скрипту.

Все наши "опыты" мы будем производить на примере 2-х файлов

  • форма для ввода данных с текстовым полем и кнопкой отправки(index.htm)
  • скрипт обработки вводимых данных (f.php)

Рассмотрим формy для ввода данных с текстовым полем и кнопкой отправки(index.htm)

<html>
<head>
<title>форма</title>
</head>
<body>
<form name="form1" method="post" action="f.php">
<p>
<input name="mail" type="text" id="mail" size="20" maxlength="20">
</p>
<p>
<input type="submit" name="Submit" value="Submit">
</p>
</form>
</body>
</html>
Как видите-это обычная форма для ввода данных,я думаю нет необходимости рассатривать ее подробно,замечу только, что параметр action="f.php" передает введенные данные в наш файл обработки f.php
Cкрипт обработки вводимых данных (f.php)

<?
.

.
?>

Скрипт очень маленький и все что мы будем делать - это менять его содержимое

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

Самое первое что нужно сделать,чтобы ограничить доступ к введенным данным от посторонних глаз,это использование метода "POST" в форме для отправки,т.к. при применении метода "GET" все введенные данные можно увидеть в адресной строке браузера...

 

Рассмотрим скрипт который количество вводимых символов:

<?

$mail=substr($mail,0,10);

echo"$mail";

?>

Данный код ограничивает длинну вводимой строки до 10 символов(к примеру при вводе логина) ,за это отвечае функция substr(,,,,,,)

$mail=substr($mail,0,10) - в данном случае выводится символы с 0 по 10

Рассмотрим скрипт который позволяет вводить HTML и другой код без "последствий":

<?

$mail=htmlspecialchars($mail);

echo"$mail";
?>

$mail=htmlspecialchars($mail); данная функция делает так,что если в форму будет введен какой либо код (html или php к примеру) он нормально отобразится,но выполняться не будет.
Рассмотрим метод удаления пробелов:

<?

$mail= trim($mail);

echo"$mail";

?>

Бывает так,что в поле для ввода не должно содержать пробелов,данный код удаляет пробелы спереди и в конце строки

В прошлой рассылке мы рассотрели применение регулярных выражений при проверке вводимых данных.

Сейчас рассотрим пример который контролирует ввод корректного e-mail.
<?
if(preg_match("/[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,3}/i",$mail))
{echo"$mail";}else{echo"<font color=red>не правильно</font>";};

?>

 

эта функция проверяет соответствие вводимых данных,регулярному выражению
Рассмотрим выражение поднобнее:
Выражение состоит из 3-х составляющих:до знака @, после знака@ и проверка расширения домена
[0-9a-z_]+

здесь осуществляется проверка данных до знака @

Разрешен ввод цифр от 0 до 9 ,букв от a до z и знака нижнего подчеркивания _

знак + означает что это выражение применяется один и более раз

@[0-9a-z_^\.]+ это выражение означает что вводимые данные должны состоять из знака @ за которым должны находиться символы от 0 до 9 ,букв от a до z и знака нижнего подчеркивания _ и точки . И все это один и более раз,на что указывает знак +
\.[a-z]{2,3} данное выражение означает что за знаком точки . должны следовать от 2 до 3 знаков латинского алфавита
/i такой знак в конце означает что все выражение не чувствительно к регистру
Используя данное выражение вы можете быть уверены,что пользователь точно введет корректный адрес электронной почты!
Это всего лишь одно из многих выражений которые вам могут пригодиться,более подробно вы можете прочесть в справочнике PHP который находится здесь: http://wzone.net.ru/books.php
Новости сайта wzone.net.ru
  • на сайте появился форум,заходите,обсуждайте интересующие вопросы
  • появился большой раздел "СЕТИ",где рассатриваются вопросы связанные с компьютерными сетями.Выложены статьи "Топология сетей" и "Пошаговое руководство по объединению компьютеров в сеть",все статьи снабжены подробными иллюстрациями
  • и как всегда пополняются коллекция скриптов
  • появились новые статьи в разделе СЕТИ,рассматриваются среды передачи информации...

Спасибо,что Вы с нами...


В избранное