8 20知識點整理

2021-08-25 02:57:53 字數 1743 閱讀 4774

造成sql注入的原因是因為程式沒有有效過濾使用者的輸入,使攻擊者成功的向伺服器提交惡意的sql查詢**,程式在接收後錯誤的將攻擊者的輸入作為查詢語句的一部分執行,導致原始的查詢邏輯被改變,額外的執行了攻擊者精心構造的惡意**。

1.嚴格限制web應用的資料庫的操作許可權,給此使用者提供僅僅能夠滿足其工作的最低許可權,從而最大限度的減少注入攻擊對資料庫的危害 

2.檢查輸入的資料是否具有所期望的資料格式,嚴格限制變數的型別 

3.在應用發布之前建議使用專業的sql注入檢測工具進行檢測,以及時修補被發現的sql注入漏洞。

4.preparedstatement 採用預編譯語句集,它內建了處理sql注入的能力,只要使用它的set***方法傳值即可。

原理: 

sql注入只對sql語句的準備(編譯)過程有破壞作用 

而preparedstatement已經準備好了,執行階段只是把輸入串作為資料處理, 

而不再對sql語句進行解析,準備,因此也就避免了sql注入問題.

(1)資料量較小時:需要從客戶端傳遞pagenumber(頁碼)、pagesize(每頁條數)兩個引數使用mysql中的limit查詢

例如:

收到客戶端 

select * from table limit (pageno-1)*pagesize, pagesize;

(2)在資料量較小的時候簡單的使用limit進行資料分頁在效能上面不會有明顯的緩慢,但是資料量達到了萬級到百萬級sql語句的效能將會影響資料的返回。這時需要利用主鍵或者唯一索引進行資料分頁;

例如:

假設主鍵或者唯一索引為 id 

收到客戶端 

select * from table where id > (pageno-1)*pagesize limit pagesize; 

–返回id為40到50之間的資料

(詳細見

相同點:

不同點:

cat     由第一行開始顯示內容,並將所有內容輸出 (cat [-n]  檔名 (-n : 顯示時,連行號一起輸出))

tac     從最後一行倒序顯示內容,並將所有內容輸出  (tac 檔名)

more    根據視窗大小,一頁一頁的現實檔案內容  (more 檔名)常用

less    和more類似,但其優點可以往前翻頁,而且進行可以搜尋字元  (less 檔名)常用

head    只顯示頭幾行  (head [n number] 檔名 (number 顯示行數))

tail    只顯示最後幾行  (tail [-n number] 檔名)

nl      類似於cat -n,顯示時輸出行號  (nl 檔名)

如果在vi條件下:在命令模式下敲斜桿( / )這時在狀態列(也就是螢幕左下腳)就出現了 「/」 然後輸入你要查詢的關鍵字敲回車就可以了。

如果是在沒有開啟檔案的前提就用"cat 檔名 | grep "關鍵字""

1.netstat  -anp  |grep   埠號

如下,我以3306為例,netstat  -anp  |grep  3306(此處備註下,我是以普通使用者操作,故加上了sudo,如果是以root使用者操作,不用加sudo即可檢視),如下圖1:

2.netstat   -nultp(此處不用加埠號)  該命令是檢視當前所有已經使用的埠情況

3.netstat  -anp  |grep  82檢視82埠的使用情況

知識點整理

一 標準庫容器和演算法 1.順序容器 與前面類似 2.關聯容器 map和multimap 元素包含key 鍵 和值 value 兩部分 按照鍵對元素排序 map不允許重複元素出現,但multimap可以 set和multliset 是包含已排序物件的關聯容器 只是單純的鍵的集合 set不允許重複鍵出...

知識點整理

一 標準庫容器和演算法 1.順序容器 與前面類似 2.關聯容器 map和multimap 元素包含key 鍵 和值 value 兩部分 按照鍵對元素排序 map不允許重複元素出現,但multimap可以 set和multliset 是包含已排序物件的關聯容器 只是單純的鍵的集合 set不允許重複鍵出...

知識點整理

一 狀態控制碼 code,control flag 標誌位欄位 u a p r s f 佔6位元。各 位元的含義如下 ack 確認位元 acknowledge 只有當ack 1時確認號字段才有效,代表這個封包為確認封包。當ack 0時,確認號無效。psh push function 若為1時,代表要...