[TOC]
# <span style="font-size:15px">**/etc/ssh/ssh_config:客戶端的配置文件**</span>
```
# Host * // 只對匹配后面字串的計算機有效,“\*”表示所有的計算機
# ForwardAgent no // 設置連接是否經過驗證代理(如果存在)轉發給遠程計算機
# ForwardX11 no // 設置X11連接是否被自動重定向到安全的通道和顯示集(DISPLAY set)
# RhostsRSAAuthentication no // 設置是否使用用RSA算法的基于rhosts的安全驗證
# RSAAuthentication yes // 設置是否使用RSA算法進行安全驗證
# PasswordAuthentication yes // 設置是否使用口令驗證
# HostbasedAuthentication no // 設置是否開啟主機認證
# GSSAPIAuthentication no // 是否允許使用基于?GSSAPI?的用戶認證,請注意,此選項僅適用于協議版本2
# GSSAPIDelegateCredentials no // 是否將憑據轉發到服務器。默認值為“否”。
# GSSAPIKeyExchange no // 指定是否可以使用基于GSSAPI的密鑰交換。 使用GSSAPI密鑰交換時,服務器不需要主機密鑰。 默認為“否”。
# GSSAPITrustDNS no //
# BatchMode no // 批處理模式,一般設為"no";如果設為"yes",交互式輸入口令的提示將被禁止,這個選項對腳本文件和批處理任務十分有用
# CheckHostIP yes // 設置ssh是否連接到服務器的主機的IP地址以防止DNS欺騙
# AddressFamily any // 設置地址家族,any表示同時監聽ipv4和ipv6地址
# ConnectTimeout 0 // 設置ssh連接超時時間
# StrictHostKeyChecking ask // 主機公鑰確認機制
# IdentityFile ~/.ssh/identity // 設置讀取用戶的RSA安全驗證標識
# IdentityFile ~/.ssh/id_rsa
# IdentityFile ~/.ssh/id_dsa
# IdentityFile ~/.ssh/id_ecdsa
# IdentityFile ~/.ssh/id_ed25519
# Port 22 // 設置端口
# Protocol 2 // 設置協議版本為SSH1或SSH2,SSH1存在漏洞與缺陷,選擇SSH2
# Cipher 3des // 設置加密用的密碼
# Ciphers aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-cbc,3des-cbc
# MACs hmac-md5,hmac-sha1,umac-64@openssh.com,hmac-ripemd160
# EscapeChar ~ // 設置escape字符
# Tunnel no // 請求tun(4)設備在客戶端和服務器之間轉發。參數必須是yes、point-to-point(第3層)、ethernet(第2層)或no(默認值)。指定yes請求默認的隧道模式,即點對點。
# TunnelDevice any:any // 指定要在客戶端(本地)和服務器(遠程)上打開的tun(4)個設備。參數必須是local_tun[:remote_tun]。設備可以通過數字ID或關鍵字any指定,后者使用下一個可用的隧道設備。如果未指定remote_tun,則默認為any。默認值是任何:任何
# PermitLocalCommand no // command轉義序列執行本地命令。 參數必須是yes或no(默認值)
# VisualHostKey no //如果此標志設置為yes,則除了登錄時和未知主機密鑰的指紋字符串外,還將打印遠程主機密鑰指紋的ASCII藝術形式。 如果將此標志設置為no(默認值),則在登錄時不會打印任何指紋字符串,并且只會為未知的主機密鑰打印指紋字符串
# ProxyCommand ssh -q -W %h:%p gateway.example.com
# RekeyLimit 1G 1h // 指定在重新協商會話密鑰之前可以傳輸的最大數據量,可以選擇地指定在重新協商會話密鑰之前可以經過的最大時間量。 第一個參數以字節為單位指定,后綴為“ K”,“ M”或“ G”,分別表示千字節,兆字節或千兆字節。 默認值在“ 1G”和“ 4G”之間,具體取決于密碼。
#
# Uncomment this if you want to use .local domain
# Host *.local
# CheckHostIP no // 是否檢查主機ip,檢測主機密鑰是否由于DNS欺騙而發生了更改,并在此過程中將目標主機的地址添加到?/ .ssh / known_hosts中,而與StrictHostKeyChecking的設置無關
```
**主機公鑰確認`StrictHostKeyChecking`**
1. `StrictHostKeyChecking=no`最不安全的級別,當然也沒有那么多煩人的提示了,相對安全的內網**測試**時建議使用。如果連接**server**的key在本地不存在,那么就自動添加到文件中(默認是known\_hosts),并且給出一個警告。
2. `StrictHostKeyChecking=ask`默認的級別,就是出現剛才的提示了。如果連接和key不匹配,給出提示,并拒絕登錄。
3. `StrictHostKeyChecking=yes`最安全的級別,如果連接與key不匹配,就拒絕連接,不會提示詳細信息。
# <span style="font-size:15px">**/etc/ssh/sshd_config:服務端的配置文件**</span>
```
Port 29 // 設置端口
#ListenAddress 0.0.0.0 // 設置sshd服務器綁定的IP地址
#ListenAddress ::
HostKey /etc/ssh/ssh_host_rsa_key // 設置包含計算機私人密匙的文件
#HostKey /etc/ssh/ssh_host_dsa_key
HostKey /etc/ssh/ssh_host_ecdsa_key
HostKey /etc/ssh/ssh_host_ed25519_key
# Ciphers and keying
#RekeyLimit default none
# Logging
#LogLevel INFO // 設置記錄sshd日志消息的層次
# Authentication:
#LoginGraceTime 2m // 設置如果用戶不能成功登錄,在切斷連接之前服務器需要等待的時間
#StrictModes yes // 設置ssh在接收登錄請求之前是否檢查用戶家目錄和rhosts文件的權限和所有權
#MaxAuthTries 6 // 指定每個連接允許的最大身份驗證嘗試次數。 一旦故障數量達到該值的一半,就會記錄其他故障。 預設值為6
#MaxSessions 10 // 指定每個網絡連接允許的最大開放shell、登錄或子系統(例如sftp)會話數。支持連接多路復用的客戶端可以建立多個會話。將MaxSessions設置為1將有效地禁用會話多路復用,而將其設置為0將阻止所有shell、登錄和子系統會話,同時仍允許轉發。默認值為10。
#PubkeyAuthentication yes // 指定是否允許公共密鑰身份驗證。 默認值為是
# The default is to check both .ssh/authorized_keys and .ssh/authorized_keys2
# but this is overridden so installations will only check .ssh/authorized_keys
AuthorizedKeysFile .ssh/authorized_keys // AuthorizedKeysFile文件路徑
#AuthorizedPrincipalsFile none // 指定一個文件,該文件列出了證書認證可接受的主體名稱。 當使用由TrustedUserCAKeys中列出的密鑰簽名的證書時,此文件列出名稱,必須在證書中顯示其中一個名稱,以便接受身份驗證
#AuthorizedKeysCommand none // 指定用于查找用戶公鑰的程序。 該程序必須由root擁有,不能由組或其他人寫入,并且必須由絕對路徑指定
#AuthorizedKeysCommandUser nobody // 指定在其帳戶下運行AuthorizedKeysCommand的用戶。建議使用在主機上除了運行授權密鑰命令之外沒有其他角色的專用用戶
# For this to work you will also need host keys in /etc/ssh/ssh_known_hosts
#HostbasedAuthentication no // 指定是rhosts還是/etc/主機.equiv允許身份驗證和成功的公鑰客戶端主機身份驗證(基于主機的身份驗證)。默認值為“否”
# Change to yes if you don't trust ~/.ssh/known_hosts for
# HostbasedAuthentication
#IgnoreUserKnownHosts no // 指定在HostbasedAuthentication期間,sshd(8)是否應忽略用戶的?/.ssh/known_hosts。默認值為否。
# Don't read the user's ~/.rhosts and ~/.shosts files
#IgnoreRhosts yes // 指定在基于主機的身份驗證中不使用.rhosts和.shosts文件
# To disable tunneled clear text passwords, change to no here!
#PermitEmptyPasswords no // 設置是否允許用口令為空的帳號登錄
# Change to no to disable s/key passwords
#ChallengeResponseAuthentication yes // 指定是否允許質詢響應身份驗證,默認為yes
ChallengeResponseAuthentication no
# Kerberos options
#KerberosAuthentication no // 指定是否將通過Kerberos KDC驗證用戶為PasswordAuthentication提供的密碼。要使用這個選項,服務器需要一個kerberoservtab,它允許驗證KDC的身份。默認值為no。
#KerberosOrLocalPasswd yes // 如果通過Kerberos的密碼身份驗證失敗,則將通過任何其他本地機制(例如/ etc / passwd)來驗證密碼。 默認yes
#KerberosTicketCleanup yes // 指定是否在注銷時自動銷毀用戶的票證緩存文件。 默認值為yes
#KerberosGetAFSToken no // 如果AFS處于活動狀態,并且用戶具有Kerberos 5 TGT,請嘗試在訪問用戶的主目錄之前獲取AFS令牌,默認值是no
#KerberosUseKuserok yes // 指定是否在.k5login文件中查看用戶的別名,默認值是yes
# GSSAPI options
GSSAPIAuthentication yes // 指定是否允許基于GSSAPI的用戶身份驗證。 默認為no
GSSAPICleanupCredentials no // 指定是否在注銷時自動銷毀用戶的憑據緩存。 默認值為是。
#GSSAPIStrictAcceptorCheck yes // 確定是否嚴格要求客戶端進行身份驗證的GSSAPI接受者的身份。 如果設置為yes,則客戶端必須針對當前主機名上的主機服務進行身份驗證。 如果設置為no,則客戶端可以針對存儲在計算機默認存儲中的任何服務密鑰進行身份驗證。默認值為是。
#GSSAPIKeyExchange no // 指定是否允許基于GSSAPI的密鑰交換。 GSSAPI密鑰交換不依賴ssh密鑰來驗證主機身份,默認值是no
#GSSAPIEnablek5users no // 指定是否查看.k5users文件以進行GSSAPI身份驗證訪問控制,默認值是no
# Set this to 'yes' to enable PAM authentication, account processing,
# and session processing. If this is enabled, PAM authentication will
# be allowed through the ChallengeResponseAuthentication and
# PAM authentication via ChallengeResponseAuthentication may bypass
# If you just want the PAM account and session checks to run without
# and ChallengeResponseAuthentication to 'no'.
# WARNING: 'UsePAM no' is not supported in Red Hat Enterprise Linux and may cause several
# problems.
UsePAM yes // 啟用可插拔身份驗證模塊接口。如果設置為yes,則除了對所有身份驗證類型進行PAM帳戶和會話模塊處理外,還將使用ChallengeResponseAuthentication和PasswordAuthentication啟用PAM身份驗證
#AllowAgentForwarding yes // 指定是否允許ssh代理(1)轉發。默認值為“是”
#AllowTcpForwarding yes // 指定是否允許TCP轉發。 可用選項為是(默認)或全部以允許TCP轉發,否為阻止所有TCP轉發
#GatewayPorts no // 指定是否允許遠程主機連接到為客戶端轉發的端口。默認情況下,sshd(8)將遠程端口轉發綁定到環回地址。這將阻止其他遠程主機連接到轉發端口。網關端口可用于指定sshd應允許遠程端口轉發綁定到非環回地址,從而允許其他主機連接。參數可以是no以強制遠程端口轉發僅對本地主機可用,yes可以強制遠程端口轉發綁定到通配符地址,或者指定clients以允許客戶端選擇轉發綁定到的地址
X11Forwarding yes // 指定是否允許X11轉發。 參數必須為yes或no。 默認為“否”。
#X11DisplayOffset 10
#X11UseLocalhost yes // 指定sshd(8)應該將X11轉發服務器綁定到回送地址還是通配符地址。 默認情況下,sshd將轉發服務器綁定到環回地址,并將DISPLAY環境變量的主機名部分設置為localhost。 這樣可以防止遠程主機連接到代理顯示器。 但是,某些較舊的X11客戶端可能無法使用此配置。 X11UseLocalhost可以設置為no,以指定轉發服務器應綁定到通配符地址。 參數必須為是或否。 默認值為是
#PermitTTY yes
#PrintMotd yes
#PrintLastLog yes
#TCPKeepAlive yes // 設置系統是否應向另一側發送TCP keepalive消息
#UseLogin no
#UsePrivilegeSeparation sandbox // 是否通過創建一個非特權子進程來處理傳入的網絡流量來分離特權。身份驗證成功后,將創建另一個具有已驗證用戶權限的進程。權限分離的目標是通過包含未授權進程中的任何損壞來防止權限升級。或者不是,必須是沙箱。如果usePrivilegeSeption設置為sandbox,則未經授權的預身份驗證進程將受到其他限制。
#PermitUserEnvironment no // 指定?/.ssh/authorized_keys中的?/.ssh/environment和environment =選項是否由sshd(8)處理。 默認為“否”。 啟用環境處理可能使用戶能夠使用LD_PRELOAD之類的機制繞過某些配置中的訪問限制
#Compression delayed // 指定在用戶成功認證后是否啟用壓縮。 參數必須為yes,delayed(是yes的傳統同義詞)或no
#ClientAliveInterval 0 // 設置超時間隔(以秒為單位),默認值為0,表示這些消息不會發送到客戶端
#ClientAliveCountMax // 設置在沒有接收到來自客戶端的任何消息的情況下可以發送的客戶端活動消息的數目。 如果在發送客戶端活動消息時達到此閾值,則sshd將斷開客戶端連接,從而終止會話。默認值為3。如果ClientAliveInterval設置為15,并且ClientAliveCountMax保留默認值,則無響應的SSH客戶端將在大約45秒后斷開連接。
#ShowPatchLevel no // 指定sshd是否將在標識字符串中顯示二進制文件的補丁程序級別。 補丁程序級別在編譯時設置。 默認為“否”。 此選項僅適用于協議版本1。
#PidFile /var/run/sshd.pid
#MaxStartups 10:30:100 // 指定到SSH守護程序的并發未認證連接的最大數量。 其他連接將被丟棄,直到身份驗證成功或該連接的LoginGraceTime過期為止。 默認值為10:30:100。
#PermitTunnel no // 指定是否允許tun(4)設備轉發。 該參數必須為是,點對點(第3層),以太網(第2層)或否。 指定“是”將允許點對點和以太網。 默認為“否”。
#ChrootDirectory none // 指定身份驗證后chroot(2)到的目錄的路徑名。在會話啟動時,sshd(8)檢查路徑名的所有組件是否都是根目錄,這些目錄不能被任何其他用戶或組寫入
#VersionAddendum none // 指定其他文本,以附加到服務器在連接后發送的SSH協議標語上。 默認為無
# no default banner path
#Banner none
# Accept locale-related environment variables
AcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES
AcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT
AcceptEnv LC_IDENTIFICATION LC_ALL LANGUAGE
AcceptEnv XMODIFIERS
# override default of no subsystems
Subsystem sftp /usr/libexec/openssh/sftp-server
# Example of overriding settings on a per-user basis
#Match User anoncvs
# X11Forwarding no
# AllowTcpForwarding no
# PermitTTY no
# ForceCommand cvs server
UseDNS no // 服務器會先根據客戶端的 IP地址進行 DNS PTR反向查詢出客戶端的主機名,然后根據查詢出的客戶端主機名進行DNS正向A記錄查詢,并驗證是否與原始 IP地址一致,通過此種措施來防止客戶端欺騙。平時我們都是動態 IP不會有PTR記錄,所以打開此選項也沒有太多作用。我們可以通過關閉此功能來提高連接 OpenSSH 服務器的速度
AddressFamily inet
PermitRootLogin yes // 設置root是否可以使用ssh登錄,參數必須為:yes, prohibit-password, without-password, forced-commands-only, or no。
SyslogFacility AUTHPRIV // 提供從sshd(8)記錄消息時使用的工具代碼。 可能的值為:DAEMON,USER,AUTH,AUTHPRIV,LOCAL0,LOCAL1,LOCAL2,LOCAL3,LOCAL4,LOCAL5,LOCAL6,LOCAL7。 默認值為AUTH。
PasswordAuthentication yes // 指定是否允許密碼認證。 默認是
```
**設置root是否可以使用ssh登錄:PermitRootLogin**
1. yes:允許登錄
2. prohibit-password/without-password:將此選項設置為禁止密碼或不帶密碼,則root用戶將禁用密碼和鍵盤交互身份驗證
3. forced-commands-only:將此選項設置為“僅強制命令”,則僅允許在指定了命令選項的情況下允許使用公用密鑰身份驗證的root登錄(即使通常不允許root登錄,這對于進行遠程備份也很有用)。 root禁用所有其他身份驗證方法
4. no:不允許root用戶登錄
- PHP
- PHP基礎
- PHP介紹
- 如何理解PHP是弱類型語言
- 超全局變量
- $_SERVER詳解
- 字符串處理函數
- 常用數組函數
- 文件處理函數
- 常用時間函數
- 日歷函數
- 常用url處理函數
- 易混淆函數區別(面試題常見)
- 時間戳
- PHP進階
- PSR規范
- RESTFUL規范
- 面向對象
- 三大基本特征和五大基本原則
- 訪問權限
- static關鍵字
- static關鍵字
- 靜態變量與普通變量
- 靜態方法與普通方法
- const關鍵字
- final關鍵字
- abstract關鍵字
- self、$this、parent::關鍵字
- 接口(interface)
- trait關鍵字
- instanceof關鍵字
- 魔術方法
- 構造函數和析構函數
- 私有屬性的設置獲取
- __toString()方法
- __clone()方法
- __call()方法
- 類的自動加載
- 設計模式詳解
- 關于設計模式的一些建議
- 工廠模式
- 簡單工廠模式
- 工廠方法模式
- 抽象工廠模式
- 區別和適用范圍
- 策略模式
- 單例模式
- HTTP
- 定義
- 特點
- 工作過程
- request
- response
- HTTP狀態碼
- URL
- GET和POST的區別
- HTTPS
- session與cookie
- 排序算法
- 冒泡排序算法
- 二分查找算法
- 直接插入排序算法
- 希爾排序算法
- 選擇排序算法
- 快速排序算法
- 循環算法
- 遞歸與尾遞歸
- 迭代
- 日期相關的類
- DateTimeInterface接口
- DateTime類
- DateTimeImmutable類
- DateInterval類
- DateTimeZone類
- DatePeriod類
- format參數格式
- DateInterval的format格式化參數
- 預定義接口
- ArrayAccess(數組式訪問)接口
- Serializable (序列化)接口
- Traversable(遍歷)接口
- Closure類
- Iterator(迭代器)接口
- IteratorAggregate(聚合迭代器) 接口
- Generator (生成器)接口
- composer
- composer安裝與使用
- python
- python3執行tarfile解壓文件報錯:tarfile.ReadError:file could not be opened successfully
- golang
- 單元測試
- 單元測試框架
- Golang內置testing包
- GoConvey庫
- testify庫
- 打樁與mock
- GoMock框架
- Gomonkey框架
- HTTP Mock
- httpMock
- mux庫/httptest
- 數據庫
- MYSQL
- SQL語言的分類
- 事務(重點)
- 索引
- 存儲過程
- 觸發器
- 視圖
- 導入導出數據庫
- 優化mysql數據庫的方法
- MyISAM與InnoDB區別
- 外連接、內連接的區別
- 物理文件結構
- PostgreSQL
- 編譯安裝
- pgsql常用命令
- pgsql應用目錄(bin目錄)文件結構解析
- pg_ctl
- initdb
- psql
- clusterdb
- cluster命令
- createdb
- dropdb
- createuser
- dropuser
- pg_config
- pg_controldata
- pg_checksums
- pgbench
- pg_basebackup
- pg_dump
- pg_dumpall
- pg_isready
- pg_receivewal
- pg_recvlogical
- pg_resetwal
- pg_restore
- pg_rewind
- pg_test_fsync
- pg_test_timing
- pg_upgrade
- pg_verifybackup
- pg_archivecleanup
- pg_waldump
- postgres
- reindexdb
- vacuumdb
- ecpg
- pgsql數據目錄文件結構解析
- pgsql數據目錄文件結構解析
- postgresql.conf解析
- pgsql系統配置參數說明
- pgsql索引類型
- 四種索引類型解析
- 索引之ctid解析
- 索引相關操作
- pgsql函數解析
- pgsql系統函數解析
- pgsql窗口函數解析
- pgsql聚合函數解析
- pgsql系統表解析
- pg_stat_all_indexes
- pg_stat_all_tables
- pg_statio_all_indexes
- pg_statio_all_tables
- pg_stat_database
- pg_stat_statements
- pg_extension
- pg_available_extensions
- pg_available_extension_versions
- pgsql基本原理
- 進程和內存結構
- 存儲結構
- 數據文件的內部結構
- 垃圾回收機制VACUUM
- 事務日志WAL
- 并發控制
- 介紹
- 事務ID-txid
- 元組結構-Tuple Structure
- 事務狀態記錄-Commit Log (clog)
- 事務快照-Transaction Snapshot
- 事務快照實例
- 事務隔離
- 事務隔離級別
- 讀已提交-Read committed
- 可重復讀-Repeatable read
- 可序列化-Serializable
- 讀未提交-Read uncommitted
- 鎖機制
- 擴展機制解析
- 擴展的定義
- 擴展的安裝方式
- 自定義創建擴展
- 擴展的管理
- 擴展使用實例
- 在pgsql中使用last、first聚合函數
- pgsql模糊查詢不走索引的解決方案
- pgsql的pg_trgm擴展解析與驗證
- 高可用
- LNMP
- LNMP環境搭建
- 一鍵安裝包
- 搭建方法
- 配置文件目錄
- 服務器管理系統
- 寶塔(Linux)
- 安裝與使用
- 開放API
- 自定義apache日志
- 一鍵安裝包LNMP1.5
- LNMP1.5:添加、刪除站點
- LNMP1.5:php多版本切換
- LNMP1.5 部署 thinkphp項目
- Operation not permitted解決方法
- Nginx
- Nginx的產生
- 正向代理和反向代理
- 負載均衡
- Linux常用命令
- 目錄與文件相關命令
- 目錄操作命令
- 文件編輯命令
- 文件查看命令
- 文件查找命令
- 文件權限命令
- 文件上傳下載命令
- 用戶和群組相關命令
- 用戶與用戶組的關系
- 用戶相關的系統配置文件
- 用戶相關命令
- 用戶組相關命令
- 壓縮與解壓相關命令
- .zip格式
- .tar.gz格式
- .gz格式
- .bz2格式
- 查看系統版本
- cpuinfo詳解
- meminfo詳解
- getconf獲取系統信息
- 磁盤空間相關命令
- 查看系統負載情況
- 系統環境變量
- 網絡相關命令
- ip命令詳解
- ip命令格式詳解
- ip address命令詳解
- ip link命令詳解
- ip rule命令詳解
- ip route命令詳解
- nslookup命令詳解
- traceroute命令詳解
- netstat命令詳解
- route命令詳解
- tcpdump命令詳解
- 系統進程相關命令
- ps命令詳解
- pstree命令詳解
- kill命令詳解
- 守護進程-supervisord
- 性能監控相關命令
- top命令詳解
- iostat命令詳解
- pidstat命令詳解
- iotop命令詳解
- mpstat命令詳解
- vmstat命令詳解
- ifstat命令詳解
- sar命令詳解
- iftop命令詳解
- 定時任務相關命令
- ssh登錄遠程主機
- ssh口令登錄
- ssh公鑰登錄
- ssh帶密碼登錄
- ssh端口映射
- ssh配置文件
- ssh安全設置
- 歷史紀錄
- history命令詳解
- linux開啟操作日志記錄
- 拓展
- git
- git初始化本地倉庫-https
- git初始化倉庫-ssh
- git-查看和設置config配置
- docker
- 概念
- docker原理
- docker鏡像原理
- docker Overlay2 文件系統原理
- docker日志原理
- docker日志驅動
- docker容器日志管理
- 原理論證
- 驗證容器的啟動是作為Docker Daemon的子進程
- 驗證syslog類型日志驅動
- 驗證journald類型日志驅動
- 驗證local類型日志驅動
- 修改容器的hostname
- 修改容器的hosts
- 驗證聯合掛載技術
- 驗證啟動多個容器對于磁盤的占用情況
- 驗證寫時復制原理
- 驗證docker內容尋址原理
- docker存儲目錄
- /var/lib/docker目錄
- image目錄
- overlay2目錄
- 數據卷
- 具名掛載和匿名掛載
- 數據卷容器
- Dockerfile詳解
- dockerfile指令詳解
- 實例:構造centos
- 實例:CMD和ENTRYPOINT的區別
- docker網絡詳解
- docker-compose
- 緩存
- redis
- redis的數據類型和應用場景
- redis持久化
- RDB持久化
- AOF持久化
- redis緩存穿透、緩存擊穿、緩存雪崩
- 常見網絡攻擊類型
- CSRF攻擊
- XSS攻擊
- SQL注入
- Cookie攻擊
- 歷史項目經驗
- 圖片上傳項目實例
- 原生php上傳方法實例
- base64圖片流
- tp5的上傳方法封裝實例
- 多級關系的遞歸查詢
- 數組轉樹結構
- thinkphp5.1+ajax實現導出Excel
- JS 刪除數組的某一項
- 判斷是否為索引數組
- ip操作