Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [Мелочи]Обработка входящих данных , с помощью mysql_escape_string: стоит ли? 
:(
    Опции темы
vasac
Дата 17.11.2007, 10:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1060
Регистрация: 4.5.2006

Репутация: 8
Всего: 36



quotes_runtime и quotes_gpc разные вещи. gpc в момент исполнения уже не отключишь.
PM WWW   Вверх
kasmanaft
Дата 17.11.2007, 11:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 94
Регистрация: 16.11.2007

Репутация: 1
Всего: 2



Цитата(skyboy @  17.11.2007,  10:41 Найти цитируемый пост)
не проще ли отказаться от magic quotes, используя set_magic_quotes_runtime?

Так оно разве спасет? Я, честно говоря, до сих пор не понял чего делает эта функция.
Код

<form action="" method="post">
<input name="text" />
<input type="submit" />
</form>

<?php
set_magic_quotes_runtime(1);
if (isset($_POST['text']))
    echo ($_POST['text']);
?>

PM MAIL   Вверх
skyboy
Дата 17.11.2007, 11:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 75
Всего: 260



Цитата(kasmanaft @  17.11.2007,  10:01 Найти цитируемый пост)
Так оно разве спасет?

эта функция, по-моему, отключает magic quotes.
vasac, я ошибаюсь?
PM MAIL   Вверх
vasac
Дата 17.11.2007, 11:57 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1060
Регистрация: 4.5.2006

Репутация: 8
Всего: 36



magic_quotes_gpc нельзя отключить в сценарии, так же, как и register_globals, так как их действие происходит до начала выполнения.
Для конкретной папки/сайта можно отключить в .htaccess если php стоит, как модуль.
quotes_gpc экранирует входящие параметры из _GET, _POST, _COOKIE...
runtime при получении из базы, файлов и т.п. Вот её отключить можно.
PM WWW   Вверх
m1kle
Дата 17.11.2007, 14:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 245
Регистрация: 2.5.2007
Где: Москва, Россия

Репутация: нет
Всего: нет



Т.е. 100% защишенный скрипт это
Код

if(isset($_POST['a'])) $a=$_POST['a'];
$a=stripslashes($a);
$a=mysql_real_escape_string($a);
mysql_query("Запрос $a");
$a=htmlspecialchars($a);
echo $a;

PM MAIL WWW MSN   Вверх
kasmanaft
Дата 17.11.2007, 14:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 94
Регистрация: 16.11.2007

Репутация: 1
Всего: 2



Только вот stripslashes() нужно применять при включенных магических кавычках, а в htmlspecialchars() желательно передавать второй параметр "ENT_QUOTES"

Т.е. 
Код

<?php
if(isset($_POST['a'])) $a=$_POST['a'];
if (get_magic_quotes_gpc())
    $a=stripslashes($a);
mysql_query("SELECT ....... WHERE a='".mysql_real_escape_string($a)."'");
echo htmlspecialchars($a, ENT_QUOTES);
?>


Это сообщение отредактировал(а) kasmanaft - 17.11.2007, 14:57
PM MAIL   Вверх
SelenIT
Дата 17.11.2007, 15:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

Репутация: 32
Всего: 401



m1kle, не 100%-ый. См. первую часть ответа kasmanaftа и - обязательно - PHP FAQ.


--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
m1kle
Дата 17.11.2007, 15:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 245
Регистрация: 2.5.2007
Где: Москва, Россия

Репутация: нет
Всего: нет



SelenIT, а у kasmanaftа 100%й?
PM MAIL WWW MSN   Вверх
SelenIT
Дата 17.11.2007, 15:58 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

Репутация: 32
Всего: 401



95%-ный smile. С точки зрения прослешивания кавычек для такого простого случая - все в порядке. Но на случай отсутствия $_POST['a'] нужно предусмотреть логику более явно - например, инициализировать $a значением по умолчанию. Иначе в строке 4, по идее, все равно будет Notice о несуществующей переменной...


--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
vasac
Дата 18.11.2007, 14:45 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1060
Регистрация: 4.5.2006

Репутация: 8
Всего: 36



Цитата

Т.е. 100% защишенный скрипт это

100%-защищенный скрипт это скрипт написанный программистом стопроцентно понимающим что он делает.
Вы не понимаете.
Вы выводите данные, пропущенные через mysql_escape_string на экран.
Разберитесь в каких случаях, какие проблемы возникают и какие есть способы их решения, а не валите всё в кучу.
PM WWW   Вверх
m1kle
Дата 18.11.2007, 15:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 245
Регистрация: 2.5.2007
Где: Москва, Россия

Репутация: нет
Всего: нет



Код

<?php
if(isset($_POST['a'])) $a=$_POST['a'];
else $a="";
if (get_magic_quotes_gpc())
    $a=stripslashes($a);
mysql_query("SELECT ....... WHERE a='".mysql_real_escape_string($a)."'");
echo htmlspecialchars($a, ENT_QUOTES);
?>

Так?
PM MAIL WWW MSN   Вверх
vasac
Дата 18.11.2007, 15:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1060
Регистрация: 4.5.2006

Репутация: 8
Всего: 36



Уже лучше
PM WWW   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0899 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.