banner kod htaccess
Porady i wskazówki

Zabezpieczenie danych dostępowych

Artykuły

Zabezpieczenie danych dostępowych

Autor: Daniel | Dodany: 14 Stycznia 2020

Zabezpieczenie danych dostępowych to jedna z podstawowych umiejętności używanych przy programowaniu back-endowym. W wielu przypadkach dostęp do bazy danych przez osoby nie upoważnione może być niebezpieczny dla działania naszej witryny. Pliki .php mimo, iż nie są dostępne na pierwszy rzut oka, to bardziej doświadczeni użytkownicy mogą w prosty sposób przeglądać zawartość serwera.

1. Globalizacja danych

Podstawowym i łatwym sposobem na zabezpieczenie danych dostępowych do bazy danych jest wyciągnięcie ich z pliku .php do pliku .ini. Dodatkową zaletą takiego rozwiązania jest brak konieczności wpisywania tych samych danych w każdym pliku .php oraz możliwość aktualizacji/zmiany tych danych w szybki sposób na całej witrynie.

Z podobnej globalizacji danych korzysta dzisiaj wiele platform. Dla przykładu w WordPressie mamy plik wp-config.php, który przechowuje najważniejsze dane dotyczące konfiguracji oraz dostępów do bazy danych. To z niego są pobierane dane przy połączeniu i to w tym pliku możemy zmienić dostępy dla całej witryny.

Pierwszym krokiem w tym procesie będzie stworzenie przykładowego pliku db.ini i uzupełnienie go danymi. Przy wpisywaniu informacji do pliku .ini należy pamiętać o kolejności. Idąc od lewej strony – nazwa zmiennej, spacja, znak równości, spacja, wartość zmiennej. Tak powinna wyglądać struktura tego pliku w najbardziej podstawowej wersji (kolejność oczywiście dowolna):

servername = przykladowy.serwer.pl
dbname = przykladowa_db
username = user1
password = qwerty

2. Odczyt informacji

Po utworzeniu pliku .ini (w przykładzie db.ini) należy zabrać się za odczyt danych. W języku PHP wystarczy jedna linijka kodu, żeby odczytać wszystkie wartości z pliku .ini:

$config = parse_ini_file(‘*ścieżka_do_pliku*’);

Od tego momentu wszystkie nasze wartości z pliku .ini zostały przypisane do tablicy $config[]. Jeżeli chcemy z nich skorzystać wystarczy w nawiasie kwadratowym podać nazwę wymaganej zmiennej. Przykład:

$config[‘servername’]

Podany przykład zwróci nam wartość przykladowy.serwer.pl

3. Zabezpieczenie .htaccess

Przed rozpoczęciem tego punktu należy upewnić się czy nasz serwer obsługuje pliki .htaccess. Plik ten pozwala na zmianę ustawień dla katalogów na serwerze Apache. Podane przykłady nie będą działały na serwerach Nginx czy też IIS.

Na serwerze, w lokalizacji naszego pliku .ini tworzymy plik o nazwie .htaccess i w jego zawartości wklejamy:

# Deny access to .htaccess
<Files .htaccess>
Order allow,deny
Deny from all
</Files>

# Disable directory browsing
Options -Indexes

# Hide the contents of directories
IndexIgnore *

IndexIgnore *.ini *.php

# Deny access to filenames starting with dot(.)
<FilesMatch „^\.”>
Order allow,deny
Deny from all
</FilesMatch>

# Deny access to files with extensions .ini, .psd, .log, .sh
<FilesMatch „\.(ini|psd|log|sh)$”>
Order allow,deny
Deny from all
</FilesMatch>

<Files ~ „\.ini$”>
Order allow,deny
Deny from all
</Files>

Te kilka linii kodu wyłączy możliwość przeglądania katalogów oraz zablokuje otwieranie i wyświetlanie zawartości naszego pliku z danymi.

Od teraz mamy zabezpieczony plik z naszymi danymi dostępowymi do bazy danych lub jakimikolwiek danymi. Można z niego korzystać w dowolny sposób i zapisywać zmienne, które potrzebujemy do użytku globalnego oraz łatwej edycji.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

pl_PLPolski