Aktywne Wpisy

wfyokyga +22
Kusi mnie ten barking bread, odbiłem się 2 razy po 1 odcinku i dalej się nie chciało oglądać. Trzeba chyba będzie dać 3 szanse i ostatniom
źródło: temp_file4251944129250244986
Pobierz
lubie-sernik +4
Hydroksyzyna 75mg wzięta i jakoś nie chce mi się spać jeszcze a miała mnie uśpić.
Gdzie składać reklamację?
Gdzie składać reklamację?





picklena danych od użytkownika ponieważ podczas ich deserializacji może dojść do atakuobject injectioni wykonania złośliwego kodu.Ale co z innymi formatami? Czy również są niebezpieczne?
W kolejny odcinku #od0dopentestera o plikach
yaml.import yamlwith open("test.yaml", "r") as s:
y = yaml.load(s)
print y['imie']
Format
yamlnie jest tak prosty jak mogło by się wydawać.W standardowym użyciu sam rozpoznaje on typ danych który jest do niego przekazywany.
Czasami jednak chcielibyśmy mieć kontrolę nad typem przechowywanym w konfiguracji.
Stąd też tagi - czyli polecenia rozpoczynające się od wykrzyknika, dzięki którym możemy wybrać typ samodzielnie.
Tak jak tutaj - gdzie
0.7będzie traktowana jako string a nie jako float.moj_string: !!str 0.7Niektóre parsery implementują specyficzne dla danego języka tagi - i tak w przypadku pythona możemy zdefiniować tuple:
moja_tupla: !!python/tuple [1, 2]Gdzie zatem znajduje się dzisiejszy błąd?
W parserze używanym w pythonie możemy również skorzystać z tagu
apply, który pozwala na wywołanie dowolnej funkcji z dowolnego modułu.Jest to więc równoznaczne z możliwością wykonania dowolnego kodu na atakowanym serwerze.
W naszym przypadku użyjemy funkcji
systemdo wyświetlenia zawartości bieżącego katalogu:imie: !!python/object/apply:os.system ["dir"]Jak się ochronić przed tym błędem?
Zamienić funkcję
loadnasafe_load.#naukaprogramowania #programowanie #informatyka #it #nauka #technologia #ciekawostki #gruparatowaniapoziomu