Paweł Goleń, blog

Informacyjnie: ostatecznie przeniosłem się na The Old Reader. Nie jest doskonały, ale jest wystarczająco dobry i wystarczająco podobny, by ta migracja nie była bardzo bolesna.

Trochę brakuje mi możliwości tagowania określonych postów i feedów dla określonych tagów, ale chyba się nauczę żyć jakoś z tym brakiem. Po prostu to, co do tej pory robiłem w Readerze, będę robił w BeyondPod (tak, tagowałem sobie podcasty, które chciałem posłuchać).

Do zrealizowania został mi jeszcze jeden pomysł – muszę napisać sobie malutką aplikację, do której będę wrzucał linki do podcastów, które chcę posłuchać, a która wystawi mi RSS dla BeyondPod. Chodzi o te sporadyczne przypadki, kiedy w normalnie “tekstowych” feedach pojawia się link do jakiegoś podcastu. Jest to jednak tak rzadka sytuacja, że jeszcze nie chciało mi się poświęcić jakiegokolwiek czasu na realizację tego pomysłu...

Oryginał tego wpisu dostępny jest pod adresem Riderolipsa

Autor: Paweł Goleń

Jedna i ta sama ścieżka GPS. Rezultaty:

Nad informacją o wysokości pastwić się nie będę, nie warto(?) Zastanawiam się jak poszczególne programy wyliczają pokonany dystans.

Oryginał tego wpisu dostępny jest pod adresem Dokładność

Autor: Paweł Goleń

Temat nie jest nowy, już kilka razy o tym wspominałem, ale zrobię to jeszcze raz. Co się stanie w trakcie wykonania tego zapytania:

SELECT * FROM tabela WHERE x=1 AND 1=1/0

Czytaj dalej...

Temat z gatunku tych prostszych, natomiast ponieważ czasami coś, co wydaje się oczywiste (pewnej grupie ludzi) wcale takie oczywiste nie jest (dla innej grupy ludzi), postanowiłem o tym napisać. Bezpośrednia motywacja to ostatnia rozmowa ze znajomymi na ten temat.

Czytaj dalej...

Jak wiecie do testów aplikacji webowych używam głównie Fiddlera. Oczywiście korzystam też z innych narzędzi, choćby Burpa, ale jakoś Fiddler wciąż wydaje mi się najwygodniejszy przy analizie/porównywaniu/wyszukiwaniu w zapisanych sesjach. Nawet gdy korzystam z Burpa, to często puszczam go przez Fiddlera (lub przez FiddlerCap do późniejszej analizy), bo tak mi wygodniej.

Od pewnego czasu, czyli od kiedy korzystam z Windows 8, Fiddler przestał mi się prawidłowo zamykać. GUI znikało, ale proces wisiał sobie w najlepsze i oczywiście zajmował również port, w związku z czym ponowne uruchomienie kończyło się błędem (informacja o zajętości portu).

Przez długi czas ignorowałem ten problem i po prostu dobijałem proces, ale w końcu postanowiłem zobaczyć w czym rzecz. Podejrzewałem, że problemem jest jakieś rozszerzenie, typowałem na winnego swój plugin. Okazało się jednak, że winny jest ktoś inny, konkretnie plugin x5s. Problemem są takie dwie linie:

TextWriter w = new StreamWriter(myDoc + @”\My Documents\Fiddler2\Scripts\” + fileName); TextReader r = new StreamReader(myDoc + @”\My Documents\Fiddler2\Scripts\” + fileName);

W Windows 8 nie ma katalogu My Documents, został zastąpiony przez Documents, więc zapisanie ustawień przy wyjściu kończy się niepowodzeniem i całość wisi. Zastosowałem szybką poprawkę polegającą na stworzeniu hardlinku z My Documents do Documents (narzędzie mklink) i irytujący problem ustąpił.

Oryginał tego wpisu dostępny jest pod adresem Nie ma to jak zaszyć ścieżkę w kodzie...

Autor: Paweł Goleń

Oryginał tego wpisu dostępny jest pod adresem Majówka

Autor: Paweł Goleń

Vaadin to dość ciekawy framework. Nie miałem z nim zbyt wiele razy do czynienia w sensie projektów polegających na testowaniu aplikacji napisanych z jego wykorzystaniem. Przyznam, że pierwsze zetknięcie (z Vaadin 6.x) było pewnego rodzaju wyzwaniem, głównie z uwagi na jego wyraźnie inną filozofię i mocno ograniczoną powierzchnię ataku.

Jeśli ktoś chce się zapoznać z Vaadin, proponuję przyjrzeć się tej demonstracyjnej aplikacji: http://demo.vaadin.com/sampler/. Wspomniane XSS można poćwiczyć w następujących kontrolkach:

  • Label,
  • CustomLaylout,
  • RichTextArea,

Dodatkowo uwagę trzeba zwrócić na:

  • tooltipy,
  • notyfikacje,

A najlepiej zacząć od tego: 11.8.1. Sanitizing User Input to Prevent Cross-Site Scripting.

Oryginał tego wpisu dostępny jest pod adresem Poćwicz sobie XSSy w Vaadin

Autor: Paweł Goleń

Na początek dwa materiały poglądowe:

Ja tylko chciałem przypomnieć, że już dawno, dawno temu zwracałem uwagę, że wpuszczanie zewnętrznego kodu do swojego serwisu to potencjalny problem. W tym kontekście “zewnętrzny kod” to kod serwowany z zewnętrznych serwisów.

Czasami można doszukać się rozwiązań technicznych, które odseparują “naszą” treść od tej “obcej” i ograniczą skutki zdarzenia, w którym ten “obcy” kod nagle zacznie robić dziwne rzeczy. Tu warto wspominać o iframe z atrybutem sandbox, może w końcu ta możliwość zacznie być szerzej wykorzystywana. Oczywiście nie w każdym przypadku iframe nadaje się do wykorzystania.

Mam nadzieję, że to zdarzenie (wcale nie wyjątkowe, ale z uwagi na pozycję Niebezpiecznika – dość medialne) zaowocuje podniesieniem świadomości odnośnie tego, że bezpieczeństwo serwisu to nie tylko “jego” kod, ale również kod wszystkich przyległości, z których ten serwis korzysta. Wszelkie reklamy, gadżety społecznościowe, biblioteki programistyczne serwowane z CDN mają/mogą mieć taki sam wpływ na bezpieczeństwo, a atak na nie może okazać się łatwiejszy.

Oryginał tego wpisu dostępny jest pod adresem Się porobiło

Autor: Paweł Goleń

Wyobraźmy sobie taką sytuację:

  • mamy urnę w której znajduje się 100 kul, 99 kul czarnych jedna kula biała,
  • losujemy:
    1. bez zwracania kuli do urny do czasu wylosowania kuli białej,
    2. ze zwracaniem kuli do urny do czasu wylosowania kuli białej,

Jaka jest wartość oczekiwana losowań w pierwszym i w drugim przypadku? Jak zmieni się sytuacja, jeśli w przypadku losowania ze zwracaniem wyciągamy 5 kul, sprawdzamy czy jest wśród nich kula biała i jeśli takiej kuli nie ma – kule są zwracane do urny.

Całość można policzyć, albo wykonać szybką symulację.

P.S. Generator liczb pseudolosowych wykorzystany przy tej symulacji nie musi być kryptograficznie bezpieczny :)

Oryginał tego wpisu dostępny jest pod adresem Na pobudzenie szarych komórek

Autor: Paweł Goleń

Ostatnio miałem okazję uczestniczyć w Akademii Jakości. Kilka prezentacji podobało mi się bardziej, kilka ciut mniej (ale mimo wszystko oceniam pozytywnie), na dwie prezentacje nie zdążyłem, żałuję przede wszystkim prezentacji Moniki. Na koniec okazało się, że moja prezentacja została bardzo pozytywnie oceniona, za co dziękuję. A w prezentacji tej starałem się pokazać, że testy bezpieczeństwa są ważne, ale niewystarczające, jeśli chcemy w sposób powtarzalny tworzyć “bezpieczne” aplikacje. W sumie chyba nic nowego dla kogoś, kto mojego bloga czyta.

P.S. Była jedna prezentacja, która zainteresowała mnie bardzo (temat), ale trochę rozczarowało wykonanie. Wyglądało to trochę tak, jakby dużo większa prezentacja była “na żywo” przycinana do określonego slotu czasowego. W efekcie czułem spory niedosyt...

Oryginał tego wpisu dostępny jest pod adresem Akademia Jakości

Autor: Paweł Goleń