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

Форум PHP

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

 

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

вид форума:
Линейный форум Структурный форум

тема: обработка полей форм
 
 автор: pilotgarry   (15.06.2008 в 17:07)   письмо автору
 
 

Добрый день.

Подcкажите пожалуйста, какими функциями надо обработать текстовые поля html форм перед тем как заносить их содержимое в базу MySql (с точки зрения безопасности)?

Спасибо.

   
 
 автор: neo2008   (15.06.2008 в 21:46)   письмо автору
 
   для: pilotgarry   (15.06.2008 в 17:07)
 

>Добрый день.
>
>Подcкажите пожалуйста, какими функциями надо обработать текстовые поля html форм перед тем как заносить их содержимое в базу MySql (с точки зрения безопасности)?
>
>Спасибо.

stripslashes и htmlspecialchars

Первое полезное, но не с точки зрения безопасности, а второе для безопасности.

   
 
 автор: Trianon   (15.06.2008 в 22:10)   письмо автору
 
   для: neo2008   (15.06.2008 в 21:46)
 

>stripslashes и htmlspecialchars
>Первое полезное, но не с точки зрения безопасности, а второе для безопасности.

Ерунду пороть не надо, а?

   
 
 автор: Саня   (15.06.2008 в 22:13)   письмо автору
 
   для: neo2008   (15.06.2008 в 21:46)
 

stripslashes() имеет смысл применять только если директива magic_quotes_gpc включена.
А htmlspecialchars() вообще здесь лишняя.

   
 
 автор: Петр   (16.06.2008 в 20:15)   письмо автору
 
   для: Саня   (15.06.2008 в 22:13)
 

htmlspecialchars() тоже нужно!!! например при добавлении строки: Сегодня "Спартак" выиграл всех на свете! Кавычки вокруг нужно заменить на спец.символы, т.к. при редактировании в админке например, выйдет косяк. будет что-то типа <input type="text" value="Сегодня "Спартак"">
пользователь увидет только Сегодня и при сохранении это все пропадет!!!

   
 
 автор: Root   (16.06.2008 в 20:25)   письмо автору
 
   для: Петр   (16.06.2008 в 20:15)
 

>htmlspecialchars() тоже нужно!!!

htmlspecialchars() нужно перед выводом в браузер, но никак не перед вводом в БД.

   
 
 автор: Саня   (15.06.2008 в 22:09)   письмо автору
 
   для: pilotgarry   (15.06.2008 в 17:07)
 

mysql_escape_string() вполне достаточно.

   
 
 автор: Trianon   (15.06.2008 в 22:21)   письмо автору
 
   для: Саня   (15.06.2008 в 22:09)
 

>mysql_escape_string() вполне достаточно.
Я бы только добавил, что эта функция необходима независимо от того, из поля формы пришла строка, или из какого-либо другого источника.
При ручном формировании текста запроса, конечно.

   
 
 автор: cheops   (16.06.2008 в 10:32)   письмо автору
 
   для: pilotgarry   (15.06.2008 в 17:07)
 

Если данные пришли из HTML-формы, т.е. находятся в массивах $_GET или $_POST следует обрабатывать их следующим образом. Текстовые данные
<?php
  
if (!get_magic_quotes_gpc())
  {
    
$_GET['name'] = mysql_escape_string($_GET['name']);
  }
?>

Числовые
<?php
  $_GET
['number'] = intval($_GET['number']);
?>

   
 
 автор: Петр   (16.06.2008 в 20:17)   письмо автору
 
   для: cheops   (16.06.2008 в 10:32)
 


<?php
// Функция рекурсивного обхода массива и прослешивания всяких кавычек;
function strips(&$el) { 
  if (
is_array($el)) 
    foreach(
$el as $k=>$v
      
strips($el[$k]); 
  else 
$el stripslashes($el); // Лучше еще заменить двойные кавычки на спец.символы;
}
// Проверка всех передаваемых массивов;
if (get_magic_quotes_gpc()) { 
  
strips($_GET);
  
strips($_POST);
  
strips($_COOKIE); 
  
strips($_REQUEST);
  if (isset(
$_SERVER['PHP_AUTH_USER'])) strips($_SERVER['PHP_AUTH_USER']); 
  if (isset(
$_SERVER['PHP_AUTH_PW']))   strips($_SERVER['PHP_AUTH_PW']);
}
?>

   
 
 автор: PilotGarry   (16.06.2008 в 23:22)   письмо автору
 
   для: Петр   (16.06.2008 в 20:17)
 

Спасибо всем кто принял участие в обсужденииюю. Вы мне сильно помогли!

   
Rambler's Top100
вверх

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