AnrDaemon
Продвинутый новичок
Это настолько же "важная" вещь, как register_globals или magic_quotes_*в smarty 3 есть очень важная вещь, отсутствующая во втором - автоэксейпинг.
Это настолько же "важная" вещь, как register_globals или magic_quotes_*в smarty 3 есть очень важная вещь, отсутствующая во втором - автоэксейпинг.
Правильно, нужно как дятел везде самому экранирование указывать.Это настолько же "важная" вещь, как register_globals или magic_quotes_*
Ой, здесь XSS, потому что прошлый разработчик думал, что не нужно. Или: «ой, пропустил». Наверное, mysql_real_escape_string() ты тоже ставишь ручками и только там, где «нужно».Не везде. Только там, где нужно.
Заметь - речь идет об авто-искейпинге. Как товарищ написал выше, ты сейчас сказал "magic_quotes_ рулит форева".Наверное, mysql_real_escape_string() ты тоже ставишь ручками и только там, где «нужно».
Черный список и безопасность - вещи несовместимые. Выбери что-нибудь одно.Не везде. Только там, где нужно.
Жлобалсы тут вообще не при делах, а от волшебных кавычек автоискейпинг отличается одной важной деталью.Это настолько же "важная" вещь, как register_globals или magic_quotes_*
Сломав разметку, развалив ее отсутствием экранирования, можно например, дать выполнится произвольному содержимому <script/> на уровне пользователя. В том числе и отправить его по произвольному урлу, и получить доступ к его кукам для текущего домена.Вообще, у хатэмээл кодирования, как я его себе понимаю, есть одно важное отличие от форматирования SQL запроса. Неверно отформатировав тот или иной SQL литерал, ты получишь ошибку, но инъекция не пройдет все равно. А вот в хатэмээл кодировании я на этот счет не уверен. Кто грамотный - может просветить?
при чем здесь "отсутствие экранирования"? Я говорю о неверно примененном экранировании.Сломав разметку, развалив ее отсутствием экранирования, можно например, дать выполнится произвольному содержимому <script/> на уровне пользователя. В том числе и отправить его по произвольному урлу, и получить доступ к его кукам для текущего домена.
А вот не надо тут, magic_quotes — глобальная хрень, а данные, поступающие в шаблон по умолчанию должны как раз HTML-экранироваться. Причём заметь, тут есть принципиальное различие: автоэкранирование подразумевает автоматическое добавление htmlspecialchars при выводе в скомпилированном шаблоне:Как товарищ написал выше, ты сейчас сказал "magic_quotes_ рулит форева".
echo htmlspecialchars($var);
$data = array_map('htmlspecialchars', $data);
Что-что?Если бывает - беда, надо для автомата придумывать что-то хитровыдуманное, а все остальное руками указывать
Смешной человек, каким же таким образом он туда попал?Очень весело выглядит HTML-экранированный URL в ссылках
А по поводу того дурацкого замечания про mysql_ - умные люди, дорогой мой шутничок, пользуются PDO. Советую и вам начать им пользоваться.
Умные люди, дорогой мой умнячок, в курсе про то, что ПДО - далеко не панацея от инъекций, понимая, где его можно применять, а где - бессмысленно.умные люди, дорогой мой шутничок, пользуются PDO
Я, кажется, понял, о чем ты.А вот не надо тут, magic_quotes — глобальная хрень
Я задал конкретный вопрос - что "всё" должно быть хоршо? Если "вообще всё" - так я тебе с ходу десяток примеров приведу, в которых это просто не будет работать вообще. Включая такой тривиальный, как вывод данных в UTF-8.AnrDaemon, вот видишь, а ты на автоэкранирование грешил, оно тут ни при чём, у тебя просто с головой какие-то проблемы.
В конкретном, отдельно взятом примере с mysql_real_далее по тексту - PDO prepare/execute эквивалентно заменяет головную боль с ручным экранированием данных перед выполнением запроса. Естественно, если сам запрос составлен левой ногой, никакое экранирование не поможет.Умные люди, дорогой мой умнячок, в курсе про то, что ПДО - далеко не панацея от инъекций, понимая, где его можно применять, а где - бессмысленно.