SSRF (Server-Side Request Forgery) apare atunci când o aplicație web preia un URL de la utilizator (de exemplu pentru descărcarea unei imagini de profil sau generarea unui PDF) și efectuează cererea fără a valida dacă adresa țintă este publică sau aparține rețelei interne private.
Impact masiv în Cloud: În AWS, un atacator poate forța serverul să acceseze
http://169.254.169.254/latest/meta-data/iam/security-credentials/ pentru a fura cheile temporare ale rolului IAM asociat mașinii EC2.
Exemplu: Apărare prin blocarea adreselor IP interne private
import ipaddress, socket
def este_url_sigur(host):
ip = socket.gethostbyname(host)
ip_obj = ipaddress.ip_address(ip)
# Blocăm adresele private (10.x, 192.168.x, 172.16.x), loopback (127.0.0.1) și AWS link-local (169.254.x)
if ip_obj.is_private or ip_obj.is_loopback or ip_obj.is_link_local:
raise ValueError("Acces interzis către rețeaua internă!")
return True
Întrebări & Exemple de Cod:
Vulnerabilitatea Server-Side Request Forgery (SSRF)Ai o nelămurire despre utilizarea comenzii
Vulnerabilitatea Server-Side Request Forgery (SSRF)sau ai descoperit un truc / fragment de cod util? Distribuie-l cu ceilalți programatori!Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!
Nu au fost adăugate încă întrebări sau exemple de cod pentru această pagină. Dacă ai întâlnit o problemă sau ai un snippet util, adaugă-l mai jos pentru a-i ajuta pe ceilalți.