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

Форум PHP

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

 

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

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

тема: ***Защита***
 
 автор: RomanAf   (15.03.2009 в 00:07)   письмо автору
 
 

Вот у меня такой алгоритм для защиты от всякой нечисти, скажите дырок больше нет?
<?php
function securuty($str$htmlh on) {
$str get_magic_quotes_gpc() ? stripslashes($str) : $str;
$str function_exists("mysql_real_escape_string") ? mysql_real_escape_string($str) : mysql_escape_string($str);
if(
$htmlh == on) {
$str htmlspecialchars($str);
}
return 
$str;
}
?>

Первый параметр-строка, а второй обрабатывать html или нет! Что-то мне кажется что что-то тут не так!!!

  Ответить  
 
 автор: DEM   (15.03.2009 в 00:59)   письмо автору
 
   для: RomanAf   (15.03.2009 в 00:07)
 

Помоему лучше так:

<?php
function bez($str)
{
  
$str trim($str);
  if (!
get_magic_quotes_gpc())
  {
    
$str =  mysql_escape_string($str);
  }
  return 
$str
}

function 
html($str)
{
  
$str trim($str);
  
$str htmlspecialchars($strENT_QUOTES); 
  return 
$str;
}
?>

  Ответить  
 
 автор: serjinio   (16.03.2009 в 06:25)   письмо автору
 
   для: DEM   (15.03.2009 в 00:59)
 

Чуть дополню...

if ((get_magic_quotes_gpc()==1 )&& !function_exists('s_slash'))
{
function s_slash($v)
{
if (is_array($v)) return array_map('s_slash', $v);
return stripslashes($v);
}
if (!empty($_GET)) $_GET = s_slash($_GET);
if (!empty($_POST)) $_POST = s_slash($_POST);
if (!empty($_COOKIE)) $_COOKIE = s_slash($_COOKIE);
}

  Ответить  
 
 автор: Slo_Nik   (16.03.2009 в 14:58)   письмо автору
 
   для: serjinio   (16.03.2009 в 06:25)
 

ну а если включены? помоему надо учитывать два варианта.
или я не прав?

  Ответить  
 
 автор: DEM (univer)   (16.03.2009 в 15:10)
 
   для: Slo_Nik   (16.03.2009 в 14:58)
 

Если get_magic_quotes_gpc() включены, то проверка не нужна ;)

  Ответить  
 
 автор: Slo_Nik   (16.03.2009 в 15:26)   письмо автору
 
   для: DEM (univer)   (16.03.2009 в 15:10)
 

ну а как же в ранних темах, которые здесь обсуждались, например,http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=61241.
народ говорил, что надо проверять включены или нет и учитывать два варианта.
как я понял, что если выключены, то обработать mysql_real_escape_string перед занесением в БД, если включены, то убрать автоматом добавленые кавычки и добавть вручную.

  Ответить  
 
 автор: RomanAf   (16.03.2009 в 20:09)   письмо автору
 
   для: Slo_Nik   (16.03.2009 в 15:26)
 

Спасибо!!!

  Ответить  
Rambler's Top100
вверх

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