Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Функции для защиты приложений при размещении информации в базе данных

Сообщения:  [1-10]   [11-16] 

 
 автор: cheops   (10.03.2011 в 19:32)   письмо автору
 
   для: hxt   (10.03.2011 в 19:26)
 

Иногда для этого используются SQL-функции, т.е. пароль становится частью запроса, в этом случае его обязательно нужно проверять.

  Ответить  
 
 автор: hxt   (10.03.2011 в 19:26)   письмо автору
 
   для: denser   (10.03.2011 в 18:22)
 

Пароль можно не проверять. Его обычно сначала хешируют, а потом сравнивают полученное значение с записью в таблице.
Поправьте меня, если я ошибаюсь.

  Ответить  
 
 автор: denser   (10.03.2011 в 19:23)   письмо автору
 
   для: cheops   (10.03.2011 в 18:32)
 

Теперь понятно. Спасибо за помощь.

  Ответить  
 
 автор: cheops   (10.03.2011 в 18:32)   письмо автору
 
   для: denser   (10.03.2011 в 18:22)
 

Следует поступить, точно так же как с обычной строкой, т.е. подвергнув их следующей проверке
<?php 
  
// Если режим магических кавычек отключен - экранируем спец-символы 
  
if (!get_magic_quotes_gpc()) 
  { 
     
$_POST['login'] = mysql_escape_string($_POST['login']); 
     
$_POST['pass'] = mysql_escape_string($_POST['pass']); 
  } 
?>

  Ответить  
 
 автор: denser   (10.03.2011 в 18:22)   письмо автору
 
   для: cheops   (10.03.2011 в 14:58)
 

А как быть со страницей авторизации? То есть, есть запись в таблице (пароль и логин), нужно сверить вводимые данные с данными в таблице?

  Ответить  
 
 автор: cheops   (10.03.2011 в 14:58)   письмо автору
 
   для: denser   (10.03.2011 в 14:47)
 

Тогда перед помещением информации в базу данных, необходимо обработать параметры для предотвращаения SQL-инъекций, а перед выводом из базы данных для предотвращения XSS-инъекций.
1) Перед помещением в базу данных. Если речь идет о целочисленных данных, достаточно прогнать их через функцию intval().
<?php
  $_POST
['id'] = intval($_POST['id']);
?>

Если речь идет о строковых данных, то необходимо экранировать спец-символы (в том, случае, если отключен режим магических кавычек).
<?php
  
// Если режим магических кавычек отключен - экранируем спец-символы
  
if (!get_magic_quotes_gpc())
  {
     
$_POST['text'] = mysql_escape_string($_POST['text']);
  }
?>

2) Перед выводом из базы данных. Текст, особенно если его вводит не доверенный человек, желательно прогнать через функцию htmlspecialchar().
<?php
  
echo htmlspecialchars(stripslashes($textENT_QUOTES);
?>

  Ответить  
 
 автор: denser   (10.03.2011 в 14:47)   письмо автору
 
   для: cheops   (09.03.2011 в 18:33)
 

Да, о помещении их в базу данных, а также если я вывожу в браузер текст из базы данных.

  Ответить  
 
 автор: psychomc   (10.03.2011 в 10:20)   письмо автору
 
   для: denser   (09.03.2011 в 15:42)
 

непосредственно перед занесением в бд mysql_real_escape_string
непосредственно перед выводом в браузер htmlspecialchars
но есть нюансы. если данные от доверенного источника (например администратора), то тогда htmlspecialchars применять естественно не нужно. и т.п. в общем-то я имею ввиду как раз то, что написал Valick

  Ответить  
 
 автор: Valick   (10.03.2011 в 09:28)   письмо автору
 
   для: denser   (09.03.2011 в 14:49)
 

универсальных решений нет, защищать нужно конкретное приложение с набором конкретных входных данных.

  Ответить  
 
 автор: cheops   (09.03.2011 в 18:33)   письмо автору
 
   для: denser   (09.03.2011 в 15:42)
 

Обязательно поможем, но нужно больше подробностей о том, куда потом идут данные. Речь идет о помещении их в базу данных?

  Ответить  

Сообщения:  [1-10]   [11-16] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования