About IT by Karol Nawrot

Archiwum dla Wrzesień, 2011

Czas naładować akumulatory – 3 tygodnie w Azji

napisany przez w dniu 08 wrz 2011, w kategorii Prywatne

Od dłuższego czasu w moim  życiu tyle się dzieje, że czuje krytyczny spadek mocy. Regularnie angażuje się w nowe projekty, telefon nie milknie. Kilka tygodni temu podjąłem decyzję – wyjeżdżam na 3 tygodnie do Azji, żeby naładować akumulatory. Plan jest taki, że zamykam sprawy w Polsce, nie odbieram telefonów, nie sprawdzam firmowej poczty, wyłączam BlackBerry.

Biorę za to dwa aparaty i mnóstwo kart pamięci – jeśli się uda, to na blogu zamieszczę relację z kolejnych etapów wyprawy. A trochę tego będzie, bo planuję dotrzeć do 6 krajów w tak krótkim czasie.

Przed wyjazdem zamieszczę pewnie jeszcze jakieś wpisy nt. przygotowań do wyjazdu – a nie jest to proste! ;-)

Zostaw komentarz więcej...

Codeigniter i usuwanie styli przy zapisywaniu

napisany przez w dniu 04 wrz 2011, w kategorii PHP, Rozwiązania

Od kilku miesięcy piszę dosyć duży system w PHP. Jako framework wybrałem CodeIgniter. Nie jest on jakoś strasznie rozbudowany, ale w dużym stopniu ułatwia rozwój systemu. Ostatnio natrafiłem na problem, z którym męczyłem się dwa dni. Na jednej ze stron ma osadzony edytor TinyMCE. Przy zapisywaniu jego zawartości do bazy danych w magiczny sposób znikały mi style. Wyglądało to tak, że np. taki kod:

<span style=”color:#FF0000″>Lorem Ipsum</span>

był zapisywany w takiej postaci:

<span>Lorem Ipsum</span>

Przez długi czas obwiniałem za to samego TinyMCE. Szukałem rozwiązania np. w ustawieniu valid elements. “Winnym” okazał się jednak sam framework. A dokładnie jego mechanizm zabezpieczenia przed atakami XSS. Polega on mniej-więcej na tym, że CodeIgniter filtruje żądania POST na wypadek niepożądanego kodu.

Najprostszym rozwiązaniem byłoby  ustawienie zmiennej global_xss_filtering w pliku application/config/config.php na FALSE.

$config['global_xss_filtering'] = FALSE;

Ale oczywiście wyłączenie mechanizmu bezpieczeństwa nie jest dobrym pomysłem.

Lepszym rozwiązaniem jest modyfikacja funkcji _remove_evil_attributes w pliku system/core/security.php. Załóżmy, że problem dotyczy stron, jakie znajdują się w folderze Admin. Zmodyfikuj okolicę linii 579 wspomnianego pliku np. tak:

 if (strpos(strtoupper($_SERVER['REQUEST_URI']),ADMIN)==TRUE)
{$evil_attributes = array('on\w*', 'xmlns');}
else{$evil_attributes = array('on\w*', 'style', 'xmlns');}

Spowoduje to, ze jeśli wywoływany jest plik, który w ścieżce ma słowo Admin, to mechanizm filtrowania pozwoli na przesyłanie styli w żądaniach POST.

Nie jest to piękne rozwiązanie, ale najważniejsze, że działa.

2 komentarzy : więcej...

Szukasz czegoś?

Użyj tego formularza, aby przeszukać stronę:

Inne blogi

Oto kilka moich ulubionych blogów...