Obrazki osadzone w jednoplikowym skrypcie php
Wstęp…
Ostatnio pracuję nad projektem inferno – jedno plikowym systemem zdalnego zarządzania systemem, oczywiście na licencji GPL. Panel takiego skryptu musi ładnie wyglądać, a żeby ładnie wyglądał potrzebuje obrazków… Tylko jak tu teraz umieścić obrazki w jednym pliku z skryptem?
Okazuje się że to nie jest wcale takie trudne! Sposób podejrzałem w skrypcie c99shell. Wystarczy zakodować obrazki base64 i wstawić je do pliku php!:)
Wystarczy odpowiednia manipulacja funkcjami base64_decode oraz base64_encode.
No to zaczynamy!
Podstawą są same obrazki. Musimy je zakodować. Oczywiście, funkcją którą wykorzystamy do tego celu będzie base64_encode. Przyjmuję, że mamy plik graficzny w formacie gif o nazwie ‘ikonka.gif’.
$filename='ikonka.gif'; file_put_contents($filename.'base64.txt', base64_encode(file_get_contents($filename));
Skrypt stworzy nam nowy plik – ikonka.gif.base64.txt, w którym to znajdziemy zakodowany nasz plik graficzny. Właściwie to już połowa pracy za nami
Teraz musimy zająć się skryptem, który ma obsługiwać ten obrazek. Przyjmuję, że skrypt jest w pliku skrypt.php, oraz obrazek będziemy chcieli wyświetlić poprzez skrypt.php?image=ikonka.
Na górze dokumentu dopisujemy więc:
if (isset($_GET['image']) && $_GET['image']=='ikonka') {
header('Content-type: image/gif'); //nasz plik był w formacie gif
echo base64_decode('MIEJSCE'); //tutaj umieszczamy "zakodowaną" zawartość pliku graficznego
exit(); //no i kończymy skrypt, bo obrazek już mamy!
}
I już mamy osadzony obrazek w skrypcie PHP
Więcej!
Zapraszam do pobrania skryptu Inferno, w którym można zobaczyć praktyczne i bardziej zaawansowane zastosowanie powyższej metody.
Good luck & have fun