Безопасность: замена xml.etree.ElementTree на defusedxml (защита от XXE-инъекций)
This commit is contained in:
parent
2d890bea98
commit
5a2f1630f6
@ -1,3 +1,4 @@
|
|||||||
discord.py>=2.3.2
|
discord.py>=2.3.2
|
||||||
python-dotenv>=1.0.0
|
python-dotenv>=1.0.0
|
||||||
requests>=2.31.0
|
requests>=2.31.0
|
||||||
|
defusedxml>=7.0.0
|
||||||
|
|||||||
@ -17,12 +17,12 @@ _session = requests.Session()
|
|||||||
async def fetch_rss(url):
|
async def fetch_rss(url):
|
||||||
"""Скачать и распарсить RSS-ленту (RSS 2.0 / Atom)."""
|
"""Скачать и распарсить RSS-ленту (RSS 2.0 / Atom)."""
|
||||||
await habr_rss_limiter.acquire()
|
await habr_rss_limiter.acquire()
|
||||||
from xml.etree import ElementTree
|
from defusedxml.ElementTree import fromstring
|
||||||
|
|
||||||
try:
|
try:
|
||||||
response = await asyncio.to_thread(_session.get, url, timeout=10)
|
response = await asyncio.to_thread(_session.get, url, timeout=10)
|
||||||
response.raise_for_status()
|
response.raise_for_status()
|
||||||
root = ElementTree.fromstring(response.content)
|
root = fromstring(response.content)
|
||||||
|
|
||||||
# RSS 2.0
|
# RSS 2.0
|
||||||
ns_dc = {"dc": "http://purl.org/dc/elements/1.1/"}
|
ns_dc = {"dc": "http://purl.org/dc/elements/1.1/"}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user