Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zabezpieczenie aby móc uruchomić skrypt www tylko na jednej maszynie.
Forum PHP.pl > Forum > PHP
Sajrox
Witam,

Otóż mam dziwny problem.

Posiadam na serwerze przykladowy skrypt http://--moja-strona--/zrob_cos.php który generuje plik XML
Chciałbym aby możliwość uruchomienia skryptu była tylko dla jednej maszyny. Tak aby inny nie mogł widzieć co jest na stronie.

Skrypt będą uruchamiał przy pomocy cURL i chciałbym aby inna osoba np. haker który by chciał mieć dostep do tego skryptu przez cURL nie mial już takiej mozliwość.

Zależy aby to było bezpieczne.

Jak myślicie jak można to rozwiązać ?
Dumdas
Da się np. dla jednej przeglądarki - ustawić jeden raz niegasnące ciastko. Na ile to jest bezpieczne - nie wiem.
A dla jednej maszyny, to jak masz stałe ip, to $_SERVER['remote_addr'] porównujesz ze swoim. Jak == to działa, jak nie - nie działa.
Sajrox
Też myślalem po adresie IP.
Generalnie skrypt będę uruchamiał cronem która zn\jadzie się na moim innym serwerze. Jednak nie chciał bym, aby ktoś inny mógł odczytać zawartość skryptu bez dostępu do serwera na którym stoi mój CRON który odwołuje się do zabezpieczonego skryptu.

Chodzi o to że klient ma sklep na serwerze AAA. Tam chce umieścić mój skrypt który będzie coś robi na bazie danych tego sklepu.
Skrypt będe uruchamiał co jakiś czas z mojego serwera BBB np metodą cURL.

Chce uniknąć tego aby ktoś inny na serwerze CCC, DDD itp także mógł dostać się do skryptu, dostęp do niego może tylko mój serwer BBB. Wszystkie inne odpadają.
Lk_hc
Po IP i masz bezpieczniutkie rozwiązanie

  1. if ($_SERVER['remote_addr'] == BBB)
  2. {
  3. //działasz
  4. }
  5. else()
  6. {
  7. die ("won");
  8. }
Dumdas
Dla lepszego efektu użyj $_SERVER['HTTP_X_FORWARDED_FOR'] gdzie nawet jak ktoś by się łączył przez BBB, to nie może dizłać ze swojego komputera, bo bd porównywać jego IP. rozbuduj warunek o porównywanie jeszcze tego z operatorem AND i bd dobrze winksmiley.jpg
phpion
Taaa, bo pod dowolny adres IP nie można się podszyć, prawda?

Jedyne sensowne i pewne (!) rozwiązanie to przenieść skrypt wywoływany przez crona poza katalog dostępny z poziomu przeglądarki. Wówczas w cronie odpalasz ten skrypt poprzez interpreter PHP, np.:
Kod
/sciezka/do/interpretera/php /sciezka/do/skryptu/php

Z zewnątrz nikt Ci tego wówczas nie odpali.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.