亚洲乱色熟女一区二区三区丝袜,天堂√中文最新版在线,亚洲精品乱码久久久久久蜜桃图片,香蕉久久久久久av成人,欧美丰满熟妇bbb久久久

LOGO OA教程 ERP教程 模切知識(shí)交流 PMS教程 CRM教程 開(kāi)發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

Python requests 如何避免被 Gzip 炸彈攻擊

admin
2024年3月9日 16:3 本文熱度 1741

Gzip 炸彈英文名為 Gzip bomb,是一種古老的被動(dòng)防御手段。它的原理是當(dāng)爬蟲(chóng)訪問(wèn)服務(wù)器網(wǎng)頁(yè)資源時(shí)摻入一些高壓縮比的壓縮文件。如果爬蟲(chóng)自帶解壓縮功能(比如 Python requests 庫(kù))就會(huì)觸發(fā)壓縮炸彈,直接導(dǎo)致爬蟲(chóng)的客戶端內(nèi)存被撐爆。

以下是制作 Gzip 炸彈的命令:

dd if=/dev/zero bs=1M count=10240 | gzip > 10G.gzip

PHP 版的服務(wù)端 Gzip bomb 例子;

PHP 代碼來(lái)源鏈接:

《How to defend your website with ZIP bombs- the good old methods still work today》Posted on 2017-07-05
https://blog.haschek.at/2017/how-to-defend-your-website-with-zip-bombs.html

許多爬蟲(chóng)會(huì)使用 requests 庫(kù)爬取網(wǎng)頁(yè)資源,在使用 requests 庫(kù)時(shí)如何避免被 gzip 炸彈攻擊?

為了避免被 Gzip 炸彈攻擊,在使用Python的 requests 庫(kù)時(shí),可以設(shè)置stream 參數(shù)為 True。這將使得響應(yīng)內(nèi)容不會(huì)被自動(dòng)解壓縮,而是在使用時(shí)才進(jìn)行解壓縮,從而可以限制解壓縮的大小。

示例代碼:

import requests
url = 'http://example.com/some_large_file.gz'
# 設(shè)置 stream=True 來(lái)避免自動(dòng)解壓縮response = requests.get(url, stream=True)
# 手動(dòng)解壓縮并限制解壓縮的大小max_size = 1024 * 1024 * 10  # 限制解壓縮的大小為10 MBdecompressed_data = bytearray()for chunk in response.iter_content(chunk_size=1024):    decompressed_data.extend(chunk)    if len(decompressed_data) > max_size:        # 如果解壓縮后的數(shù)據(jù)大小超過(guò)了限制,則拋出異常        raise Exception("Response too large, possible gzip bomb attack.")

這樣做可以確保請(qǐng)求不會(huì)在解壓縮時(shí)耗盡系統(tǒng)資源,從而防止Gzip炸彈攻擊。

參考:

《How to defend your website with ZIP bombs》https://blog.haschek.at/2017/how-to-defend-your-website-with-zip-bombs.html
《github flask bomb》https://github.com/khast3x/flaskbomb?tab=readme-ov-file
《Demo - 20G Payloads>https://asciinema.org/a/141464
《github gzip-bomb topics》https://github.com/topics/gzip-bomb
《幾行代碼直接炸了爬蟲(chóng)服務(wù)器》 作者kingnamehttps://mp.weixin.qq.com/s/Lzo6Pm09XsOqPkz3O91Mgg
《哈哈,有人爬我網(wǎng)站,我把他教育了一頓!》 程序員魚皮https://mp.weixin.qq.com/s/OX4fwC9Oe3R6cHYoyXpskA


該文章在 2024/3/9 16:03:49 編輯過(guò)
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點(diǎn)晴ERP是一款針對(duì)中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國(guó)內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對(duì)港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場(chǎng)、車隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場(chǎng)作業(yè)而開(kāi)發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉(cāng)儲(chǔ)管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購(gòu)管理,倉(cāng)儲(chǔ)管理,倉(cāng)庫(kù)管理,保質(zhì)期管理,貨位管理,庫(kù)位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號(hào)管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved