İçeriğe geç

Sunucu taraflı istek sahteciliği (ARCH2104)

Anahtar python.security.ssrf · Önem warning · Kategori security · CWE CWE-918

Kullanıcı denetimli bir URL’ye doğrulamadan giden istek yapmak, saldırganın sunucuyu dahili servislere veya bulut metadata uç noktalarına istek atmaya zorlamasına olanak tanır.

import requests
from flask import request
def fetch():
url = request.args["url"]
return requests.get(url).text
import requests
from urllib.parse import urlparse
from flask import request
ALLOWED = {"api.example.com"}
def fetch():
url = request.args["url"]
if urlparse(url).hostname not in ALLOWED:
raise ValueError("host not allowed")
return requests.get(url).text

Giden istek URL’lerini bir izin listesine göre doğrulayın; özel IP aralıklarını ve metadata uç noktalarını engelleyin.