Nie zgadzam się z tym stwierdzeniem, ponieważ nie ma nic na temat skryptów, które czynią je z natury niebezpiecznymi. Skrypty Bash są całkowicie bezpieczne, jeśli przestrzegane są proste wskazówki:
- Czy skrypt zawiera informacje, których inni użytkownicy nie mogą wyświetlić? Jeśli tak, upewnij się, że jest to możliwe tylko do odczytu przez właściciela.
- Czy skrypt zależy od danych wejściowych z somewhereE? Jeśli tak, upewnij się, że dane wejściowe nie mogą być w jakikolwiek sposób zanieczyszczone lub że splamione dane mogą zostać wykryte i odrzucone.
- Czy to ma znaczenie, czy inni próbowali uruchamiać skrypt ? Jeśli tak, to tak jak w pierwszym punkcie, upewnij się, że nikt nie może go wykonać, a najlepiej nie czytać z niego. chmod 0700 jest ogólnie dobrym pomysłem dla skryptów wykonujących funkcje systemowe.
- oraz przypadki, w których mają chcesz skrypt mieć setuid (poprzez tłumacza) są niezwykle rzadkie
Dwa punkty, które oddzielają skrypt z skompilowanego programu jest to, że źródło jest widoczny i że wykonuje go tłumacz. Dopóki nie zostanie naruszony interpreter (na przykład bity setuid), wszystko będzie w porządku.
Podczas pisania skryptów do wykonywania zadań systemowych, literówek i pomyłek oraz ogólnego błędu ludzkiego podczas pisania, w pewnym stopniu stanowią potencjalne zagrożenie bezpieczeństwa, ale tak samo jest w przypadku skompilowanych programów (i wiele osób ma tendencję do zignorować fakt, że skompilowane programy można również zdemontować)
Warto zauważyć, że w większości (jeśli nie wszystkie) smaków linux, większość (jeśli nie wszystkie, w rzeczywistości, nie mogą myśleć o tym, że nie są) usługi są uruchamiane za pomocą skryptu powłoki.
Gdy skrypt nie jest możliwy do odczytu, nie można go uruchomić. Setuid na skryptach nie jest nawet możliwy. –