daniel2
I'm new here

User-Passwort aus HTML-Formular verschlüsselt in die Datenbank eintragen?

Jump to solution

Hallo liebe FirstSpirit Community,

ich versuche das Passwort des eingeloggten Users per selbst geschriebenem HTML-Formular zu ändern.

Laut Dokumentation ist das über zwei <input>-Feldern mit dem selben name-Attribut möglich.

Hier mein Code (vereinfacht):

<fsi:setSchema schema='ds_ext'>

  <fsi:search resultName="usersList">

    <fsi:query>

      <QUERY entityType="users">

        <EQ attribute="mail" datatype="java.lang.String" value="${userEMail}" />

      </QUERY>

    </fsi:query>

  </fsi:search>

</fsi:setSchema>

<c:forEach items="${usersList}" var="userItem">

  <c:set var="user" value="${userItem}" />

</c:forEach>

     <form action="<%= request.getContextPath() %>/do.store" method="post">

          <fsi:setSchema schema="ds_ext">

               <fsi:ref value='user.userPassword' resultName='password' />

               <h4>Passwort ändern</h4>

               <label for="old_password">Altes Passwort *</label>

               <input type="password" name="oldpass" value="" id="old_password" />

               <label for="new_password">Neues Passwort *</label>

               <input type="password" name="${password}" value="" id="new_password" />

               <label for="new_password_again">Neues Passwort bestätigen *</label>

               <input type="password" name="${password}" value="" id="new_password_again" />

               <input type="hidden" name="pw_params" value="${password}" />

               <input type="hidden" name="schema" value="ds_ext" />

               <input type="hidden" name="url_ok" value="$CMS_REF(#global.node, abs: 1)$" />   

               <input type="submit" class="submit" value="> Speichern" />

          </fsi:setSchema>

     </form>

Leider wird das Passwort immer als Klartext in die Datenbank geschrieben, soll jedoch verschlüsselt werden (im Moment SHA, wird aber bald umgestellt auf md5 tomcat - falls das eine Rolle spielt)

Hatte schonmal jemand ein ähnliches Problem?

Bin um jeden Lösungsvorschlag dankbar.

Danke!

0 Kudos
1 Solution

Accepted Solutions
marro
Crownpeak employee

Hallo Daniel,

das StoreServlet aus DynamicDatabaseAccess bzw. FS Integration bietet leider keine Verschlüsselung von Werten an. Das Passwort müsste demnach bereits verschlüsselt dem Formlar übergeben werden. Man könnte dies z.B. so bewerktstelligen, dass Du beim onSubmit des Formulars ein JavaScript aufrufst, welches die beiden Passwortfelder ausliest und die Werte durch die entsprechenden verschlüsselten Werte ersetzt. Die Prüfung auf Übereinstimmung der beiden Eingaben funktioniert dann ja immer noch, nur wird sie halt auf dem verschlüsselten Wert durchgeführt, welcher dann auch in die Datenbank geschrieben wird.

Viele Grüße

Donato

View solution in original post

0 Kudos
2 Replies
marro
Crownpeak employee

Hallo Daniel,

das StoreServlet aus DynamicDatabaseAccess bzw. FS Integration bietet leider keine Verschlüsselung von Werten an. Das Passwort müsste demnach bereits verschlüsselt dem Formlar übergeben werden. Man könnte dies z.B. so bewerktstelligen, dass Du beim onSubmit des Formulars ein JavaScript aufrufst, welches die beiden Passwortfelder ausliest und die Werte durch die entsprechenden verschlüsselten Werte ersetzt. Die Prüfung auf Übereinstimmung der beiden Eingaben funktioniert dann ja immer noch, nur wird sie halt auf dem verschlüsselten Wert durchgeführt, welcher dann auch in die Datenbank geschrieben wird.

Viele Grüße

Donato

0 Kudos

Hallo Donato,

wär zu schön gewesen. 😉

Danke für die Antwort und den hilfreichen Lösungsansatz.

Viele Grüße,

Daniel

0 Kudos