Puncte:1

Permisiunile Apache mod_userdir și php

drapel je

Am o configurare cu mulți utilizatori, care își pot găzdui pagina web personală (servită de apache prin mod_userdir), situat sub public_html în casele lor. Suportul php este activat și în apache.

Momentan am următoarea configurație în /etc/apache2/mods-enabled/userdir.conf

<IfModule mod_userdir.c>
        UserDir <home basedir>/*/public_html
        UserDir disabled root

        <Directory <home basedir>/*/public_html>
                AllowOverride FileInfo AuthConfig Limit Indexes Options
                Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
                <Limit GET POST OPTIONS>
                        Require all granted
                </Limit>
                <LimitExcept GET POST OPTIONS>
                        Require all denied
                </LimitExcept>
        </Directory>
</IfModule>

Problema este că, deoarece fiecare script php este rulat de utilizator www-data, fiecare pagină de utilizator are permisiuni asupra tuturor celorlalți utilizatori public_html. De exemplu, pot obține un shell invers php și pot inspecta conținutul altor utilizatori.

Am încercat să adaug

php_admin_value open_basedir "."

în interiorul Director eticheta de mai sus. Acest lucru previne gaura de securitate descrisă mai sus, dar de fapt permite doar script-ului php să coboare în ierarhia directoarelor. De exemplu

<?php
chdir('assets');
echo getcwd();
chdir('..');
echo "<br>";
echo getcwd();
?>

produce

<home>/public_html/assets
<home>/public_html/assets

Problema este rezolvată dacă <home>/public_html calea este codificată în format open_basedir variabilă, dar desigur că trebuie să pot face acest lucru pentru toți utilizatorii prin intermediul unei variabile. Apache stochează wildcardul (<home basedir>/*/public_html) se potrivesc într-o variabilă pe care o pot accesa în interiorul Director etichetă? Sau există alte modalități mai bune de a face acest lucru, de exemplu rularea fiecărei pagini de utilizator într-un mediu asemănător chroot?

digijay avatar
drapel mx
Te-ai uitat la [mod_suphp](https://github.com/lightsey/mod_suphp)?

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.