Archiwum na czerwiec, 2007

Na stronie http://jtemplates.tpython.com/ publikuję system szablonów stron w JavaScript o nazwie jTemplates.

jTemplates wcześniej był rozwijany pod nazwą tParser. Obecnie stał się pluginem do biblioteki jQuery. jTemplates dostępny jest na licencjach MIT i GPL.

Najnowsza wersja nosi numer 0.1.9 i zawiera szereg udoskonaleń w stosunku do wersji 0.1.

Więcej informacji na stronie projektu.

Co można ściągnąć ze strony Windows Marketplace? Tak! Ubuntu Desktop 7.04!

A przynajmniej “można było” ściągnąć, gdyż Wielki Bill się zorientował i szybko usunął linki.

Ten jednak zachował się w nieskończonych zasobach Google Cache:  Get Ubuntu

Na wstępie zaznaczę, iż jestem przeciwnikiem phpBB (lista zarzutów jest na tyle długa, a ja na tyle leniwy, że nie przytoczę ich tutaj), a tym bardziej modyfikacji by Przemo. Ale cóż…

Niedawno na jednym forum zauważyłem sporo kont utworzonych przez body (linki stron WWW kierowały głównie do pornografii). Forum stworzone na bazie Przemo phpBB i zabezpieczone mechanizmem CAPTCHA. Zabezpieczenie okazało się zbyt słabe.

Jest kilka możliwości wzmocnienia mechanizmu autentyfikacji. Można na przykład poprocić użytkownika przy rejestracji aby wpisał w dane pole konkretne słowo, a następnie sprawdzić jego poprawność. Jeszcze lepiej wykorzystać zamiast stałego słowa prostej operacji matematycznej czy podobnych rozwiązań.

W blogu http://psavel.jogger.pl/2007/01/22/phpbb-vs-spamboty/ pojaw iła się metoda opierająca się na lekkiej modyfikacji CAPTCHA. W skrócie polega to na tym, aby użytkownik przed (lub po) literami captcha wpisał inny, odgórnie ustalony i podany w instrukcji znak. Autor podał dokładną instrukcję krok po kroku jakie zmiany należy wprowadzić do skryptów phpbb.

Okazuje się jednak, iż modyfikacja przemo używa innego mechanizmu captcha. Oto lista zmian, które należy dokonać:

1. Szukamy w pliku includes/usercp_register.php:

if ( ( strtolower($HTTP_POST_VARS[‘reg_key’]) != $anti_robot_row[‘reg_key’] ) || !$anti_robot_row[‘reg_key’] )

i zmieniamy na na przykład (dodajemy ‘X’):

if ( ( strtolower($HTTP_POST_VARS[‘reg_key’]) != ‘x’.$anti_robot_row[‘reg_key’] ) || !$anti_robot_row[‘reg_key’] )

2. W pliku templates//profile_add_body.tpl szukamy:

<span class="gen">{validation.VALIDATION}
<input name="reg_key" class="post" onfocus="Active(this)" onblur="NotActive(this)" maxlength="4" size="24" type="text" /></span>

i rozszerzamy pole tekstowe co najmniej o jeden znak (w tym wypadku o 4 znaki do wartości 8):

<span class="gen">{validation.VALIDATION}
<input name="reg_key" class="post" onfocus="Active(this)" onblur="NotActive(this)" maxlength="8" size="24" type="text" /></span>

3. Modyfikujemy opis, dodając instrukcję dotyczącą konieczności umieszczenia na początku dodatkowego znaku:

$lang[‘Validation_explain’] = ‘Żeby mieć pewność że nie jesteś robotem, wpisz wyświetlone cyfry.’;

na:

$lang[‘Validation_explain’] = ‘Żeby mieć pewność że nie jesteś robotem, wpisz wyświetlone cyfry. <strong>Ważne! Do kodu dołącz na samym początku literę "X"!</strong>’;

To chyba tyle. Jak na razie działa.

Niedawno miałem wątpliwą przyjemność spotkania z tym niebezpiecznych trojanem. Na szczęście “spotkanie” było w pełni kontrolowane. Ale do rzeczy. Wprawdzie nie śledzę historii tego programu, ale sporo wskazuje, że właśnie ukazała się kolejna jest wersja. Przypuszczenie opieram na fakcie, iż otrzymałem plik zarażony tym trojanem, który… był szczątkowo wykrywany przez programy antywirusowe!

Test przeprowadzany przy pomocy scannera online VirusTotal wykazał, iż tylko ClamAV i VirusBuster potrafiły prawidłowo rozpoznać Ardamex, kilka innych wykryło nieznane potencjalne zagrożenie, a większość - w tym wszystkie najpopularniejsze(!) - uznały zarażony plik za czysty! Testowy system to Windows XP SP2 z zainstalowanymi aktualizacjami z maja 2007.

Dopiero odpalenie zarażonego pliku w systemie (zaznaczam, iż było to specjalnie przygotowane środowisko testowe) wykazało obecność trojana. Zainstalowany w tym systemie darmowy (i raczej kiepski, choć popularny) antywirus avast! nie zauważył niebezpieczeństwa.

Infekcja systemu przebiegała w ciekawy sposób - w jej czasie został wygenerowany plik graficzny JPG. Możliwe jest, że korzystając z nieznanej powszechnie luki w Windows w obsłudze plików graficznych, zaraził on cały OS. Jeżeli atak przy pomocy spreparowanego pliku graficznego się potwierdzi, będzie to oznaczać kolejne ogromne zagrożenie dla użytkowników systemu Windows. Są to jedynie moje przypuszczenie, nie jestem obecnie w stanie ich potwierdzić z całą pewnością.

Apple jest znana z raczej porządnie napisanych programów, a tymczasem przytrafił się jej bubel w postaci nowej wersji przeglądarki Safari oznaczonej numerem 3.0. Jasno trzeba zaznaczyć, iż dotyczy to wersji beta, co więcej tylko na platformie Windows, co jest niewątpliwie względnie nowym doświadczeniem dla Apple.

Już w kilka godzin po pojawieniu się “publicznej beta” pojawiły się pierwsze exploity o charakterze krytycznym. Jeden z nich został opisany tutaj: http://larholm.com/2007/06/12/safari-for-windows-0day-exploit-in-2-hours/

Wiele innych błędów uniemożliwia normalna pracę. Przykładem jest problem pojawiający się w momencie napisania dowolnego znaku w polu tekstowym na stronie. Prezentacja w postaci filmiku tutaj.

Większość luk i błędów została już załatana, choć należy się spodziewać, że ich miejsce zajmą następne.

Apple chwali się, że w czasie kilku dni od pojawienia się przeglądarki w wersji dla Windows, została ona ściągnięta ponad milion razy! Aczkolwiek obawiam się, że takie “niestabilne milion razy” nie wpłynie pozytywnie na wizerunek firmy i pozycję przeglądarki na rynku. Kiedyś MS wydawał kiczowatą przeglądarkę w wersja dla MacOS, teraz sytuacja się odwróciła. Czas pokaże czy jest warto. Życzę Apple jak najlepiej.

Przeglądarka internetowa Safari począwszy od wersja 3.0 będzie wspierać system Windows.

Jest dostępna już wersja beta na stronie Apple: http://www.apple.com/safari/

Przypomnę, iż safari oparta jest na tym samym silniku jak Konqueror (domyśla przeglądarka w KDE). Pod wieloma względami jest podobna do Mozilla.

Jak na razie muszę z przykrością stwierdzić, iż moja strona nie działa poprawnie pod Safari 3.0 beta, choć z wieloma innymi stronami występują podobne problemy. Niemniej jednak czeka mnie trochę pracy…

Dean’s Code Highlighter jest pluginem do Wordpressa kolorującym kod źródłowy wielu różnych języków programowania. W tym celu wykorzystywana jest biblioteka Geshi.

Plugin jest raczej prosty, ale dobrze realizuje swoje zadanie.

Jednym z elementów, które nie przypadły mi do gustu jest włączenie/wyłączenie automatycznego numerowania linii: można zrobić to tylko globalnie i to ustawienie jest stosowane za każdym razem. Lepszym rozwiązaniem jest możliwość załączania numeracji dla każdego kodu z osobna, a dodatkowo wyboru od której wartości zaczynamy numerować.

Zaprezentowane przeze mnie rozwiązanie dopuszcza wykorzystanie dodatkowego atrybutu lines="X", który wymusza (nawet wbrew globalnym ustawieniom) numerowanie linii, przy czym pierwsza linia będzie miała numer X.

Przykład:

<pre lang="c" lines="65">if(debug) {
  cout << "Hello World" << endl;
} </pre>

w rezultacie otrzymujemy:

  1. if(debug) {
  2.   cout << "Hello World" << endl;
  3. }

Patch na Dean’s Code Highlighter v1.1: Dean’s Code Highlighter 1.1 patch (add line numbers)

W pluginie do Wordpress All in One SEO Pack znajduje się kilka drobnych i poważniejszych błędów. Opiszę jeden z nich, dotyczy aktualnej wersji 0.6.2.1.

Włączenie opcji Autogenerate Descriptions powoduje, że wtyczka będzie próbować wygenerować opis (META Description) strony na podstawie jej treści. Precyzyjniej - przekopiuje określoną liczbę słów (domyślnie 25) z treści do opisu. Poważny problem powstaje, gdy na stronie występuje znak cudzysłowia, gdyż nie jest on przez plugin filtrowany.

Najłatwiejszym rozwiązaniem jest zmiana znaku cudzysłowania na inny. Dodajemy w funkcji wp_head() w linii 70:
$description = str_replace('"', ''', $description);

Bez wielkiego rozmachu odbyła się kilka godzin temu premiera Fedora 7. Powoli jednak serwery zaczynają odczuwać wzrastające obciążenie.

Zmiany w stosunku do poprzedniej wersji mają charakter ewolucyjny:

  • GNOME 2.18, KDE 2.5.6
  • poprawione wsparcie dla kart graficznych 3D
  • wreszcie doczekaliśmy się oficjalnej obsługi Firefox 2
  • wirtualizacja KVM
  • obsługa Sony Playstation 3 !