RkBlog

Hardware, programming and astronomy tutorials and reviews.

Instalacja i konfiguracja IPB 2.1

Invision Power Board z serii 2.1.* do komercyjna seria znanego skryptu forum dyskusyjnego. Jedyne legalne źródło IPB z tej serii to wykupiona licencja w IPS.
ZALETY WADY

Instalacja

By zainstalować IPB 2.1.* potrzebujemy PHP w wersji co najmniej 4.3.0 oraz bazę MySQL w wersji co najmniej 3.23. Gdy mamy odpowiedni serwer zawartość katalogu upload wysyłamy na serwer. Nadajemy CHMOD 755 na katalogi skin_cache i uploads a plik conf_global.php na 666 (lub 777 jeżeli pojawią się komunikaty o błędach w dalszym etapie). Następnie w przeglądarce otwieramy stronę http://www.mojastrona.pl/forum/install/ (katalog install forum). Pojawi się strona instalatora. Klikamy na proceed by przejść dalej. Pojawi się druga strona, na której musimy wpisać dane:
ipbtut1
ipbtut2
SQL Host - host bazy danych, zazwyczaj localhost, SQL Username - login/nazwa użytkownika bazy danych, SQL Password - hasło do bazy danych. MySQL Table Type - typ tabel bazy danych, możemy bez obaw wybrać MyISAM, a jeżeli mamy nowszą wersję MySQL to możemy spróbować INNODB (tabele z obsługą tranzakcji) co może uchronić nasze forum przed niektórymi problemami z bazą danych. SQL Table Prefix - prefiks tabel w bazie danych. Warto coś podać np. "forum" (jeżeli chcemy zainstalować kilka IPB to każdy musi mieć inny prefiks). Druga część to login, hasło i email admina forum. Po wypełnieniu formularza klikamy na "Proceed". Potem klikamy na "Click here to continue" aż dojdziemy do "CLICK HERE TO LOG IN!" - po kliknięciu na ten link przeniesiemy się na forum gdzie powinniśmy zalogować się jako administrator korzystając z podanych przy instalacji danych. Warto usunąć katalog install.

Spolszczenie IPB

Wchodzimy do Admin CP i wybieramy zakładkę look and feel a z lewego menu Import a Language:
ipbtut3
Spolszczenia możemy pobrać z invisionboard.pl. Pakiet spolszczający forum od strony usera ("normalne" spolszczenie) po rozpakowaniu zawierać będzie m.in. plik ipb_language.xml.gz (lub podobny). W panelu admina we wspomnianym formularzu wybieramy ten plik a w polu Enter the name for this new language set wpisujemy "Polski" i wysyłamy formularz. Przechodzimy do Manage Languages (lewe menu) i klikamy obok języka "Polskiego" na Make Default Language
ipbtut5
Następnie wybieramy zakładkę TOOLS and SETTINGS i klikamy na General settings i wyszukujemy pola z kodowaniem:
ipbtut4
Wpisujemy utf-8 i wysyłamy formularz (klikając na przycisk na dole strony!) Jeżeli forum będzie po polsku lecz polskie znaki nie będą się wyświetlały poprawnie to ustawiamy kodowanie na iso-8859-2. Po tych operacjach forum powinno posiadać polskojęzyczny interfejs:
ipbtut6


Spolszczenie Panelu Admina

Sposób instalacji zależy od wersji. Dla IPB 2.1.5 pakiet spolszczenia zawiera w sobie 2 katalogi: acp_loaders i action_admin. Wrzucamy je do katalogu sources IPB zastępując istniejące pliki. Ja natrafiłem na drobny problem - spolszczenie forum było w UTF-8 a spolszczenie Panelu Admina w ISO-8859-2 przez co PA nie miał polskich znaków :P
NOTKA: edytując pliki tekstowe pod MS Windows (głównie, tyczy się też innych systemów operacyjnych) należy korzystać z edytora tekstowego, który pozwala wybrać kodowanie pliku (iso-8859-2 czy utf-8). Zapis w standardowych edytorach zapisze w formacie windowsowym.

Instalacja Skórek

Skórka to zazwyczaj dwa pliki XML (lub xml.gz) a jeżeli skórka jest prosta to może zawierać 1 plik xml. By dodać skórkę wchodzimy do Panelu Admin, wybieramy zakładkę LOOK and FEEL a następnie z menu po lewej import/Eksport skórek (import/Eksport themes). Na dole będą dwa formularze importu:
ipbtut7
Pierwszy służy do importu pliku xml skórki a drugi do impotu pliku xml z grafiką (Zawierającego w nazwie "images") Dodajemy najpierw plik XML skórki, wysyłamy formularz a potem robi tak samo z plikiem xml grafik. Po dodaniu skórkę będzie można wybrać w profilu lub też można ustawić ją jako domyślną w PA. (Zarządzanie skórkami / Manage Themes):
ipbtut8
Wystarczy kliknąć na trzecią ikonkę (po prawej od oka)

Dodatkowe zabezpieczanie forum

Jeżeli posiadamy starą wersję IPB to narażeni jesteśmy na ataki z wykorzystaniem znanych luk, można jednak trochę podkręcić "zaporę". W index.php na samym początku możemy dodać:
<?php
$_COOKIE = array_map("strip_tags", $_COOKIE);
$_GET = array_map("strip_tags", $_GET);
function hacked($data)
	{
	$data2 = $data;
	$data = strtolower($data);
	IF(ereg('\.\./', $data))
		{
		die('../ in GET');
		}
	IF(ereg('union', $data))
		{
		die('union in GET');
		}
	IF(ereg('select', $data))
		{
		die('SELECT in GET');
		}
	IF(ereg('drop', $data))
		{
		die('DROP in GET');
		}
	IF(ereg('=', $data))
		{
		die('= in GET');
		}
	IF(ereg('%', $data))
		{
		die('% in GET');
		}
	return $data2;
	}
$_GET = array_map("hacked", $_GET);
Na początku usuwamy kod (PHP, HTML itp.) z ciastek i zmiennych _GET (linki) następnie mamy małą funkcję utrudniającą znacznie przeprowadzanie ataków SQL injection poprzez linki. Dodanie:
$_POST = array_map("strip_tags", $_POST);
Spowoduje że dane z formularzy również będą pozbawione kodu (HTML i innego). Zwiększa to bezpieczeństwo (trochę paranoidalnie) lecz uniemożliwia publikację (nawet poprzez tag code) jakiegokolwiek kodu HTML czy PHP. Uniemożliwia (nigdy nie mów nigdy...) ataki XSS poprzez formularze.
RkBlog

Fora Dyskusyjne, 11 July 2008, Piotr Maliński

Comment article