Погода: −17 °C
25.12−22...−15небольшая облачность, без осадков
26.12−20...−17переменная облачность, без осадков
  • Я уже долго мучился с безопасным программированием на PHP, но тем не менее хотелось бы узнать что-нидь новое.
    Безопасность - не дать юзеру доступа к данным (на чтение или запись), если такого нет.
    Решение было найдено такое -
    http://ля-ля-ля/php.cgi/program.php
    Как известно, cgi-ки исполняются с вашими правами.
    Однако проблема другая - при этом создаются ваши процессы, на которые есть ограничение по количеству. А отсеивание лишних подключений с одного адреса с учётом запуска php тоже времени жрёт немало, поэтому DOS атака даже при нескольких десятков запросов в секунду проводится элементарно.
    Кто-нибудь ещё сталкивался с этой проблемой и как её решал?

  • Безопасное программирование на пхп и способность противостоять атакам, приводящим к отказу от обслуживания - две вещи из разных степей. Первое - задача программиста, вторая - сервера.

  • Это понятно. А что-то конкретное предложить можешь?

  • Что бы получить доступ к серверу, надо либо ломать сам сервер, т.е. софт который там стоит, либо искать уязвимости скриптах. Насколько я уже ознакоминлся с PHP , получить доступ можно лишь загрузив используя кривонаписанный скрипт, свой скрипт. Но и это не даст полных прав.

    Работник цифродробительного цеха.

  • В ответ на: Это понятно. А что-то конкретное предложить можешь?
    :ухмылка: По безопасности скриптов или дуракоупорства сервера? Вот про сервер пжалста: ставь *nix, apache, php, etc.. и не забывай следить за обновлениями. Просматривая логи будешь умилятьсяб глядя как эти самые DoS атаки аккуратно записаны и как они выглядят.

  • 1. на сервере админ не я.
    2. что мешает другому юзверю сделать, например, так: cd ~programer/public_html; cat password.txt ?

  • В ответ на: 1. на сервере админ не я.
    2. что мешает другому юзверю сделать, например, так: cd ~programer/public_html; cat password.txt ?
    команда
    chmod 660 ~programer/public_html/password.txt

  • chmod 660? тогда до него php-скрипт не доберётся, или ты считаешь, что у меня группа apache-вская есть?

  • В ответ на: chmod 660? тогда до него php-скрипт не доберётся, или ты считаешь, что у меня группа apache-вская есть?
    .htaccess правь, если права есть
    :ухмылка: Или проси админа (не забыв про пиво) наложить на этот файл заклинание № 403. (Насколько я понял этот файл был сгенерен твоим скриптом из-под апача?)
    Хотя, неразумно хранить пароли в той-же папке, где и остальное да еще и некриптованное (txt) - для чего-ж люди трудились, создавая базы данных?

  • .htaccess ставит права доступа по http, тут всё просто и понятно. Вопрос был не в том.

    Насчёт паролей в тексте - это я для примера. Их храню в md5.

    Насчёт базы данных - вот тебе пример из реальной жизни (сам делал):
    ------------
    [04:28pm /]# cat ~/public_html/config.php|grep '$dbpass'
    $dbpass = "";
    [04:28pm /]# mysql -u -p
    Welcome to the MySQL monitor. Commands end with ; or \g.
    Your MySQL connection id is 4419 to server version: 3.23.49-log

    Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

    mysql> desc .nuke_users;

    ...

    mysql> select * from .nuke_users;

    ...

    mysql> drop table .nuke_users; (это уже шутка)
    ------------
    Собственно, насчёт базы данных - та же проблема - где безопасно хранить пароль к этой базе?
    Или более общий вопрос - как вообще безопасно хранить данные на PHP?

  • В ответ на: ------------
    [04:28pm /]# cat ~/public_html/config.php|grep '$dbpass'
    $dbpass = "";
    [04:28pm /]# mysql -u -p
    Welcome to the MySQL monitor. Commands end with ; or \g.
    Your MySQL connection id is 4419 to server version: 3.23.49-log

    Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

    mysql> desc .nuke_users;

    ...

    mysql> select * from .nuke_users;

    ...

    mysql> drop table .nuke_users; (это уже шутка)
    ------------
    Собственно, насчёт базы данных - та же проблема - где безопасно хранить пароль к этой базе?
    Или более общий вопрос - как вообще безопасно хранить данные на PHP?
    Я че-т совсем потерялся: в каком месте здесь пхп. Ты показываешь пример из-под рута (это раз), каким образом можно cat выполнить из-под апача удаленно (?), все-таки ведь надо сидеть локально или удаленно ссх\телнет, чтобы такие финты проделать (это 2)? И при чем тогда тут пхп?

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

    Все-таки определись, что ты хочешь. :ухмылка:

    И последнее: безопаснее всего хранить пароли на выключенном компе, запертом в засыпном сейфе.

  • Чей-то я совсем ничего не понимаю, что вы тут пытаетесь сделать :ха-ха!:
    :ха-ха!: :ха-ха!:

    Работник цифродробительного цеха.

  • В ответ на: 1. на сервере админ не я.
    2. что мешает другому юзверю сделать, например, так: cd ~programer/public_html; cat password.txt ?
    Хммм...про cd ~programmer . хммм.... А поподробней можно узнать как это ты собрался делать из под апача ????

    Работник цифродробительного цеха.

  • 2MkZ: для начала - показываю не из-под рута. cat удалённо выполняется не из-под апача, а из ssh/telnet-сессии.

    А php тут притом, что его скрипты выполняются от имени апача, и, соответственно, на данные, с которыми он (скрипт) работает, должны быть установлены соответствующие разрешения для юзера апач, что есть группы other, в данном случае кроме апача есть ещё до..рена юзеров, которые, получается, имеют те же права на эти файлы, что и апач. Но не только юзеры, но и их скрипты тоже.

    Так вот - вопрос был в том, как в таком случае можно хранить данные безопасно от других юзеров?

  • В ответ на: не из-под рута. cat удалённо выполняется не из-под апача, а из ssh/telnet-сессии.
    В ответ на: # это рут $ это юзер. и нафига там телнет? зарыть и забыть
    В ответ на: А php тут притом, что его скрипты выполняются от имени апача, и, соответственно, на данные, с которыми он (скрипт) работает, должны быть установлены соответствующие разрешения для юзера апач, что есть группы other, в данном случае кроме апача есть ещё до..рена юзеров, которые, получается, имеют те же права на эти файлы, что и апач. Но не только юзеры, но и их скрипты тоже.
    В ответ на: ставишь права 600 или 700 и никто кроме пользователя и рута даже не понюхает
    В ответ на: Так вот - вопрос был в том, как в таком случае можно хранить данные безопасно от других юзеров?
    см. предыдущее. -rw- --- ---

  • Закрываем SSH/Telnet доступ и радуемся жизни.
    -==Но не только юзеры, но и их скрипты тоже. =-
    А вот тут пример в студия, каким макаром я буду писать скрипт в командной строке осла или другого браузера ?

    Работник цифродробительного цеха.

  • В ответ на: # это рут $ это юзер. и нафига там телнет?
    Приглашение баша можно менять.
    В ответ на: зарыть и забыть
    1. прав рута нету.
    2. это ничего не даст (cgi)

    В ответ на: ставишь права 600 или 700 и никто кроме пользователя и рута даже не понюхает
    Верно. Но я спрашивал другое. Обозначу ещё раз проблему, как должно быть. Требуется хранить:
    1. твой php-скрипт имеет доступ к данным
    2. чужой php-скрипт не имеет доступа к данным
    3. другой юзер не имеет доступа к данным

  • Насчет чужого скрипта, что ты имеешь виду, возможность загрузки на твой сервер ????? Если да, то это дыра в общем-то...Но доступ ты все одно не получишь, при грамотном написание собственных скриптов.
    Чтобы получить ответ, обрисуй конкретно свою проблему, а то все вокруг до около ходишь.

    Работник цифродробительного цеха.

  • Дыра есть, но как её закрывать? пока додумался только до cgi-ки.
    Обрисовываю проблему: пишу на php, соответствено есть хост, где хранятся и работают скрипты. Скрипты работают с некоторыми данными. Как сделать так, чтобы другие юзеры этого сервера не имели доступа к этим данным (а то задолбали уже - каких только пакостей не делали).

  • У тебя есть возможность загрузки файлов на твой сервер ? Если да , то коппай в сторону анализа что за файлик грузят, и все проблемы отпадут, бо что бы что-то узнать надо загрузить скрипт который выполняется на сервере...

    Работник цифродробительного цеха.

  • Я не понял, что ты имеешь ввиду. Если не сложно, можешь поподробнее? Хотя я думаю, что ты не совсем правильно меня понял...

  • Элементарно, ты мне можешь объяснить как твой сервер будут ломать если у тебя нет возможности загрузить файл,тот же скрипт к примеру??? Либо ты хочешь сказать что у тебя вся важная информация в txt или еще хуже в inc или html файлах хранится ????
    сей вопрос лучше в аське обсудить,сливай приватом.

    Работник цифродробительного цеха.

Записей на странице:

Перейти в форум

Модераторы: