• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed Przekazanie informacji do kontrolera o treści stanu JavaScript

Cloud VPS
0 głosów
133 wizyt
pytanie zadane 6 lipca 2017 w HTML i CSS przez Jonki Dyskutant (8,180 p.)
zamknięte 7 lipca 2017 przez Jonki

Posiadam w aplikacji webowej formularz rejestracji, który jest walidowany za pomocą JQuery. Oczywiście działa bezbłędnie. Jednak dla bezpieczeństwa zastosowałem drugą walidację w samej Java. Używam frameworka Spring.

Kontroler rejestracji wygląda tak 

@PostMapping("/register")
    public ModelAndView register(@ModelAttribute("registerDTO") @Valid RegisterDTO registerDTO,
                                 BindingResult bindingResult,
                                 ModelMap modelMap) {
        if(bindingResult.hasErrors()) {
           // jakiś kod
         }
  // jakiś kod

Walidacja w Java jest zrobiona na wypadek, gdyby ktoś specjalnie wyłączył w przeglądarce obsługę JavaScript i próbował się zarejestrować. Jednak podczas gdy JavaScript jest włączony to ta walidacja w Java jest niepotrzebna, więc chciałbym ją w jakiś sposób zawarunkować. Mój pierwszy pomysł to było dopisanie takiego kodu

<noscript>
     <input type="hidden" name="isJavaScript" value="false" />
</noscript>

i w kontrolerze mogę wtedy odebrać ten parametrem requestem i sprawdzić czy wartość jest false czy nie. Jednak ten sposób nie ma większego sensu, ponieważ użytkownik może zbadać element strony i go podmienić, a wtedy do serwera zostanie wysłana wartość wpisana przez niego. Czy jest jakiś dobry sposób na przekazanie do kontrolera informacji na temat stanu JavaScript?

komentarz zamknięcia: Walidacja na serwerze musi być.
1
komentarz 6 lipca 2017 przez Tomek Sochacki Ekspert (227,490 p.)
Podstawowa zasada - walidacja danych ważnych, podlegających dodaniu do bazy, danych wrażliwych itp. ZAWSZE odbywa się na serwerze! Jest to zasada bezwzględna!

Walidacja w JS, a dokładniej u klienta (np. poprzez walidację html5) to tylko dodatek, wg mnie bardzo ważny, ale nadal dodatek. Zadaniem walidacji w JS jest eleganckie poinformowanie użytkownika, że coś zrobił nie tak, np. źle wpisał adres e-mail, nie wypełnił wymaganego pola, wpisał znaki niedozwolone itp.

Niezależnie do JS trzeba wykonywać walidację serwerową, bez niej wcześniej czy później może spotkać Cię przykra niespodzianka i nawet rozwalenie bazy danych.

1 odpowiedź

+1 głos
odpowiedź 7 lipca 2017 przez zgrybus Pasjonat (24,860 p.)
No nie za bardzo. Walidacja na serwerze musi być. A co jak ktoś podmieni twój kod javascriptu?

Podobne pytania

0 głosów
0 odpowiedzi 156 wizyt
pytanie zadane 23 lipca 2017 w JavaScript przez Jonki Dyskutant (8,180 p.)
0 głosów
1 odpowiedź 152 wizyt
pytanie zadane 23 marca 2022 w Java przez Amakesh Nowicjusz (220 p.)
0 głosów
3 odpowiedzi 1,330 wizyt

93,460 zapytań

142,454 odpowiedzi

322,724 komentarzy

62,837 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Kursy INF.02 i INF.03
...