Мда...получилось, что я спрашиваю его, слышал ли я... -_- Дядя google помог
ncux, Недавно были проблемы с xss, точнее не знал как правильно фильтрировать что бы не было проблем, для этого пришлось выучить немного по самой xss, и вот чтол помогает:
1.Не забывать фильтровать GET данные, ну типа ид или что то еще типа этого. интвала для плюсовых значений + mysql_real_escape_string() при записи достаточно
2.Текст, имена и другие значения которые нуждаются в записи и выводе: запись - trim() потом mysql_real_escape_string() достаточно, при выводе: htmlspecialshars() ну и твои функции обработки текста тегами если есть бб коды
UA95, лучше в базу сырые данные писать, а уже при выводе обрабатывать как будет угодно
Screamer, Можешь поподробнее?
Ну перед записью в базу строки экранируешь с помощью *escape_string()
А перед выводом уже как тебе нужно. htmlspecialchars или htmlentities или еще что-то.
Потому что если сразу писать в базу обработанную через htmlspecialchars или htmlentities строку, не факт, что она не будет использоваться где-то еще. Например надо будет в файл её записать. А зачем нам там html сущности, правильно?
Конечно существует htmlspecialchars_decode и прочие функции, но лучше всё равно так не делать
UA95, тоесть по твоей логике нужно заливать в базу уже оброботаный текст разными функцыями?
А если хочиш добавить ббкод, что делать?, или надо вывести "превю"? Читал гдето мнение Алькатраса там подробно описано почему в базу надо заливать сырые даные.
UA95 (02.07.2013 / 16:14)
А вот здесь не соглашусь,записую в базу данные мы используем функцию только один раз,а если фильтровать при выводе,то функция будет вызываться при каждом сеансе,да и при выводе мы не должны замарачива
А если нам потом надо вывести только часть записи?
Начнёш выводить часть записи и разрежеш к примеру
& пополам, а
&am вызовет ошибку синтаксиса на странице.
BoGdAn (03.07.2013 / 21:59)
... Читал гдето мнение Алькатраса там подробно описано почему в базу надо заливать сырые даные.
Это не просто мнение, оно было подкреплено фактами.
В первых версиях двига в базе форума хранились обработанные данные - из за этого в форуме часто возникали ошибки синтаксиса.
UA95, я сначала тоже так думал, пока не прострелил себе ногу на этом. Как правильно заметил k_2, могут возникнуть большие проблемы при выводе части данных. А лепить костыли только для того что бы не фильтровать каждый раз - быдлокодерство. И не факт, что у тебя меньше времени займет вывод с обработкой текста функцией которая будет резать лишние символы, чем встроенная htmlspecialchars, скорее даже очевидно, что наоборот.