Nano Hash - криптовалюты, майнинг, программирование

Как ограничить доступ к файлам PHP для DOCUMENT_ROOT

Можно ли ограничить доступ файла PHP к корню его документа? В основном на моем рабочем сервере у нас есть наши домены в файловой структуре, например:

/home/something/domains/domain1/
/home/something/domains/domain2/
/home/something/domains/domain3/

Прямо сейчас любой сценарий на domain1 имеет доступ для чтения и записи ко всему в / home / something / domains /, включая все наши другие домены. Я хотел бы ограничить доступ к файлу для скрипта в domain1 только этим доменом.

Сервер размещен на mediatemple и является их сетевым сервисом, поэтому у меня нет корневого доступа или даже доступа к конфигурации vhost. Мы можем изменить php.ini, и я знаю, что он предлагает open_basedir, но похоже, что это не решает мою проблему, поскольку я мог ограничить доступ к файлам только для / domians /, а не для отдельных доменов. Любая помощь приветствуется.

Что я действительно пытаюсь сделать:

Этот сервер недавно был взломан, и хакеры перезаписывали домены / .htaccess, что затронуло все наши сайты. У нас есть масса сайтов, и на многих из них много строк плохого кода. Они загрузили WSO, хакерский бэкдор / оболочку, которая давала им полный доступ ко всему. Я не знаю, как они получили доступ, я полагаю, это был либо эксплойт timthumb, одна из миллионов строк плохого кода, либо они просто каким-то образом получили наш пароль FTP. Мы обновили старые Timthumbs, изменили пароль и удалили все найденные нами плохие файлы, но поскольку есть большая вероятность, что любой эксплойт, который они нашли, все еще находится на сервере, или что мы пропустили какой-то бэкдор, я бы по крайней мере хотел ограничить их доступ к фактическому домену, содержащему эксплойт или необнаруженный бэкдор.

19.03.2012

  • Какая ОС у сервера? Вы знакомы с настройкой SELinux? 19.03.2012
  • это не совсем похоже на решение проблемы взлома. 19.03.2012
  • Сервер - это Cent OS, но мы довольно ограничены, поскольку это странная среда общего хостинга. Я понимаю, что решение состоит в том, чтобы проверить код и убедиться, что мы не позволяем людям загружать файлы php или каким-то образом получать доступ через небезопасные методы, но прискорбная реальность такова, что у нас есть более миллиона строк ужасного, нечитабельного кода и защита всего этого невозможно. Я нашел eval и получил тысячи обращений. Я просто не знаю, что мне делать. 19.03.2012

Ответы:


1

Моя первоначальная мысль заключалась в том, чтобы установить open_basedir для каждый из виртуальных хостов (даже если вам нужно попросить администратора хоста сделать это за вас), но я сомневаюсь, что это даже сработает, потому что Я вполне уверен, что некоторые внешние команды / команды оболочки, которые выполняются в PHP / скриптах, по-прежнему будут работать в каталогах за пределами указанного дерева.

После более тщательного рассмотрения, самый близкий способ настроить вашу установку и получить то, что вы хотите, что я мог придумать, - это настроить учетные записи пользователей с chroot-jailed для каждого vhost и заставить ваш веб-сервер использовать эти учетные записи пользователей с помощью такого механизма, как Apache 2 MPM ITK, и я могу только предположить, что у вашего хостинг-провайдера возникнут проблемы с настройкой.

19.03.2012
  • Спасибо за ответ. Я думал о настройке open_basedir для каждого виртуального хоста, но когда я спросил о возможности отключить файлы .htaccess и / или переместить наши URL-адреса, переписанные в файлы виртуальных хостов, они сказали, что в сетке вы не можете изменять конфигурацию веб-сервера Apache. Все директивы Apache должны содержаться в файле .htaccess. Поскольку они даже не позволят мне изменить конфигурацию vhost, я очень сомневаюсь, что они будут развлекать что-то вроде заключенных в тюрьму учетных записей пользователей. Думаю, их ограничения делают практически невозможным для вас, ребята, помочь мне с этим :( 19.03.2012
  • На ваш вопрос можно получить более точные ответы на serverfault или даже на суперпользователе. Я разработчик с небольшим опытом администрирования серверов, настоящий администратор сервера может дать вам лучший ответ. Или он может просто сказать, что ваш хозяин - ваша проблема. :-) 19.03.2012
  • хаха спасибо. Эта среда размещения была проблемой на протяжении всего этого испытания. Думаю, мы просто надеемся, что избавились от их доступа, и, если он вернется, переместимся на сервер, где у нас есть root-доступ, чтобы делать то, что нам нужно. Спасибо за уделенное время. 19.03.2012
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..