Teraz, gdy wiemy, jak odkryć i wykorzystać tak, nasze luki w zabezpieczeniach.
Porozmawiajmy o tym, jak chronić witryny internetowe przed nimi.
Jeśli więc wrócimy teraz do GVW 8 i powiemy, że bezpieczeństwo jest zbyt wysokie, zobaczysz, że mają bardzo prosty sposób ochrony
przed nim, ale ten sposób działa.
A oni pytają o aktualne hasło.
Więc nawet jeśli otrzymamy ten formularz, a my wykonamy całą pracę i wszystko, co robimy,
a następnie wyślemy ją do docelowej osoby, nie możemy tego ukryć i automatycznie przesłać,
ponieważ nie znamy hasło.
Dlatego prosi o podanie aktualnego hasła, a następnie umożliwia dodanie nowego hasła.
Jest to naprawdę dobre rozwiązanie dla tego przypadku.
Chociaż dlatego, że formularz nie zmienia twojego hasła.
Co, jeśli chcemy tylko wysyłać wiadomości udające tę osobę.
Co jeśli będziemy publikować rzeczy na ścianie tej osoby.
Co jeśli będziemy publikować rzeczy na blogu tej osoby?
Odkąd Aref może zostać wykorzystany do robienia wielu rzeczy.
Jak już wspomniałem w poprzednich filmach, ta metoda chroni przed zmianą hasła.
Nie można naprawdę zapytać osoby o hasło za każdym razem, gdy chcą coś opublikować lub zrobić
coś ze swoim profilem.
Nowsze wersje dysków DVD, gdy tego potrzebujesz, nie zawierają protokołu testowego, aby faktycznie mieć bezpieczniejszą opcję,
która zaimplementuje metodę, z którą zamierzam z tobą porozmawiać.
Teraz jest tak naprawdę nazywany niemożliwym, a nie wysokim, ale nie ma znaczenia, że i tak nie da
się go wykorzystać, więc nie musimy go instalować.
Porozmawiajmy więc o tym, w jaki sposób można rzeczywiście zapobiec pojawieniu się tych luk
bez proszenia użytkownika o ponowne wprowadzenie informacji lub ponowne wprowadzenie hasła.
Jeśli pomyślisz o tym, w jaki sposób mogliśmy to wykorzystać, mogliśmy po prostu skopiować formularz
używany przez witrynę i wysłać ją do docelowej osoby, aby ta osoba mogła ją uruchomić lub automatycznie uruchomić na
komputerze osoby docelowej.
Więc kiedy żądanie zostanie wysłane na serwer lub serwer nie przeprowadził żadnego sprawdzania poprawności, aby
upewnić się, że użytkownik rzeczywiście chce zmienić swoje hasło.
Najlepszym sposobem zapobiegania s r f jest upewnienie się, że użytkownik przesyła dane przez stronę, która
została mu dostarczona przez aplikację internetową, a nie przez nikogo innego.
Dobrym sposobem na wdrożenie jest użycie tokenów synchronizujących.
Teraz wiem, że nazwa brzmi skomplikowanie, ale pomysł jest bardzo prosty.
Zasadniczo chcemy wygenerować unikalny i losowy token po stronie serwera.
Następnie, gdy strona zostanie załadowana po załadowaniu formularza Zamieścimy już wygenerowany token
na tę stronę jako ukryty formularz.
Następnie, po przesłaniu formularza, upewnimy się, że formularz został przesłany z tym tokenem,
który wysłaliśmy do tego konkretnego użytkownika.
Zasadniczo dajemy użytkownikowi token, a następnie czekamy na przesłanie formularza z tokenem, który mu
daliśmy.
W ten sposób znak, który dostaje haker, będzie działał tylko dla niego.
Więc nawet jeśli generuje stronę i wysyła ją do celu, a cel
rzuca stronę, formularz zostanie przesłany, ale serwer odmówi, ponieważ nie dostarczył tokena temu
użytkownikowi, który przekazał token hakerowi na przykład mamy tego użytkownika tutaj i tutaj kosztuje Facebook
dot com hasło BHB.
To idzie na serwer.
Serwer wygeneruje odpowiedź na to żądanie.
Tak więc zwróci stronę e-mail reprezentującą hasła ph na tej stronie.
Będzie zawierał unikalny token.
Kiedy strona zostanie załadowana po stronie klienta, ma już formularz, którego
szuka użytkownik, oraz unikalny token wygenerowany przez serwer.
Następnie, gdy użytkownik prześle wszystko, co chce przesłać, serwer zaakceptuje tylko formularz i będzie
lub będzie odpowiadał na pytanie użytkownika.
Jeśli użytkownik zwróci ten sam token.
Teraz, jeśli nie zostanie to właściwie zaimplementowane, nadal można je wykorzystać.
Więc jeśli token był przewidywalny lub jeśli użyto tego samego tokenu, to ty, haker, możesz odkryć, co
token jest osadzony w kodzie HDMI i wysłać go do użytkownika.
Więc token musi mieć pewne cechy, aby był bezpieczny.
Zasadniczo najważniejszą rzeczą jest to, że chcesz pamiętać, że token musi być nieprzewidywalny i nie
może być używany bez względu na sposób, w jaki zamierzasz to zaimplementować.
Są to dwie główne rzeczy, o których należy pamiętać, ponieważ gdyby były przewidywalne,
haker będzie w stanie stworzyć własne tokeny, a następnie osadzić je w kodzie i uruchomić atak.
Można użyć tego samego znacznika.
Następnie hakerzy mogą po prostu użyć swojego tokena lub cudzego tokena, aby dotrzeć do celu.
Aby uczynić token nieprzewidywalnym i uczynić go takim, aby można go było użyć, token musi
mieć dużą wartość, aby haker nie mógł wykonać ataku siłami brutalnymi i odkryć, czym jest token, aby być
losowym aby haker nie mógł tworzyć własnych tokenów i musi być unikalny dla każdego użytkownika, ponieważ
jeśli użytkownicy otrzymają ten sam token lub podobne tokeny, wówczas mogą je przekazać, a następnie
token działający dla hakera będzie działał dla inni ludzie.
To wszystko określi cały punkt.
Możesz także zwiększyć bezpieczeństwo tokena poprzez uwzględnienie w innych czynnikach i algorytmie
generowania tokena.
Możesz więc podać na przykład datę i godzinę.
Następnie połącz go z bezpiecznym generatorem losowym, a następnie zaszyfruj go.
Wszystko to dzieje się oczywiście po stronie serwera.
Więc haker nie będzie w stanie wiedzieć, jakiego algorytmu używasz, ponieważ kod zostanie wykonany
po stronie serwera.
Niekoniecznie musisz to robić za pomocą bezpiecznej dużej i unikalnej liczby losowej.
Ale jeśli chcesz zwiększyć bezpieczeństwo, możesz po prostu dodać inne czynniki i zaszyfrować token przed wysłaniem
go do użytkownika.
Jest to faktycznie realizowane w dniu Matile.
Więc pokażę ci to w akcji.
Więc zamierzam po prostu pójść tutaj do Matile.
Zamierzam wejść na osę, a następnie tak, lub jako dodatek do bloga.
Pozwala to na dodanie posta na blogu, więc nie pozwala zmienić hasła ani
niczego, co pozwala anonimowym użytkownikom na posty na blogu.
Tak naprawdę nie można prosić ludzi o hasło.
Mam zamiar iść i przełączać zabezpieczenia tak, aby były najwyższe, ponieważ są teraz ustawione na zero.
Teraz jest najbezpieczniejszy.
A jeśli klikniesz prawym przyciskiem i przejdziesz dalej, to element inspekcyjny.
Teraz zamierzam przewinąć w górę i jak widać mamy tutaj forum i mamy ukryte dane wejściowe o bardzo
długiej wartości.
I to jest token.
Zostało to już wygenerowane przez serwer, a serwer odrzuci wszystkie żądania, które do
niego wyślemy, chyba że ma to określony token.
A jeśli użyję tego formularza i wyślę go komuś innemu.
Z drugiej strony prośby, które wyślą, zostaną odrzucone, ponieważ dostaną inny token, który
został wygenerowany dla mnie i dla mnie.
Więc pozwól mi pokazać, że jeśli teraz odświeżę, dostanę inny token.
I znowu, jeśli odświeżę, dostanę inny token, jeśli zmienię to.
Powiedzmy więc, że zamiast kapitału, na koniec postawię małą I, jeśli zgłoszę to teraz,
to daje mi błąd.
Ale nie pozwól, że to zmienię, więc dostałem inny token i teraz, gdy przedłożyłem, tak to
działa, a teraz mamy wpis na blogu o nazwie test.
Więc to jest to.
To naprawdę bardzo proste.
Nie chciałem wdawać się w zbyt wiele szczegółów dotyczących tworzenia losowego tokena i tego wszystkiego,
ponieważ zależy to od języka programowania.
To jest program webowy zaprogramowany w.
Ale chciałem po prostu pokazać ci koncepcję lub pomysł, jak zabezpieczyć aplikacje internetowe przed
tego typu luką.
Cała idea polega na tym, że chcesz się upewnić, że użytkownik przesyła dane przez stronę, którą im podajesz,
a nie przez stronę, która została im przekazana przez jakąkolwiek inną osobę.
Aby to zrobić, generujemy token po stronie serwera, ten token musi być długi losowo i
unikatowo wysłać token ze stroną z formularzem i osadzony jako ukryty formularz.
A kiedy tylko użytkownik prześle odpowiedź, upewnij się, że przesyła ten sam token, który został
im dany.