Mozilla poprawi kompatybilność Firefoksa z silnikiem WebKit
Przeglądarki internetowe kuszą nas coraz lepszymi funkcjami i wygodniejszym interfejsem. Aplikacje te przechodzą także bardzo poważne zmiany pod maską, które w wielu przypadkach są niezbędne do zapewnienia odpowiedniego bezpieczeństwa i zadowalającej szybkości działania. Tutaj najlepszym przykładem jest Firefox, który w tym roku najprawdopodobniej zmieni się nie do poznania. Tylko w ostatnich dniach Mozilla podjęła decyzję o dwóch istotnych zmianach: jej przeglądarka umożliwi emulację stylów CSS przygotowanych z myślą o silniku WebKit, dodatkowo zabezpieczy nas w lepszy sposób przed uruchamianiem nieautoryzowanego kodu. Niestety nie wszystkie tych planów można nazwać pozytywnymi. Niektóre są wymuszone tym, co dzieje się na rynku i powodują, że niebawem na placu boju pozostanie mniej zawodników.
Lepsze wsparcie dla specyficznych funkcji dostępnych w WebKit to ślepa uliczka - programiści będą tworzyć jeszcze gorszy kod.
Firefox korzysta z własnego silnika renderowania stron Gecko. Radzi on sobie bardzo dobrze, wspiera wiele nowoczesnych technologii webowych, zapewnia odpowiednie wsparcie dla HTML5 i CSS3. Niestety przestaje to wystarczać. Niektórzy twórcy stron internetowych wykorzystują w swoich projektach style przeznaczone dla silnika WebKit i Blink opatrzone prefiksem -webkit. Nie jest to rozwiązanie złe, ale nie jest też dobrą praktyką. Problem polega natomiast na tym, że zapominają oni o wsparciu dla innych przeglądarek – wszystko ze względu na pośpiech, cięcie kosztów, a także dominację Google Chrome. Z tej aplikacji korzysta już ponad połowa internautów, twórcy stron przestają więc zwracać uwagę na Firefoksa czy Internet Explorera.
Mozilla postanowiła znaleźć na to sposób już w ubiegłym roku. Wtedy to Firefoksie wdrożono emulację niektórych stylów z prefiksem -webkit, choć tylko dla pewnej określonej liczby stron. Sytuacja się jednak nie poprawiła i teraz w wydaniach nocnych Firefoksa 46 znaleźć można dodatkowe ustawienie (layout.css.prefixes.webkit), które odpowiada za włączenie emulacji na wszystkich stronach. Mozilla chce oczywiście zapewnić jak najlepsze doświadczenia swoim użytkownikom, ale dostosowywanie się do dominującej pozycji silnika WebKit nie jest niczym dobrym. Krok ten na pewno nie zachęci twórców stron do pisania lepszego kodu, teraz będą oni mogli świadomie używać funkcji specyficznych dla wspomnianego silnika, bo przecież fundacja i tak zadba o ich obsługę.
W^X zabezpieczy przed przepełnieniem bufora.
Znacznie lepsze informacje są związane z bezpieczeństwem. W wydaniach nocnych pojawiło się W^X (W xor X), czyli technika znana choćby z systemów OpenBSD. Dzięki niej strony pamięci używane przez program są definiowane jako zapisywalne lub do wykonywania, ale nigdy nie przyjmują obu tych stanów. Dzięki niej możliwe jest zmniejszenie ryzyka ataku wykorzystującego przepełnienie bufora lub stosu: napastnik nadal może wstrzyknąć złośliwy kod, ale nie zostanie on wykonany. Zamiast tego aplikacja ulegnie zamknięciu. Implementacja tego mechanizmu wiąże się z niewielkim spadkiem wydajności w przypadku wykonywania kodu JavaScript (około 1-4%), ale za to znacznie zwiększa bezpieczeństwo użytkowników.