За последние 24 часа нас посетили 17794 программиста и 1625 роботов. Сейчас ищут 1262 программиста ...

htmlspecialchars изменить дефолтный флаг

Тема в разделе "Сделайте за меня", создана пользователем Exis, 6 окт 2014.

  1. Exis

    Exis Новичок

    С нами с:
    6 окт 2014
    Сообщения:
    2
    Симпатии:
    0
    Приветствую. Получилась такая интересная ситуация - я много где при запросе к базе в качестве защиты от инъекций использовал на полученную строковую переменную функцию htmlspecialchars ввиду ее отличной работы. Однако недавно выяснил, что по умолчанию она не превращает в спецсимволы одинарные ковычки, а делает это только если передать ей доп параметр ENT_QUOTES вторым. Подскажите - может можно как-то убедить рнр везде по умолчанию вызывать эту функцию с этой константой чтоб не переписывать все исходники? Было бы очень здорово, очень надеюсь на вашу помощь
     
  2. dapperkop

    dapperkop Активный пользователь

    С нами с:
    26 сен 2013
    Сообщения:
    890
    Симпатии:
    0
    Ты в базу пишешь строку с html сущностями, я правильно понял?

    Добавлено спустя 26 секунд:
    Сори, не правильно сначала понял...

    Добавлено спустя 1 минуту 42 секунды:
    Мужик, htmlspecialchars тебя никак не защищает от sql инъекций, если что... Так что вообще убирай свои htmlspecialchars и экранируй с помощью real_escape_string или подобного (в зависимости от того, чем пользуешься).
     
  3. metadon

    metadon Активный пользователь

    С нами с:
    6 фев 2006
    Сообщения:
    779
    Симпатии:
    0
    Grep или wingrep поможет тебе заменить во всех файлах на real_escape_string
     
  4. Exis

    Exis Новичок

    С нами с:
    6 окт 2014
    Сообщения:
    2
    Симпатии:
    0
    wingrep очень помогла, спасибо большое :) Все получилось
     
  5. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Ебаные советы.
    Работать надо в IDE. Например в бесплатном netbeans. Там все это встроенное.

    Добавлено спустя 2 минуты 55 секунд:
    real_escape_string уже не даёт защиты. Ей нельзя пользоваться.
     
  6. dapperkop

    dapperkop Активный пользователь

    С нами с:
    26 сен 2013
    Сообщения:
    890
    Симпатии:
    0
    ну я вообщем-то хотел сказать, чтобы он воспользовался функцией, экранирующей спец. символы в строке для использования в sql выражении... лень было подобрать правильные слова, потому и сказал "real_escape_string или подобного"...