Jak hacknout vzdálený server
Vyhněte se používání funkce eval a code injection. Víte, jak bezpečně parsovat JSON vstup a jak využít bezpečné metody? Naučte se hacknout vzdálený server a rovnou ho opravit.
Použití funkce eval
může ve vaši aplikaci způsobit nemalý problémy.

Jedním z problémů je například code injection, kdy jsme na vzdáleném serveru schopni spustit nějaký kód. Na obrázku níže se zdá, že došlo jen k obyčejné chybě, ale pokud se podíváme do aplikačního logu, tak je vidět, že došlo ke spuštění zadaného kódu.


console.log
je jenom taková malá ochutnávka, útočník toho může dělat mnohem víc a může být mnohem hůř.
Pokud parsujeme JSON vstup, tak bychom neměli používat funkci eval
, ale nějakou specializovanou metodu, která je k
parsování určena - například JSON.parse
.

Tato funkce jenom parsuje vstup a nic nespouští, takže je bezpečná.
Rozhodně nepoužívejte funkce, které spouští kód nebo nějaké jiný procesy. Pokud je používáte, tak si přečtěte, jak zaručit jejich bezpečnost - pravidel je docela hodně. Vždy se snažte najít funkci, která vyřeší konkrétní problém, který řešíte, nikoli funkci, která je příliš obecná.
Podívejte se na video, kde tuto funkcionalitu hackuju a rovnou v kódu opravuju:
Dej odběr a žádné další video už ti neunikne. 👇