[PHP] Ukrycie kodu źródłowego formularza


(userrpl) #1

Cześć.

Czy jest jakiś racjonalny sposób na ukrycie przed użytkownikami strony, kodu źródłowego formularza html?. Pomimo zamieszczenia go w znaczniki kanoniczne php, kod dalej jest widoczny :cry: .


(WooQash) #2

Kodu HTML nie ukryjesz w żaden sposób. Możesz go zamaskować używając JS lub Ajax, ale zaawansowany użytkownik znajdzie kod HTML i tak np. poprzez wciśnięcie klawisza F12 w Google Chrome.


(pain3hp) #3

A mógłbyś podać racjonalny powód dlaczego chcesz ukryć HTML ?


(userrpl) #4

Choćby SQL injection.

Nie chodzi mi o cały html, tylko o formularze przesyłające dane do bazy.


(WooQash) #5

W takim razie każdy formularz jest na to podany. Totalny bezsens. Wystarczy dobrze zablokować formularz w php i nie będzie podatny na takie rzeczy.


(userrpl) #6

Dobrze zablokowany formularz jest odporny na exploit?. Dlaczego Joomla jest tak na nie podatny?


(WooQash) #7

To już nie mi oceniać który CMS jest podatny, który nie. Jeżeli się nie mylę to PHP-Fusion od którejś wersji bodajże 6 jest zabezpieczony, ale nie chcę nikogo wprowadzać w błąd.


(Pablo_Wawa) #8

Doprecyzuję, bo mam wątpliwości, czy o tym samym rozmawiamy:

  1. Formularz jest zawarty w pliku .php, który go wyświetla na stronie.

  2. Na stronie, tj. w przeglądarce, widać tylko kod HTML tego formularza, nie widać żadnego kodu źródłowego w PHP.

  3. Obsługą formularza zajmuje się stosowny kod w PHP, którego nikt nie zobaczy, bo jest on na serwerze i przed wysłaniem do przeglądarki klienta jest parsowany przed interpreter PHP - ten zaś może się wysypać (bardzo rzadkie przypadki, ale spektakularne) albo programista zrobi błąd (literówkę) i spowoduje błędne wyświetlenie kodu PHP w przeglądarce (to się też czasami zdarza).

  4. Przez powyższym można się zabezpieczyć umieszczając właściwy kod w miejscu poza stroną www i importując go w prostym skrypcie za pomocą instrukcji require lub include.

Kodu HTML strony nie zaciemnisz, ale też niewiele z niego można wywnioskować.


(userrpl) #9

Można wywnioskować np: nazwy poszczególnych kontrolek formularza, a to już w jakiś sposób ułatwia budowę exploit-a - przynajmniej tak mi się wydaję.


(WooQash) #10

Zamiast kombinować w drugą stronę nie lepiej zrobić tego w standardowy sposób tak jak robią to inni? Czyli zabezpieczanie kodu w PHP? Po prostu nie da się zrobić tak, aby przeglądarka widziała cały kod HTML lub interpretowała go w jakiś sposób, a użytkownik już nie. Jeśli chcesz się bawić pójdź dalej i zrób formularz w flashu, z niego będzie już dużo trudniej wydostać kontrolki i inne badziewia.


(userrpl) #11

Zgadzam się z tobą. Jako, iż jestem adeptem myślałem, że są jakieś dodatkowe sposoby poza walidacja danych wejściowych, nie wykorzystując innych języków jak PHP.


(Pablo_Wawa) #12

Ale tego nie da się ukryć przed użytkownikiem, więc po co tracić czas i się tym zajmować? Pola formularza są wysyłane (poprzez POST czy GET) do serwera, ale nic nie przeszkodzi w podglądnięciu jakie dane są do serwera wysyłane, nawet jakbyś miał hermetycznie zamknięty program!