[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Вопрос по фильтрации
Страницы: 1, 2, 3
twin
Плохо прочитал знчит. Там есть разъяснение, почему так делать нельзя.

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
exotica
Все понятно, даже на третий раз смысл не меняется laugh.gif

При внесении данных в Mysql используем исключительно mysql_real_escape_string() или mysqli_real_escape_string() исходя из способа работы с базой.

а для вывода на экран пользователя всегда и везде используем htmlspecialchars()

еще если не ошибаюсь где то на форуме читал что если используется md5 или sha1 то нет нужды использовать mysql_real_escape_string() или mysqli_real_escape_string() , т.к. хаш он и в африке хеш , не важно из чего он

_____________
[FAQ]Регистрации пользователей, сохранение в БД
---------------------------------------------------------------------------
Выходя из ванной, вышел из нее два раза
Mtcat
а ведь еще лучше фильтровать на записи,потому,что:

1.Функция вызовется только один раз на записи,что лучше чем каждый раз на выводе.

2.Существует возможность забыть профильтровать данные на выводе

что можете сказать по этому поводу?
inpost
Mtcat
Сложно общаться, вроде и статью дали с полным рассказом, и я объяснил ранее причину. Всё равно на своём...

"2.Существует возможность забыть профильтровать данные на выводе"
А на входе - нет? Какая разница где прописать фильтр? Если там забыл, значит и там забыл тоже.

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
Mtcat
я ведь не спорю с вами, просто хочу выбрать идеальный вариант для себя smile.gif
Лично я думаю что это от случая зависит, но в большинстве случаев в базу лучше записывать уже отфильтрованный через htmlspecialchars, особенно если это какой-либо форум, проще 1 раз отфильтровать, чем при каждом выводе делать одно и тоже smile.gif
inpost
Чем лучше? На мои вопросы ответишь?

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
Mtcat
ну ведь мусора всякого меньше в базе будет.. Или я не прав?

У меня сейчас данные фильтруются только при записи, при выводе ничем не фильтрую.
Из базы все нормально выводится, двойные и одинарные кавычки тоже в нормальном виде выводятся. так и должно быть? И не страшно ли, что когда заношу в базу
<?php echo'Hello world!';?>
то этот код в таком-же виде на странице выводится?)
GET
Цитата
то этот код в таком-же виде на странице выводится?)


Вот про это тебе и говорят, что пусть выводятся так, как юзер хочет записать, единственное, что нужно это вывод из БД пропускать через htmlspecialchars(), на вход в БД надо пропускать через real_escape(SQL инъекция).

Пусть в БД все хранится в первозданоом виде.
1. Удобно искать, отслеживать и фильтровать
2. Занимает меньше место, сравни: "<" и "&lt;"
3. Ты в любом месте сможешь делать с данными все то, что захочешь переводить их в любой вид.

Главное не боятся, ни кавычек, ни вообще любого кода введенного юзером пусть вводит все что захочет, хоть <b>!@#$%^&*(DROP DATABASE. Главное понимать, что будет с этой строкой и внимательно отследить ее путь от браузера 1 юзера до браузера 2 юзера.

А про
Цитата
<?php echo'Hello world!';?>
дак это вообще нонсенс. Твой браузер не понимает php язык, он понимает только HTML и JS (и то если он у него не отключен). PHP - работает на сервере. Способ исполнить этот код наверное все таки есть если при помощи опять же SQL инъекции пробраться внутрь скрипта и запустить его если там есть eval.

_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.
Mtcat
ABC, да я знаю что мой браузер не поддерживает php smile.gif
Я имею ввиду безопасно ли что такой текст выводится из базы на странице?))
GET
Mtcat
Цитата
ABC, да я знаю что мой браузер не поддерживает php 
Я имею ввиду безопасно ли что такой текст выводится из базы на странице?))


странный вопрос от человека, который:

Цитата
ABC, да я знаю что мой браузер не поддерживает php 

, а мне тогда интересно, про какую опасность идет речь? Пробуксовка глаз произойдет?

_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.
Mtcat
я ступил, 6 утра уже у на часах у нас smile.gif


Вообщем я так понял, что если все операции односторонние и проводятся единожды (один раз написал комментарий, он внесся в БД один раз, раз и навсегда, и больше с ним ничего сделать нельзя, кроме удаления), то лучше использовать htmlspecialchars() до внесения в БД.
А если же предполагается еще и редактирование существующих постов, то что мы вообще будем редактировать, если у нас не будет оригинала? Тогда лучше использовать htmlspecialchars() на выводе.
Правильно я мыслю?
GET
Mtcat

Нет не правильно:
1. Обработанный htmlspecialchars() комментарий будет занимать возможно больше места.
Цитата
2. Занимает меньше место, сравни: "<" и "&lt;"


2. Программист, который так сделает - ... короче плохой программист.


_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.
Mtcat
А если каждый раз будем использовать htmlspecialchars() при выводе - будет больше нагрузка.
И разве в наше время нужно экономить на памяти?))
GET
Mtcat

А вот теперь наконец-то настало время на самом деле прочитать статью, которую написал и порекомендовал тебе twin.

_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.
twin
А вот и пример не заставил себя ждать.

Человек тоже искал как лучше, экономил ресурсы, выдавал все вчистую из базы. Теперь сидит в недоумении - как же так? Почему ссылки лезут?

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.