На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Модераторы: Serafim, fatalist
  
    > как экранировать кавычки? , проверка на правильность экранирования кавычек и исправление
      всем привет!
      появилась такая проблема: пришёл скрипт который был записан в виде шестнадцатеричных символов
      ExpandedWrap disabled
        ${"\x47\x4c\x4f\x42AL\x53"}["\x65\x74r\x79\x66\x6d"] = "\x62u\x66\x66\x65\x72";
        fwrite($this->fh_tmp, "(");
        ${"\x47\x4cO\x42\x41LS"}["\x75\x63\x70j\x66u\x68\x77\x6c\x67\x6e\x6c"] = "\x6e";
        $ljpkvsgylec = "\x66\x69";

      раскодировал я его нормально!
      ExpandedWrap disabled
        function escapedHexToHex($escaped) {
            $ignore = array('fe', 'ff', 'ef', 'bb', 'bf');
            if (in_array(strtolower($escaped[1]), $ignore)) {
                $stop = 1; // это для отладки не используемая переменная
            } else {
                $hd = hexdec($escaped[1]);
                $chr = chr($hd);
                return $chr;
            }
        }
        $decoded = preg_replace_callback('#\\x([a-f0-9]{2})#im', 'escapedHexToHex', $content);

      но после оказалось что есть строки в которых присутствуют кавычки (разные и ` и " и ') и они не экранированы :'(
      подскажите регексп или может код которым можно исправить данную штуку
      пример (пара строк):
      ExpandedWrap disabled
        $this->lng_list = "<option value="auto">- auto -</opinion>";
        ....
        mysql_query("SELECT * INTO OUTFILE '{$this->JOB['file_buf']}' FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY \"'" LINES TERMINATED BY '\\0\\0\\0\\\0' FROM `{$n[1]}`" . (${${"GLOBALS"}["ucpjfuhwlgnl"]}[5] < ${${"GLOBALS"}["etryfm"]} ? "" : " LIMIT {$i}, {$limit}"))or sxd_my_error();


      P.S. может быть с такой задачей может справится PHP_Beautifier, тогда какое должно быть правило проверки и расстановки "экранов"
        Выкинуть такой код в помойку. Сразу и без раздумий. Нет, я серьёзно. Это лучшее решение. Выкинуть и написать по-нормальному.

        Добавлено
        Ну т.е. это не придирка, вроде "пришёл на форум, а тебе вместо ответа - критика". Больше времени сэкономишь.

        А вот последний пример кода - это воообще ................. :wall: >:( :wall: :wall:

        За такое не то что кастрировать, за такое надо на кол сажать. С провёртом по оси Z

        Добавлено
        mysql_... функции вырезаны из языка 10 лет назад, их сейчас вообще там нету и подключить нельзя никак. А `${"GLOBALS"}["ucpjfuhwlgnl"]` - серьёзно? В коде 20-летней давности можно встретить глобалсы, но вот прям так из них сразу в запрос? Ты понимаешь, что это настолько большая дыра в системе, что чёрная дыра галактики Андромеда как капля в океане.


        Не, нахрен такой трешак. Это... Блин, не школьник писал, это детсадовец с особо извращённым чувством юмора, который решил насрать руководству. Удаляй, просто бери и сжигай.
          куда деваться, приходится работать со всяким "дерьмом" :oops:
          лучше посоветуйте как быть с отслеживанием экранирования
          0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
          0 пользователей:


          Рейтинг@Mail.ru
          [ Script execution time: 0,0289 ]   [ 16 queries used ]   [ Generated: 28.03.24, 14:48 GMT ]