20:04
11/6/2015

Bilety na pociągi PKP Intercity kupowane przez internet posiadają specjalny fotokod. To w nim zakodowane są dane dotyczące biletu. Konduktor, wyposażony w elektroniczny czytnik odczytuje fotokod z biletu i w ten sposób, łącząc się z serwerem PKP, dokonuje sprawdzenia autentyczności biletu. Cały system weryfikacji biletu przestaje jednak działać, kiedy kupujący bilet przez internet, w polu “imię i nazwisko” wprowadzi pewien niedozwolony znak…

“Za internetową rezerwację biletu, serdecznie przepraszamy”

Pasażerowie, którzy kupują bilety na pociągi PKP Intercity przez internet doskonale wiedzą, jak beznadziejny w obsłudze i nieintuicyjny potrafi być system rezerwacji biletów oraz ile dziwnych i denerwujących błędów posiada. Kiedyś np. nie dało się z niego skorzystać z poziomu telefonu komórkowego, ostatnio zaczął wymuszać zgodę na faktury elektroniczne, a szczytem wszystkiego jest codzienna półtoragodzinna przerwa techniczna, która uniemożliwia kupowanie biletów w godzinach 23:30 do 1:00. Wydarzenia z ostatnich miesięcy pokazują także, że systemem tym opiekują się osoby, które działają niezgodnie z dobrymi praktykami — wprowadzają zmiany wprost na produkcji. Mogli się o tym przekonać wszyscy, którzy kiedykolwiek kupili bilet na pociąg przez internet, bo PKP wysłało im jakiś czas temu w środku nocy potwierdzenie zakupienia biletu widmo, informując dodatkowo o rozpoczęciu transakcji finansowej. Wywołało to niemałą panikę.

Teraz, do kolekcji porażek internetowego systemu rezerwacji biletów dochodzi nowy błąd — wpisując znak “#” w polu “Imię i Nazwisko” podczas zakupu biletu online, system weryfikacji biletów dla konduktorów, używając terminologii PKP “doznaje paraliżu“. PKP w rozmowach z nami nie chciało wyjawić na czym dokładnie polega usterka. Potwierdziliśmy jednak, że jeśli na pokładzie pociągu znajduje się osoba z biletem wystawionym na “Imię Nazwisko #“, konduktorom przestają działać czytniki biletów.

eic-bilet

O błędzie najpierw dowiedzieliśmy się od jednego z czytelników (dane do wiadomości redakcji), któremu firmowy dział HR zakupił bilet, dodając do nazwiska po znaku “#” numer identyfikacyjny pracownika. W trakcie kontroli biletów, konduktor miał stwierdzić, że ten bilet “wywala” im system i nie mogą przez to sprawdzać biletów w całym pociągu.

Tak się zdarzyło, że kilka dni później, jedna z bliskich nam osób kupując bilet na pociąg PKP Intercity, przez przypadek także wpisała znak “#” w polu imię i nazwisko. Efekt taki sam jak w przypadku naszego czytelnika — elektroniczne sprawdzanie biletów (połączenie z bazą PKP) w tym pociągu nie było możliwe.

Z naszej analizy wynika, że problem ze sprawdzaniem biletów występuje tylko w jednym pociągu — tym, którego dotyczy “felerny” bilet. Nie jest to więc błąd, który globalnie paraliżuje pracę wszystkich konduktorów PKP; sprawdzanie biletów innych składów odbywa się bez przeszkód.

Jak więc konduktorzy “sprawdzali” bilety w pociągu, którego jeden z pasażerów dysponował biletem ze znakiem “#“? Ano stworzyli papierową listę, na której długopisem zapisywali:

  • Imię i nazwisko pasażera
  • Numer jego biletu
  • Numer miejsca siedzącego

Nie wystarczyło, jak zwykle, zaprezentować fotokodu na telefonie. Trzeba było “ściągnąć” z internetu cały obraz biletu. Ponieważ, jak możecie sobie wyobrazić, taka forma sprawdzania biletów zajmuje trochę czasu, sprawdzanie zakończyło się praktycznie tuż przed stacją docelową pociągu. Co konduktorzy robili ze stworzoną przez siebie listą? Jak weryfikowali czy spisane długopisem numery biletów faktycznie istnieją w bazie, do której nie mieli dostępu? Czy dyktowali listę przez radio do dyspozytora? Tego nie wiemy. Podejrzewamy jednak, że jeśli w składzie znajdowałby się ktoś, kto miał “podrobiony” bilet (hint: Photoshop), to sprawa nie wyszłaby na jaw

Oświadczenie PKP

Pytania w sprawie ww. błędu zadaliśmy rzecznikowi PKP. Oto odpowiedzi:

1. Czy opisany powyżej błąd został już usunięty, skoro był znany od 2 tygodni konduktorom?

Zmiana w systemie pojawi się najpóźniej dziś w nocy.

2. Co faktycznie powodowało wpisanie znaku “#” w polu imię i nazwisko (prosimy o o maksymalnie techniczne wyjaśnienie).

(Odpowiedź na to pytanie została pominięta przez PKP)

3. Jakie problemy powoduje brak listy pasażerów danego składu w przypadku konduktora pociągu Pendolino?

Sprawdzanie biletów zakupionych w systemie internetowym odbywa się za pomocą terminala mobilnego. Jeśli z jakiejś przyczyny (awarii, braku łączności, błędu systemu sprzedaży) nie ma możliwości dokonania pełnej kontroli wtedy konduktorzy mają możliwość kontroli biletów w trybie awaryjnym. Reasumując, jesteśmy przygotowani do kontroli biletów również w sytuacjach awaryjnych.

4. Czy na skutek braku (dostępu do) listy pasażerów możliwe jest wejście na pokład pociągu Pendolino i podróż bez zakupionego biletu?

(Odpowiedź na to pytanie została pominięta przez PKP)

5. Czy podróżujący, który wylegitymuje się biletem wygenerowanym samodzielnie (na losowe dane, numery, ale o zgodnych parametrach podróży — numer pociągu, godziny, itp.) ale nieopłaconym, może podróżować bez ryzyka wykrycia oszustwa? Jeśli nie — na jakim etapie oszustwo zostanie wykryte?

Konduktor weryfikuje bilet na kilka sposobów. Stąd możliwość wykrycia prób przejazdu bez ważnego biletu.

6. Czy system internetowej rezerwacji biletów PKP przeszedł testy bezpieczeństwa?

Nasze systemy są systematycznie sprawdzane pod kątem bezpieczeństwa zgodnie z najlepszymi praktykami.

PKP przesłało nam też następujące oświadczenie:

Osoba, która kupuje bilet przez internet zobowiązana jest mieć w pociągu ważny bilet w formie papierowej (czytelnie wydrukowany w formacie A4) albo zapisany na przenośnym urządzeniu elektronicznym (wyposażonym w ekran pozwalający na wyświetlanie obrazów o rozmiarze co najmniej 25 mm na 25 mm) oraz dokument ze zdjęciem potwierdzający tożsamość. (…) Osoba, która nie wpisze imienia i nazwiska lub wpisze dane niezgodne z dokumentem tożsamości musi liczyć się z koniecznością zakupu nowego biletu i ubiegania się o zwrot za przejazd w drodze reklamacji.
Co do zabezpieczeń elektronicznego systemu sprzedaży – korzystamy ze standardowych i oferowanych przez rynek zabezpieczeń. Regularnie sprawdzamy bezpieczeństwo naszych rozwiązań. Przeskanowaliśmy też system pod kątem wprowadzania niestandardowych znaków. Ewentualne błędy są na bieżąco wyłapywane i usuwane. Tak było też w przypadku znaku #.

Na czym faktycznie polegał błąd?

Niestety, PKP nie odpowiedziało na nasze pytanie dotyczące przyczyny błędu. Zanim zaczniemy rozważać możliwości, przedstawmy opis procedury elektronicznego sprawdzenia biletu, jaki pozyskaliśmy od znajomych konduktorów.

Do niedawna, konduktorzy przed startem pociągu otrzymywali papierową listę ze spisem pasażerów i numerami biletów. Teraz, z racji tego że bilet na pociąg przez internet można kupić nawet na 5 minut przed odjazdem składu, nie ma fizycznej możliwości, aby taką kompletną listę ktoś wręczył drużynie konduktorskiej. Weryfikacja biletów bazuje więc na połączeniu czytników przez internet z “bazą” PKP realizowanym w czasie rzeczywistym (dla każdego z biletów). Kiedy listy lub dostępu do bazy brakuje, konduktorzy nie są więc w stanie zweryfikować, czy osoba legitymująca się wydrukiem elektronicznego biletu (lub wyświetlająca go na telefonie) faktycznie go zakupiła, a nie np. wygenerowała w Wordzie. Problem ten zwłaszcza dotyczy pociągów Pendolino, do których jak wiadomo, nie powinniśmy móc w ogóle wejść bez biletu (grozi za to grzywna w wysokości 600 PLN).

Bilet PKP z wygenrowanym błędnym znakiem

Krótko mówiąc “uwalenie listy pasażerów” felernym biletem, tj. takim, który w polu imię zawiera niedozwolony znak, otwiera możliwości podróżowania za darmo kolejnym pasażerom. Pod warunkiem oczywiście, że w pociągu jest co najmniej jedno wolne miejsce. Bo jeśli wolnego miejsca nie ma, to konduktor w trakcie obchodu widząc 2 osoby na tym samym miejscu na pewno nabierze podejrzeń. Ale już zajęcie wolnego miejsca i zaprezentowanie konduktorowi podczas kontroli jakiegokolwiek obrazu biletu (byle zgodne były daty i numer pociągu, który przecież można pobrać przed podróżą ze strony internetowej) spowoduje brak weryfikacji biletu na miejscu, w czasie rzeczywistym i nie wzbudzi żadnych podejrzeń. Kondutor w przypadku awarii systemu jedynie przepisuje dane z biletu na papierową listę (tworzoną przez niego ręcznie, długopisem), a ponieważ nie jest w stanie sprawdzić ich poprawności, musi im ufać. Mamy oczywiście nadzieję, że lista ta jest następnie jakoś (drogą radiową?) weryfikowana. Mamy także nadzieję, że dyspozytor nie dyktuje konduktorowi nazwisk wszystkich pasażerów danego pociągu przez radio…

Jan Kowalski; DROP TABLE bilety_PKP #

Podsumowując, wszystko wskazuje na to, że znak “#” wprowadzany do bazy posiada pewne specjalne funkcje i psuje “logikę” systemu generującego listę (tabelę?) pasażerów dla danego składu. Sytuacja jest więc analogiczna do błędu SQL injection.

SQL injection xkcd

Obowiązkowy pasek z xkcd

PS. Jeśli komuś z was zdarzyłoby się otrzymać od HR bilet z dołączonym do nazwiska numerem pracownika poprzedzonym znakiem “#“, to wedle PKP nie powinno już być z tym problemu. Na wszelki wypadek jednak, przestrzegamy osoby z dwuczłonowym nazwiskiem, aby nie oddzialały poszczególnych członów znakiem “−−” :-)

A może wśród naszych czytelników jest ktoś, kto pracuje w PKP i potrafi wyjaśnić, na której dokładnie warstwie i z jakiego powodu znak “#” paraliżował pracę konduktorów? Oczywiście gwarantujemy anonimowość i zapraszamy do kontaktu!

Aktualizacja 9:00, 12 czerwca 2015
Ciekawy komentarz czytelnika “R”. Rozwijając ten wątek, może “#” wykorzystywany jest jako separator odbieranych danych po stronie czytnika? Ale czy wtedy nie działałby po prosty bilet tylko tej jednej osoby dla której serwer nagle zwraca złą (o 1 pole więcej) strukturę?

Przeczytaj także:

98 komentarzy

Dodaj komentarz
  1. Podobno jest idor przy parametrze z cena ;)

  2. Takich kwiatków można spodziewać się więcej, bo firmy szukają coraz większych oszczędności.

    Skoro informatykowi który ma być odpowiedzialny za kikadziesiąt/set komputerów proponują od 10 do 20 złotych netto :)

    Firma która zarządza systemem informatycznym w McDonald zaproponowała 15zł/h

    • Ważne żeby prezes wziął co miesiąc kilkadziesiąt tysięcy, reszta jest nie ważna w tym teoretycznym państwie.

    • @Marek
      Do kogo macie pretensję?
      W POlsce było tyle afer , złodziejstwa a “bul” uzyskał 48% poparcia , a “zielona wyspa” 32% więc albo polakom taki system odpowiada albo są już tak bardzo zmanipulowani “sukcesami rządu” . “krul” zamierza podpisać ustawę o podatku katastralnym – 1% od wartości nieruchomości, działki, a w mediach na ten temat cisza. Jak kowalskiemu przyjdzie zapłacić od 3tysięcy do 10 tysięcy złotych na rok (średnio, dom, mieszkanie, działka warta 300 tysięcy złotych do nawet 800 tysięcy ) to pobiegną z radością do urn. Politycy się z was śmieją, tworzą nową nazwę partii,a gęby te same , mam tu na myśli KUKIZA -współpracownik w PO – więc gdyby chciał to miał możliwość zmiany polski na lepsze ALBO nowoczesna.pl – zasilona członkami PO , prezesami banków itd.

      Powinniście się zjednoczyć – wspólnie utworzyć partię i promować ją na :niebezpiecznik.pl i na innych portalach naukowych – Wybrać ludzi normalnych – nauki , profesorów, ekonomistów, administratorów – komuś komu faktycznie zależy na bezinteresownej pomocy drugiej osobie ale nie głosować na ludzi promowanych w TVN – (Kukiza) bo nikt nie zaprasza do studia osoby które mogłyby zagrozić obecnemu układowi.

      Dodam że posłom, senatorom nie zależy na pensji ale na wpływach bo ten kto ma władze wygrywa przetargi, steruje rynkiem (ustawa o zakazie poruszania się starymi samochodami – w mieście) ma na celu zmuszenie obywatela do zakupu nowego samochodu – który zepsuje się po 2 latach a koszt naprawy nie wyniesie 700 złotych tylko 3 tysiące złotych

  3. System internetowy PKP potrafi też przyporzadkować dwum osobom to samo miejsce w TLK.

    • overbooking możliwy również w pociągach

    • Może tylko szczupłym… ;)

  4. Mi wystarczy jak popatrzę na kod systemu:
    https://bilet.intercity.pl/irez/js/irez.js

    • Tak to jest jak się mizernych studentów do roboty przyjmuje.

    • Najbardziej mi się podoba skrupulatność przy upewnianiu się, czy w ciągu nie występuje czwórka i bardzo liberalne podejście do szóstki:

      `(…) && wyraz.charAt(i) != “3” && wyraz.charAt(i) != “4” && wyraz.charAt(i) != “4” && wyraz.charAt(i) != “5” && wyraz.charAt(i) != “7” && wyraz.charAt(i) != “8” && (…)`

    • Było, było…

    • Oh my… Temu kto to pisał powinni kazać mieszkać w iglo zbudowanym z worków z ryżem połączonych smołą na dachu rozdzielni napięcia. @topic przerażające zachęcanie do złamania przepisów, brakuje chyba tylko linku do gotowego skanu biletu i torrenta z photoshopem

    • Najlepsza i tak jest funkcja sprawdzająca poprawność telefonu ^^

    • OMG a ja całe życie twierdzę, że nie umiem programować :D

    • fascynuje mnie zastosowanie “var miesiace”, najpierw ograniczające kalendarz do 7 miesięcy, a potem funkcja “dni_miesiac” zwracająca “OK” lub “NO” :D

    • Śliczne są te wcięcia w if’ach, widać artystyczną duszę autora kodu.
      A moja ulubiona funkcja to kompletnosc_danychUsera, taki mały kombajn, cudo :D. Widać tutaj nawet pewien wzorzec projektowy (wtf waterfall) bo jest on wykorzystywany później w pozostałych miejscach.

    • I jeszcze te definicje OK i NO w kazdej funkcji. Wszystko oczywiscie zgodnie z DRY…

    • Hahaha, leżę i kwiczę

    • wyczuwam nabino

    • D. Crockford by zszedł gdyby zobaczył ten kod.

    • **ać regexy!

    • http://thedailywtf.com/articles/practical-validateion

      Jak zobaczyłem miesiące to ogarnąłem że już widziałem coś takiego właśnie w podanym przez ciebie javascripcie – wygląda na to że miesiące to lista miesiący o pewnej ilości dni :)

    • Poprawny e-mail wg jednego z regex’ów (tak, są): $%*&$#|+_}{“:?><*)%&)*$%@…….com

  5. Niedawno kara za jazdę bez biletu z 650zł spadła do 130zł. :-)

    • “niedawno”? w 2008 na pewno już wynosiła ~130

    • Tak, niedawno bo pisałem o Pendolino, a tutaj jeszcze ze dwa czy trzy miesiące temu było 650zł.

  6. Współczuję kontrolerom.

  7. Co do PKP to jeszcze ciekawostka.. Z racji tego że mam spore “dojścia” na kolei to miałem okazję się przyjrzeć oprogramowanie na którym pracują dyżurni ruchu (taki dziennik elektroniczny, nic szczególnie niebezpiecznego), program jest napisany w Delphi 2009 i skompilowany w Debugu :D Nawet ikony programu z domyślnej delfiowej papraki nie zmienili.. Jak będę miał chwilę to sobie go zdebuguje ;)

  8. To jest nic. Nie ma to jak kupowanie biletu dla małżeństwa z dzieckiem (100% zniżki). Najpierw kupujesz bilet dla jednej osoby (miejsce losowane), potem podpinasz pod niego dziecko do miejsca obok (jak system stwierdzi że jest). Jeśli nie ma miejsca obok, biletu dla dziecka NIE DA SIĘ kupić. Jak masz szczęście, to kupujesz bilet dla drugiego rodzica i próbujesz losowania ponownie. Jeśli się nie uda -> 2 bilety do zwrotu (3 miesiące czekania) i albo próbowanie od nowa szczęścia w losowaniu, albo poddanie się i podróż do kasy.
    A już w ogóle zakazane jest kupienie najpierw biletu dla 2 osób dorosłych (zajmuje się od razu dwa miejsca obok siebie, więc dla dziecka nie ma miejsca w większości przypadków) :-)
    Co ciekawe, nawet jak udało mi się raz kupić bilet dla dziecka, to wywaliło mi miejsce 4 rzędy dalej. Dobrze że na kolanach może siedzieć. Tylko że w ten sposób odbiera się miejsce siedzące komuś, kto mógłby z niego skorzystać.

    • Przerabiałem to kilka dni temu. Skończyło się na wizycie w kasie w której procedura wyglądała w ten sposób, że sprzedawczyni dokonywała kolejnych prób zarezerwowania miejsca szukając w ten sposób czy jest wolne miejsce w pociągu (chodziło nam o miejsce na 2 osób dorosłych i 13 miesięcznego dziecka w przedziale dla podróżujących z dzieckiem).

      W kasie sprzedawca nie widzi, które miejsca w pociągu są zarezerwowane!

      Oczywiście mam tez bilety zakupione przez internet za zwrot których PKP pobiera 15% prowizji!

    • Bilety można zwrócić bez “prowizji” w formie reklamacji (przez formularz reklamacyjny na stronie PKP). Problemów mi nie robili, ale wszystko trwało 3 miesiące i trzeba się było przypominać.

    • Wysłalem reklamację przez formularz ale nie otrzymałem żadnego potwierdzenia, ze ta wiadomość gdziekolwiek dotarła. Wysłałem raz jeszcze i znowu brak potwierdzenia. Wysłałem zapytanie czy reklamacja dotarła i czy ktoś się nią zajmuje i nie otrzymałem żadnej odpowiedzi. Wziąłem i wydrukowałem druk reklamacji, wypełniłem, pojechałem do najbliższej kasy InterCity (30km) i złożyłem reklamację. W sumie wszystkie czynności związane z zakupem biletów na podróż z punktu A do punktu B zajęły 5-6 godzin. Dla 3 osób mam 6 biletów, zapłaciłem za tę przyjemność 500 zł i jak sądzę to jeszcze nie koniec.

    • Ja też reklamowałem i nic nie dostałem. Dopiero jak po miesiącu napisałem przez formularz kontaktowy (zwykły) “reklamację” od reklamacji, to się odezwali. Po kolejnych dwóch miesiącach rozpatrzyli sprawę.

  9. A mnie dziwi, po co PKP moje Imię i Nazwisko na bilecie internetowym, skoro nie ma tych informacji na bilecie kupionym w kasie?! Mało tego, bilet taki jest sprawdzany z dowodem osobistym! Przecież na bilecie kupionym w kasie może jechać ktokolwiek (z wyjątkiem biletu zniżkowego). Może ktoś mi to wytłumaczy?

    • InterRegio poszło jeszcze dalej i do kupienia biletu wymaga podania imienia, nazwiska i nr dowodu. Przydałyby się jeszcze odciski palców tak żeby już na pewno zidentyfikować podróżnego. Swoją drogą ładną bazę danych gromadzą w tym wątpliwej jakości systemie. Strach bilet kupować

    • Żeby nie było opcji, że wydrukujesz dwa razy jeden bilet, dasz 2 osobom i każda się bedzie zarzekać, że to ona kupiła bilet i jest prawowitym właścicielem.

    • To ciekawe jak sobie radzą z ew. podwójnymi biletami inne linie kolejowe za granicą, które nie wymagają podawania nazwiska na bilecie a konduktor w pociągu nawet nie woła biletu tylko sprawdza czy miejsce, na którym siedzi pasażer jest opłacone.

    • @Leon w Polsce to nie przejdzie, według regulaminu PKP konduktor nie może Cię wyrzucić z miejsca siedzącego, jeśli nie zjawiła się osoba która ma na to miejsce kupiony bilet.

    • dobre, wlasnie po co wyciagac dowod .. ani nie zapamieta ani nie przeczyta .. oto dowod ..

      .. poprosilem kiedys konduktora by darowal bo mi ten dowod, nie chce szukac, jest schowany itp .. po czym wkur.. na maksa po jego reakcji poprosilem by przypomnial mi jak sie nazywam, czy coz on tam zweryfikowal :) .. biedak dopiero czytal ..

  10. Hej! Natrafiłem na coś droga Redakcjo ( pilne i niebezpieczne :D )!

    Ostatnio dokonałem zakupów na stronie bardzo popularnego komputerowego sklepu internetowego(kom……ik.pl)
    Czekałem na maila potwierdzającego przesyłkę, a co dostałem ?????

    Dostałem maila od jakiegoś “nek1055@onet.pl”. Jedyna treść maila to załącznik(sprawdzałem czy nie ma jakiś javasriptów pod F12).

    Nazwa załącznika to “Przesylke przygotowala dla Panstwa.htm.zip”

    Postanowiłem zagrać w tę ”gierkę” , ściągnąłem zipa i nie rozpakowałem go, tylko zajrzałem co jest w środku………….

    A tam piękny plik “Przesylke przygotowala dla Panstwa.htm.exe” o wadze około 200kB
    Chcielibyście powiedzieć mi czy już się naraziłem i co robić… jak żyć? Powinienem skasować maila i zipa z dysku?

    Ewidentnie coś szczwanego tam jest, podzielcie się doświadczeniem. Co tam mogło dokładnie być?

    • Forward to niebezpiecznik

    • przerażające, jak wielu czytelników nie potrafi dostrzec odnośnika o nazwie “KONTAKT” na górze…

  11. Niedawno kontrolerzy bydgoskiej MZK wypisali mi mandat za rzekome nieposiadanie biletu. Bilet miesieczny oczywiscie byl zakupiony terminowo przez internet, tylko nie “zakodowany” na karcie. Niestety przez buga (w mennicy o ile dobrze zrozumialem) system MZK tego nie widzial, a ja potem stracilem jakies 2 godziny na odkrecenie tego. Ciekawe, czy mozna zadac od nich odszkodowania za stracony czas i nerwy? Dawniej kupowalo sie maly znaczek i na miesiac spokoj. Teraz wielka karta w kieszeni, ktora moze zadziala a moze nie? I najlepiej jeszcze wydruk z terminala, w razie gdyby nie zadzialala…

    • W Łodzi jest ten sam system, jednak wprowadzono mozliwość “kodowania” biletów przez kontroloera. Widocznie w Łodzi pasażerowie jacyć bardzej “awanturujący się” ;)

  12. Podczas pracy nad jakimś starym systemem komunikacyjnym znak “#” używany był do oddzielania pól informacji. Ciężko mi odnaleźć czy to był jakiś standard czy zwykła ułańska fantazja autora.

    • Myślę że to dalej popularny przypadek w wielu systemach gdzie zamiast stosowania biblioteki csv używa się prostego join z wybranym znakiem typu “;,|#^” zapominając o implementacji escapowania. Wszystko jest dobrze dopóki jedno z pól nie jest dowolnym tekstem. Takiem “implementacje” są jeszcze często podatne na występowanie znaku nowej linii

  13. Dawno dawno temu programowałem urządzenia komunikujące się przez port ISA. Różne specjalne znaki i sekwencje (m.in. #) wprowadzały urządzenie w tryb danych albo tryb programowania. Skoro nie da się sprawdzać biletów tylko w tym jednym pociągu to problem jest pewnie z handheldami a nie z aplikacją serwerową, ewent. z komunikacją między urządzeniami i aplikacją – np. urządzenia przestawi się w tryb “przypisywania kilku urządzeń do pociagu”.

    • Zdecydowanie. Skanery kodów, którymi się kiedyś bawiłem programowało się samymi kodami. Pierwszy lepszy przykład z internetu: http://www.idautomation.com/barcode-scanners/programming-manuals/SC7-USB-2D-Barcode-Scanner-Manual.pdf
      Znak komendy niezbyt wyszukany – tylda, jeśli androidowy Barcode Scanner nie kłamie.

    • kodpocz_OK_pl(kod) – ciekawe od kiedy kod 00-00[spacja] jest kodem pocztowym poprawnym.

    • To, że problem pojawia się dla konkretnego pociągu sugeruje że jest związany z pobieraniem listy biletów dla danego kursu.
      Być może aplikacja działa w ten sposób, że najpierw pobiera wszystkie bilety dla bieżącego przejazdu, a sama weryfikacja przebiega już offline. Lista aktywnych biletów jest zapewne przechowywana w pewnym miejscu jako ciąg znaków oddzielony seperatorami (czy to przy transmisji danych, czy może na urządzeniu w postaci pliku).
      Więc w pozostałych kursach bilet ten jest odfiltrowany na poziomie pobierania listy z bazy i problem nie występuje.

    • Zasysanie listy biletów w wersji offline jest bardzo prawdopodobne. Kiedyś kupiłem bilet (btw – bilet można kupić chyba maksymalnie 15 minut przed odjazdem, nie 5) właśnie w granicy tych 15 minut. Czytnik kontrolerski nie był go w stanie zweryfikować, a konduktor zapytał, kiedy bilet był kupiony. Jak usłyszał, że bardzo niedawno, to powiedział właśnie coś w stylu potwierdzającym, że nie ma go w ściągniętym pliku, czy jakoś tak.
      I przeszedł do procedury awaryjnej – czyli zeskanowania QRCODE, wpisania numeru biletu i trzycyfrowej obecnej na nim sumy kontrolnej.

  14. https://bilet.intercity.pl/przekierowanie.jsp
    Opera krzyczy
    Serwer ma słaby publiczny klucz efemeryczny Diffiego-Hellmana

    Ten błąd może wystąpić podczas nawiązywania połączenia z bezpiecznym serwerem (HTTPS). Oznacza on, że serwer próbuje nawiązać bezpieczne połączenie, jednak z powodu poważnego błędu w jego konfiguracji połączenie nie byłoby bezpieczne.

    W takim wypadku konfiguracja serwera wymaga naprawy. Aby chronić Twoją prywatność, Opera nie będzie używać niezabezpieczonych połączeń.

  15. @Jotgie
    Bilet kupiony w kasie jest wydrukowany na papierze z zabezpieczeniami (jak banknoty) i podrobiony byłoby łatwo zauważyć. Bilet internetowy za to drukuje się na zwykłym papierze i można go wydrukować w dwóch egzemplarzach. W takim przypadku konduktor musiałby biegać po pociągu w poszukiwaniu obu osób z tym biletem i w jakiś sposób ustalić, przez kogo został naprawdę zakupiony, a kto jest oszustem. Problem rozwiązuje zawarcie danych osobowych na bilecie, bo od razu wiadomo do kogo ten należy.

  16. Bilet z kasy jest na okaziciela oraz jest na PKPowskin druku więc jest zawsze prawdziwy. To w teorii. W sumie blankiety mają znaki wodne, hologram i ten ich specjalny papier. Czyli prawie jak banknoty.
    PS. Ja zawsze kupuję w kasie. Taki oldschool. Odkąd można płacić kartą zajmuje mi to mniej czasu niż zakup online. Tak, ja z tych co się z kasą nie liczą (służbowa) i kupują 10 minut przed odjazdem.

  17. Swego czasu, gdy w PKP górował system Kurs’90, wystawiając bilet miesięczny dla osoby która posiadała więcej niż 2 litery “nie ASCII” w Nazwisku, potrafiło tak zblokować kasę, że ponowne próby uruchomienia systemu, pogorszały sprawę :)

    • varchar za mały?

  18. Jeszcze chwila i zamiast Stuxneta będzie Pendonet :)

    • :D

  19. Wpisując znak # system doznaje paraliżu. Ała! Czy nie uczyli was w szkołach o stosowaniu imiesłowów przysłówkowych? Ze szkoły podstawowej pamiętam, że nie mówi się “Idąc do szkoły padał deszcz”. Proszę się dokształcić: http://pl.wikipedia.org/wiki/Imies%C5%82%C3%B3w_przys%C5%82%C3%B3wkowy_wsp%C3%B3%C5%82czesny

    • Za brak imiesłowów, wynikający z problemów technicznych, szanownych czytelników, uprzejmie przepraszamy.

    • To właśnie w tym dokładnie miejscu internetów, w powyższym komentarzu human spotyka się z technologią :-D

      Odnośnie tematu: Jak ktoś już wyżej zauważył, problemem może być wprowadzenie czytnika w stan programowania (czy to nr. przejazdu, składu czy co oni tam jeszcze potrzebują). Widocznie system oczekuje jakiegoś numeru po znaku # wg określonego wzorca, więc jeżeli podamy coś innego, czytnik (lub system) rzuca błędem i być może czeka na reakcję użytkownika, a nie oszukujmy się – ekipa kontrolerów PKP nie została przeszkolona do obsługi błędów :-D

      To tylko moja teoria :)

    • Touche :D

  20. jesli dobrze rozumiem to komunikacja terminala z serwerem jest via gsm.

    czyli zamiast wpisywac # potrzeba pare watow mocy wyjsciowej na dwoch zakresach czestotliwosci (ok, trzech, idziemy z duchem czasow itp)

    • A może to idzie przez R-GSM?

  21. No cóż, jak szaleć to szaleć :D Spróbujcie wpisać kod html iframe do stacji z/do na stronie pkp intercity.

  22. Przewozy Regionalne przy kupowaniu Regiokarty (daje 30% zniżki na wszystkie przejazdy przez 6 miesięcy albo rok) robi skan osobistego bez udziału kupującego.

    • Rozwiń swój komentarz.
      “robi skan osobistego bez udziału kupującego.” Czego skan robi?

      Dowodu osobistego? Od kilku lat kupuję REGIOkartę zarówno w kasie jak i przez internet i nigdy nie musiałem pokazywać żadnego dokumentu. Trzeba podać jedynie imię i nazwisko i adres na który mają wysłać gotową kartę.

  23. Najważniejsze w tym wszystkim to, że MOP zadziałał.
    Ciekawe, czy ktokolwiek w PKP zrobił cokolwiek z ręcznie wypisaną listą.

  24. Widocznie jeszcze nie zaktualizowali oprogramowania w oczach konduktorów i takie kwiatki wychodzą ;) https://www.youtube.com/watch?v=wTGpQeE8EBo

  25. >Czy dyktowali listę przez radio do dyspozytora? Tego nie wiemy.
    Tak dyktują dokładnie numer z biletu do dyspozytora a on w bazie sprawdza. Wiem bo miałem przypadek gdzie czytnik nie mógł się dogadać z moim biletem i trzeba było ręcznie sprawdzić. Wtedy konduktor wyciągną telefon i zadzwonił do dyspozytora.

  26. Znaczy się co? Totalitaryzm tak się rozwija, że nie można kupić biletu kolejowego bez podawania personaliów?

    • W kasie lub automacie żadnych swoich danych nie musisz podawać.

  27. Jednocześnie informujemy że imiesłowy mogą ulec zmianie ;)

  28. A może system po znaku # oczekuje koloru? W hexach, jak w css’ach. jak kolor nie jest w formacie #789acb, to wywala terminal?

    • koloru czego? To terminal a nie przeglądarka html

  29. Czy tak właściwie jest jakikolwiek powód, żeby te czytniki były online? A jakby tak wygenerować parę kluczy i zapisywać na bilecie numer pociągu, datę podróży, numer miejsca i podpis cyfrowy?

    • A jak ktoś kupi bilet (dostanie wtedy wszystkie dane) a potem go anuluje?

    • Po kiego w ogóle jakieś debilne bilety.
      Wystarczyło by przecież, żeby klient zapłacił wirtualna walutą np. Bitcoinem, tam nie ma problemów z przetwarzaniem mobilnych obrazków ;)
      https://bitcoin.org/en/

      PS: jazda pociagiem PKP do zagrożenie utraty zdrowia i życia, więc sprzedaż tych biletów PKP powinna być ścigana :D

  30. Ech, niewykryte błędy związane ze znakami specjalnymi w stringach to częsty problem choćby w aplikacjach biznesowych. Sam pamiętam że w życiu kilka naprawiałem – a tu ‘\’ dodawał ciąg obcych znaków, a tu program próbował przerobić napis na cyfrę i oczywiście wywalił przy spacji itd. Można to uniknąć jak się pamięta, żeby sprawdzić różne przypadki, no ale…

  31. Imie i nazwisko na bilecie? Ja zawsze podaje falszywe dane.

  32. Miałem kiedyś ciekawy błąd w DVD Grundiga – po wczytaniu napisów z polskimi znakami pojawiał się problem – polski znak był zjadany i zjadany był znak kolejny. Jeżeli polski znak był na końcu linii to zjadało znak końca linii i wczytywało kolejną razem z zegarem. Czyniło to praktycznie niemożliwym do oglądania film z takimi napisami ;-).

    • A to ciekawe. Przecież format DVD koduje napisy w postaci obrazka, a nie tekstu.

    • Nie napisał że to był film DVD tylko że na odtwarzaczu DVD :P zazwyczaj można na nich odpalić inne formaty wideo no i napisów też

  33. Tak narzekacie na PKP, to spróbujcie kupić bilet w Luftwaffe opss Lufthansie w którym występuje dwoje dzieci urodzonych w tym samym roku o tym samym imieniu i nazwisku (przypadek autentyczny – dwie kuzynki). Workaround polega na tym, że jedno dziecko nazywam Ewa a drugie Ewe a potem przez telefon próbuję robić zmianę. Czasami się to nie udaje i wówczas liczymy na nieuwagę personelu :)

    • Nie musisz liczyć na nieuwagę ani odkręcać – w większości linii lotniczych akceptowana jest niezgodność do 2 znaków w imieniu i nazwisku pasażera.

    • Drugi bilet kupuj na imię Evva

  34. Chodziło mi o dowód osobisty (słowo mi uciekło). Kumpel kupował na Wileńskiej w stolicy i mu skanowali.

  35. Ostatnio próbowałem znaleźć połączenie przy pomocy strony PKP – skończyło się na ciężkich bluzgach bo zwyczajnie widać ze kafelki przytłoczyły funkcjonalność… zmuszony byłem skorzystać z alternatywnej wyszukiwarki połączeń (przypadkiem znalezione dzięki Google sitkol.pl) – nie wiem kto zamawia i akceptuje rozwiązania informatyczne w PKP ale moim zdaniem jest to porażka na skale podobną do Pendolino.

  36. Odnośnie zakupu biletu dla dziecka:

    Co z dodatkową opłatą za wydanie w pociągu biletu dla dziecka do lat 4 (ulga 100%), biletu na przewóz rzeczy, roweru, psa skoro tych biletów nie mogę kupić w e-IC?

    Osoba, która posiada bilet na przejazd zakupiony za pośrednictwem systemu e-IC i dokupuje w pociągu bilet na przewóz rzeczy, roweru, psa lub bilet z ulgą 100% dla dziecka (-ci) podróżującego (-ych) z tą osobą, nie uiszcza dodatkowej opłaty za wydanie biletu w pociągu.

    • OK, ale miejscówki obok nie wykupisz w pociągu, bo już będzie zajęta przez kogoś innego.

  37. Ale po co męczycie się z PKP? Jako wysokiej klasy specjalistów na pewno stać was na wypasione bryki którymi dotrzecie wszędzie i kiedy tylko chcecie…

    • Jako specjaliści płacimy wysokie podatki, które idą między innymi na PKP, a tym samym mamy prawo wymagać by kontakt z tą instytucją nie był męką zarówno dla nas jak i dla ciebie Helmut.

  38. Ile PKP płaci swoim pracownikom IT?

  39. Błąd naprawiony! Nie da się zarejestrować z imieniem i nazwiskiem, które zawiera hash.

    • Serverside?

    • Nadal to samo. W kilku miejscach zablokowali po stronie serwera wpisanie błędnych danych, w kilku po stronie klienta, a gdzieniegdzie nadal tego nie sprawdzają. Kilka dni temu jechałem z biletem z # nadal było to samo, spisali tylko kupującego bilet. Jeśli ich “naprawa” na tym ma polegać to nie będę pisał szczegółów bo wolę do bólu im wpisywać te #, może coś dotrze. Jak tak bardzo chcą się pogrążać to pozwólmy im na to. Powinni poprawić cały system a nie dać studentowi dorabiać walidację. Tak na moje wewnętrzny interpreter traktuje # jako komentarz. Na czwarte pytanie sam ci odpowiem jak będę jechał pindolino.

  40. Niech jeszcze trochę przyoszczędzą i lepiej będzie nie pisać w CV żadnej z państwowych firm.

Twój komentarz

Zamieszczając komentarz akceptujesz regulamin dodawania komentarzy. Przez moderację nie przejdą: wycieczki osobiste, komentarze nie na temat, wulgaryzmy.

RSS dla komentarzy: