亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

MySQL長(zhǎng)字符截?cái)嗟膶?shí)現(xiàn)示例

 更新時(shí)間:2023年03月24日 16:06:58   作者:辰霖心  
本文主要介紹了MySQL長(zhǎng)字符截?cái)嗟膶?shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

MySQL超長(zhǎng)字符截?cái)嘤置?quot;SQL-Column-Truncation",是安全研究者Stefan Esser在2008 年8月提出的。

在MySQL中的一個(gè)設(shè)置里有一個(gè)sql_mode選項(xiàng),當(dāng)sql_mode設(shè)置為default時(shí),即沒(méi)有開(kāi)啟STRICT_ALL_TABLES選項(xiàng)時(shí)(MySQLsql_mode默認(rèn)即default),MySQL對(duì)插入超長(zhǎng)的值只會(huì)提示warning,而不是error,這樣就可能會(huì)導(dǎo)致一些截?cái)鄦?wèn)題。

新建一張表測(cè)試,表結(jié)構(gòu)如下(MySQL5.1):

CREATE TABLE USERS(
id int(11) NOT NULL, //長(zhǎng)度為7
username varchar(7)NOT NULL,
password varchar(12)NOT NULL , 
)

分別插入以下SQL語(yǔ)句(注入提示消息)。

①插入正常的SQL語(yǔ)句。

mysql> insert into users(id,username,password)values(1,'admin','admin');//成功插入,無(wú)警告,無(wú)錯(cuò)誤
 
Query OK,1 row affected(0.00 sec)

②插入錯(cuò)誤的SQL語(yǔ)句,此時(shí)的"admin "右面有三個(gè)空格,長(zhǎng)度為8,已經(jīng)超過(guò)了原有的規(guī)定長(zhǎng)度。

mysql> insert into users(id,username,password)values(2,'admin       ','admin');
//成功插入,一個(gè)警告
Query OK,1 row affected,1 warning(0.00 sec)

③插入錯(cuò)誤的SQL語(yǔ)句,長(zhǎng)度已經(jīng)超過(guò)原有的規(guī)定長(zhǎng)度。

mysql> insert into users(id,username,password) values(3,'admin    x','admin');
//成功插入,一個(gè)警告
Query OK,1 row affected,1 warning(0.00 sec)

MySQL提示三條語(yǔ)句都已經(jīng)插入到數(shù)據(jù)庫(kù),只不過(guò)后面兩條語(yǔ)句產(chǎn)生了警告。那么最終有沒(méi)有插入到數(shù)據(jù)庫(kù)呢?執(zhí)行SQL語(yǔ)句查看一下就知道了。

mysql> select username from users;

可以看到,三條數(shù)據(jù)都被插入到數(shù)據(jù)庫(kù),但值發(fā)生了變化,此時(shí)在通過(guò)length來(lái)取得長(zhǎng)度,判斷值的長(zhǎng)度。

mysql> select length(username)from users where id =1 ;

可以發(fā)現(xiàn),第二條與第三條數(shù)據(jù)的長(zhǎng)度為7,也就是列的規(guī)定長(zhǎng)度,由此可知,在默認(rèn)情況下,如果數(shù)據(jù)超出列默認(rèn)長(zhǎng)度,MySQL會(huì)將其截?cái)唷?/p>

但這樣何來(lái)攻擊一說(shuō)呢?

面查詢用戶名為'admin'的用戶就知道了。

mysql> select username from users where username='admin';

只查詢用戶名為admin的用戶,但是另外兩個(gè)長(zhǎng)度不一致的admin用戶也被查詢出,這樣就會(huì)造成一些安全問(wèn)題,比如,有一處管理員登錄是這樣判斷的,語(yǔ)句如下:

$sql = "select count(*) from users where username='admin' and password='*******;

假設(shè)這條SQL語(yǔ)句沒(méi)有任何注入漏洞,攻擊者也可能登錄到管理頁(yè)面。假設(shè)管理員登錄的用戶名為 admin,那么攻擊者僅需要注冊(cè)一個(gè)"admin”用戶即可輕易進(jìn)入后臺(tái)管理頁(yè)面,像著名的WordPress就被這樣的方式攻擊過(guò)。

到此這篇關(guān)于MySQL長(zhǎng)字符截?cái)嗟膶?shí)現(xiàn)示例的文章就介紹到這了,更多相關(guān)MySQL長(zhǎng)字符截?cái)鄡?nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 深入分析MySQL Sending data查詢慢問(wèn)題

    深入分析MySQL Sending data查詢慢問(wèn)題

    給大家深入分析一下MySQL Sending data表查詢慢的問(wèn)題,并給出了詳細(xì)的解決方案,一起來(lái)參考下。
    2017-12-12
  • 關(guān)于com.mysql.jdbc.Driver與com.mysql.cj.jdbc.Driver的區(qū)別

    關(guān)于com.mysql.jdbc.Driver與com.mysql.cj.jdbc.Driver的區(qū)別

    這篇文章主要介紹了關(guān)于com.mysql.jdbc.Driver與com.mysql.cj.jdbc.Driver的區(qū)別及說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • 高性能MySQL讀書(shū)筆記 找出誰(shuí)持有鎖

    高性能MySQL讀書(shū)筆記 找出誰(shuí)持有鎖

    周末重讀了一遍《高性能MySQL》,發(fā)現(xiàn)有些知識(shí)點(diǎn)看過(guò)便忘了,沒(méi)有實(shí)際動(dòng)手操作一遍就是記不牢,所以今天動(dòng)手操作了一下“找出誰(shuí)持有鎖”,并把實(shí)驗(yàn)步驟記錄下來(lái),有興趣的網(wǎng)友可以參照一二。
    2011-01-01
  • Mysql 導(dǎo)入導(dǎo)出csv 中文亂碼問(wèn)題的解決方法

    Mysql 導(dǎo)入導(dǎo)出csv 中文亂碼問(wèn)題的解決方法

    這篇文章介紹了Mysql 導(dǎo)入導(dǎo)出csv 中文亂碼問(wèn)題的解決方法,有需要的朋友可以參考一下
    2013-09-09
  • mysql中替代null的IFNULL()與COALESCE()函數(shù)詳解

    mysql中替代null的IFNULL()與COALESCE()函數(shù)詳解

    這篇文章主要給大家介紹了關(guān)于mysql中替代null的IFNULL()與COALESCE()函數(shù)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起看看看吧。
    2017-06-06
  • 關(guān)于MySQL分區(qū)表的一個(gè)性能BUG

    關(guān)于MySQL分區(qū)表的一個(gè)性能BUG

    這篇文章主要給大家講訴MySQL分區(qū)表的一個(gè)性能BUG,也就是使用分區(qū)表進(jìn)行數(shù)據(jù)查詢/加載的時(shí)候比普通表的性能下降了約50%,下面就來(lái)講將對(duì)此的解決辦法,需要的朋友可以參考以下內(nèi)容
    2021-09-09
  • 獲取缺失主鍵表信息的MYSQL語(yǔ)句

    獲取缺失主鍵表信息的MYSQL語(yǔ)句

    如何獲取缺失主鍵表信息,想必有些朋友還是不會(huì)的吧,下面為大家介紹下,可以通過(guò)幾條語(yǔ)句實(shí)現(xiàn),感興趣的朋友可以了解下
    2013-06-06
  • MySQL 覆蓋索引的優(yōu)點(diǎn)

    MySQL 覆蓋索引的優(yōu)點(diǎn)

    當(dāng)索引包含了所有查詢的數(shù)據(jù)時(shí),這個(gè)索引就稱之為覆蓋索引。覆蓋索引能夠成為一個(gè)非常有力的工具并且能夠顯著改善性能,本文將具體講述覆蓋索引的優(yōu)點(diǎn)
    2021-05-05
  • MySQL 一次執(zhí)行多條語(yǔ)句的實(shí)現(xiàn)及常見(jiàn)問(wèn)題

    MySQL 一次執(zhí)行多條語(yǔ)句的實(shí)現(xiàn)及常見(jiàn)問(wèn)題

    通常情況MySQL出于安全考慮不允許一次執(zhí)行多條語(yǔ)句(但也不報(bào)錯(cuò),很讓人郁悶)。
    2009-08-08
  • MySQL數(shù)據(jù)處理梳理講解增刪改的操作

    MySQL數(shù)據(jù)處理梳理講解增刪改的操作

    本篇文章旨在介紹如何使用數(shù)據(jù)處理函數(shù),和其他大多數(shù)計(jì)算機(jī)語(yǔ)言語(yǔ)言,MYSQL支持利用函數(shù)來(lái)處理數(shù)據(jù),函數(shù)也就是一般在數(shù)據(jù)上執(zhí)行,它給數(shù)據(jù)的轉(zhuǎn)換和處理提供了方便
    2022-05-05

最新評(píng)論