![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 69 Pomógł: 7 Dołączył: 18.08.2010 Skąd: Rzeszów Ostrzeżenie: (10%) ![]() ![]() |
Witam,
Mam pewien skrypt który musi znajdować się w katalogu public_html a jest wywoływany przez crona. Moje pytanie brzmi: Jak zabezpieczyć plik przed uruchomieniem go z poziomu przeglądarki prze użytkowników. Próbowałem zablokować go htaccesem przez zabronienie dostępu wszystkim oprócz ip 127.0.0.1 potem próbowałem z localohst. Ale niestety po zablokowaniu pliku w taki sposób cron nie wykonuje pliku. Jak to rozwiązać ? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 729 Pomógł: 346 Dołączył: 4.04.2009 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 4 655 Pomógł: 556 Dołączył: 17.03.2009 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
wyrzuć nad public_html ?
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 69 Pomógł: 7 Dołączył: 18.08.2010 Skąd: Rzeszów Ostrzeżenie: (10%) ![]() ![]() |
fifi2009 to nie ma znaczenia plik tak czy tak nie jest zabezpieczony,
lobopol PHP_SAPI nie działa, a to piwerwsze to o ile sie nie myle to ilosc argumenów w adresie, jeżeli ktoś wpisze adres plik?costam=costam warunek nie działa, |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 4 655 Pomógł: 556 Dołączył: 17.03.2009 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
A jak chcesz uruchomić coś co jest ponad public_html ?
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 69 Pomógł: 7 Dołączył: 18.08.2010 Skąd: Rzeszów Ostrzeżenie: (10%) ![]() ![]() |
przez wyżej miałem na myśli "głębiej" - pierwsze zdanie mojego posta: "Mam pewien skrypt który musi znajdować się w katalogu public_html"
użyłem takiej metody:
Działa. Ale czy jest bezpieczne ? Czy w tym przypadku będzie ktoś mógł wykonać skrypt za pomocą wget z innego servera ? |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 1 729 Pomógł: 346 Dołączył: 4.04.2009 Ostrzeżenie: (0%) ![]() ![]() |
To oczym napisałeś to argv (które też inaczej działa), argc to liczba parametrów przekazana z konsoli http://php.net/manual/pl/reserved.variables.argc.php
Ten post edytował lobopol 18.04.2012, 20:56:16 |
|
|
![]()
Post
#8
|
|
Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
Najlepiej sprawdzić jakie PHP_SAPI ustawiane jest da wywołań z command line systemu. Nie na każdym serwerze jest to "cli" o czym sam się kilka razy przekonałem. Najprościej? W pliku stwórz sobie dla testów logowanie tego i wywołaj raz cronem z cli, raz cronem jako wget oraz raz ze zwykłej przeglądarki i popatrz w logi jakie SAPI było przy każdym z nich.
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 69 Pomógł: 7 Dołączył: 18.08.2010 Skąd: Rzeszów Ostrzeżenie: (10%) ![]() ![]() |
no właśnie chce tego uniknąć bo aplikacja którą tworzę to cms i bedzie zapewne instalowany na różnych hostingach, dlatego sprawdzanie SAPI mnie nie urządza, dlatego pytam czy sprawdzenie czy istnieje zmienna $_SERVER['HTTP_HOST'] jest bezpieczne, bo działa tak jak należy. Ustawiłem wget z innego serwa i odrzuca więc jest ok, czy są jeszcze jakieś przeciwwskazania ?
|
|
|
![]()
Post
#10
|
|
Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
Myślę, że najlepsze rozwiązanie już Ci podano. To sprawdzenie parametrów dostępnych jedynie z konsoli systemowej, a tak najczęściej uruchamia się zadania CRONa, jeśli mają być bezpieczne. Uruchamianie zadań z użyciem wget to zostawianie furtki dla potencjalnych włamywaczy i jeśli ktoś się połapie jaka jest ścieżka do pliku wykonywanego przez cron, to może CI ów plik odpalić nawet kilkaset razy na sekundę. Jednymi z parametrów dostępnych jedynie z konsoli są wspomniane argc i argv. Ale zobacz do tego komentarza i porównaj jakie są w nim parametry, a jakie zawiera sama definicja i zauważysz, że jest wiele różnic. Duża część z nich to właśnie takie, które są dostępne jedynie w konsoli. Ich wykrycie oznacza to, że skrypt poszedł w konsoli, a nie z przeglądarki czy czegoś, co próbuje ją naśladować.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 26.09.2025 - 15:04 |