zabezpieczony formularz POST

0

Cześć,
czy istnieje jakiś framework który skutecznie "chowa" to co idzie w POST'owej metodzie z formularza do serwera (klient > serwer) ?
Mam zainmplenetowanego _csrf tokena i on dba o blokowanie wstrzyknięcia nieautoryzowanego POST'u ale dane nadal są widoczne.
Dzięki za podpowiedzi !
Dodam że sporo czytałem o KeyCloack'u ale stawianie osobnego serwisu nie wchodzi w grę , mam gotową aplikację web na tomcat 9 z hibernate i zabezpieczoną spring security.

4
  1. jak się wybrało czytelne dla człowieka sposoby transmisji (REST i ska), to tak się ma.
    Są oczywiście protokoły binarne, niesłusznie niedoceniane. Same w sobie nie służą absolutnemu ukryciu treści (od tego jest szyfrowanie), ale na pewno postać jest mniej czytelna.

  2. SSL, tfu skleroza, obecnie jako TLS jako bezpieczna "rura" do transmisji.

generalnie Twoje pytanie wg mnie nie w pełni jest zrozumiałe

7

Ale przed kim chcesz to chować? Jak masz HTTPS to nikt poza userem, serwerem i NSA nie będzie widział tych danych.

0

Np. przed zalogowanym userem żeby nie mógł sobie zmienć chociażby idGrupy jeśli nie ma do tego uprawnień
Przekazuje ajaxem @Bean ze strony jsp do @Controller'a :

<form:form id="1" modelAttribute="jakisBean">

<form:hidden id="idUser" path="idUser"/>

<form:hidden id="idGroup" path="idGroup"/>

form:form

</p> <script>
function save(){
$("#idUser").val(1);
$("#idGroup").val(2);
$.ajax({
type: "POST",
url: "saveEditUser.html",
data: $("#1").serialize(),
success: function (response) {
}
});
}
</script>
Zakładamy że zalogowany user edytuje sam siebie i nie ma uprawnień do zmiany grup ale może podejrzeć żądanie przeglądaki w postaci POST: http://localhost:8080/ROOT/saveEditUser.html

idUser=1&idGroup=2 - gdzie "2" jest spreparowana przez usera do podniesienia uprawnień.

5

Tak się nie da - użytkownik zawsze może spreparować wszelkie dane po swojej stronie.
Jak trzeba to zrobi nawet własną przeglądarke.

funkcja saveEditUser nie może przyjmować ani idUser ani idGroup

Zobacz jak działa JSON Web Token.

4

Nie da się czegoś takiego zrobić. User zawsze może w pełni kontrolować to co wychodzi z jego przeglądarki. Ba, przecież mógłby nawet wysłać ci jakimś curlem czy innym http clientem request bezpośrednio, nie z twojej aplikacji i co wtedy? o_O Takie rzeczy zabezpiecza się w backendzie i tam sprawdza czy dany user ma uprawnienia do danej akcji!

0

Takie rzeczy zabezpiecza się w backendzie i tam sprawdza czy dany user ma uprawnienia do danej akcji!

Dzięki za podpowiedzi. Kiedyś dawno temu miałem styczność ze Springowym Validator'em i spróbuję go użyć do rozwiązania tego problemu.

1 użytkowników online, w tym zalogowanych: 0, gości: 1