Jak wyłączyć PHP w wybranym katalogu?

07 kwietnia 2008

Mam specyficzną potrzebę. Piszę sobie oprogramowanie typu Multisite CMS. Od zwykłego CMS’a różni się to tym, że na jednym serwerze, na jednych plikach i jednej bazie danych mogę postawić nieskończenie wiele stron :) Bardzo to wygodne chociaż skomplikowane przy projektowaniu. Ale ma ogromną przewagę nad innymi CMS’ami bo przy stawianiu kolejnych stron nie muszę za każdym razem instalować kolejnych plików, tworzyć kolejnych tabel w bazie danych itd.

Muszę pamiętać również o bezpieczeństwie. Z oprogramowania będą korzystały różne osoby. Z jednej strony, muszą mieć bardzo szerokie możliwości zmian i dodawania elementów do swoich witryn. Z drugiej, nie mogą mieć dostępu do PHP, nie mogą poznać kodu źródłowego, nie mogą mieć możliwości żadnych zmian silnika oprogramowania itd.

Każda strona ma swój osobny katalog w którym można zamieszczać potrzebne pliki np. grafikę, skrypty JavaScript itd. Dostęp do tego katalogu będzie poprzez panel administratora. Ale co zrobić aby nikt mi tam nie wsadził podejrzanych skryptów, które mogą narozrabiać na serwerze?

Znalazłem kilka sposobów ale zależało mi na tym, żeby zawartość plików PHP po prostu się wyświetlała w przeglądarce a większość rozwiązań powodowała rozpoczęcie ściągania pliku na dysk.

Co zrobić? Utworzyć plik .htaccess z taką zawartością:

AddType text/plain .php .php3 .php4 .php5 .inc .phtml .cgi .pl

Oczywiście listę rozszerzeń można dowolnie modyfikować. Ta linijka spowoduje, że zawartość wszystkich plików o wypisanych rozszerzeniach będzie traktowana jak zwykły tekst. Wszystko działa począwszy od katalogu w którym znajduje się plik .htaccess oraz głębiej w strukturze katalogów. Pamiętajcie o tym bo w skrajnym wypadku nasz kochany użytkownik usunie plik .htaccess i będzie robił co mu się podoba :)

Dodaj komentarz

21 odpowiedzi dla tego wpisu

  1. Sceptyk napisał:

    Dla kogo jest ta informacja? Amator nie tworzy systemów CMS a profesjonalista zna te zagadnienia.

  2. MariuszT napisał:

    Ty znasz, ja znam a ktoś może nie znać i pyta. Ludzie nie wiedzą jak sobie z tym poradzić na co dowodów dostarczy Ci google.pl. Jak masz takie idiotyczne komentarze wystawiać w stylu „po co pomagać innym?” to nie pisz lepiej nic.

  3. Sceptyk napisał:

    Nie pozostaje mi nic innego jak zacytować Ciebie: ” piszę o wszystkim o czym mam ochotę” pisać. Twoja uwaga zaś jest niestosowna. Nie lubisz krytyki? Wyłącz komentarze.

    Skoro każdy ma prawo napisać swoje zdanie na temat tego, co w blogu jest i co nie łamie żadnych zasad (prawnych oraz netykiety), nie powinieneś aż tak nerwowo reagować.

  4. MariuszT napisał:

    Będę reagował nerwowo na idiotyczne komentarze ;) Też mam do tego prawo :) Trzeba być trollem Internetowym żeby krytykować kogoś za to, że pomaga innym. Możesz się mnie czepiać o różne rzeczy ale do tego wpisu czepiasz się na siłę, tylko po to żeby mi dopiec. To lepiej idź się mądrować gdzie indziej.

  5. Sceptyk napisał:

    Wyłącz komentarze jeśli nie podoba Ci się to, co tu napisałem.

    Nerwy zaś lecz u lekarza. Ja nim nie jestem. Mam prawo do napisania własnego zdania na temat, który tu poruszyłeś bo albo to miało na celu zapchanie bloga pierdołami albo poklask małolatów. Jedno i drugie jest w/g mnie prymitywne.

  6. marrt napisał:

    Dzieki. Dokladnie tego szukalem.
    Dodalem rowniez jpg, gif i png – rownoczesnie załatwilem problem podpinania się pod obrazki. Do wyswietlenia uzywam skryptu wysylajacego najpierw prawidlowe naglowki. Dziala bezblednie.

  7. MariuszT napisał:

    Sceptyk, sam się lecz. Paradoksalnie właśnie komuś się przydała ta wskazówka chociaż pewnie powiesz, że sam dodałem komentarz żeby mieć usprawiedliwienie :) Ja potrzebowałem takiego rozwiązania, znalazłem je więc się nim podzieliłem z innymi. Jak Ci się nie podoba wszystkowiedzący to zmiataj stąd. A prymitywne to są trolle Internetowe.

  8. Sceptyk napisał:

    Dokładnie takiej reakcji spodziewałem się po Tobie.
    Argumentem jest dla Ciebie obraza kogoś, kto ma coś więcej do powiedzenia niż tylko „Dzięki, jesteś wielki”. Nie, nie jestes wielki. Szukasz poklasku ludzi, którzy nie znają google.pl .

    Gratuluję…

  9. MariuszT napisał:

    Echh… Nie karmić trolla, nie karmić trolla ;) Muszę się tego trzymać ;)

  10. Sceptyk napisał:

    Czy możemy trzymać się tematu? To nie jest dyskusja o trollach. To jest dyskusja o technologiach internetowych.

  11. Sceptyk napisał:

    Do rzeczy…

    Plik htaccess musi być dostępny dla serwera WWW do odczytu czyli z reguły ma mieć flagę go -w a najlepiej ugo -w co binarnie przedstawia się r-x r-x r-x.

    Szanowny Marusz zapomniał o prawach do zapisu plików bo głównie chodziło o jakieś multicośtam czym się obecnie zajmuje a nie o znajomość rzeczy i znów ma ochotę na poklask.

    Żenada.

  12. Amian napisał:

    Wynocha trollu! Dwa miesiace temu szukałem jak sobie z tym poradzic. Naszukalem się tego kilkadziesiat minut. I widzialem, ze ludzie tez tego szukaja. Nie pierdol o uprawnieniach, własnie takiego myku szyukalem! Przypierdalasz sie bez powodu. Racje ma Mariusz, jak prawdziwy TROLL!!

  13. Sceptyk napisał:

    Nie działało google.pl ?

    Sami debile w tym internecie siedzą, słowo daję…

  14. Deny napisał:

    Troll, TROLL!! Zabić trolla! Ale się teraz zbłaźniłeś :D Nie dziwię się, że boisz się podpisać :D Wynocha paskudny trollu! :D :D :D

  15. kmg napisał:

    Dla ludzi którzy czytają wypociny Trola…

    Sceptyk nie ma pojecia nie tylko o biznesie ale również o uprawnieniach w unixach. W rzeczywistości potrzebne są uprawnienia tylko do odczytu, tak wiec wystarczą r– — — (400) gdy ownerem jest www-data (czy jakikolwiek inny na którym działa apache) i r– r– r– (444) w każdym innym przypadku. Ktoś, kto dostaje dostep przez ftp działa jako inny użytkownik w innej grupie – czyli w pierwszym przypadku nie podglądnie nawet zawartości pliku, a w drugim co prawda zobaczy, ale totalnie niczego mu to nie da – wszak htaccess to nie sudoers aby ukrywać jego zawartość. A najlepiej ustawić ownera na www-data, grupę na własnego użytkownika FTP (czyli na „nas” a nie konta osób które mają dostać dostep do katalogu) i ustawić uprawnienia r– rw- — (450).

    Troll podał uprawnienia do odczytu i wykonania – te ostatnie nijak się mają do tematu.

    Drodzy czytelnicy – jeśli przyszliście się tutaj czegoś dowiedzieć radzę nie czytać komentarzy Sceptyka.

  16. Sceptyk napisał:

    Flaga r– — — (400) spowoduje brak odczytu pliku przez serwer WWW.

    Z debilami nie dyskutuję.

  17. kmg napisał:

    Racja – jedna osoba jest tutaj debilem.
    Kolego – nie wiesz z kim próbujesz tańczyć…

    main:/var/www/test# mkdir sceptyk
    main:/var/www/test# cd sceptyk/
    main:/var/www/test/sceptyk# echo ‘troll’ > plik.txt
    main:/var/www/test/sceptyk# chown www-data:www-data plik.txt
    main:/var/www/test/sceptyk# chmod 400 plik.txt
    main:/var/www/test/sceptyk#

    http://www.kmg.hcm.pl/test/sceptyk/plik.txt
    A jeśli wciąż nie wierzysz ze ten plik ma 0400…
    http://www.kmg.hcm.pl/test/sceptyk/index.php

    I teraz biorąc pod uwagę to co pisałeś, w poście o osadze…
    Liczę na przeprosiny. Starczy Ci odwagi? Nie sądze.

  18. Sceptyk napisał:

    Nadanie plikowi takiego atrybutu:

    main:/var/www/test/sceptyk# chown www-data:www-data plik.txt

    spowoduje, że właścicielem pliku plik.txt jest www-data z grupy www-data.

    Nie ma to nic wspólnego z tym, co napisał nasz nieudolny MariuszT w temacie.

    Jeśli chcesz dyskutować, naucz się podstaw UNIX’a.

  19. kmg napisał:

    Kolego – chetnie porozmawiam na temat linuxów. Wszak zajmuje nimi ponad 10 lat. Obsługa, administracja , programowanie.
    Może Ty pokaż co umiesz. Pokaz też, co uprawnienia mają wspólnego z tym co napisał MariuszT w temacie.

    Masz rację – z debilami nie dyskutuje.
    I przeczytaj jeszcze raz moj post o uprawnieniach – wyraźnie napisałem „wystarczą 400 gdy ownerem jest www-data”. Brak umiejętności czytania ze zrozumieniem? Zdarza sie w twoim wieku. To choroba, jeśli pójdziesz do lekarza może dostaniesz papierek, który ułatwi Ci pisanie egzaminu gimnazjalnego. Ale do tego pewnie masz też sporo czasu.

    ps. chown to nie nadanie atrybutów a zmiana uprawnień. Dla kogoś kto ma pojecie o unixach różnica znaczna. Do przedszkola. Naucz sie podstaw.

  20. Sceptyk napisał:

    Fakt, z debilami się nie dyskutuje. I na tym kończę. Google są dostępne dla wszystkich, nawet dla tych, których się nie wpuszcza do MediaMarkt.

    Polecam lekturę serii „Dla opornych”. Zacznij od podstaw logiki.

  21. Luzak napisał:

    Hej sceptyczny kolego. Nie szkoda Ci czasu na negowanie faktu, że ktoś komuś pomaga? Jesteś przkonany do dwóch kwestii: albo to wszyscy wiedzą albo to nikomu nie potrzebne. Ale niestety jest jeszcze trzecia prawda. Jak dorośniesz to ją poznasz.
    Pozdrawiam

Odpowiedz



Podobne wpisy: