![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| SiteLev |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 4.6.2008 Репутация: нет Всего: 1 |
Этот вопрос мучает меня давно, поэтому очнь хотел бы получть ответ от людей с опытом
Когда речь идет о добавлении слешей перед добавлением данных в базу, то встречал в основном такие подходы: 1) Проверить, включено ли magic_quotes и поступать соответственно 2) Ничего не делать, потому, что знаем, что оно включено 3) Использовать функцию, которая проверяет автоматически , нужно ли вставить слеши и ставит(если не ошибаюсь) вот вопрос, а почему просто не снять слэши, если они есть и добавить снова
Что-то меашет этому? Спасибо |
|||
|
||||
| Feldmarschall |
|
||||||
|
Новичок ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2641 Регистрация: 11.12.2007 Репутация: 1 Всего: 32 |
Все три подхода неправильные.
Вот тебе правильные три подхода: 1. добавлять надо всегда. 2. magic_quotes отключить. SQL запрос и входящие в скрипт данные - это совершенно разные, не связанные между собой вещи. 3. если мы работаем с mysql, то добавлять надо функцией mysql_real_escape_string Добавлено @ 21:51
потому что если в тексте встречаются последовательности символов, идентичные результату работы addslashes, эти последовательности будут испорчены. то есть, если я сейчас здесь напишу
то при твоем подходе оно превратится в
Не знаю, как ты, а мне не нравится, когда мои слова искажают. и вообще, будет нарушен фундаментальный принцип работы базы данных - она вернет не то, что в неё положили. это немыслимо. Это сообщение отредактировал(а) Feldmarschall - 1.7.2008, 21:58 |
||||||
|
|||||||
| Mal Hack |
|
||||||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 11 Всего: 261 |
SiteLev,
http://ru2.php.net/mysql_real_escape_string Вот что экранирует mysql_real_escape_string:
addslaches же:
т.е. таким образом мы не обеспечиваем того экранирования, которое нужно сделать для быза. Для других СУ(Р)БД история такая же. Еще один аргумент привел Feldmarschall. Что касается magic_quotes... http://ru2.php.net/manual/ru/info.configur...agic-quotes-gpc
С точки зрения технологии программирования ВЫ как разработчик должны полностью контролировать входные данные, соответственно работать надо с "чистыми" данными, без какой-либо обработки, т.к. вероятность того, что в промежуточном этапе вы что-то потеряете - велика. И проблема даже не в этом, а в том, что "ловить" вы это будете очень долго в процессе отладки. |
||||||
|
|||||||
| SiteLev |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 4.6.2008 Репутация: нет Всего: 1 |
Ок, благодарю за ответы
|
|||
|
||||
| SiteLev |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 4.6.2008 Репутация: нет Всего: 1 |
Если можно, обобщу :
1) Нужно освободиться от автоматически добавленных слэшей
2) Экранипровать с помощью функции mysql_real_escape_string
Это сообщение отредактировал(а) SiteLev - 1.7.2008, 22:58 |
||||
|
|||||
| Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 11 Всего: 261 |
||||
|
||||
| SiteLev |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 4.6.2008 Репутация: нет Всего: 1 |
Как понял, 100% - ного решения нет, если не трогать настройки сервера? Это я к тому, что мы не знаем, какие настройки будут на сервере, где наш скрипт будет использован |
|||
|
||||
| Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 11 Всего: 261 |
.htaccess для того и придуман, чтобы на настройки сервера нам было плевать по сути дела. Никто не мешает вам подконфигурировать php как вам нужно, сделав это через .htaccess, естественно в пределах прав доступа...
|
|||
|
||||
| SiteLev |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 4.6.2008 Репутация: нет Всего: 1 |
Спасибо, буду иметь в виду
|
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Базы Данных | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |