SQLMap進階使用

預計更新
  1. SQL注入概述
    1.1 SQL注入攻擊概述
    1.2 SQL注入漏洞分類
    1.3 SQL注入攻擊的危害

  2. SQLMap介紹
    2.1 SQLMap簡介
    2.2 SQLMap安裝與配置
    2.3 SQLMap基本用法

  3. SQLMap進階使用
    3.1 SQLMap高級用法
    3.2 SQLMap配置文件詳解
    3.3 SQLMap插件的使用

  4. SQL注入漏洞檢測
    4.1 SQL注入漏洞檢測基礎
    4.2 SQL注入漏洞檢測工具
    4.3 SQL注入漏洞檢測實戰

  5. SQL注入漏洞利用
    5.1 SQL注入漏洞利用介紹
    5.2 SQLMap利用SQL注入漏洞
    5.3 SQL注入漏洞利用實戰

  6. SQL注入防御
    6.1 SQL注入防御基礎
    6.2 防御SQL注入的最佳實踐
    6.3 使用SQLMap測試防御效果

  7. SQL注入繞過技術
    7.1 SQL注入繞過技術介紹
    7.2 繞過WAF
    7.3 繞過輸入過濾

  8. SQL注入攻擊的后果
    8.1 數據泄露
    8.2 數據篡改
    8.3 數據刪除

  9. SQL注入漏洞的利用場景
    9.1 SQL注入漏洞的利用場景介紹
    9.2 電商網站SQL注入漏洞利用實戰
    9.3 CMS網站SQL注入漏洞利用實戰

  10. SQL注入漏洞的漏洞挖掘與利用
    10.1 SQL注入漏洞的漏洞挖掘方法
    10.2 SQL注入漏洞利用的高級技巧
    10.3 SQL注入漏洞利用的未來趨勢

SQLMap高級用法

SQL注入是Web應用程序中最常見的漏洞之一,攻擊者可以利用這種漏洞訪問和操縱數據庫中的數據,包括敏感數據。為了利用SQL注入漏洞,滲透測試工程師通常使用工具來自動化注入過程。其中一個最流行的工具是sqlmap,它是一個功能強大的自動化SQL注入工具,可以執行各種高級注入技術。在本文中,我將詳細介紹sqlmap的高級用法。

基本用法
在開始討論sqlmap的高級用法之前,我們先簡要介紹一下它的基本用法。sqlmap是一個命令行工具,它可以通過指定目標網站的URL和一些選項來執行SQL注入。下面是一個基本的使用示例:

sqlmap -u “http://example.com/page.php?id=1” --dbs
這個命令會向指定的URL發送一個GET請求,并嘗試檢測是否存在SQL注入漏洞。如果存在漏洞,sqlmap會列出數據庫的名稱。這個命令中的選項“–dbs”表示列出所有的數據庫名稱。

參數化查詢
在實際的Web應用程序中,開發人員通常使用參數化查詢來防止SQL注入攻擊。參數化查詢是一種將查詢語句中的參數作為單獨的變量傳遞給數據庫的技術,從而避免了SQL注入攻擊。這種技術可以通過sqlmap的“–dbms”選項進行支持。例如:

sqlmap -u “http://example.com/page.php?id=1” --dbms=mysql --dbs
這個命令指定了目標網站使用的數據庫管理系統是MySQL,從而使sqlmap能夠使用MySQL特定的注入技術。

自定義HTTP頭
有些Web應用程序會檢查HTTP頭,以確定請求是否來自合法的瀏覽器。如果sqlmap默認的HTTP頭被檢測到,那么注入嘗試可能會被拒絕或屏蔽。為了避免這種情況,sqlmap允許用戶自定義HTTP頭。例如:

sqlmap -u “http://example.com/page.php?id=1” --headers=“User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3”
這個命令指定了自定義的User-Agent頭,使得sqlmap的請求看起來像是來自Chrome瀏覽器。

調整注入技術
sqlmap支持多種注入技術,包括基于錯誤的注入、基于聯合的注入、基于時間的盲注等。在一些情況下,某些注入技術可能會被屏蔽或失敗,需要嘗試其他的技術。sqlmap可以通過“–technique”選項來指定使用的注入技術。例如:

sqlmap -u “http://example.com/page.php?id=1” --technique=U
這個命令指定使用Union-based注入技術。

使用代理
有時候,滲透測試工程師需要通過代理服務器來執行注入攻擊。sqlmap支持使用HTTP和SOCKS代理。例如:

sqlmap -u “http://example.com/page.php?id=1” --proxy=http://127.0.0.1:8080 --dbs
這個命令指定了使用HTTP代理服務器,并將所有的請求發送到本地的8080端口。

使用Tor網絡
Tor網絡是一種匿名通信網絡,可以隱藏用戶的真實IP地址。滲透測試工程師可以使用Tor網絡來匿名執行注入攻擊。sqlmap可以通過“–tor”選項來使用Tor網絡。例如:

sqlmap -u “http://example.com/page.php?id=1” --tor
這個命令指定使用Tor網絡,從而隱藏用戶的真實IP地址。

執行命令
sqlmap不僅可以執行SQL注入攻擊,還可以執行命令,包括操作系統命令和SQL命令。這個功能可以通過“–os-shell”和“–sql-shell”選項來實現。例如:

sqlmap -u “http://example.com/page.php?id=1” --os-shell
這個命令將打開一個操作系統的Shell,并允許用戶執行操作系統命令。

sqlmap -u “http://example.com/page.php?id=1” --sql-shell
這個命令將打開一個SQL Shell,并允許用戶執行SQL命令。

自定義Payload
sqlmap使用一些默認的Payload來執行注入攻擊,但是這些Payload可能會被目標網站的防御機制屏蔽。為了避免這種情況,滲透測試工程師可以使用自定義的Payload。例如:

sqlmap -u “http://example.com/page.php?id=1” --data=“id=1&name=test” --payload=“1 and 1=0 union select ‘test’”
這個命令指定了自定義的Payload,從而避免了默認的Payload被屏蔽的情況。

自動化掃描
sqlmap可以自動化執行注入攻擊,包括檢測漏洞、獲取數據庫信息、獲取表信息、獲取列信息等。用戶可以通過“–level”和“–risk”選項來控制自動化掃描的深度和風險等級。例如:

sqlmap -u “http://example.com/page.php?id=1” --level=5 --risk=3
這個命令將執行深度為5、風險等級為3的自動化掃描。

總結

sqlmap是一個功能強大的自動化SQL注入工具,可以執行各種高級注入技術。在本文中,我們介紹了sqlmap的一些高級用法,包括參數化查詢、自定義HTTP頭、調整注入技術、使用代理、使用Tor網絡、執行命令、自定義Payload和自動化掃描等。通過了解這些高級用法,滲透測試工程師可以更好地利用sqlmap執行SQL注入攻擊,并發現Web應用程序中的漏洞。

SQLMap配置文件詳解

sqlmap是一款功能強大的自動化SQL注入工具,能夠幫助滲透測試工程師快速、準確地發現Web應用程序中的SQL注入漏洞。為了方便使用和快速配置,sqlmap提供了一個配置文件,允許用戶自定義sqlmap的各種選項和參數。在本文中,我將從滲透測試工程師的角度詳細介紹sqlmap的配置文件,幫助用戶更好地理解和使用sqlmap。

配置文件的默認位置
sqlmap的配置文件默認位于用戶主目錄下的“.sqlmap”目錄中,文件名為“sqlmap.conf”。在Linux系統中,可以通過以下命令找到該文件:

ls ~/.sqlmap/sqlmap.conf
在Windows系統中,可以在用戶主目錄下的“AppData\Roaming\sqlmap”目錄中找到該文件。

配置文件的格式
sqlmap的配置文件采用INI格式,包含多個節和鍵值對。每個節的名稱代表了一個選項組,每個鍵值對表示一個選項和其對應的值。以下是一個典型的sqlmap配置文件的示例:

[main]
flushSession = false

[output]
verbose = true
logFile = /root/sqlmap/output.log

[requests]
headers = {“User-Agent”: “Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3”}

[target]
url = http://example.com/index.php?id=1
配置文件中的選項
以下是sqlmap配置文件中常用的選項及其含義:

3.1 main選項

flushSession: 是否在每次掃描之前清除sqlmap的會話信息,默認為false。如果設置為true,則會在每次掃描之前清除會話信息,包括cookie、HTTP頭和其他相關信息。
3.2 output選項

verbose: 是否輸出詳細信息,默認為false。如果設置為true,則會輸出更詳細的掃描信息。
logFile: 掃描日志文件的路徑,默認為空。如果設置了該選項,則會將掃描信息輸出到指定的文件中。
3.3 requests選項

headers: HTTP頭信息,默認為空。可以通過該選項設置HTTP頭,如User-Agent、Cookie等信息。
3.4 target選項

url: 目標URL,默認為空。必須設置該選項才能進行掃描。
cookie: Cookie信息,默認為空。可以通過該選項設置Cookie信息,如果不設置則使用默認的Cookie信息。
proxy: 代理信息,默認為空。可以通過該選項設置HTTP代理信息,如http://127.0.0.1:8080。如果需要使用socks代理,可以通過設置socks代理環境變量實現,如export http_proxy=socks5://127.0.0.1:1080。
3.5 technique選項

technique: SQL注入技術,默認為“BEUSTQ”。可以通過該選項設置注入技術,包括B:布爾型盲注、E:錯誤型注入、U:基于聯合查詢的注入、S:基于堆棧的注入、T:基于時間的盲注、Q:基于雙查詢的注入、A:自動檢測。
3.6 tamper選項

tamper: SQL注入報文的編碼方式,默認為空。可以通過該選項設置報文編碼方式,如"urlencode、base64、space2comment"等。該選項可以用于繞過WAF或輸入過濾等安全機制。
3.7 enumeration選項

users: 獲取數據庫中的用戶列表,默認為false。如果設置為true,則會嘗試獲取數據庫中的用戶列表。
passwords: 獲取數據庫中的密碼列表,默認為false。如果設置為true,則會嘗試獲取數據庫中的密碼列表。
dbs: 獲取數據庫中的數據庫列表,默認為false。如果設置為true,則會嘗試獲取數據庫中的數據庫列表。
tables: 獲取數據庫中的表列表,默認為false。如果設置為true,則會嘗試獲取數據庫中的表列表。
columns: 獲取數據庫中的列列表,默認為false。如果設置為true,則會嘗試獲取數據庫中的列列表。
3.8 misc選項

threads: 并發線程數,默認為1。可以通過該選項設置并發線程數,加快掃描速度。
配置文件的使用技巧
sqlmap的配置文件提供了豐富的選項和參數,可以幫助用戶更好地控制和定制sqlmap的行為。以下是一些使用技巧:

4.1 備份和恢復配置文件

sqlmap的配置文件中保存了用戶的各種選項和參數,非常重要。為了避免配置文件的丟失或損壞,用戶可以定期備份配置文件,并將其保存在安全的位置。如果配置文件丟失或損壞,可以通過將備份文件恢復到默認位置的方式來恢復配置文件。

4.2 使用配置文件快速重復掃描

如果需要多次掃描同一個目標,可以在第一次掃描完成后保存掃描選項和參數到配置文件中,并在后續掃描中使用該配置文件。這樣可以避免重復輸入選項和參數,并加快掃描速度。

4.3 自定義tamper腳本

sqlmap的tamper選項允許用戶自定義SQL注入報文的編碼方式,可以用于繞過WAF或輸入過濾等安全機制。用戶可以編寫自己的tamper腳本,并將其保存在配置文件中。在后續的掃描中,可以使用自定義的tamper腳本以達到更好的效果。

4.4 使用并發線程加快掃描速度

sqlmap的misc選項中提供了并發線程數的選項,可以通過增加并發線程數來加快掃描速度。在使用并發線程時,需要注意不要設置過高的線程數,以免給目標服務器帶來過大的負載。

總結
sqlmap的配置文件提供了豐富的選項和參數,可以幫助用戶更好地控制和定制sqlmap的行為。在使用sqlmap時,建議用戶仔細閱讀配置文件中的各個選項和參數,并根據實際需要進行設置和調整。同時,用戶還應該注意備份和恢復配置文件,使用配置文件快速重復掃描,自定義tamper腳本以及使用并發線程加快掃描速度等使用技巧,以提高工作效率和掃描效果。

SQLMap插件的使用

接下來我將從以下幾個方面詳細介紹 SQLMap 插件的使用:

SQLMap 簡介
SQLMap 插件介紹
SQLMap 插件使用實例
SQLMap 插件高級功能介紹

  1. SQLMap 簡介
    SQLMap 是一款流行的自動化 SQL 注入工具,可以幫助滲透測試人員快速發現和利用 SQL 注入漏洞。SQLMap 支持多種數據庫類型和多種注入技巧,是滲透測試工程師必備的工具之一。

  2. SQLMap 插件介紹
    SQLMap 插件是 SQLMap 的一個擴展功能,可以幫助滲透測試人員更加高效地進行 SQL 注入測試。SQLMap 插件可以與 Burp Suite 集成,從而在 Burp Suite 中使用 SQLMap 的功能,方便測試人員進行測試。

SQLMap 插件支持以下功能:

將請求發送給 SQLMap 進行注入測試
在 Burp Suite 中查看 SQLMap 的測試結果
在 Burp Suite 中使用 SQLMap 的高級功能,如提取數據庫信息、執行命令等
3. SQLMap 插件使用實例
下面我將通過一個實例詳細介紹 SQLMap 插件的使用。假設我們有一個 Web 應用程序,存在 SQL 注入漏洞,我們希望使用 SQLMap 插件對其進行測試。

首先,我們需要在 Burp Suite 中安裝 SQLMap 插件。在 Burp Suite 中選擇 Extender -> BApp Store,搜索 SQLMap,點擊 Install 安裝插件。

安裝完成后,在 Burp Suite 中選擇 Extender -> Extensions,可以看到已經安裝好的 SQLMap 插件。

接下來,在 Burp Suite 中打開目標應用程序,并將其代理設置為 Burp Suite 的代理。然后,在 Burp Suite 的 Proxy -> Intercept 標簽頁中啟用攔截功能。

訪問目標應用程序,輸入用戶名和密碼,點擊登錄按鈕。此時,Burp Suite 將攔截到登錄請求,我們可以右鍵點擊該請求,選擇 Send to SQLMap 進行測試。

SQLMap 插件會自動在后臺啟動 SQLMap,并將請求發送給 SQLMap 進行注入測試。我們可以在 Burp Suite 的 Output 標簽頁中查看 SQLMap 的測試結果。

如果 SQLMap 發現了漏洞,我們可以在 Burp Suite 中使用 SQLMap 的高級功能進行測試。例如,我們可以選擇 SQLMap -> Extract Database Information,提取數據庫的信息。我們也可以選擇 SQLMap -> OS Shell,執行命令。

  1. SQLMap 插件高級功能介紹
    上面介紹的是 SQLMap 插件的基本使用方法,下面我將介紹一些 SQLMap 插件的高級功能。

4.1. 配置 SQLMap
在使用 SQLMap 插件之前,我們需要對 SQLMap 進行一些配置。在 Burp Suite 中選擇 SQLMap -> Options,可以配置 SQLMap 的選項。

例如,我們可以配置 SQLMap 的數據庫類型、目標 URL、代理地址等。我們還可以配置 SQLMap 的其他選項,如 cookie、HTTP 頭等。

4.2. 使用 Payloads
在 SQL 注入測試中,我們需要使用一些 Payloads 進行測試。SQLMap 插件內置了一些常用的 Payloads,可以在 SQLMap -> Payloads 中查看。

如果需要自定義 Payloads,可以在 Burp Suite 中使用 Intruder 進行測試,并將測試結果保存為 Payloads。

4.3. 使用 Tamper Scripts
在 SQL 注入測試中,我們還需要使用一些 Tamper Scripts 進行測試。Tamper Scripts 可以幫助我們繞過一些 WAF 或過濾器。

SQLMap 插件內置了一些常用的 Tamper Scripts,可以在 SQLMap -> Tamper Scripts 中查看。

如果需要自定義 Tamper Scripts,可以在 Burp Suite 中使用 Intruder 進行測試,并將測試結果保存為 Tamper Scripts。

4.4. 使用插件 API
SQLMap 插件還提供了插件 API,可以幫助我們編寫自定義插件。插件 API 支持多種編程語言,如 Python、Java、Ruby 等。

例如,我們可以使用插件 API 編寫一個自定義插件,用于自動化 SQL 注入測試。該插件可以自動掃描目標網站,發現 SQL 注入漏洞,并使用 SQLMap 進行測試。

總結
SQLMap 插件是一款非常實用的工具,可以幫助滲透測試人員更加高效地進行 SQL 注入測試。在使用 SQLMap 插件時,我們需要了解 SQLMap 的基本使用方法,并掌握一些高級功能,如配置 SQLMap、使用 Payloads 和 Tamper Scripts、使用插件 API 等。只有掌握了這些技巧,才能更加高效地進行 SQL 注入測試,發現更多的漏洞。

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

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

相關文章

ingress介紹和ingress通過LoadBalancer暴露服務配置

目錄 一.ingress基本原理介紹 1.將原有用于暴露服務和負載均衡的服務的三四層負載均衡變為一個七層負載均衡 2.controller和ingress 3.通過下面這個圖可能會有更直觀的理解 二.為什么會出現ingress 1.NodePort存在缺點 2.LoadBalancer存在缺點 三.ingress三種暴露服務的…

7-6 通訊錄排序

輸入n個朋友的信息&#xff0c;包括姓名、生日、電話號碼&#xff0c;本題要求編寫程序&#xff0c;按照年齡從大到小的順序依次輸出通訊錄。題目保證所有人的生日均不相同。 輸入格式: 輸入第一行給出正整數n&#xff08;<10&#xff09;。隨后n行&#xff0c;每行按照“…

基于JavaWeb+SSM+Vue微信小程序的科創微應用平臺系統的設計和實現

基于JavaWebSSMVue微信小程序的科創微應用平臺系統的設計和實現 源碼獲取入口Lun文目錄前言主要技術系統設計功能截圖訂閱經典源碼專欄Java項目精品實戰案例《500套》 源碼獲取 源碼獲取入口 Lun文目錄 1系統概述 1 1.1 研究背景 1 1.2研究目的 1 1.3系統設計思想 1 2相關技術…

Linux Component概述和高通component的使用

1 Linux為什么要引入Component框架&#xff1f; 為了讓subsystem按照一定順序初始化設備才提出來的。 subsystem中由很多設備模塊&#xff0c;內核加載這些模塊的時間不確定。子系統內有些模塊是需要依賴其它模塊先初始化才能進行自己初始化工作(例如v4l2 subdev和v4l2 video …

kubebuilder開發operator

安裝kubebuilder前 需要有kubernetes環境和golang環境 官網&#xff1a;https://go.kubebuilder.io/ 安裝kubebuilder #下載 wget https://go.kubebuilder.io/dl/latest/$(go env GOOS)/$(go env GOARCH) #改名kubebuilder后加權限 chmod x kubebuilder #放到環境變量里 mv k…

【C語言程序設計】編寫簡單的C程序

目錄 前言 一、程序設計 二、程序改錯 三、程序完善 總結 &#x1f308;嗨&#xff01;我是Filotimo__&#x1f308;。很高興與大家相識&#xff0c;希望我的博客能對你有所幫助。 &#x1f4a1;本文由Filotimo__??原創&#xff0c;首發于CSDN&#x1f4da;。 &#x1f4e3;如…

unity 2d 入門 飛翔小鳥 死亡 顯示GameOver(十四)

1、添加Img create->ui->img 把圖片拖進去 2、和分數一樣、調整位置 3、修改角色腳本 using System.Collections; using System.Collections.Generic; using UnityEngine;public class Fly : MonoBehaviour {//獲取小鳥&#xff08;剛體&#xff09;private Rigidbod…

【Apipost】批量刪除我的51CTO文章

文章目錄 一、序二、API分析三、Apipost測試四、腳本五、Apipost中完成 一、序 去年開始再51CTO同步更新文章&#xff0c;一年多過去了&#xff0c;只漲了3個粉絲。看了下這個平臺就是賣課、搞培訓的&#xff0c;退出了。決定把文章也刪除了&#xff08;有人私信我說專門注冊了…

ToolkenGPT:用大量工具增強LLM

深度學習自然語言處理 原創作者&#xff1a;cola 用外部工具增強大型語言模型(LLM)已經成為解決復雜問題的一種方法。然而&#xff0c;用樣例數據對LLM進行微調的傳統方法&#xff0c;可能既昂貴又局限于一組預定義的工具。最近的上下文學習范式緩解了這一問題&#xff0c;但有…

Shell 常用命令詳解-上

Shell 常用命令詳解-上 1.目錄查閱相關命令2.文件操作相關命令 1.目錄查閱相關命令 ll 命令 命令描述&#xff1a;ll命令用于顯示指定工作目錄下的內容。 命令格式&#xff1a;ll [參數] [目錄名]。 參數說明&#xff1a; 參數說明-a顯示所有文件及目錄&#xff08;包括隱藏文…

【機器學習】041_模型開發迭代過程

一、模型開發的一般步驟 1. 明確研究問題 確定問題的組成和結果&#xff0c;明晰問題是分類問題還是回歸問題 2. 決定系統總體架構 ①理解數據&#xff1a;采集&#xff08;爬取&#xff09;數據&#xff0c;生成&#xff08;導入&#xff09;數據&#xff0c;進行數據清洗…

代碼隨想錄二刷 |二叉樹 |101. 對稱二叉樹

代碼隨想錄二刷 &#xff5c;二叉樹 &#xff5c;101. 對稱二叉樹 題目描述解題思路 & 代碼實現遞歸法迭代法使用隊列使用棧 題目描述 101.對稱二叉樹 給你一個二叉樹的根節點 root &#xff0c; 檢查它是否軸對稱。 示例 1&#xff1a; 輸入&#xff1a;root [1,2,2,…

zcms企業官網建站系統源碼搭建-支持頁面自定義

1.支持mysql&#xff0c;sqlite&#xff0c;access三種數據庫。 2.模板和標簽與asp版的zzzcms通用。 3.asp版的zzzcms的access數據庫可直接使用。 4.支持手機站。 &#xff08;增刪改查不做描述&#xff09;&#xff1a; 網站信息 名稱&#xff0c;logo&#xff0c;微信&…

基于OpenCV的流水線包裝箱檢測計數應用(附源碼)

導 讀 本文主要介紹基于OpenCV的流水線包裝箱檢測計數應用,并給出源碼。 資源下載 完整代碼和視頻下載地址: https://github.com/freedomwebtech/rpi4-conveyor-belt-boxces-counter 核心代碼如下(cboxtest.py): import cv2import numpy as npfrom tracker import*cap=c…

【MYSQL】單表查詢

查詢語法&#xff1a; select 字段&#xff08;*表示全字段&#xff09; from 數據表 【where 條件表達式】 【group by 分組字段【having 分組條件表達式】】 【order by 排序字段【asc | desc】】 例子&#xff1a; 教職工表Teacher(Tno, TName, age, sal, mgr, DNo)&#…

C# 圖解教程 第5版 —— 第17章 轉換

文章目錄 17.1 什么是轉換17.2 隱式轉換17.3 顯示轉換和強制轉換17.4 轉換的類型17.5 數字的轉換17.5.1 隱式數字轉換17.5.2 溢出檢測上下文17.5.3 顯示數字轉換 17.6 引用轉換17.6.1 隱式引用轉換17.6.2 顯式引用轉換17.6.3 有效顯式引用轉換 17.7 裝箱轉換17.7.1 裝箱是創建副…

前端發起更改數據請求后再獲取后端數據發現數據并未更改的一個解決辦法

前端發起更改數據請求后再獲取后端數據發現數據并未更改的一個解決辦法 問題再現 async function refuseRefund(id,type){if(confirm(確定拒絕&#xff1f;)){await fetch(http://127.0.0.1:3000/api/refuseRefund, {method: POST,headers: {Content-type: application/json}…

vue項目搭建---1.搭建基礎的框架

目錄 1. pnpm下載1.1 安裝1.2 差異1.3 鏡像源設置 2. 項目2.1 vite創建項目2.2 項目配置2.3 piniavue-routermain.jsstore/index.jsrouter/index.jsvue文件里使用示例 2.4 eslint prettier.eslintrc.js.eslintignore.prettierrc 2.5 樣式2.6 commitizenpackage.json.cz-config…

MySQL - 聚簇索引和非聚簇索引,回表查詢,索引覆蓋,索引下推,最左匹配原則

聚簇索引和非聚簇索引 聚簇索引和非聚簇索引是 InnoDB 里面的叫法 一張表它一定有聚簇索引&#xff0c;一張表只有一個聚簇索引在物理上也是連續存儲的 它產生的過程如下&#xff1a; 表中有無有主鍵索引&#xff0c;如果有&#xff0c;則使用主鍵索引作為聚簇索引&#xff1b;…

【Scala】Scala中的一些基本數據類型的特性 列表、元組、構造器、單例對象、伴生類、伴生對象、抽象類與特質

列表 使用List(“”,“”,“”)去聲明 sliding 和 groued表示迭代器 val iter List("Hadoop", "Spark", "Scala") sliding 2// sliding 和 groued 是有區別的while (iter.hasNext){println(iter.next())}for (elem <- iter){println(elem)}…