Плохо прочитал знчит. Там есть разъяснение, почему так делать нельзя.
_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.
exotica
11.05.2013 - 00:53
Все понятно, даже на третий раз смысл не меняется
При внесении данных в Mysql используем исключительно
mysql_real_escape_string() или
mysqli_real_escape_string() исходя из способа работы с базой.
а для вывода на экран пользователя всегда и везде используем
htmlspecialchars() еще если не ошибаюсь где то на форуме читал что если используется
md5 или
sha1 то нет нужды использовать
mysql_real_escape_string() или
mysqli_real_escape_string() , т.к. хаш он и в африке хеш , не важно из чего он
_____________
[FAQ]Регистрации пользователей, сохранение в БД---------------------------------------------------------------------------
Выходя из ванной, вышел из нее два раза
а ведь еще лучше фильтровать на записи,потому,что:
1.Функция вызовется только один раз на записи,что лучше чем каждый раз на выводе.
2.Существует возможность забыть профильтровать данные на выводе
что можете сказать по этому поводу?
inpost
11.05.2013 - 03:07
MtcatСложно общаться, вроде и статью дали с полным рассказом, и я объяснил ранее причину. Всё равно на своём...
"2.Существует возможность забыть профильтровать данные на выводе"
А на входе - нет? Какая разница где прописать фильтр? Если там забыл, значит и там забыл тоже.
_____________
Обучаю веб-программированию качественно и не дорого:
http://school-php.comФрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
я ведь не спорю с вами, просто хочу выбрать идеальный вариант для себя
Лично я думаю что это от случая зависит, но в большинстве случаев в базу лучше записывать уже отфильтрованный через htmlspecialchars, особенно если это какой-либо форум, проще 1 раз отфильтровать, чем при каждом выводе делать одно и тоже
inpost
11.05.2013 - 03:13
Чем лучше? На мои вопросы ответишь?
_____________
Обучаю веб-программированию качественно и не дорого:
http://school-php.comФрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
ну ведь мусора всякого меньше в базе будет.. Или я не прав?
У меня сейчас данные фильтруются только при записи, при выводе ничем не фильтрую.
Из базы все нормально выводится, двойные и одинарные кавычки тоже в нормальном виде выводятся. так и должно быть? И не страшно ли, что когда заношу в базу
<?php echo'Hello world!';?>
то этот код в таком-же виде на странице выводится?)
Цитата |
то этот код в таком-же виде на странице выводится?) |
Вот про это тебе и говорят, что пусть выводятся так, как юзер хочет записать, единственное, что нужно это вывод из БД пропускать через htmlspecialchars(), на вход в БД надо пропускать через real_escape(SQL инъекция).
Пусть в БД все хранится в первозданоом виде.
1. Удобно искать, отслеживать и фильтровать
2. Занимает меньше место, сравни: "<" и "<"
3. Ты в любом месте сможешь делать с данными все то, что захочешь переводить их в любой вид.
Главное не боятся, ни кавычек, ни вообще любого кода введенного юзером пусть вводит все что захочет, хоть <b>!@#$%^&*(DROP DATABASE. Главное понимать, что будет с этой строкой и внимательно отследить ее путь от браузера 1 юзера до браузера 2 юзера.
А про
Цитата |
<?php echo'Hello world!';?> |
дак это вообще нонсенс. Твой браузер не понимает php язык, он понимает только HTML и JS (и то если он у него не отключен). PHP - работает на сервере. Способ исполнить этот код наверное все таки есть если при помощи опять же SQL инъекции пробраться внутрь скрипта и запустить его если там есть eval.
_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.
ABC, да я знаю что мой браузер не поддерживает php
Я имею ввиду безопасно ли что такой текст выводится из базы на странице?))
Mtcat
Цитата |
ABC, да я знаю что мой браузер не поддерживает php Я имею ввиду безопасно ли что такой текст выводится из базы на странице?)) |
странный вопрос от человека, который:
Цитата |
ABC, да я знаю что мой браузер не поддерживает php |
, а мне тогда интересно, про какую опасность идет речь? Пробуксовка глаз произойдет?
_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.
я ступил, 6 утра уже у на часах у нас
Вообщем я так понял, что если все операции односторонние и проводятся единожды (один раз написал комментарий, он внесся в БД один раз, раз и навсегда, и больше с ним ничего сделать нельзя, кроме удаления), то лучше использовать htmlspecialchars() до внесения в БД.
А если же предполагается еще и редактирование существующих постов, то что мы вообще будем редактировать, если у нас не будет оригинала? Тогда лучше использовать htmlspecialchars() на выводе.
Правильно я мыслю?
Mtcat
Нет не правильно:
1. Обработанный htmlspecialchars() комментарий будет занимать возможно больше места.
Цитата |
2. Занимает меньше место, сравни: "<" и "<" |
2. Программист, который так сделает - ... короче плохой программист.
_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.
А если каждый раз будем использовать htmlspecialchars() при выводе - будет больше нагрузка.
И разве в наше время нужно экономить на памяти?))
Mtcat
А вот теперь наконец-то настало время на самом деле прочитать статью, которую написал и порекомендовал тебе twin.
_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.
А вот и пример не заставил себя ждать.
Человек тоже искал как лучше, экономил ресурсы, выдавал все вчистую из базы. Теперь сидит в недоумении - как же так? Почему ссылки лезут?
_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.