ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > PHP, PERL, MySQL, JavaScript
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Фильтрация запросов
  #1  
Старый 18.12.2007, 13:52
Аватар для Student :)
Student :)
Участник форума
Регистрация: 09.02.2007
Сообщений: 202
Провел на форуме:
537148

Репутация: 9
Отправить сообщение для Student :) с помощью ICQ
По умолчанию Фильтрация запросов

Привет всем
есть ли такое рег выражение которое не пропустит лишнее в запрос а оставит только

A-z и _ и 0-9
спасибо
 
Ответить с цитированием

  #2  
Старый 18.12.2007, 13:54
Аватар для BlackCats
BlackCats
Постоянный
Регистрация: 01.02.2006
Сообщений: 970
Провел на форуме:
9254548

Репутация: 1942


По умолчанию

Код:
htmlspecialchars()

Не нашли? Я подскажу. Введите, например, в поле "имя" двойную кавычку и какой-нибудь текст, например, "123. Отправьте форму, и взгляните на исходный код полученной страницы. В четвертой строке будет что-то наподобие:
Введите Ваше имя: <input type="text" name="name" value=""123">

То есть - ничего хорошего. А если бы хитрый пользователь ввел JavaScript-код?

Для решения этой проблемы необходимо воспользоваться функцией htmlspecialchars(), которая заменит служебные символы на их HTML-представление (например, кавычку - на &quot;):

  1.  <html>
   2.  <body>
   3.  <?
   4.    $name = isset($_POST['name']) ? htmlspecialchars($_POST['name']) : '';
   5.    $year = isset($_POST['year']) ? htmlspecialchars($_POST['year']) : '';
   6.  
   7.    if (isset($_POST['name'], $_POST['year'])) {
   8.      if ($_POST['name'] == '') {
   9.        echo 'Укажите имя!<br>';
  10.      } else if ($_POST['year'] < 1900 || $_POST['year'] > 2004) {
  11.        echo 'Укажите год рождения! Допустимый диапазон значений: 1900..2004<br>';
  12.      } else {
  13.        echo 'Здравствуйте, ' . $name . '!<br>';
  14.        $age = 2004 - $_POST['year'];
  15.        echo 'Вам ' . $age . ' лет<br>';
  16.      }
  17.      echo '<hr>';
  18.    }
  19.  ?>
  20.  <form method="post" action="<?=$_SERVER['PHP_SELF']?>">
  21.    Введите Ваше имя: <input type="text" name="name" value="<?=$name?>">
  22.    <br>
  23.    Введите Ваш год рождения: <input type="text" name="year" value="<?=$year?>">
  24.    <input type="submit" value="OK">
  25.  </form>
  26.  </body>
  27.  </html>

Повторите опыт и убедитесь, что теперь HTML-код корректен.

Запомните - функцию htmlspecialchars() необходимо использовать всегда, когда выводится содержимое переменной, в которой могут присутствовать спецсимволы HTML.
оно?
 
Ответить с цитированием

  #3  
Старый 18.12.2007, 14:04
Аватар для Student :)
Student :)
Участник форума
Регистрация: 09.02.2007
Сообщений: 202
Провел на форуме:
537148

Репутация: 9
Отправить сообщение для Student :) с помощью ICQ
По умолчанию

ну оно но не совсем

эта штука пропустит '
 
Ответить с цитированием

  #4  
Старый 18.12.2007, 14:09
Аватар для halkfild
halkfild
Leaders of Antichat - Level 4
Регистрация: 11.11.2005
Сообщений: 391
Провел на форуме:
7084941

Репутация: 2277
По умолчанию

PHP код:
<?
if (isset($_GET['param'])) {
  
preg_match_all('/[a-z0-9_]+/iU'$_GET['param'], $out);
  echo 
"<PRE>";
  
print_r($out);
  echo 
"</PRE>";
}
?>

Последний раз редактировалось halkfild; 18.12.2007 в 14:29..
 
Ответить с цитированием

  #5  
Старый 18.12.2007, 14:12
Аватар для groundhog
groundhog
Познавший АНТИЧАТ
Регистрация: 12.05.2007
Сообщений: 1,235
Провел на форуме:
2238549

Репутация: 1318


Отправить сообщение для groundhog с помощью ICQ
По умолчанию

$pattern = "/[a-zA-Z0-9_]+/iUs";

if (!preg_match($pattern, $some_str, $matches)) die('Fuck!');
 
Ответить с цитированием

  #6  
Старый 18.12.2007, 14:12
Аватар для Student :)
Student :)
Участник форума
Регистрация: 09.02.2007
Сообщений: 202
Провел на форуме:
537148

Репутация: 9
Отправить сообщение для Student :) с помощью ICQ
По умолчанию

О то что надо это можно пременить для безопасности запросов в Sql?
или можно всётаки обойти проверку ?
 
Ответить с цитированием

  #7  
Старый 18.12.2007, 14:22
Аватар для GreenBear
GreenBear
наркоман с медалью
Регистрация: 07.05.2005
Сообщений: 3,704
Провел на форуме:
19975136

Репутация: 4536


Отправить сообщение для GreenBear с помощью ICQ
По умолчанию

Цитата:
$pattern = "/[a-zA-Z0-9_]+/iUs";

if (!preg_match($pattern, $some_str, $matches)) die('Fuck!');
$some_str = 'mda\'';

http://ru2.php.net/manual/ru/reference.pcre.pattern.modifiers.php для жирного

^([a-z0-9_])$
 
Ответить с цитированием

  #8  
Старый 18.12.2007, 14:32
Аватар для GreenBear
GreenBear
наркоман с медалью
Регистрация: 07.05.2005
Сообщений: 3,704
Провел на форуме:
19975136

Репутация: 4536


Отправить сообщение для GreenBear с помощью ICQ
По умолчанию

Цитата:
эта штука пропустит '
ENT_QUOTES

вообще достаточно просто данные в помощью mysql_escape_string или mysql_real_escape_string экранировать. другое лишнее.

Последний раз редактировалось GreenBear; 18.12.2007 в 14:34..
 
Ответить с цитированием

  #9  
Старый 18.12.2007, 15:53
Аватар для Student :)
Student :)
Участник форума
Регистрация: 09.02.2007
Сообщений: 202
Провел на форуме:
537148

Репутация: 9
Отправить сообщение для Student :) с помощью ICQ
По умолчанию

Spasibo Vsem!
 
Ответить с цитированием

  #10  
Старый 18.12.2007, 16:11
Аватар для DRON-ANARCHY
DRON-ANARCHY
Отец порядка
Регистрация: 04.03.2005
Сообщений: 1,007
Провел на форуме:
1204641

Репутация: 412


Отправить сообщение для DRON-ANARCHY с помощью ICQ
По умолчанию

Интересно, как у автора получилось выучить работу с Sql если задает такие забавные вопросы))
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Генерация HTTP запросов на c++ Trinity С/С++, C#, Delphi, .NET, Asm 16 21.01.2006 17:22
Администрация президента США заставляет Google раскрыть архивы поисковых запросов dinar_007 Мировые новости 1 20.01.2006 12:18
Залить шелл через подделку http запросов, на примере ipb 1.3 SURRENDER Форумы 25 13.04.2005 15:37



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ