Wpis z mikrobloga

#jd #angularjs

Mirki, co ja odkryłem to ja nie xD
Tutaj jest lornetka: http://en.jd.com/product/790211.html
Jest przycisk "Buy now" zamiast "Add to Cart". Przez to nie można dodać go do koszyka (żeby dodać jakiś zapychacz i wykorzystać kupon).

Ale jest na to sposób. Klikamy PPM -> Zbadaj element -> Na przycisk "Buy now" -> w pole "class" zamiast "btn-buy-now" wpisujemy "btn-add-chart". Mamy przycisk "Add to Cart". Działający!

Jakieś #januszebezpieczenstwa robiły tę stronę. To chyba w #angularjs jest zrobione.

  • 59
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@mk321: Ty za to jesteś #januszemtworzeniastron, bo to nie jest kwestia bezpieczeństwa części front-endowej (i bez znaczenia czy siedzi tam angular czy inny framework) tylko tego, że nikt po stronie serwera nie zabezpieczył, że są przedmioty które można tylko "buy now" i że nie da sie doawac do koszyka, lub różne inne zabezpiczenia.. Ktoś tylko na interfejsie coś wyświetlał, nie walidując niczego na serwerze
  • Odpowiedz
@niepoprawnyhumanista: akurat tego nie zabezpieczył. Inne rzeczy (jak np. kupony) są przesyłane cały czas przez serwer (nawet jakieś tokeny pododawane).
Tu jest ciekawe bo akcja wykonuje się po samym sprawdzeniu klasy w HTML xD
Gdyby ktoś "tylko na interfejsie wyświetlał", to po odświeżeniu nie miałbym tego w koszyku. Tu jest logika biznesowa w JS (dlatego pomyślałem, że Angular, bo w nim tak się często robi i łatwo zapomnieć o przekazaniu
  • Odpowiedz
Tu jest ciekawe bo akcja wykonuje się po samym sprawdzeniu klasy w HTML

@mk321: nic ciekawego, po prostu zrobiony onclick na danej klasie i tyle (pewnie jQuery). Gdybyś znał angulara to wtedy już byś go wykluczył bo tak w angularze się nie robi :)

Gdyby ktoś "tylko na interfejsie wyświetlał", to po odświeżeniu nie miałbym tego w koszyku.


bzzt. otóż nie. jest takie coś jak localStorage oraz cookisy :) można wszędzie
  • Odpowiedz
@niepoprawnyhumanista: że jQuery jest ładowane i jak zrobić akcję po kliknięciu to przecież wiem xD

To uważasz, że jak sobie w koszyku dodam divy z itemami i kliknę "Checkout" to pójdzie takie zamówienie na serwer? xDD

Czy, że koszyk jest trzymany w cookiesach? To zaloguj się na jedno konto, dodaj coś do koszyka. Zaloguj się na inną przeglądarkę/incognito (żeby nie było cookiesów). I co? Koszyk dalej jest pełny, więc koszyk
  • Odpowiedz
@urban07: no nie... następny

Czy wiesz w ogóle co to jest JavaScript? Wina leży po stronie serwera, back-endu. Tam nie ma zabezpieczeń, walidacji. "nie powinno się stosować na stronach, gdzie w grę wchodzą pieniądze". Gdybyś wiedział jak wielką głupotę napisałeś zapadłbyś się pod ziemię.
  • Odpowiedz
@urban07: właśnie o to chodzi, że jak logika w JS, to coś zawsze może pójść nie tak.
Jakby był używany tylko do graficznych bajerów (jak kiedyś), to nie byłoby problemów ;)
  • Odpowiedz
@niepoprawnyhumanista: oczywiście, że wina leży po stronie serwera, że nie sprawdza, tylko przyjmuje dane od użytkownika bez walidacji. Błąd jest całego systemu (back i front), że koszykiem zajmuje się tylko Js.
  • Odpowiedz