Перейти к публикации

IT-Security

Клиенты
  • Публикации

    1 592
  • Зарегистрирован

  • Посещение

  • Дней в лидерах

    12

Сообщения, опубликованные пользователем IT-Security

  1. 1) Хак - замена в коде. Бывают монолитные системы. тоесть целостные...Это DLE, так как в нём фиксированы модули.

    И когда что-то в коде меняется, то это называется хак.

    Впринципе даже в модульных системах замена кода системы - это хак.

    2) Eval - функция, выполняющая всё, что она видит. Если передать в eval строку, содержащую PHP-код, то она его выполнит

    3) На что именно ставить такие права?

    4) Первый в случае отсутствия файла выдаст fatal error, второй нет

    5) Перестроить код так, чтобы он нормально выводил.

  2. Приношу извинения за задержку, были проблемы со здоровьем :)

    А теперь к делу!

    Думаю, что у каждого хотя-бы раз в жизни возникало желание прикрутить какой-то модуль/PHP код к главной странице.

    Но была проблема с тем, как это сделать.

    Вы НАВЕРНЯКА пробовали пробовали вставить PHP код в шаблон и были сильно удивлены почему он не сработал?

    А потом применили хак на eval и тут уже задумались о безопасности :)

    Теоритически с установленным хаком на eval ЛЮБОЙ человек который получит доступ к редактированию шаблонов может взломать полностью сайт. Дабы не допустить даже теоритической дырки научу Вас как НЕ использовать php код, но вставлять его в шаблон :)

    Итак смотрим пример.

    Есть у нас код:

    <?php
    
    echo "Hello, world!";
    
    ?>
    И хотим мы его вставить на главную. Открываем index.php и ищем:
    $tpl->load_template ( 'main.tpl' );
    Ниже пишем:
    include (ROOT_DIR."/путь_к_файлу.php");
    Открываем сайт - вуаля - видим вывод. Вот только одна проблема....Он над дизайном...Незадача, правда?Решаемо! Смысл в том, что шаблонизатор DLE устроен так, что берёт шаблон main.tpl, производит в нём замены и потом выводит его на экран. Нам нужно НЕМНОГО изменить нашу программку. А именно:
    В начало скрипта пишем:
    
    $my_mod_buffer = '';
    
    Получаем примерно такое:
    
    <?php
    
    $my_mod_buffer = '';
    
    echo "Hello, world!";
    
    ?>
    Теперь нам нужно заменить ВСЕ echo в нашей программе на:
    $my_mod_buffer.= "код";
    
    Тоесть получаем:
    
    <?php
    
    $my_mod_buffer = '';
    
    $my_mod_buffer.= "Hello, world!";
    
    ?>
    Далее идём в index.php и после include (ROOT_DIR."/путь_к_файлу.php"); пишем:
    $tpl->set("{my_mod_buffer}", $my_mod_buffer);
    Тэг {my_mod_buffer} необходимо ЗАРАНЕЕ поставить в main.tpl! Тоесть получается примерно такое в index.php:
    $tpl->load_template ( 'main.tpl' );
    
    include (ROOT_DIR."/my_modules/my_super_mod.php");
    
    $tpl->set("{my_mod_buffer}", $my_mod_buffer);

    ВНИМАНИЕ!Переменная $my_mod_buffer для каждого модуля индивидуальна!

    Жду вопросов/критики.

  3. Если php код не вырезается в админке (не проверял), то при его выполнении любой человек, который захватит доступ администратора или получит доступ к шаблонам через веб-интерфейс как нефиг делать вставит в код шелл и сделает с сайтом/сервером что угодно. НАМНОГО ПРОЩЕ немного переписать пхп код, чтобы НЕ НУЖНО было использовать его в шаблонах.

  4. Имею на руках альтернативную баннерную систему.

    Возможности:

    - Добавление баннерных мест

    - Добавление баннеров (Текстовые, графические)

    - Ограничение по дате/кликам/показам на баннер

    - Работа через JS (дада..Все баннеры вызываются через JS)

  5. Приведи мне пример IPB2, который живёт на шареде с большей посещаемостью, чем у ТС =)) Со всеми включенными опциями он даже не всегда запустится из-за нехватки памяти)))Кстати есть ещё идея - может тут ещё и поисковые роботы виноваты и создают лишнюю нагрузку?

    А насчёт движка (Не в обиду автору), но в таком кастрированном функционале (на фоне создания бизнес-проектов) тормозить нечему.

    ТС - отруби моментальное обновление счётчика новостей, вруби кэширование, покрути настройки.

    Всё это сделано было?

  6. Вы себе представляете переписывать ВСЕ запросы в DLE?Да и как потом человек обновляться будет?Думайте головой то. Был бы у него свой собственный движок - ещё можно было бы на такое пойти.

    MySQL заменить на маршрутизатор СуБД и сделать в нём вместо query() функции select, insert, update, delete.

    Но в DLE человеку ДАЖЕ если он на такое пойдёт или нельзя будет обновляться или придётся при каждом обновлении такую процедуру проделывать.

×
×
  • Создать...