![]() |
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]() ![]() ![]() |
|
BASILIO |
|
|||
![]() Koté-CAH ![]() Профиль Группа: Участник Сообщений: 135 Регистрация: 25.2.2008 Репутация: нет Всего: нет |
Функция:
Задуманный смысл: 1. иничножение всех хтмл тэгов 2. обезопасивание БД от пакостей Ход мыслей: 1. htmlentities не захотел работать если кавычки за слэшем стоят, посему если надо убираем автоматические слэши 2. удоляем тэги хтмл`а 3. в остатки находим ковычки и заменяем их Проблема: Вроде бы всё правельно задаю, но одиночная ковычка всё равно проскакивает :( |
|||
|
||||
krundetz |
|
|||
![]() Вечный странник ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1400 Регистрация: 14.6.2007 Где: НН(Сормово) Репутация: 20 Всего: 69 |
Советую разделить функционал и избавляться от тегов уже непосредственно перед выводом в браузер.
Чтобы обезопасить базу данных в PHP есть встроеные функции экранирующие спецсимволы. А маджик квотес лучше вообще отключить |
|||
|
||||
Feldmarschall |
|
|||
Новичок ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2641 Регистрация: 11.12.2007 Репутация: 22 Всего: 32 |
1. слово кавычка пишется через "а"
2. кавычками "опасные для бд символы" не исчерпываются. 3. для того, чтобы обезопасить данные для БД, есть специальная функция mysql_real_escape_string. применять недо её, а не шаманство с HTML сущностями. 4. Работа с текстом и работа с БД - это РАЗНЫЕ вещи. В базу может заносить данные и администратор сайта. Он может иметь право добавлять и html. ПОЭТОМУ никакой функции safe_string быть не может. А может быть две функции - функция обработки данных для запроса - функция обработки небезопасных данных для вывода на экран. |
|||
|
||||
BASILIO |
|
||||
![]() Koté-CAH ![]() Профиль Группа: Участник Сообщений: 135 Регистрация: 25.2.2008 Репутация: нет Всего: нет |
Не имеет смысла держать в Базе данные, которые всё равно никто не увидет
Знаю, делают если не ошибаюсь с помощью "\", но потом их надо вырезать после получения данных обратно, чего хочется избежать, ибо в базу записываем один раз а выдаём большое количество раз |
||||
|
|||||
skyboy |
|
|||
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 75 Всего: 260 |
ошибаешься. ещё и посты предыдущие не читаешь. делается это(если мы говорим про mysql) при помощи функции mysql_real_escape_string. после выборки из базы ничего "вырезать" не надо.
ога. конечно. написал человек "1< 2", а ты так о-па и выбросил "<" во время работы strip_tags. разумно-разумно... а если использовать htmlspecialchars - так вообще - все, что ввел пользователь и отображаться будет. |
|||
|
||||
krundetz |
|
|||
![]() Вечный странник ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1400 Регистрация: 14.6.2007 Где: НН(Сормово) Репутация: 20 Всего: 69 |
BASILIO, смысл как раз в том чтобы выести на экран все что ввел пользователь но не в виде HTML тегов а в виде обычного текста где теги будут заменены на соответсвующие им коды символов. Ч то вы будете делать если пользователь желает с кемто поделиться своим HTML кодом а вы у него взяли да и вырезали все теги?
|
|||
|
||||
Feldmarschall |
|
|||
Новичок ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2641 Регистрация: 11.12.2007 Репутация: 22 Всего: 32 |
krundetz, в этом случае человек поделится не кодом, а его представлением =)
вообще, проблема "резать или заменять", на мой взгляд, не нуждается в столь острых дискуссиях. вполне можно оставить решение на выбор разработчика. куда более важной мне предтавляется проблема осмысленности копипастных действий, который совершает этот юный талант. Но здесь другая проблема - решение пока не найдено... |
|||
|
||||
lukas |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 771 Регистрация: 23.2.2007 Репутация: 3 Всего: 15 |
Советую автору топика прочитать пару статей почему нужно использовать mysql_real_escape_string, и как без вообще происходят SQL иньекции... а не тупо копировать способы обезопасить скрипт...
-------------------- http://code.google.com/p/orionphp/ - opensource скриптовой язык Orion (аналог PHP) для freepascal/delphi. |
|||
|
||||
Anarki |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 326 Регистрация: 14.3.2005 Репутация: 7 Всего: 11 |
||||
|
||||
BASILIO |
|
||||||||||||
![]() Koté-CAH ![]() Профиль Группа: Участник Сообщений: 135 Регистрация: 25.2.2008 Репутация: нет Всего: нет |
Обратная черта, сама изчезает? Да, игнорирую хамские посты.
Функция немного умней, и удоляет ТОЛьКО тэги, не трогая не чего другово
Мне не надо этого, на сайте ясно сказано, тэги не юзать, кто вписывает, тот сам виноват. Ресурс у меня немного другово плана, там не кто не должен делится ХТМЛ кодами через него ;)
Мне не нужны некакие добовления лишние, мне надо чтоб всё лишние превратилось в код, который не опасен для БД, но виден браузеру как нормальные символы В гугле искали? Удевлюсь если что-то нашли, ибо скрипт мой. |
||||||||||||
|
|||||||||||||
BASILIO |
|
|||
![]() Koté-CAH ![]() Профиль Группа: Участник Сообщений: 135 Регистрация: 25.2.2008 Репутация: нет Всего: нет |
||||
|
||||
BASILIO |
|
||||
![]() Koté-CAH ![]() Профиль Группа: Участник Сообщений: 135 Регистрация: 25.2.2008 Репутация: нет Всего: нет |
Дочитал до конца статью.... мои выводы: 1. забирая вариаблу из $_REQEUST применять сходу:
strip_tags 2. в запросах MYSQL добовлять "mysql-real-escape-string($str)". 3. Перед передачи данных в браузер делать "htmlentities($str)". |
||||
|
|||||
Feldmarschall |
|
|||
Новичок ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2641 Регистрация: 11.12.2007 Репутация: 22 Всего: 32 |
Я считаю, что топикстартер хамит отвечающим.
Игнорируя полезную информацию, и выставляя напоказ воинствующее невежество. Плюс клевета, что ему, якобы, пишут хамские посты. Я считаю, что не должно быть перекоса в отношении к посетителям, типа "новичков надо облизывать - пусть несут любую чушь, а опытных можо пинать, они потерпят". Я считаю, что отношение должно быть равное ко всем. Что вообще тут творится? 10 профи вокруг него бегают, уговаривают, а он кобенится - "это я делать не буду, то мне не нравится, а здесь я выковырял из носа гениальное умозаключение, и все ваши слова мне до нижней планки!" |
|||
|
||||
Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 122 Всего: 261 |
BASILIO, все директивы связанные с magic_quotes_gpc отключать надо на уровне php.ini и .htaccess.
Это первое. Второе. Для экранирования символов при вставке данных в БД надо использовать специфические функции для этой БД, в частности для mySQL - mysql_real_escape_string. Удаляться из строки после такой операции ничего не будет, но строка будет экранирована и на 99% безопасна в использовании в запросе.
Экранирование и организация безопасности в данном вопросе как раз НАДО организовывать так, как вы не хотите. В основе технологии программирования, в качестве, не то, чтобы основных, но тем не менее важных правил - данные должны храниться СЫРЫМИ, так называемые (raw data). Оставляю скидку на то, что иногда это просто не нужно... |
|||
|
||||
BASILIO |
|
||||||||
![]() Koté-CAH ![]() Профиль Группа: Участник Сообщений: 135 Регистрация: 25.2.2008 Репутация: нет Всего: нет |
Пробывал, закончилось "500 Internal Error" =(
Прочитав линк Anarki решил здеать так:
Применяю в таком порядке:
|
||||||||
|
|||||||||
![]() ![]() ![]() |
Правила форума "PHP" | |
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |