這篇文章將為大家詳細(xì)講解有關(guān)Safety如何安裝使用,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
為企業(yè)提供成都網(wǎng)站建設(shè)、網(wǎng)站建設(shè)、網(wǎng)站優(yōu)化、網(wǎng)絡(luò)營銷推廣、競價托管、品牌運營等營銷獲客服務(wù)。創(chuàng)新互聯(lián)擁有網(wǎng)絡(luò)營銷運營團(tuán)隊,以豐富的互聯(lián)網(wǎng)營銷經(jīng)驗助力企業(yè)精準(zhǔn)獲客,真正落地解決中小企業(yè)營銷獲客難題,做到“讓獲客更簡單”。自創(chuàng)立至今,成功用技術(shù)實力解決了企業(yè)“網(wǎng)站建設(shè)、網(wǎng)絡(luò)品牌塑造、網(wǎng)絡(luò)營銷”三大難題,同時降低了營銷成本,提高了有效客戶轉(zhuǎn)化率,獲得了眾多企業(yè)客戶的高度認(rèn)可!
Safety是一款功能強大的漏洞檢測工具,可以幫助廣大研究人員檢測設(shè)備上已安裝依賴組件中存在的已知安全漏洞。默認(rèn)配置下,Safety使用的是開放Python漏洞數(shù)據(jù)庫-Safety DB,但是大家也可以使用--key選項來更新工具,并使用pyup.io的Safety API。
我們可以使用pip來安裝Safety,不過請大家記住,當(dāng)前版本的Safety僅支持Python 3.5及其更高版本的環(huán)境:
pip install safety
運行下列命令,即可判斷當(dāng)前以選擇的安裝了依賴組件的虛擬環(huán)境,并檢測已知的安全漏洞:
safety check
運行之后,我們將看到如下圖所示的報告界面:
現(xiàn)在,我們來安裝一些存在安全問題的依賴組件:
pip install insecure-package
接下來,再次運行漏洞檢測命令:
safety check
這一次的掃描結(jié)果如下:
跟pip一樣,Safety能夠讀取本地requirement文件:
safety check -r requirements.txt
Safety還能夠使用--stdin參數(shù)來從Stdin讀取輸入數(shù)據(jù)。如需檢測一個本地依賴文件,可運行下列命令:
cat requirements.txt | safety check --stdin
或者,從pip freeze的輸出讀取輸入:
pip freeze | safety check --stdin
或者,檢測一個單一依賴包:
echo "insecure-package==0.1" | safety check --stdin
Safety還能夠以Docker容器的形式運行:
echo "insecure-package==0.1" | docker run -i --rm pyupio/safety safety check --stdin cat requirements.txt | docker run -i --rm pyupio/safety safety check --stdin
Safety的源代碼還提供了某些額外的安全功能,安裝完成之后,我們就能夠使用常規(guī)命令行版本的Safety了。點擊【這里】即可獲取Safety源代碼。
Safety還能夠配合CI管道一起使用,如果掃描到了一個漏洞的話,它會返回一個非零退出狀態(tài)。
install: - pip install safety script: - safety check
safety: script: - pip install safety - safety check
[tox] envlist = py37 [testenv] deps = safety pytest commands = safety check Pytest
如果你想要將Safety跟你自己的GitHub庫進(jìn)行深度整合的話,可以直接使用pyup.io中的Safety服務(wù),即Safety CI。Safety CI能夠檢測GitHub庫中依賴組件的commit和pull request,并尋找已知的安全漏洞,并將檢測結(jié)果和狀態(tài)顯示在GitHub中。
Safety是免費且開源的,它的底層開放數(shù)據(jù)庫每個月還會更新一次。為了訪問到所有最新添加進(jìn)去的安全漏洞,我們需要使用一個Safety API密鑰以及一個付費的pyup.io賬號(約99美元)。
即pyup.io的漏洞數(shù)據(jù)庫API密鑰,需要在SAFETY_API_KEY環(huán)境變量中設(shè)置:
safety check --key=12345-ABCDEFGH
指向本地數(shù)據(jù)庫的目錄路徑,其中包括insecure.json和insecure_full.json:
safety check --db=/home/safety-db/data
代理主機的IP或DNS
--proxy-port
代理端口號
--proxy-protocol
代理協(xié)議(https或http)
JSON格式的漏洞報告輸出:
safety check --json [ [ "django", "<1.2.2", "1.2", "Cross-site scripting (XSS) vulnerability in Django 1.2.x before 1.2.2 allows remote attackers to inject arbitrary web script or HTML via a csrfmiddlewaretoken (aka csrf_token) cookie.", "25701" ] ]
獲取完整的漏洞掃描報告,還包括安全建議:
safety check --full-report +==============================================================================+ | | | /$$$$$$ /$$ | | /$$__ $$ | $$ | | /$$$$$$$ /$$$$$$ | $$ \__//$$$$$$ /$$$$$$ /$$ /$$ | | /$$_____/ |____ $$| $$$$ /$$__ $$|_ $$_/ | $$ | $$ | | | $$$$$$ /$$$$$$$| $$_/ | $$$$$$$$ | $$ | $$ | $$ | | \____ $$ /$$__ $$| $$ | $$_____/ | $$ /$$| $$ | $$ | | /$$$$$$$/| $$$$$$$| $$ | $$$$$$$ | $$$$/| $$$$$$$ | | |_______/ \_______/|__/ \_______/ \___/ \____ $$ | | /$$ | $$ | | | $$$$$$/ | | by pyup.io \______/ | | | +==============================================================================+ | REPORT | +============================+===========+==========================+==========+ | package | installed | affected | ID | +============================+===========+==========================+==========+ | django | 1.2 | <1.2.2 | 25701 | +==============================================================================+ | Cross-site scripting (XSS) vulnerability in Django 1.2.x before 1.2.2 allows | | remote attackers to inject arbitrary web script or HTML via a csrfmiddlewar | | etoken (aka csrf_token) cookie. | +==============================================================================+
僅輸出包含漏洞的依賴包,可結(jié)合其他工具一起使用:
safety check --bare cryptography django
漏洞數(shù)據(jù)庫本地緩存,有效時長為兩小時:
safety check --cache
從stdin讀取輸入數(shù)據(jù):
cat requirements.txt | safety check --stdin pip freeze | safety check --stdin echo "insecure-package==0.1" | safety check --stdin
將掃描結(jié)果輸出至文件:
safety check -o insecure_report.txt safety check --output --json insecure_report.json
本項目的開發(fā)與發(fā)布遵循MIT開源許可證協(xié)議。
關(guān)于“Safety如何安裝使用”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學(xué)到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。