 |
Бесплатные PHP скрипты - форум техподдержки |
Форум техподдержки WR-Скриптов на php. Обсуждаем: основы программирования на PHP 5 - 7 версий, различные подходы к написанию скриптов на php 7 без MySQL. А также WR-скрипты: бесплатные доски объявлений, скрипты форумов, Гостевые книги, Каталог ссылок, Галерея, Фотоальбом, Счётчики, Рассылки, Анекдот и другие. Принимаются пожелания для новых версий. Сообщите какой скрипт нужен для Вашего сайта, постараемся найти или реализовать. Скачать скрипты можно бесплатно. Вместе мы сделаем бесплатные php скрипты лучше и доступнее!
|
| Сегодня: 10.12.2025 - 12:06:16 Помогите с настройкой форума| Объявление - WR-Scriptы в UTF-8 кодировке |
|---|
Активно обновляю скрипты и перевожу их в UTF-8 кодировку. Список перекодированных php скриптов доступен на главной странице сайта. Скачивайте скрипты и устанавливайте на свой сайт! В ближайшее время обновлю каталог знакомств, форум Про, фотоальбом, доски объявлений лайт и ЛЮКС.
На форуме, пожалуйста, пишите что модернизировать в скриптах в первую очередь. Постараюсь исправить большую часть пожеланий! Планирую продолжить работы весь 2026 год.
|
| Автор | Сообщение |
|---|
Maksir •
M Участник форума
|
Цитата: С чего вы взяли, что вы работаете с правами Владельца и принадлежите к указанной группе? Вы как "все остальные" работаете и не забывайте это. | Я вас понял. Вы не знаете метода работы прав. 1. Каждый зарегестрированный пользователь в системе Unix является Владельцем и имеет свою индивидуальную Группу. Например, Maks:Maks, или rootman:rootman 2. У каждого пользователя в системе Unix есть свой домашний каталог, в котором у него есть неограниченные права. 3. Пользователь rootman не может читать и просматривать каталоги и файлы Maks с правами 660, потому что rootman не является владельцем каталога Maks и не входит в группу Maks 4. Каждый залогенившийся пользователь зарегестрирован в системе Unix и имеет свою учётную запись и права, будь то ftp или smb сервер. 5. залогенивший пользователь является Владельцем своего каталога.
А теперь, о главном, как это всё можно связать с правами на сервере http: 1. Сервер в первую очередь запущен от пользователя root и может открывать любые файлы с любыми настройками доступа, хоть 000. 2. Сервер http открывает на доступ через протокол http только те файлы, которые заранее определены "Для всех". т.е. 001 - выполнение/поиск для всех
модуль PHP: 1. PHP открывает и работает с файлами и каталогами, для которых заранее определены настройки доступа для Владельца и Группы. (если конкретно, то только для Владельца, или Владельцев, то есть - Группы) у вас, rootman, возникают сомнения, когда я говрю "Владелец"? Владелец, это не обязательно root . В данном случае модуль PHP взаимодействует с каталогами и файлами в которых прописанны Владелец и Группа nobody . А права так и остаются - 660, или 600, или только на чтение 400 (для Владельца - имеется ввиду в категории настроек. Вот так 060 будет для Группы) | |
|
| Сообщение # 118 |
20.05.08 - 13:28:42
|  | Maksir •
M Участник форума
|
Цитата:
Основы основами, я же вам обьясняю что такой подход с выполнением криптов под suexec, как вы предлагаете - небезопасен. Повторить в стотысячный раз почему или не надо? |
Вот пример: я писал 3. Пользователь rootman не может читать и просматривать каталоги и файлы Maks с правами 660, потому что rootman не является владельцем каталога Maks и не входит в группу Maks Вот, как раз-таки вот здесь, сервер http, у которого неограниченные права, переводит процесс с помощю suexec под пользователя, например - rootman, у которого есть ограниченные права (в отличии от самого сервера). И теперь, сервер работает, от прав rootman с его каталогом, и его процесс огрничен в рамках одного рядового пользователя. В чем здесь уязвиомсть, когда речь идёт наоборот - об ограничении прав одного пользователя, вот это и есть "феномен-rootmana" | |
|
| Сообщение # 119 |
20.05.08 - 13:58:13
|  | Rootman •
R гость
|
Цитата: 1. Каждый зарегестрированный пользователь в системе Unix является Владельцем и имеет свою индивидуальную Группу. Например, Maks:Maks, или rootman:rootman | Для особо одаренных снова: С чего вы взяли, что вы работаете с правами Владельца и принадлежите к указанной группе? Вы как "все остальные" работаете и не забывайте это. Например под nobody:nobody работаете, а на каталог выставлено rootman:rootman. Попробуйте прочесть его содержимое при правах доступа 660. В этом суть задачи.
Цитата: 2. У каждого пользователя в системе Unix есть свой домашний каталог, в котором у него есть неограниченные права. | Ага, есть. По умолчанию. Только я ведь могу сделать так, чтобы неограниченных прав на каталог у вас не было. А то и вообще небыло домашнего каталога.
Цитата:| 3. Пользователь rootman не может читать и просматривать каталоги и файлы Maks с правами 660, потому что rootman не является владельцем каталога Maks и не входит в группу Maks | Вот-вот, именно в этом и заключается суть предлагаемой задачи. Сервер работает с правами типа nobody:nobody а на каталог стоит rootman:rootman поэтому прочесть содержимое каталога вы не сможете. Соотвественно не сможете определить имя моего домашнего каталога, соотвественно и записать в него ничего не сможете, даже при том, что он имеет атрибуты 777, то есть запись доступна для всех.
Цитата:| 1. Сервер в первую очередь запущен от пользователя root и может открывать любые файлы с любыми настройками доступа, хоть 000. | Ага, щас. Попробуйте считать файл /etc/shadow Запустите на своем сервере такой скрипт: Код: <?php $x=`cat /etc/shadow`; print $x; ?> | И обломитесь вы считать этот файл. Потому что под админом работает только базовый процесс сервера, все запросы к файлам осуществляются через те права доступа, которые прописаны в опциях User/Group его конфиг-файла. Делается это путем запуска клона, который меняет свои права доступа с администраторских, на те какие нужно и только потом обслуживает запрос юзера.
Цитата: 3. Пользователь rootman не может читать и просматривать каталоги и файлы Maks с правами 660, потому что rootman не является владельцем каталога Maks и не входит в группу Maks | Зато если rootman найдет в ваших скриптах дыру, позволяющую выполнять произвольный php-код, он получит полный доступ ко всем вашим файлам, но если же сервер работает с правами, отличными от ваших, он получит доступ только к тем файлам, которые открыты на запись "для всех остальных", изменить содержимое прочих файлов у меня не получится. Я вам это толкую с самого начала.
Цитата:| Вот, как раз-таки вот здесь, сервер http, у которого неограниченные права, переводит процесс с помощю suexec под пользователя, например - rootman, у которого есть ограниченные права (в отличии от самого сервера). | Опять вы все перепутали. Чтобы сделать то, что вы написали, сервер надо специально компилировать с поддержкой suexec, по умолчанию эта небезопасная функция в сервере отключена, а по умолчанию действуют одинаковые права доступа для всех пользователей сервера.
Цитата:| В чем здесь уязвиомсть, когда речь идёт наоборот - об ограничении прав одного пользователя, вот это и есть "феномен-rootmana" | Я вам писал. В случае уязвимости в скрипте, злоумылшенник получит полный доступа ко всем моим файлам.
dimasik, а зачем вам такой тэг? | |
|
| Сообщение # 120 |
21.05.08 - 06:50:52
|  | Maksir •
M Участник форума
|
Цитата: | Для особо одаренных снова: С чего вы взяли, что вы работаете с правами Владельца и принадлежите к указанной группе? | Для сильно вумных: а nobody:nobody чем вам не Владелец и Группа? В системе Unix нет файлов без Владельцев и Групп по определению! Цитата: Вы как "все остальные" работаете и не забывайте это. | А по другому и быть не может! Только вы это не узреите никак, то о чем я говорю. 1. Сервер выдаёт на выход всё то, где настройки доступа определены "Для Всех" 2. Модуль PHP работает с nobody , где Владелец и Группа с правами 660, "Для всех остальных" значения не имеют! На выходе мы получаем результат работы скрипта. Цитата:| Ага, есть. По умолчанию. Только я ведь могу сделать так, чтобы неограниченных прав на каталог у вас не было. А то и вообще небыло домашнего каталога. | Что за дурдом? И кому вы, как Хостер, будете нужны без каталога для пользователя под его страничку в сети? Вы, когда создаёте свой сайт, берёт площадку у Хостера, вы там на своём сайте ставите настройки для файлов какие хотите? Значит вам позволено создавать и удалять файлы. Кто у вас отнимет эти права, какой дебил? Цитата:| И обломитесь вы считать этот файл. | Ну вы рутман ваще ушлёпок... С какой это радости, сервер apache будет вам открывать системные каталоги, если у него в конфигурации прописан иной путь.... ???? Цитата:| В случае уязвимости в скрипте, злоумылшенник получит полный доступа | Каким образом? Чем отличаются файлы с правами 660 и 666 ? я предлогаю урезать права "Для Всех" там, где они не имеют никакого влияния на работу скрипта. Более того, можно убрать Группу и определить права 600 В чем здесь уязвимость? Какую дыру вы там собираетесь использовать? | |
|
| Сообщение # 121 |
21.05.08 - 14:09:27
|  | Rootman •
R гость
|
Цитата: Для сильно вумных: а nobody:nobody чем вам не Владелец и Группа? В системе Unix нет файлов без Владельцев и Групп по определению! | Для еще более умных. На каталог выставлены права rootman:rootman. С какого nobody:nobody здесь владелец?
Цитата: 2. Модуль PHP работает с nobody , где Владелец и Группа с правами 660, "Для всех остальных" значения не имеют! На выходе мы получаем результат работы скрипта. | Если скрипт работает под nobody, а права на файл rootman:rootman, то ничего ваш скрипт при доступе на файл 660 прочесть не сможет. Вам придется выставить 666, а не то, что вы все время пишите. Об чем я и толкую.
Цитата: Что за дурдом? И кому вы, как Хостер, будете нужны без каталога для пользователя под его страничку в сети? | Опять вы ничего не поняли. Вам снова мою задачу повторить? Вы имеете свой каталог на сервере, с именем например /home/users/DSdsfxzwq9839832dsf/ с правами доступа 777. На каталог-же /home/users/ выставлены права 660, т.е доступ на чтение его содержимого закрыт. В этом же каталоге находятся домашние каталоги других юзеров с такими же случайными именам, как и ваш и правами доступа тоже 777. Задача - записать что-нибудь в чужой каталог. Так доходит о чем речь?
Цитата: Ну вы рутман ваще ушлёпок... С какой это радости, сервер apache будет вам открывать системные каталоги, если у него в конфигурации прописан иной путь.... ???? | То есть как с какой. Системной команде cat /etc/shadow плевать, какой путь прописан в настройках сервера, она, как команда системы, считает то, что вы ее укажете. Я ведь не зря использовал здесь запуск системной команды а не команды работы с файлами из PHP.
Цитата: Каким образом? Чем отличаются файлы с правами 660 и 666 ? | Тем что в первые ничего нельзя записать если сервер выполняет скрипты под nobody. А вот если сервер выполняет скрипты с правами того же пользователя, который является владельцем файла (а вы это предлагаете) - тогда можно будет записать что угодно и куда угодно.
Цитата:| я предлогаю урезать права "Для Всех" там, где они не имеют никакого влияния на работу скрипта. Более того, можно убрать Группу и определить права 600 В чем здесь уязвимость? Какую дыру вы там собираетесь использовать? | Ну правильно, раз урезаете. Для скриптов запись для всех не нужна, необходимо лишь "чтение для всех", т.е права 664, для CGI - 665 или 775 (иначе не запустится). Файлам, доступным для записи - 666. | |
|
| Сообщение # 122 |
22.05.08 - 07:24:45
|  | Maksir •
M Участник форума
|
Цитата: На каталог выставлены права rootman:rootman. С какого nobody:nobody здесь владелец? | У Хостера спроси. :) я ничего не придумываю. Если через ftp заливаю и команда ls -l (как и сам Mignight Comander) показывают реального Владельца и Группу, значит так оно и есть. В конце концов, nobody, это всего лишь фикция для временых файлов. Возможно, у Хостера есть на этот счёт свой скрипт и настройки конфигурации PHP. Цитата:| Если скрипт работает под nobody, а права на файл rootman:rootman, то ничего ваш скрипт при доступе на файл 660 прочесть не сможет. Вам придется выставить 666, а не то, что вы все время пишите. Об чем я и толкую. | Вопервых, PHP не работает с правами "Все". Это несложно проверить, - проверьте. Вовторых, эти настройки с Владельцем и Группой важны только в том случае, если PHP записывает в этот файл что-то. Это тоже несложно проверить. Файлы rootman:rootman модуль PHP открывает и читает. nobody только для файлов, где речь идёт о записи. Цитата:| Вы имеете свой каталог на сервере, с именем например /home/users/DSdsfxzwq9839832dsf/ с правами доступа 777. На каталог-же /home/users/ выставлены права 660, т.е доступ на чтение его содержимого закрыт | Да всё я понимаю. Я даже ставил эксперименты по этому делу. И написал вам по неосторожности наивной, что командой ls -l можно узнать о содержимом в этом каталоге. Система пишит - "отказано в доступе к файлу ....такому-то..." И далее по каждому файлу в этом каталоге. Это локальный случай. В ситуации с сервером, если к каталогу users права 660, я вам отвечаю - а у сервера в конфиге прописан путь к каталогу /DSdsfxzwq9839832dsf/. Это первое, второе - Сервер всё равно почем берёт эти файлы в вашем каталоге, смысл в том, по чем он их продаёт!!! Если вы указываете 777 , так оно и будет! Цитата:| Системной команде cat /etc/shadow плевать, какой путь прописан в настройках сервера, она, как команда системы, считает то, что вы ее укажете | Куда вы клоните? Мы говорим о сервере вообще-то! Через shell я смотрел корень каталога у Хостера, но дальше дозволенного мне нельзя было посмореть. Это всё решается, так или иначе - у меня нет прав root, следовательно, я немогу сам себе устанавливать права. Всё зависит от тех настроек, которые сам root определит на своём хосте. Цитата:| Тем что в первые ничего нельзя записать если сервер выполняет скрипты под nobody. А вот если сервер выполняет скрипты с правами того же пользователя, который является владельцем файла (а вы это предлагаете) - тогда можно будет записать что угодно и куда угодно. | В первом случае, это в каком? (указывать надо) а то всё вокруг да около... В первом и во втором случае, если скрипт выполняет запись в файл, он может записать с правами nobody, и даже в третьем случае где права 600 можно поставить. Если речь идёт о файле, которые содержат просто код, сценарий скрипта, там nobody неважен, важны лишь настройки доступа для Владельца. Для PHP неважнен прараметр - "Все остальные", вот о чем я хочу сказать. Он просто ненужен там, поскольку не несёт никакой поддержки для работы скрипта. Это несложно проверить, ЕСЛИ ВАМ НЕ ЛЕНЬ!!! Цитата:| Ну правильно, раз урезаете. Для скриптов запись для всех не нужна, необходимо лишь "чтение для всех", т.е права 664, для CGI - 665 или 775 (иначе не запустится). Файлам, доступным для записи - 666 | Ну, вы уже почти-почти меня поняли. :) Только файлам на запись для обработки интропритатора PHP, группа - Все остальные, тоже не имеют значения. Важен только пользователь/Владелец nobody | |
|
| Сообщение # 123 |
22.05.08 - 14:01:45
|  | Igor •
I гость
|
Когда на своем емайле я хотел авторизировать свой логин мне выдало такое *Вернитесь назад. Вы ошиблись в воде активационного ключа или емайла.* Хотя до этого авторизировал без проблем. Ошибок не выдает только эту запись...Что может быть? | |
|
| Сообщение # 124 |
22.05.08 - 18:24:51
|  | Igor •
I гость
|
Если что мой форум тут http://www.bdsm.planet.ee/forum/index.php | |
|
| Сообщение # 125 |
22.05.08 - 18:27:21
|  | Rootman •
R гость
|
Цитата: У Хостера спроси. :) я ничего не придумываю. Если через ftp заливаю и команда ls -l (как и сам Mignight Comander) показывают реального Владельца и Группу, значит так оно и есть. | Ну так а в чем проблема? Естественно вы владелец своего домашнего каталога. Речь в том, что в предлагаемой задаче вы не можете прочесть содержимого вышестоящего каталога и тем самым определить имена домашних каталогов других пользователей. А не зная имени и записать в них ничего не сможете, какие-бы на них не стояли атрибуты доступа.
Цитата: Вопервых, PHP не работает с правами "Все". Это несложно проверить, - проверьте. | И к чему такая категоричность? PHP будет работать с теми правами, которые вы ему установите. В данном случае nobody:nobody аналолгично работе с правами "для всех остальных".
Цитата: Файлы rootman:rootman модуль PHP открывает и читает. nobody только для файлов, где речь идёт о записи. | С чего вдруг? У него владелец и группа другие - nobody:nobody, поэтому файлы с 660 ему недоступны.
Цитата: В ситуации с сервером, если к каталогу users права 660, я вам отвечаю - а у сервера в конфиге прописан путь к каталогу /DSdsfxzwq9839832dsf/. Это первое, второе - Сервер всё равно почем берёт эти файлы в вашем каталоге, смысл в том, по чем он их продаёт!!! Если вы указываете 777 , так оно и будет! | Понятно что в конфиге все каталоги прописаны, однако далеко не факт что вы сможете прочесть конфиг-файл сервера. Насчет второго - да, при таких правах сервер имеет полный доступ к каталогу, но только как вы в него что-то запишите? Вы же имени его не знаете.
Цитата: Куда вы клоните? Мы говорим о сервере вообще-то! | И я о сервере. Напомню, вы говорили следующее: Цитата:| Сервер в первую очередь запущен от пользователя root и может открывать любые файлы с любыми настройками доступа, хоть 000 | Я вам посоветовал выполнить cat /etc/shadow чтобы вы убедились что ничего подобного.
Цитата: В первом случае, это в каком? (указывать надо) а то всё вокруг да около... В первом и во втором случае, если скрипт выполняет запись в файл, он может записать с правами nobody, и даже в третьем случае где права 600 можно поставить. | В первом случае - это в вашем. В нем дествительно сервер может записать в файл на который выставлены даже права 600. В моем случае (работа с правами nobody:nobody) ни записать ни даже прочесть такой файл сервер не сможет.
Цитата: Ну, вы уже почти-почти меня поняли. :) Только файлам на запись для обработки интропритатора PHP, группа - Все остальные, тоже не имеют значения. Важен только пользователь/Владелец nobody | Здесь под nobody работает только сервер, на файле стоят совсем другие вледалец и группа, поэтому если вы уберете права "все остальные" для сервера файлы станут недоступными. | |
|
| Сообщение # 126 |
23.05.08 - 06:11:34
|  | Maksir •
M Участник форума
|
Igor, если можно, по порядку... 1. Вы зарегестриовались. 2. Не активировали свою учётную запись с кодом, который был отправлен на ваш email, хотя до этого... Цитата: | Хотя до этого авторизировал без проблем | итак, что вас смущает? | |
|
| Сообщение # 127 |
23.05.08 - 23:17:18
|  | Nika •
N гость
|
Привет. Подскажите пожалуйста, можно ли как нибудь поставить на форум ссылку возврата на сайт? | |
|
| Сообщение # 128 |
24.05.08 - 12:12:33
|  | Igor •
I гость
|
Проблема в том что когда я установил этот форум то я первым зарегистрировался там что бы проверить и без проблем прошел активацию своего ника. Потом Регистрацию прошли еще другие посетители форума. Где то 10 человек а вот дальше когда стали регистрироваться новые посетители стали поступать жалобы что они не могут пройти авторизацию. Им пишет что код авторизации не верный. Тогда я попробовал еще раз сам сделать регистрацию нового ника и не смог пройти авторизацию так же как и они. Мне выдало такую же надпись что код авторизации неправильный. Тогда я убрал функцию авторизации через емаил и все равно новые посетители не могут зарегистрироваться. | |
|
| Сообщение # 129 |
24.05.08 - 16:07:09
|  | Maksir •
M Участник форума
|
Nika, здесь? или на вашем сайте (у себя вы можете всё, что угодно. а здесь есть внизу Powered by WR-Forum © 1.8M) Igor, попробуйте пока перезалить файл tools.php , хотя врятли это поможет, скорее всего здесь дело в самой БД. Возможно, в файле базы о пользователях есть какой-то пустой знак, или наоборот, - нужно посмотреть.
rootman Цитата: И к чему такая категоричность? PHP будет работать с теми правами, которые вы ему установите. В данном случае nobody:nobody аналолгично работе с правами "для всех остальных". | Я говорю что, PHP будет работать от пользователя, и Группа и Все остальные ему ненужны. По крайней мере "Все" ненужны точно для файлов с расширением php Цитата: Да с того, что я праверял это везде. Могу продемонстрировать и для Вас на любом бесплатном хосте. Предлагайте, а то я устал уже на пустом разговоре что-то вам объяснять.
Цитата:Сервер в первую очередь запущен от пользователя root и может открывать любые файлы с любыми настройками доступа, хоть 000
rootman:Я вам посоветовал выполнить cat /etc/shadow
Вы вообще ощущаете разницу между каталогом сервера и системным каталогом? Сервер httpd откроет файл, в своём каталоге но если в файле не указаны атрибуты на чтение "Для всех", он его не покажет. В этом случае Владелец и Группа можно даже не указывать. Это относится только для статический файлов, с обычным текстом с расширением html на какой черт серверу системный каталог пихать? у сервера прописан путь к каталогу о нём и речь ведём. Ну вы точно с Узбекистана...
Цитата:| Здесь под nobody работает только сервер, на файле стоят совсем другие вледалец и группа, поэтому если вы уберете права "все остальные" для сервера файлы станут недоступными. | Да, если уберу "Все остальные", то сервер этот файл и не покажет. Ну а Владелец и Группа тут причём? (если это статический файл) Владелец и Группа нужны там, где речь идёт о PHP модуле, потому что он их берёт на чтение, и если нужно в файл что-то перезаписать, тогда нужен Владелец nobody. Права "Все" PHP вообще ненужны. А Сервер как раз берёт любой файл, только показывает те файлы, у которых атрибуты на чтение Для Всех открыты.
Короче, чего с вами спорить, давайте любой хостер я вам сам всё покажу на деле. А то чувствую, вы ещё долго будете пересоображать, как этот механизм устроен. | |
|
| Сообщение # 130 |
24.05.08 - 17:33:43
|  |
|