Pytanie:
Wszystkie zera (zera) w kodzie CVC karty bankowej
Vlad Nikiforov
2018-12-23 02:30:54 UTC
view on stackexchange narkive permalink

Moja karta bankowa niedawno straciła ważność. Mam nowy, a ten okazał się „szczęśliwy”: jego kod CVC to 000”.

CVC code is 000

Przez kilka miesięcy intensywnie z niego korzystałem, zarówno online, jak i offline, bez żadnych problemów - aż do dnia, kiedy wprowadziłem dane mojej karty na Booking.com. Wypełniłem formularz, kliknąłem „prześlij” - tylko po to, aby strona odrzuciła wartość w polu CVC i zażądała ponownego jej wprowadzenia.

Skontaktowałem się z pomocą techniczną. Potwierdzili, że kod CVC „000” jest niedopuszczalny, ponieważ uważa się, że nie jest wystarczająco bezpieczny (niestety nie jest to dokładny cytat, ponieważ rozmowa odbywała się w języku estońskim) i zasugerowali, żebym zamówił nową kartę bankową, w której kod CVC byłby inny z „000”.

Zaskoczyło mnie to. Jako były tester jestem przyzwyczajony do sytuacji, w których myślę, że zgłaszam błąd, a potem powiedziano mi, że to właściwie funkcja, ale tym razem było to nieco sprzeczne ze zdrowym rozsądkiem. Moja obecna praca jest również związana z bezpieczeństwem informacji i przychodzą mi do głowy trzy powody, dla których ich twierdzenie nie ma sensu:

  1. CVC to nie tylko przypadkowa liczba, istnieje pewien algorytm jego generowania. To z kolei oznacza, że ​​wszystkie wartości są równie prawdopodobne, a niektórych liczb nie można po prostu wykluczyć.
  2. Używałem już tej karty z wieloma innymi usługami online, w tym Amazon Web Services , którego bezpieczeństwo nie budzi wątpliwości.
  3. Nie bardzo rozumiem, co oznacza „niewystarczająco bezpieczny”. Czy „111” lub „999” są wystarczająco bezpieczne? Jeśli nie, co powiesz na „123” lub „234”? Ponownie, nie jest to coś, co sam wybieram, to coś, co otrzymuję od banku, a jeśli bank uważa, że ​​jest to bezpieczne, należy to traktować jako takie.

Ich odpowiedź była bardzo uprzejma, ale niezbyt pomocna: „ Całkowicie rozumiemy Twoją frustrację i bardzo nam przykro, że spowodowaliśmy Ci niedogodności. Przekazaliśmy Twoje uzasadnienie naszemu kierownictwu - odpowiedzieli, że 000 jest uważane za nieważne i jest to również sposób, w jaki banki wskazują, że karta jest fałszerstwem ”.

Przekazałem łańcuch pocztowy do mojego banku i poprosiłem o radę. Powiedzieli mi, że wydadzą nową kartę za darmo, co rozwiązało problem.

Jednak nadal się zastanawiam:

  1. Czy są jakieś oficjalne przepisy / recepty (z Visa / MC lub gdzie indziej) lub jakieś najlepsze praktyki dotyczące „zerowych” kodów CVC / CVV? Szczególnie ten fragment o bankach, które rzekomo używają 000 jako oznakę fałszerstwa - brzmi dla mnie jak kompletny nonsens. Próbowałem googlować, ale nic nie mogłem znaleźć.
  2. Z praktycznego punktu widzenia, jak rozsądne jest odrzucanie wartości „000” jako niepewnej? Powyżej wymieniłem moje obawy, ale może czegoś mi brakuje?

Aktualizacja : Trudny wybór odpowiedzi do zaakceptowania ... Podobał mi się odpowiedź od Alexandra O'Mary - jest szczegółowa i na temat. Najnowsza wersja odpowiedzi Harpera również wydaje się bardzo rozsądna. Jednak w końcu zdecydowałem się przyjąć odpowiedź Zoey - wydaje się ona najbardziej trafna, ponieważ oprócz wszystkiego innego rzuca też trochę światła na wewnętrzne aspekty hotelarstwa.

Dzięki wszystkim za odpowiedzi i komentarze! Teraz mam zamiar ponownie skontaktować się z obsługą Booking.com i nalegać na rozwiązanie tego problemu. Poinformuje Cię o wyniku.

Aktualizacja 2 : Po kilku miesiącach prób skontaktowania się z obsługą Booking.com oficjalnie się poddaję. Nie poszedłem dalej niż niezliczona liczba zgłoszeń do pomocy technicznej, które nie zostały nawet potwierdzone, nie wspominając o tym, że otrzymałem reakcję, i kilka telefonów, w których wyjaśniłem sytuację i otrzymałem tylko e-mail w puszkach. trudne do rozwiązania ”. Podsumowanie: wsparcie Booking.com nie działa - chyba że Twój problem jest bardzo standardowy, nie zostanie rozwiązany ani przekazany do wyższej kadry zarządzającej.

Błąd nadal istnieje. Jestem teraz pewien, że to nic innego jak błąd oprogramowania, ponieważ kod CVC „000” jest doskonale akceptowany po dodaniu nowej karty, ale nie działa, gdy próbujesz zaktualizować wygasłą (lub w inny sposób nieprawidłową kartę). Oto procedura powtórzenia:

  1. Utwórz nową rezerwację wymagającą natychmiastowej płatności.
  2. Wprowadź nieprawidłową kartę (wygasła lub zablokowana).
  3. Gdy system wysyła powiadomienie, że karta nie może zostać przetworzona, wybierz „aktualizuj dane karty” i wprowadź dane ważnej karty z kodem CVC 000.

Oczekiwany wynik: dane karty zostaną zaakceptowane do dalszego przetwarzania.

Rzeczywisty wynik: wprowadzony kod CVC zostaje odrzucony, a okno dialogowe informuje, że kod CVC nie został wprowadzony.

Twoje rozumowanie jest całkowicie poprawne, to jest długie i krótkie.Wygląda na to, że „booking.com” zatrudnia paru kretynów (założę się, że to nie była decyzja inżynieryjna).
„odpowiedzieli, że 000 jest uważane za nieważne i jest to również sposób, w jaki banki wskazują, że karta jest sfałszowana” Chciałbym wiedzieć, dlaczego bank wyprodukował sfałszowaną kartę z 000 na niej
@MikeCaron Chociaż bank nie zrobiłby sfałszowanej karty, może mieć powód, aby zrobić celowo nieważną kartę, tak jak filmy potrzebują celowo nieprawidłowych numerów telefonów.
To jest w porządku i całkowicie nie ma związku z cytatem, na który odpowiadałem.Przykładowe karty (jak sugerujesz) to nie to samo, co podróbki.Osoba twierdząca, że „bank to zrobił”, sugeruje, że w jakiś sposób bank jest w stanie sprawić, by karta miała numer 000 dla jej CVV, co byłoby niemożliwe, gdyby bank również nie okazał karty.Być może fałszują karty innych banków ...
@Jérôme, mógłbym (karta została dezaktywowana przy ponownym wydaniu), ale jestem ciekawy, czego dokładnie spodziewasz się zobaczyć po drugiej stronie :)
Jako szalona spekulacja, booking.com miał błąd polegający na tym, że kod nie mógł odróżnić kogoś, kto wprowadził 000, a kimś, kto zostawił puste pole.Zamiast poprawiać go poprawnie, odrzucają 000 jako CVC.Programator powinien zostać zwolniony, ale nie masz takiej możliwości.Jak widzę, możesz skorzystać z usług innego sprzedawcy hoteli lub zadzwonić do swojego banku i zgłosić zgubienie / kradzież karty.Wydadzą nową kartę z nowym numerem.Przy odrobinie szczęścia CVC nie będzie 000
Co jest warte, „sposób, w jaki banki wskazują, że karta jest fałszerstwem” * może * być zniekształconą / źle sformułowaną formą próby wyrażenia, że tak banki * rozpoznają niektóre * fałszerstwa (które są na tyle leniwe, by nie zawracać sobie głowyprodukując mniej specjalnie wyglądający numer).
Nienawidzę tego mówić, ale odpowiedź @Harper's jest prawdopodobnie poprawna.Brzytwa Ockhama powinna mieć tutaj zastosowanie;Odpowiedzi Zoey i Alexandra są wiarygodne, ale ostatecznie po prostu przeszczepiają wymyśloną logikę na prosty błąd oprogramowania.Sytuację pogarsza fakt, że nikt, z kim kiedykolwiek mógłbyś porozmawiać na linii obsługi klienta, nie wiedziałby nic o projekcie zaplecza systemu, ani nawet nie mógł mieć nadziei na skontaktowanie się z kimś z zespołu programistów internetowych, nawet gdyby chciał.
drobny dzióbek: fakt, że CVC jest obliczany za pomocą deterministycznego algorytmu, nie wystarczy, aby pokazać, że wszystkie wartości są możliwe i równie prawdopodobne.
@WesSayeed, Zgadzam się, że to prawdopodobnie błąd, przekształcony w funkcję przez uparte i leniwe zarządzanie.Dlatego spróbuję jeszcze raz i nalegam na naprawienie tego.
@VladNikiforov Jeśli nie chcą tego naprawić, po prostu napisz tę historię na odpowiedniej stronie (np. Medium.com), a następnie udostępnij ją w odpowiednich mediach społecznościowych (np. / R / programowanie na reddicie).Kwota zawstydzania booking.com z powodu ich niekompetencji zmusi ich do naprawienia tego problemu.
* Amazon, którego bezpieczeństwo nie budzi wątpliwości * - co?Pracujesz w tym sektorze?
@Mazura, Prawdopodobnie powinienem był być bardziej szczegółowy - miałem na myśli AWS.Nie mam doświadczenia z resztą Amazona, ale AWS nigdy nie budził wątpliwości.
Kod CVC jest uważany za poufny, podobnie jak kod PIN.Ponieważ udostępniłeś go tutaj, upewnij się, że masz nowy.
Niektóre nowe karty mają dynamiczne CVV (DCV), zmieniające się mniej więcej co pół godziny ... Jeśli masz taką kartę i pojawia się 000, po prostu poczekaj, aż pojawi się następny CVV.
Skontaktuj się ze swoją siecią kart (Visa / Mastercard) i złóż skargę, że witryna złośliwie odmawia przyjęcia Twojej ważnej karty.Visa ma na tyle duże argumenty, że muszą naprawić swój kod.Witryna wyświetla logo na podstawie określonej umowy, a bezpodstawna odmowa prawdopodobnie ją narusza.
@Luc Albo, co gorsza, była to decyzja leniwego / nieudolnego inżyniera.
Czy to oznacza, że booking.com odrzuca 1 na 1000 ważnych kart kredytowych - zakładając, że wszystkie CVC są równie prawdopodobne?
Zakładając, że bezpieczeństwo Amazon jest wadą, Amazon radzi sobie z ryzykiem, korzystając z ubezpieczeń i faktu, że może akceptować oszustwa do pewnego stopnia, o ile większość klientów jest zadowolona.Amazon używa nawet innej bazy danych ACID do obsługi zapasów, ponieważ może poradzić sobie z ewentualnymi błędami zapasów, zwracając pieniądze lub oferując coś innego swoim klientom.
Projektując maszyny Enigma, Niemcy nie pozwolili jej używać jakichkolwiek permutacji, w których list był mapowany na siebie, ponieważ nie wyglądało to na bezpieczne.Dzięki temu kryptografowie z Aliantów w łatwy sposób mogli szybko wykluczyć dużą liczbę kluczy kandydatów.Gdyby dozwolone były permutacje, które * wyglądały * na niepewne, jest całkiem możliwe, że Enigma nigdy nie zostałaby złamana.Jedyną rzeczą, która zabrania 000, jest zapewnienie atakującym mniejszego zestawu do odgadnięcia.
@MrWhite Zaktualizowano post, aby konkretnie wskazywał na AWS, a nie tylko na Amazon.Przepraszam, że nie wyjaśniłem tego jasno.
@Colin'tHart - to prawdopodobnie booking.com odrzuca nawet więcej, ponieważ rezerwacje hotelowe są obszarem o bardzo wysokim poziomie oszustw, a ich wykrywanie oszustw prawdopodobnie obejmuje znaczną liczbę fałszywych alarmów.Ale jest również możliwe, że niektórzy wydawcy kart kredytowych celowo nie wydają kart z 000 jako CVV, więc może nie być tak, że 1 na 1000 kart ma 000 jako CVV.
@Luc Byłbym absolutnie zszokowany, gdyby nie była to zła decyzja inżynieryjna / błąd, który menedżer później źle zrozumiał lub skłamał.Niewątpliwie istnieje wiele witryn, które traktują dane wejściowe jako liczbę całkowitą, a nie ciąg znaków, traktując „000” jako „0” i traktują „0” jako nieprawidłowe lub domyślne, które nie oznaczają niczego wprowadzanego.
Właśnie googlowałem, ponieważ jestem na końcu tej sytuacji.Nasz procesor płatności, który obsługuje transakcje, automatycznie odrzuca transakcję jako nieprawidłowy kod bezpieczeństwa, jest to główny procesor płatności.Argumentowałem za tym samym, jego kod nadany karcie, który można zweryfikować, ale jest to automatyczne odrzucenie.
Siedem odpowiedzi:
Zoey
2018-12-23 07:21:42 UTC
view on stackexchange narkive permalink

Alexander O'Mara udzielił poprawnej odpowiedzi, ale pracując w hotelu, który korzystał z serwisu booking.com, wydaje mi się, że mogę podać dodatkowe informacje na temat przyczyny odmowy podania CVV.

Każdego dnia hotel, w którym pracowałem, otrzymywał około 50 rezerwacji, jedna czwarta z nich byłaby dokonywana przy użyciu fałszywych danych karty kredytowej, a około 90% osób używających fałszywych danych karty kredytowej nie pojawiało się.

Spowodowało to wiele domysłów przy przypisywaniu pokoi, często próbowaliśmy odgadnąć, czy dana osoba pojawi się tylko na podstawie danych swojej karty kredytowej, a czasami bierzemy również pod uwagę imię i nazwisko, lokalizację, jak przez wiele dni, w których będą przebywać itp. Próbujemy również zadzwonić dzień wcześniej w celu potwierdzenia rezerwacji, aby te fałszywe rezerwacje powodowały minimalne zakłócenia w działalności.

Zablokowanie numeru CVV 000 to tylko rezerwacja. leniwa próba zmniejszenia liczby fałszywych rezerwacji. com. Niektóre inne numery CVV są również blokowane.

Powodem, dla którego booking.com blokuje CVV, a inne witryny tego nie robią, jest to, że inne witryny zwykle próbują natychmiastowo obciążyć kartę kredytową, podczas gdy booking.com przekazuje informacje tylko do hotele, które obciążają kartę kredytową w dniu przyjazdu.

Dlaczego do licha hotele nie autoryzują karty kredytowej?Mogliby zrobić zaledwie 1 USD (co jest używane do bezpłatnej weryfikacji próbnej) i natychmiast zatrzymać ten problem - a to nie spowodowałoby efektu ubocznego maksymalnego wykorzystania jakichkolwiek kart z niskim limitem lub debetowych.
Mniejsze hotele @aidanh010 często nie przejmują się tym, ponieważ albo nie są zaznajomieni z procesem, albo zakładają, że jest to zbyt duży wysiłek, aby uzyskać niewielkie korzyści
Czy twierdzisz, że odnosząca sukcesy platforma internetowa, taka jak booking.com, nie obsługuje wstępnego uwierzytelniania swoich klientów (czyli hoteli)?
Właściwie wydaje się to opcjonalne: https://partnerhelp.booking.com/hc/en-gb/articles/115003200353?utm_source=checkin&utm_medium=link&utm_content=preauthorisation
Ale czytając ten komentarz, dlaczego do licha oszust miałby podać 000 jako CVV?Skoro nie jest sprawdzane poza „000 wygląda podejrzanie”, dlaczego nie użyć 472 jako CVV lub jednej z pozostałych 999 możliwych liczb?
To wyjaśnienie dotyczące obsługi danych kart kredytowych przez booking.com rodzi dla mnie pytanie, czy ich proces jest rzeczywiście zgodny z PCI DSS, czy też je narusza.Można by argumentować, że nie dokonują autoryzacji i tym samym nie naruszają („Wrażliwe dane uwierzytelniające nie mogą być przechowywane po autoryzacji (nawet jeśli są zaszyfrowane).”), Ale wydaje się to bardzo złym sposobem radzenia sobie z wrażliwą kartą kredytowąInformacja...
@gnasher729: Cóż, nie wiedzieli.Z drugiej strony, po zamieszczeniu tej odpowiedzi ...;)
@Lucero Ta procedura jest standardem w podróży.Jeśli rezerwujesz lot, to linia lotnicza obciąża Twoją kartę, a nie strona podróżnicza, udajesz się do „biura podróży”, a nie do „sprzedawcy”.Hotele, rejsy, wypożyczalnie samochodów to to samo.Jedynym wyjątkiem jest sytuacja, gdy kupujesz nieprzejrzystą taryfę ze znaczną zniżką (Priceline, Hotwire, pakiety itp.).
IMO, błędne sprawdzanie poprawności, takie jak `if (! (Int (cvv) && checkCvv (cvv))) {return" To nie jest poprawne CVV "}` jest znacznie bardziej prawdopodobnym wyjaśnieniem, dlaczego zostało to odrzucone, niż jest to celowa decyzja dotycząca projektu zabezpieczeń.
To sprawia, że zastanawiam się, czy OP mógł wprowadzić inną wartość jako CVV i pomyślnie uzyskać rezerwację.Jeśli tak, musiałoby to zostać później naprawione w hotelu („… przepraszam, to była literówka_”).Jeśli nie, oznacza to, że później następuje silniejszy czek, przez co czek „000” jest nieistotny… No cóż, może z wyjątkiem sytuacji, gdy silniejszy czek jest usługą płatną, co jest również możliwe.Najprawdopodobniej nie komunikowaliby się o tym, gdyby tak było, jak sądzę.
@gnasher729: Nie sądzę, żeby 25% osób używających fałszywych numerów kart kredytowych do rezerwacji hoteli bez pokazania się to oszuści.
Dlaczego dokładnie oszuści rezerwowaliby hotele i się nie pojawiali?Czy w ten sposób można sprawdzić, czy karta kredytowa jest nadal ważna?Wydaje się głupie, jeśli i tak się nie naładuje, bo się nie pojawili.
Ciekaw jestem, czy miejsca unikają stosowania systemu opłat za 1 dolara, ponieważ kosztuje ich to pieniądze.Dostawca karty kredytowej zwykle pobiera co najmniej 3% za przetworzenie transakcji kartą.Jeśli pobrali opłatę w wysokości 1 USD i zwrócili ją, mogą otrzymać tylko 97 centów, a następnie zwrócić 1 dolara, tracąc 3 centy.Na dłuższą metę może to kosztować ich dużo pieniędzy, jeśli używane są fałszywe karty (ale przydzielono im 1 dolara, aby wyglądały na ważne).
@RichardDuerr to zależy, ile straciłeś na fałszywej rezerwacji?Przypuszczam, że za fałszywą rezerwację mogą stracić więcej niż 3 centy
@Patrice Tak, twierdziłbym, że tak zrobili (utrata pracy, możliwe drukowanie, czas itp.).Po prostu uprościłem to, aby ułatwić sobie rozumowanie.
Ta odpowiedź opiera się na założeniu, że 000 oznacza fałszywą rezerwację.Ale nie dostarcza żadnego uzasadnienia, w jaki sposób te dwa są połączone.Przeczytałem to jako „Dlaczego nosisz zielony sweter? Bo mama śpi”.Wymaga połączenia, na przykład „wszystkie moje swetry wydają dźwięki, kiedy się poruszam”
@Lucero, technicznie rzecz biorąc, jeśli booking.com w ogóle nie obciąża kart kredytowych, nie musiałby przestrzegać PCI DSS, ponieważ jest to prywatny standard.Ale zdecydowanie absurdalne jest przechowywanie CCV i przesyłanie go osobie trzeciej - na pewno nigdy nie skorzystałbym z takiej usługi.Jeśli nikomu nie przeszkadza radzenie sobie z kartami kredytowymi, mogą przynajmniej użyć Stripe i nigdy nie musieć dotykać danych
@aidanh010 Cóż, chyba dlatego, że, o dziwo, karty kredytowe i debetowe nie działają tak samo na całym świecie.Niedawno kupiłem coś od sprzedawcy w USA za pomocą karty debetowej w Argentynie.Następnie zamówienie zostało anulowane, a opłata nie została usunięta.Sprzedawca powiedział mi, że nie obciążył mojej karty, a jedynie wystawił na nią autoryzację.Moje banki poinformowały mnie, że karty debetowe w Argentynie nie autoryzują, a jedynie obciążają.Teraz moje pieniądze są w zawieszeniu, a 2 miesiące później nadal nie mogę ich odzyskać.
@gnasher729 Podejrzewam, że problem tutaj nie jest sprytny, zmotywowany oszuści, jeśli 90% wpisów z fałszywymi szczegółami nie pojawia się.000 to prawdopodobnie osoba, która jest leniwa.
Hotele @RichardDuerr normalnie nie pobierają opłaty za „sprawdzenie” karty;nałożyliby [blokadę autoryzacyjną] (https://en.wikipedia.org/wiki/Authorization_hold) na podstawowy koszt pobytu, zapewniając, że karta może zostać obciążona przynajmniej taką kwotą na koniec pobytu.Nie mam pojęcia, dlaczego żaden hotel nie zrobiłby tej prostej i powszechnej procedury.
Alexander O'Mara
2018-12-23 03:57:23 UTC
view on stackexchange narkive permalink

Jedynym słabym argumentem, jaki przychodzi mi do głowy, aby odrzucić taki kod CVV, jest to, że gdyby ktoś próbował brutalnie wymusić twój 3-cyfrowy kod, mógłby zaczynać się od 000 najpierw (ale czy odrzuciliby również 001?).

Z praktycznego punktu widzenia, jak rozsądne jest odrzucanie „000” jako niepewnego?

To nie jest rozsądne. Albo możesz doładować kartę podanym kodem CVC / CVV, albo nie. Nie ma dobrego powodu, aby odrzucać ten kod, ponieważ jest ważny i nie możesz być pewien, czy kody karty kredytowej są ważne, dopóki nie spróbujesz jej naładować.

Niestety, źle zaprojektowane dane wejściowe walidacja jest zbyt powszechna. Niektórzy programiści mają tendencję do zakładania, że ​​pewne wartości są nieprawidłowe bez sprawdzania specyfikacji lub niepoprawnego testowania jednostkowego walidacji danych wejściowych.

Oto niektóre przykłady:

  • Adres IP 1.1.1.1
  • Błędy sprawdzania wersji, takie jak "10" < "9", jeśli sprawdzany jest tylko pierwszy znak w ciągu
  • Nazwy ze znakiem innym niż alfa (jak apostrof w moim imieniu)

Nierzadko zdarza się, że pracownicy obsługi klienta odpowiadają na Twoje zgłoszenia błędów czymś w rodzaju „to nie jest błąd, to funkcja” nawet bez konsultacji z programistami.

`var cvv = parseInt (form.cvv);if (! cvv) markInvalid () `
Sprawa 1.1.1.1 jest jeszcze gorsza, ponieważ ludzie wiedzieli, że to adres IP i zdecydowali, że jednostronnie zdecydują, że karta sieciowa pozostanie nieużywana na zawsze.
@MikeCaron Niestety, nawet ja sam widziałem, jak popełniam ten błąd i nie łapię go, dopóki nie nadeszło wezwanie pomocy technicznej ... ale czy to rzeczywisty kod JS z Booking.com?
Innym częstym zjawiskiem są zbyt krótkie pola wprowadzania danych, takich jak adresy e-mail, adresy pocztowe, hasła.Adres e-mail może mieć do 256 znaków, ale widziałem wiele witryn korzystających z pola 30 znaków.20-znakowe pola hasła nie są rzadkością.
Możesz dodać aliasy e-mail (adres + alias@example.com) do listy przykładów, co jest bardzo irytujące, gdy ktoś decyduje się na dodatkowe bezpieczeństwo bez ważnego powodu
Pamiętam, że niektóre aplikacje miały poważne problemy z działaniem w systemie MacOS 10.4.10, ponieważ ich kod wymagał, na przykład 10.4.2, a nieprawidłowe sprawdzenie wskazywało, że wersja 10.4.10 była wcześniejsza niż 10.4.2.
@gnasher729 jest to również powód, dla którego nie było żadnego systemu Windows 9. Zbyt wiele programów sprawdza, czy system operacyjny to Windows 95 lub 98, sprawdzając, czy w nazwie systemu jest „Windows 9”.
@FelipePereira Za każdym razem, gdy trafiam na stronę internetową, która nie akceptuje aliasów e-mail, chciałbym, żeby był przycisk „uderz programistę, który napisał to w twarz”.
@MikeCaron Jeśli to jest rzeczywisty JS, to kusi mnie, aby spróbować obejść go w przeglądarce i sprawdzić, czy zaplecze pasuje do tej samej weryfikacji.(Zrobiłem to z powodzeniem w innych, ale podobnych okolicznościach ... czasami chcę po prostu wysłać plik poprawki .......)
Moja czteroliterowa nazwa TLD powoduje problemy z walidacją wiadomości e-mail na niektórych szczególnie głupich witrynach internetowych.
Ciągle myślę o Enigmie podczas II wojny światowej.Maszyna Enigma nie mogła zakodować litery jako siebie.Okablowanie maszyny tego zabroniło.To, co początkowo brzmi jak zdrowy rozsądek, jest w rzeczywistości luką, która została wykorzystana do złamania używanych algorytmów.https://youtu.be/V4V2bpZlqx8
Koleś, z nazwą taką jak twoja, zastrzyk SQL to twoja przyszłość :) Ale poważnie, to tylko leniwe kodowanie, to wszystko.Pierwszy komentarz podsumowuje to całkiem ładnie.
@c00000fd * "Wstrzykiwanie SQL to twoja przyszłość" * A nawet więcej w mojej przeszłości.: p (Na szczęście wydaje się, że wszystko się poprawia, ponieważ psuję mniej rzeczy, które wcześniej)
@EricDuminil AFAIK, przez „zbyt wiele programów” oznaczało po prostu „Javę”.
@ChrisCirefice Byłem żartem, który napisałem, ale nie mogę wykluczyć, że może to być również reprezentatywne dla rzeczywistego kodu
Uwielbiam adres e-mail „+” jako prawidłowy, ale często uważany za nieprawidłowy.Kiedyś firma zmieniła swoją walidację po tym, jak zarejestrowałem się już przy użyciu adresu xxxx + something@gmail.com.Nadal wysyłali mi wiadomości, których nie potrzebowałem, ale nie mogłem się zalogować, aby je wyłączyć.A ich odpowiedzią, gdy poprosiłem ich o pomoc, gdy nie mogłem się zalogować, było „po prostu zarejestruj się ponownie”.Kiedy w końcu zagroziłem, że pozwie ich za wysłanie SPAMU (ponieważ nie mogłem zrezygnować), w magiczny sposób znaleźli sposób, aby pomóc
@EricDuminil, ale lubiłem wierzyć, że nie ma wygranej 9 ', ponieważ 7 zjadło 9> :( Ty imprezujesz durniu.
Harper - Reinstate Monica
2018-12-24 01:42:44 UTC
view on stackexchange narkive permalink

To jest wyzwanie ramowe dla twierdzeń firmy. Losowa liczba z zakresu 000-999 jest bezpieczniejsza niż 001-998, odrzucanie wartości ją osłabia .

To błąd oprogramowania. Nie mogą tego przyznać.

Tylko jeden przykład: powiedzmy, że gdzieś na stosie używają języka z nietypowymi zmiennymi (tj. gdzie ta sama zmienna może zawierać 123.45, „spóźniony na obiad”, ciąg 0-znakowy, „nieokreślona „token itp.). Typowe jest pisanie tego:

if ($ CVC) # czy pole CVC jest obecne?

W języku bez typu, pusty ciąg ma wartość 0 ( false) zgodnie z zamierzeniami programisty, ale tak samo robi 000! Są na to lepsze sposoby.

W tym przypadku wiemy, że problem nie dotyczy publicznego interfejsu użytkownika, którego używasz, ale platformy zaplecza, którą oboje udostępniacie. Agent powinien otworzyć błąd w systemie biletowym.

Dlaczego więc twierdzili, co powiedzieli? Ponieważ zwykłe firmy bardzo niechętnie przyznają się do tego rodzaju strukturalnego błędu, który sprawia, że ​​wyglądają na niekompetentnych. Ale nie mogą też odesłać Cię z pytaniem „Nie wiem”, ponieważ ma to taki sam efekt. Muszą więc teraz powiedzieć ci coś, co wydaje się im do sprzedania.

Oczywiście, że jest źle; czego dowodzą wszystkie inne osoby, z którymi prowadzisz interesy i które nie mają z tym problemu. Ale spróbuj sam; wypróbuj konkurencyjną platformę rezerwacyjną i zobacz, jak to działa.

Ciąg „000” nie ocenia fałszu w Perlu, Pythonie ani w JavaScript.
Cóż, w JavaScript, jeśli porównasz „000” z fałszem („000” == fałsz ”) z zaledwie 2 znakami równości, zostanie to oszacowane jako„ prawda ”.
Bardziej prawdopodobne jest to, co mówi Mike Caron: `if (! To_number (input)) throw ()`.Liczba zero jest fałszywa zarówno w Javascript, jak i PHP.
@Birfl bez znajomości używanego języka, może to być absolutnie prawidłowa odpowiedź - zwłaszcza biorąc pod uwagę, że JavaScript jest tak dziwny.Spójrz na osobę, której nazwisko brzmi dosłownie „Null” https://www.wired.com/2015/11/null/
@Blrfl jasne, jeśli wymusisz wpisanie, aby był to ciąg.Ale jeśli tylko * zamierzasz * to zrobić, ale mylisz się w zrozumieniu, jak język analizuje ... A co z * skalarnym * '000'?
@WernerCD Jasne, jeśli używasz języka, który zachowuje się w ten sposób.Ta odpowiedź wyciąga wnioski oparte na faktach, których nie ma w dowodach i dokonuje uogólnienia na temat języków dynamicznie wpisywanych na maszynie, które nie są prawdziwe dla wszystkich z nich.Myślę, że właśnie namówiłem się na głos przeciw.
@Blrfl Myślę, że głównym celem jest to, że istnieją możliwości, w jaki sposób nowoczesny stos sieciowy może ŁATWO zepsuć się w skrajnych przypadkach - celowo lub przypadkowo.Istnieje kod na zapleczu, środkowym końcu, przednim końcu itp., Który WSZYSTKO może łatwo się zepsuć w niesprawdzonych przypadkach skrajnych.JavaScript jest najłatwiejszym winowajcą, na który można wskazać palcem - ale jak pokazuje mój przykład o Mr. Null (jego prawdziwe imię), trudno jest wskazać palcem JS, gdy może to być jakikolwiek krok.(Powiedziałbym, że „masz bs'd” to zła część odpowiedzi ... ale reszta jest ważna)
@WernerCD zaadresowano.Wymówka firmy jest po prostu niewiarygodna.O czym świadczy to, co * jest *: sukces OP w używaniu kodu CVC prawie wszędzie indziej.Po prostu nie zgadzam się z dosłownością Birfla, że wszystko w OP musi być traktowane jako absolutny fakt.Nie mam powodu wątpić.OP, ale firma po prostu się myli.
@Stefnotch dzięki za przykład.Zawsze uważam za zabawne, jak JS jest zepsuty nie do naprawienia.A potem robi mi się smutno, kiedy zdaję sobie sprawę, jak powszechny jest ten język.
@blrfl Booking korzystałoby z Perla (lub Javy).
@Isotopp Wiesz, jak dokładnie?
@Harper Myślę, że rozmawiamy obok siebie - nie ma wątpliwości, że firma jest „zła”.000 nie jest ani „niezabezpieczony”, ani „nieprawidłowy” - to nie jest kod PIN do wyboru, jest to technicznie poprawny kod CVV.Myślę, że różnimy się tym, że osoba z „działu pomocy” nie będzie wiedzieć, dlaczego skomplikowany stos oprogramowania odrzuca transakcję („000” == fałsz).Nie wydaje mi się, żeby to było nieoczekiwane, że help desk używa mumbo jumbo (000 to OCZYWISTA niepewność - tak jak wybrany PIN), aby wyjaśnić błędy, których nikt w łańcuchu nie rozumie.Dwie strony medalu - TECHNICZNIE powód, dla którego zawodzi i złe wyjaśnienie, dlaczego.
@Blrfl Mam informacje, które są zgodne.Perl, Java, może Scala.Przeczytaj ostatni akapit biografii Isotopp SE, aby dowiedzieć się, skąd on wie :)
Możliwe, że używają 000 jako wartości „flagi” dla nieprzypisanych numerów CVV, zamiast oddzielnej wartości „zerowej”, którą można zobaczyć w typowej bazie danych.Widziałem firmy z „architektami” baz danych, którzy bezmyślnie egzekwują reguły, takie jak _ brak wartości zerowych w bazie danych_;po zapoznaniu się z wymaganiami zdefiniowaliby kolumnę CVV jako „CHAR (3), NONULL”, co doprowadziło do takich źle napisanych obejść.
@JohnDeters Dlaczego byłoby bezmyślnie akceptować informacje o karcie kredytowej w bazie danych * z * CVV o wartości zerowej?Jeśli programiści piszą obejścia dla ważnych projektów, to ich wina, że wypompowuje kiepską pracę.Z pewnością widziałem wiele takich bezmyślnych prac.
@Iain, ponieważ czasami informacje są niedostępne.Nie wszystkie dane wejściowe przechodzą przez te same kanały weryfikacji.Faksowana kartka papieru, w której brakuje niektórych fragmentów danych, nadal wymaga przetworzenia.(Szczególnie dotyczy to danych PCI, których i tak nie wolno przechowywać; żaden racjonalnie myślący o bezpieczeństwie klient nie powinien dostarczać ich na papierze).
@JohnDeters Z przyjemnością dzielę różnicę i udostępniam tabelę „PendingCreditCards” :)
TTT
2018-12-27 22:49:50 UTC
view on stackexchange narkive permalink

Obecnie mam kartę kredytową, która prawdopodobnie ma gorszy numer CVV: 123

Jak dotąd nigdy jej nie odmówiono, ale z punktu widzenia bezpieczeństwa nie ” Nie podoba mi się to, ponieważ czuję, że może to być pierwsza rzecz, którą złodziej wpisałby, gdyby w jakiś sposób miał moje numery, ale nie moją kartę.

Z punktu widzenia strony internetowej, IMHO jest głupie celowo traktuj prawidłową liczbę jako nieprawidłową. (Tym bardziej, jeśli prawdopodobieństwo, że wystąpi taka sytuacja wynosi zaledwie 1 na 1000). Ponieważ witryna byłaby niezwykle łatwa do podjęcia próby uzyskania bardzo małej autoryzacji w celu potwierdzenia karty kredytowej lub nawet pozwolenia hotelowi na samodzielną decyzję, nie robię tego. t zgadzam się z argumentem „zapobieganie fałszywym liczbom”. Biorąc to pod uwagę, szybkie wyszukiwanie pozwala znaleźć sporo osób z tym samym problemem w różnych witrynach na przestrzeni lat. Więc nie jesteś sam. :)

Znam teraz twoje CVV :) Teraz po prostu muszę przeszukać publiczne karty kredytowe pod kątem ... uhh ... "_TTT_"?
hiburn8
2019-01-02 19:23:41 UTC
view on stackexchange narkive permalink

Trzeba przyznać, że istnieją dziesiątki tysięcy systemów rezerwacji hotelowych, do których booking.com musi przekazywać informacje, aby mogły je przetworzyć. Ufam, że booking.com może sobie pozwolić na dewelopera, który wie, że (000) == FALSE w JavaScript ... ale czy warto poświęcić im czas na zdiagnozowanie dokładnie tego samego błędu dla setek hoteli, które prawdopodobnie mają ten błąd w swoich systemy rezerwacji? Absolutnie nie.

Domyślam się, że jest to raczej rozsądna próba złagodzenia błędów przetwarzania danych, które zdarzają się na dalszych etapach łańcucha oraz w systemach, na które booking.com nie ma kontroli.

Jako sprzedawca obsługujący karty, jest on zobowiązany do przetwarzania ważnych kart, więc prawdopodobnie łamią tutaj zasady handlowców i mogą mieć problemy z VISA (lub kimkolwiek innym) ... ale prawie widzę logikę.

Oli
2019-01-02 19:00:48 UTC
view on stackexchange narkive permalink

Mam tutaj pewne problemy z prostą teorią „głupich błędów”. Nie mam wątpliwości, że osoba, z którą rozmawiałeś, wyciągała te bzdury z powietrza (jak to zwykle robią niektórzy pracownicy obsługi klienta). 000 jest całkowicie poprawne i nie jesteś pierwszą osobą w internecie, która wskazuje, że masz numer.

Ale jest tu skala, której ludzie nie doceniają.

  • Naturalna możliwość uzyskania 000 , ponieważ CVV wynosi 0,1%
  • Booking.com to firma, która w 2017 roku wygenerowała 8 miliardów dolarów przychodów, większość przy transakcjach kartą. To około pięćdziesięciu tysięcy średnich rezerwacji dziennie.
  • Booking.com musi zatem odnotować 000 50 razy dziennie. Do kwoty 25 000 USD stracono na Booking.com i znacznie, dużo więcej pod względem faktycznych rezerwacji, które nie zostały przeniesione.

Odrzucanie 0,1% transakcji kartą to 9 milionów dolarów utraconych przychodów. W [ bardzo znacznie mniejszych] firmach, dla których pracuję, analityka przepływu rezerwacji dość szybko oznaczałaby to w łańcuchu. W tego rodzaju firmach (pracuję stycznie w systemach rezerwacji wakacyjnych), doświadczenie koszyka jest najbardziej śledzoną częścią ... Bardzo trudno mi uwierzyć, że firma, która polega na analityce, przegapiłaby coś tak prostego jak weryfikacja karty

Więc jeśli przyjmiemy, że to nie może istnieć w tej skali, musimy zaoferować kilka sugestii, które ograniczają zakres ...

  1. To jest błąd lokalny.

    Wiele międzynarodowych koncernów przesyła pieniądze na konta lokalne i odbija je stamtąd w celach podatkowych. Może się zdarzyć, że Booking.com zezwala swoim lokalnym biurom na edycję kodu, aby poradzić sobie z lokalnymi dziwactwami (waluta, całe schematy płatności, które nie są globalne), a tym samym umożliwiając wkradanie się błędom, które nie istnieją gdzie indziej.

    Możliwość tego jest większa, ponieważ krajem docelowym jest Chorwacja. Tam używają Kuny, a nie Euro. Może istnieć wiele różnic księgowych i dostawców mechanizmów.

    To również wymaga pewnej odległości, aby wyjaśnić, dlaczego zostało to zignorowane. 0,1% pieniędzy pochodzących z Chorwacji będzie piekielnie dużo mniej niż dochód globalny.

  2. 000 nie jest tak powszechna jak 0,1%

    Jak wskazuje JPhi1618 w komentarzy, innym czynnikiem ograniczającym zakres jest to, że być może banki nie wydają zbyt często 000 . Nie ma powodu, dla którego nie mieliby tego robić i jak powiedziałem, istnieją dowody online, że inne osoby mają 000 kart, ale nie oznacza to, że jest to powszechne.

    Ja nie ma sposobu, aby to zweryfikować. Być może ktoś, kto ma dziennik przetwarzania karty zawierający CVV, może przeprowadzić analizę.

Mimo to, jeśli znajdziesz takie problemy, zgłoś je. Pomiń zespół obsługi klienta, ponieważ po prostu nie wiedzą, co się dzieje. Udaj się do dyrektora generalnego lub zespołu bezpieczeństwa, ponieważ obaj potraktują to dość poważnie z nieco innych powodów. 9 milionów dolarów utraconych przychodów to dobry motywator.

Uwaga: próbowałem zarezerwować hotel w Chorwacji, która nie jest krajem euro, więc twoje rozumowanie może być poprawne.
Myślę, że logika pokazuje, że gdyby ten numer 000 był tak powszechny, jak oczekiwano, Booking.com byłby zmuszony rozwiązać problem.Nie przegapią 1 na 1000 rezerwacji z powodu _bardzo_ banalnej rzeczy do naprawienia.Więc myślę, że większość firm obsługujących karty kredytowe nie używa 000, a bank OP, z którego korzysta, jest wartością odstającą.
@JPhi1618 wartość odstająca?Nie sądzę.Kilka lat temu miałem kartę VISA z dużego francuskiego banku z kodem CVC 000 (teraz wygasła).Używał go przez całe życie bez żadnych problemów.Nigdy nie próbowałem booking.com.Domyślam się: rzeczywiście tracą 0,1% swoich przychodów.Dotarcie do prezesa firmy o ugruntowanej pozycji jest prawdopodobnie trudne, zespół bezpieczeństwa by się tym nie przejmował, obecny stan nie jest naruszeniem bezpieczeństwa.
„Dotarcie do prezesa tak ugruntowanej firmy jest prawdopodobnie trudne”.Kiedyś tak było, ale wydaje się, że w pewnym momencie w ciągu ostatnich 15 lat modne stało się to, że menedżerowie są postrzegani jako praktyczni z problemami.Nawet jeśli nie możesz rozmawiać bezpośrednio, wiele z nich ma wewnętrzną ścieżkę eskalacji.Ale jeśli jest to coś lokalnego - jak się wydaje, że może - może być trudno przenieść to we właściwe miejsce.I ostatecznie apetyt na ustalenie 0,1% płatności do Chorwacji (używają kun, a nie euro, więc prawdopodobnie lokalnego kodu) będzie nieco mniejszy.
Luk
2019-01-03 15:42:46 UTC
view on stackexchange narkive permalink

Zauważ, że w niektórych programach do obsługi kart kredytowych kod CVC z magiczną wartością 000 oznacza, że ​​kod CVC został dostarczony, ale od tego czasu został usunięty (z powodu ograniczeń PCI). Prawdopodobnie to właśnie robi Booking i to wyjaśnia, dlaczego tego nie akceptuje.



To pytanie i odpowiedź zostało automatycznie przetłumaczone z języka angielskiego.Oryginalna treść jest dostępna na stackexchange, za co dziękujemy za licencję cc by-sa 4.0, w ramach której jest rozpowszechniana.
Loading...