Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.07.2011, 00:57   #1
nitrofox
 
Регистрация: 31.05.2011
Сообщений: 8
По умолчанию Как лучше проверять входящие данные

У меня вот такой вопрос... У меня есть допустим такие строки.. Пароль, логин, идентификатор языка и идентификатор сессии... Эти данные приходят от пользователя мне бы их проверить на соответствие.
  1. Пароль должен состоять из любых символов от 6 до 20 символов..
  2. Логин из букв и цифр и символа "."{6,20} но с условием чтобы первый символ был обязательно буквой..
  3. Указатель языка приходит от пользователя в виде 3 символов англ языка(rus, eng, alb итд)
  4. Идентификатор сессии гдето 15 цифр ))
вот в чем вопрос. Я сейчас проверяю все это с помощью preg_match.. Везде пишится что preg_match очень медленно работает.. Вот и захотел узнать как лучше проверять данные.. Есть еще вроде ereg(), эта функция быстрее работает с проверкой? Или может есть встроенные проверки допустим для цифрового поля с точной длиной в 15 цифр?
nitrofox вне форума Ответить с цитированием
Старый 20.07.2011, 01:25   #2
motorway
Участник клуба
 
Регистрация: 28.06.2009
Сообщений: 1,950
По умолчанию

Можно проверять посимвольно с использованием chr или ord и т.п.
motorway вне форума Ответить с цитированием
Старый 20.07.2011, 07:12   #3
Виталий Желтяков
Старожил
 
Аватар для Виталий Желтяков
 
Регистрация: 19.04.2010
Сообщений: 2,702
По умолчанию

Прогоняете все свои входящие данные через такой фильтр:
Код:
function checkrequest($request) {
	// Удираем лишние пробелы
	$request = trim($request);
	// Фиксируем атаки
	if (preg_match("/script|http|<|>|<|>|SELECT|UNION|UPDATE|exe|exec|INSERT|tmp/i",$request)) {
		writelog('hack', date("y.m.d H:m:s")."\t".$_SERVER['REMOTE_ADDR']."\t".$request);
		return '';
	}
	// Очищаем опасные запросы
	if (preg_match("/[^(\w)|(\x7F-\xFF-&=.,@():;!?)|(\s)]/",$request)) {
		return '';
	}

	return $request;
}
И будет Вам счастье.
Виталий Желтяков вне форума Ответить с цитированием
Старый 20.07.2011, 07:19   #4
Naive
Раздолбайских Дел
Старожил
 
Аватар для Naive
 
Регистрация: 22.05.2009
Сообщений: 3,828
По умолчанию

Код:
writelog('hack', date("y.m.d H:m:s")."\t".$_SERVER['REMOTE_ADDR']."\t".$request);
А потом вычислить и убить
Alar, верни репу!
Naive вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не проверять Mutex если программа запущена с параметром Человек_Борща Общие вопросы Delphi 10 09.05.2011 20:34
проверять наличие атрибутов в xml-файле NieL Общие вопросы Delphi 3 24.11.2010 19:31
Проверять работу Excel из Outlook kolebatel Microsoft Office Excel 6 28.05.2009 11:50
Как проверять, запущена ли определенная программа? Bill Gates Общие вопросы Delphi 1 04.01.2008 17:29