2012-03-08 10 views
28

Zostałem poinformowany, że posiadanie expose_php = On w moim php.ini jest problem bezpieczeństwa i dlatego nie jest zgodny z PCI.Włączanie expose_php OFF w php.ini

Moje badania na ten temat sugerują, że wyłączenie go to niewielkie ryzyko i zasadniczo przestanie odsyłać wersję PHP w nagłówku, jednak zastanawiam się, czy prawdopodobnie pojawią się problemy z tyłu tego zmiana.

Potencjalne problemy, o których myślę, to usługi stron trzecich (dostawcy usług płatniczych, systemy śledzenia wiadomości e-mail, interfejsy strumieniowania wideo), które oczekują odpowiedzi na nagłówek, który wskazuje, że używasz wersji PHP, prawdopodobnie w określonej wersji?

Czy powinna to być płynna zmiana, czy może stwarzać problemy?

Odpowiedz

45

Zgadza się.

Ustawienie expose_php = Off po prostu uniemożliwia serwerowi odesłanie nagłówka X-Powered-By.

Choć można powiedzieć, że potencjalni hakerzy mogliby szukać nieaktualnych wersji PHP z lukami w zabezpieczeniach, aby je wykorzystać, mogliby zrobić to samo, nawet jeśli nagłówek był wyłączony. Moim zdaniem jest to dobre rozwiązanie, ale nie oczekuj, że zapewni ono dużo ochrony.

Jeśli chodzi o interakcję z usługami stron trzecich, nie powinny one być zainteresowane wersją PHP, z której korzystasz. Powinny mieć możliwość wyświetlania treści w formatach agnostycznych, takich jak JSON, XML itp., Aby usługi mogły być wykorzystywane przez dowolną platformę, a nie tylko PHP.

W anycase, aby polegać na wersji "konsumenta" PHP jest bezużyteczna, ponieważ nagłówek może być łatwo wyłączony, a nawet może zostać zmanipulowany przez administratora serwera.

Dlatego nie powinno być problemu z wyłączeniem go.

7

Nie powinno być żadnych negatywnych skutków ubocznych po wyłączeniu expose_php.

Po prostu usuń nagłówek X-Powered-By i zatrzymaj parytety GET zwracając kredyty i obrazy PHP.

Każda aplikacja strony trzeciej, która powołuje się na w nagłówku, jest podejrzana. W razie potrzeby możesz zawsze podszyć nagłówek.

+0

Jak zdobyć kredyty i zdjęcia za pomocą GET? – user4271704

+0

@ user4271704 http://stackoverflow.com/q/10458610/31671 – alex

3

Nie ma absolutnie nic złego w włączaniu i wyłączaniu tej opcji.

Wyłączenie tego nie spowoduje jednak zwiększenia bezpieczeństwa witryny. Te narzędzia dla dzieci-skryptów są tak głupie, że nigdy nie zadają sobie trudu, by powiedzieć jedną platformę od drugiej.

Nie wspominając już o tym, że jeśli twoja strona jest oparta na framework/CMS, to i tak nie ma sensu ukrywać obecności PHP.

3

W żaden sposób nie ma zagrożenia bezpieczeństwa, ale ujawnienie przestarzałej wersji PHP może być zaproszeniem hakerów do wypróbowania dobrze udokumentowanych "dziur" w poprzednich wersjach.

Jeśli chodzi o usługi stron trzecich, są one niezależne od platformy i nie muszą dbać o to, jakiej wersji PHP używamy. W razie potrzeby możemy ustawić pusty nagłówek lub jak poniżej.

header('X-Powered-By: Venu'); 
+0

Lub po prostu całkowicie go usuń za pomocą ['header_remove ('X-Powered-By')'] (http://www.php.net/header_remove) . – Pang