Jak już widzieliście, umiejętność zastrzyków jest bardzo niebezpieczna, a także bardzo łatwa
do znalezienia.
Znajdziesz je wszędzie w kilku naprawdę znanych witrynach.
Ludzie próbują zapobiegać tym lukom używając filtrów.
Filtry mogą sprawić, że wygląda na to, że nie ma exploitów, ale jeśli spróbujesz mocniej, używając
kodowania różnych typów kodowania lub używania serwera proxy, będziesz w stanie obejść większość tych filtrów.
Niektórzy programiści używają czarnej listy.
Tak więc na przykład uniemożliwiają używanie związku.
Zapobiegają użyciu wkładki i tym podobnych.
Znowu nie jest w 100% bezpieczny.
Można go ominąć za pomocą białej listy.
Dokładnie te same problemy, co czarna lista.
Najlepszym sposobem na to jest zaprogramowanie aplikacji internetowej w taki sposób, aby uniemożliwić jej
wstrzyknięcie, a następnie jej wykonanie.
Najlepszym sposobem na zrobienie tego jest użycie instrukcji parameterize, w której dane i kod są rozdzielone.
Najlepszym sposobem, aby pokazać ci, co mam na myśli, jest użycie przykładu, że utrzymuję najmniejszą liczbę
programów.
W tym przykładzie nie chcę, aby był to program i przykład.
W programowaniu są błędy, ale staram się przekazać ci więcej informacji
niż programować.
Dlatego użyliśmy do tego wrażliwego kodu, który był używany do tego, aby wybrać gwiazdkę
z kont, gdzie nazwa użytkownika jest równa temu, co umieściliśmy w polu tekstowym 1, a następnie wstawiliśmy pole tekstowe 1.
Po prostu umieśćmy to tutaj.
Kiedyś mówiliśmy jak mężczyźni, a następnie zamykaliśmy kod, a następnie jesteśmy w stanie dokonać wyboru związku i wykonać coś innego.
A kiedy już skończyliśmy, dodaliśmy komentarz, który zasadniczo ignoruje wszystko, co nadejdzie po
nim.
Więc kiedy to skopiujesz i umieścisz to tutaj, zobaczysz, co
się dzieje.
To jest wybór.
Teraz po prostu pozbyć się tego, ponieważ to tylko sprawia, że cięcie nie
jest miłe i zamierzam po prostu umieścić komentarz na ten temat, więc zrobi to wybór z kont, gdzie nazwa użytkownika
jest równa Aardman Union wybierz i wykonaj cokolwiek chcemy robić.
Jest to bardzo złe i bardzo trudno jest je chronić.
Jak już powiedziałem, używaj filtrów i innych rzeczy, które tylko podświetlają problem, ale go nie naprawią.
Najlepszym sposobem, aby to zrobić, jest użycie instrukcji parametryzowania, tak jak to jest.
Jest to bezpieczny sposób na zrobienie tego.
Przede wszystkim przygotuj swoje oświadczenie w większości języków takich
jak BHB i wszystkie z nich faktycznie mają taką funkcję i możesz przygotować wybrane stare z kont,
których nazwa użytkownika jest równa znakowi zapytania, a następnie wysyłać wartości.
Więc ph wiemy teraz, że stwierdzenie umiejętności jest gwiazdą wybieraną z kont, gdzie nazwa użytkownika jest równa czemuś,
a następnie ma wartość pola tekstowego 1.
Więc nawet jeśli przyjdziemy i użyjemy naszego bardzo podstępnego stwierdzenia tutaj i wklejeliśmy tam, aplikacja internetowa będzie wiedziała, że
wartość tego jest wybrana przez Unię Unii przy życiu.
Próbuje wybrać i wybrać spośród kont, w których nazwa użytkownika, a następnie w rzeczywistości
doda własne cytaty i spróbuje znaleźć nazwę użytkownika z następującą nazwą użytkownika.
Cała ta sprawa zostanie wykonana tak, aby
była następna z kont, gdzie nazwa użytkownika jest równa liczbie związków wybierz ten hashtag.
Więc nigdy nie będzie dźwigać tego, co umieścisz w swoim polu tekstowym, zostanie wysłane jako wartość, a aplikacja internetowa będzie wiedziała, że
jest to wartość.
To nie jest kod i nigdy nie zostanie wykonany.
Dlatego chroni przed wstrzyknięciami Escurial.
Możesz użyć filtrów jako drugiej linii obrony.
I radzę również, abyś korzystał z najmniejszych uprawnień, więc używaj dla każdej bazy danych jednego użytkownika z najmniejszą ilością wymaganych uprawnień,
więc nie pozwól użytkownikom robić niczego, na co nie pozwolą.
Jeśli jest to prosta strona internetowa, która dokonuje tylko wyboru, zezwól tylko użytkownikowi, aby wybrał tylko to, co trzeba
wybrać i wstawić, a następnie zezwól tylko na wybór odpowiedzi.
I jest to reguła, którą powinieneś zachować ze wszystkim, nawet w obrębie istnienia.
Upewnij się, że osoba z uprawnieniami jest zawsze taka, jak to możliwe.
Każdy użytkownik nie ma żadnych dodatkowych uprawnień, których nie potrzebuje.