10 komentářů k článku Java na webovém serveru: autorizace a autentizace:

  1. piskot

    Sifrovani?

    Dekuji za clanek – serial.
    Zajimalo by me, jak zabezpecit heslo – aby se posilalo sifrovane (hash). Bude nekdy rec i o https?

    1. Palo

      Re: Sifrovani?

      1) To su zname principy ktore nesuvisia nijako s Javou maximalne Javascript.
      2) Ak chcete mat prihlasovaci formular tak proste uzivatela presmerujte na prihlasovaciu stranku ktora je v HTTPs a tam daje obycajny submitovaci formular. Heslo vam pride cez kryptovany kanal takze sa neda odsledovat cestou po sieti ale server ho vidi cleartext. Hned pri vstupe do servra ho HASHujte (sha256). A potom mozete porovnavat a ukladat napriklad do databazy.
      3) Cela problematika je radovo vacsia a komplikovanejsia. Mozete pouzivat rozne druhy prihlasovania (Basic, Form, Token, …). Mozete pouzivat kryptovanie cez HTTPS ale iba po predradeny server ktory koli vykonu zabezpecuje kryptovanie a dalej je uz nekryptovane. Mozete heslo porovnavat voci DB, LDAP-u inemu centralnemu ulozisku. Uxistuju frameworky ktore vam mozu pomoct. Jednak standardny JAAS alebo napriklad spring-security (acegi). Bezpecnost v standardizovanom WEB containeri. No a k tomu este mate specifika pre rozne komerne a free aplikacne servre.

      Takze si asi budete musiet nastudovat nejaky poriadne dlhy manual.

    2. František KučeraAutor příspěvku

      Re: Sifrovani?

      O hashování hesla na straně klienta jsem psal třeba tady: Ověřování uživatelů na webu. Je to i se zdrojákem, ale v PHP. Přiznám se, že v Javě jsem se tímhle zatím nezabýval – ono stejně, když to člověk myslí s bezpečností aspoň trochu vážně, tak je SSL nutností a pak už to hashování na straně klienta nemá takový efekt (víc práce než užitku). V Javě by to bylo potřeba řešit asi přes nějaký filtr nebo servlet.

      Ad „Bude nekdy rec i o https?“

      Nastavení HTTPS se liší server od serveru. Záleží taky, zda je javovský server přímo přístupný klientům, nebo je před ním ještě nějaká reverzní proxy (potom se SSL nastavuje na ní). Ve web.xml se dá šifrovaný protokol vynutit pomocí

      <user-data-constraint>
        <transport-guarantee>
          CONFIDENTIAL
        </transport-guarantee>
      </user-data-constraint>

      Ale k tomu je potřeba, aby AS věděl, zda se šifrování používá nebo ne – což při prostém nasazení reverzní proxy (třeba apache nebo nginx) neví – ServletReques­t.isSecure() bude vracet false, protože aplikační server komunikuje s proxy nešifrovaně. Jde to ošetřit přes „ventily“ (org.apache.ca­talina.Valve)
      http://code.google.com/p/xebia-france/wiki/SecuredRemoteAddressValve

        1. b*d

          Re: Sifrovani?

          Když použijete spring-security, tak si můžete kanál vynutit. Například jenom pro přihlášení nebo „přihlášený“ pouze https atp. Pak další bezpečnostní prvky jako je kopírování session, tj. zneplatnění té, kde jste byl anonimní je otázka jednoho řádku.

          1. František KučeraAutor příspěvku

            Re: Sifrovani?

            On se spíš ptal na ten CRAM, ne? To vynucení šifrovaného kanálu jde i bez Springu tou konfigurací ve web.xml.

Napsat komentář

Tato diskuse je již příliš stará, pravděpodobně již vám nikdo neodpoví. Pokud se chcete na něco zeptat, použijte diskusní server Devel.cz

Zdroj: https://www.zdrojak.cz/?p=3177