2009-08-07 16 views
5

Piszę wspólny projekt, który pozwala na dodawanie kodu od użytkowników. Użytkownicy będą mogli rozszerzyć klasę, dodać funkcjonalność itd. I przesłać kod z powrotem do serwera w celu regularnego wykonywania.Bezpieczne wykonywanie skryptów PHP użytkowników na serwerze

Czy istnieje bezpieczny sposób wykonywania kodu PHP użytkowników? Niezawodny sposób dezynfekcji? A co z nieskończonymi pętlami? Czy powinienem zaoferować inny język skryptowy?

+3

tego nie powinno się obchodzić, zadając pytanie na StackOverflow. Zatrudnij eksperta, albo wpadniesz w wielkie kłopoty. –

+0

To zabawny projekt, nad którym pracuję dziś w nocy z przyjaciółmi i b33r. Nie sądzę, aby najemny ekspert był pod wrażeniem: D –

Odpowiedz

6
  • JailRoot dla DocumentRoot

  • SafeMode ON, aby umożliwić dostęp do plików tylko na konkretnych katalogów

  • Zastosowanie każdego użytkownika MPM do ograniczenia systemowe
    zasobów procesu apache

  • Ustaw bezpieczne ustawienia php.ini dla memmory limit i max_execution_time

I jak zauważył Saggi Malachi, jest to bardzo eksperymentalne, trzeba monitorować działania na serwerze i mieć szenarios awaryjne, np. cronjobs oglądający średnie obciążenie, jeśli loadaverage jest powyżej progu zatrzymaj apache i sendmail.

Innym dobrym pomysłem jest skompilowanie własnego php i zablokowanie dostępu do funkcji php, które mogą być "wykorzystane" przez użytkowników.

0

Zabezpieczenie przed użytkownikami uzyskującymi dostęp do plików lub ich zmianami można uzyskać pod numerem safemode.

Zabezpieczenie przed nieskończonymi pętlami wymaga ustawienia czasu, który interpreter php musi wygenerować dla witryny. set_time_limit

Należy również uniemożliwić użytkownikom komunikację z serwerami zewnętrznymi, aby uniknąć wykorzystywania ich jako spamera. allow_url_fopen

Istnieje prawdopodobnie wiele innych poważniejszych problemów. To nie jest łatwe zadanie.

0

Może używam stronie serwera JavaScript zamiast z SpiderMonkey

Brzmi to o wiele bezpieczniejsze!

Powiązane problemy