In 2.2, access control based on client hostname, IP address, and other characteristics of client requests was done using the directives Order, Allow, Deny, and Satisfy.
In 2.4, such access control is done in the same way as other authorization checks, using the new module mod_authz_host. The old access control idioms should be replaced by the new authentication mechanisms, although for compatibility with old configurations, the new module mod_access_compat is provided.
Dnia 12 lutego 2015 13:34 Dariusz Kowalczyk <dariusz@kowalczyk.it> napisał(a):Moje pytanie było retoryczne :-)Ale jak już zacząłeś to odpowiem. Lms jest napisany w php i do działania potrzebuje serwera www który potrafi pracować z interpreterem php, sam serwer nie ma znaczenia. Po prostu trzeba się nauczyć konfigurować dany serwer www żeby działał szybko i bezpiecznie.Można narzekać, że Apache jest wolny ale Nginx nie wprowadził funkcji podobnej do .htaccess specjalnie żeby być szybkim.Na szczęście w Apache można to wyłączyć i konfigurować wszystkie reguły (także modrewite) w sekcji virtualhost.Włączenie wspomnianą dyrektywą obsługi .htaccess zabija wydajność maszyny, bo apache za każdym żądaniem dostępu do pliku musi przeglądać całe drzewo katalogów w poszukiwaniu plików .htaccess. jak takie bezsensowne przeszukiwanie wpływa na wydajność łatwo sobie wyobrazić.A że .htaccess wiele ułatwia bo pozwala się odpierwiastkować użytkownikom od admina, a niech sobie użytkownicy knują reguły w .htaccess...to inna sprawa, zawsze jest coś za coś,a tutaj jest albo albo, albo wygoda albo wydajność i bezpieczeństwo.Łatwo narzekać na apache że jest wolny ...ale nie jest to do końca prawdą, jest elastyczny bo zapewnia mnogość funkcji ...np wspomniany .htaccessale gdy się go okroi z funkcjonalności i wywali niepotrzebne moduły jego wydajność znacząco rośnie.lms używa plików .htaccess w katalogachlms/backups/.htaccesslms/documents/.htaccesslms/lib/.htaccesslms/templates_c/.htaccesslms/modules/.htaccesslms/.htaccesslms/contrib/bin/.htaccesslms/userpanel/lib/.htaccesslms/userpanel/templates_c/.htaccessale jedyne co w tych plikach jest toOrder deny,allowDeny from alljak widać .htaccess jest użyte tylko po to by zabezpieczyć dostęp do tych katalogów.jedynym wyjątkiem jestlms/.htaccessw którym jest<Files lms.ini>Order Deny,AllowDeny From Allto zabezpieczenie na wypadek sytuacji gdy ktoś plik lms.ini umieszcza w katalogulms/zamiast /etc/lmsWrzucenie kodu lms-a na serwerze z nginx zmieni tylko tyle że te katalogi nie będą domyślnie chronione i trzeba to zrobić w konfiguracji nginx-aale lms działać będzie bez żadnego problemu.Przyśpieszenie działania serwera apache uzyskać można wyłączając globalnie w pliku httpd.conf dyrektywę AllowOverrideAllowOverride Nonei konfigurując odpowiednie reguły w virtualhost obsługującym lms-a.i dodanie (tu przykładowa ścieżka do katalogu w którym znajduje się lms)<Directory "/var/www/html/lms/backups">Order deny,allowDeny from all</Directory><Directory "/var/www/html/documents">Order deny,allowDeny from all</Directory><Directory "/var/www/html/lms/lib">Order deny,allowDeny from all</Directory><Directory "/var/www/html/lms/templates_c">Order deny,allowDeny from all</Directory><Directory "/var/www/html/lms/modules">Order deny,allowDeny from all</Directory><Directory "/var/www/html/lms/contrib/bin">Order deny,allowDeny from all</Directory><Directory "/var/www/html/lms/userpanel/lib">Order deny,allowDeny from all</Directory><Directory "/var/www/html/lms/userpanel/templates_c">Order deny,allowDeny from all</Directory>oraz ochrona lms.ini jeśłi nie jest umieszczony w /etc/lms<Files "/var/www/html/lms/lms.ini">Order allow,denyDeny from all</Files>Konfiguracja virtualhost dla lms-a w apache beż użycia .htaccess wtedy wygląda tak<VirtualHost *:80>ServerAdmin administrator@wsb-nlu.edu.plDocumentRoot /var/www/html/lmsServerName lms.org.plErrorLog logs/lms.org.pll-error_logCustomLog logs/lms.org.pl-access_log common<Directory "/var/www/html/lms">AllowOverride NoneOrder allow,denyAllow from all</Directory><Directory "/var/www/html/lms/backups">Order deny,allowDeny from all</Directory><Directory "/var/www/html/documents">Order deny,allowDeny from all</Directory><Directory "/var/www/html/lms/lib">Order deny,allowDeny from all</Directory><Directory "/var/www/html/lms/templates_c">Order deny,allowDeny from all</Directory><Directory "/var/www/html/lms/modules">Order deny,allowDeny from all</Directory><Directory "/var/www/html/lms/contrib/bin">Order deny,allowDeny from all</Directory><Directory "/var/www/html/lms/userpanel/lib">Order deny,allowDeny from all</Directory><Directory "/var/www/html/lms/userpanel/templates_c">Order deny,allowDeny from all</Directory><Files "/var/www/html/lms/lms.ini">Order allow,denyDeny from all</Files></VirtualHost>I taka tez konfiguracja powinna być proponowana jako domyślna w dokumentacji lms-a.Analogicznie trzeba to zabezpieczyć dla nginx-a
Witam,
ośmielam się zwrócić uwagę, że te dyrektywy nie zadziałają z nowszą wersją apache. Zamiast „order deny,allow” i „deny/allow from all” należy użyć dyrektywy „require all denied/granted”.
--
Pozdrawiam
Jacek Cieplok
_______________________________________________
lms mailing list
lms@lists.lms.org.pl
http://lists.lms.org.pl/mailman/listinfo/lms