Přeskočit na hlavní obsah

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.

Použití funkce eval v kódu

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.

Spuštění kódu zadaného do queryZobrazení console.log zprávy v aplikačním logu

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.

Použití funkce JSON.parse místo funkce eval

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. 👇