Deno로 만든 서버에서 SSRF 공격을 어떻게 막을 수 있을까 고민하다가, Deno에 --allow-net
과 함께 쓸 수 있는 --deny-net
옵션이 있다는 것을 알게 되었다. 대충 아래와 같이 쓰면 SSRF 공격을 기본적인 수준에서는 막을 수 있을 듯하다.
deno run \
--allow-net \
--deny-net=127.0.0.0/8,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,169.254.0.0/16,0.0.0.0/8,224.0.0.0/4,240.0.0.0/4,255.255.255.255,localhost,[::1],[::],[::ffff:0:0]/96,[fe80::]/10,[fc00::]/7 \
script.ts