@WeiXiao mam jakieś dejavu, widziałem identyczny wątek gdzieś w Javie xD anyway: moim zdaniem gwiazdki nie mają sensu. Szczególnie właśnie kiedy dla jednego dobra znajomość
to umiejętność używania bazy
jako programista (query, batche, optymalizacje) a dla innego to też kwestie związane np. z indeksami, izolacją, partycjami, a jeszcze dla innego to oznacza głęboką znajomość technikaliów danej bazy.
Znasz coś to piszesz w CV że znasz, a potem na rozmowie rekruter stwierdzi czy umiesz na takim poziomie jaki im potrzebny.
A dla tych którzy uważają ze SQL jest prosty
i płytki temat to polecam poczytać sobie artykuły z serii sql injection blacklist bypass
:D Z życia wzięte, z CTFa wczoraj: mamy injection w insert into
w jednej z wartości (powiedzmy że to rejestracja usera i w username możemy dać '
i mamy injection. Nie ma echo z serwera, sleep, benchmark, rlike i sporo innych keywordów blacklistowane. Trik polegał na tym, że można zrobić inject w stylu:
', ~0 + (0+(select 1 from dual where XXX)) #
Bo w tej sytuacji jeśli XXX jest true
to dostaniemy overflow i zapytanie się wywali a my od serwera dosatniemy 500, a jeśli XXX jest false
to zapytanie wykona się poprawnie. Na tej podstawie możesz zrobić binsearch i wyciagnąć sobie np. scheme bazy z jakiegoś information_schema
a potem zdumpować wartości z bazy...