有一次荠耽,公司售后反饋客戶售貨機(jī)的部分商品被都以一分錢出售了好多件追逮,沒(méi)想到薅羊毛都搞到自家來(lái)了逊桦,客戶很憤怒;查了原因,發(fā)現(xiàn)原來(lái)有些學(xué)生將我們小程序里的下單接口給篡改了卜高,而我們的接口數(shù)據(jù)也沒(méi)做加密弥姻,今天就以這個(gè)背景記錄如何篡改數(shù)據(jù)。
一掺涛、斷點(diǎn)類型
before requests
瀏覽器請(qǐng)求還沒(méi)發(fā)給服務(wù)器庭敦,在代理這修改后,發(fā)送給服務(wù)器薪缆。
after requests
服務(wù)器返回的數(shù)據(jù)先在代理這被修改后秧廉,代理再將修改后的內(nèi)容發(fā)送給瀏覽器。
二、全局?jǐn)帱c(diǎn)
全局?jǐn)帱c(diǎn)是對(duì)操作瀏覽器或App所有接口有效疼电,也就是中斷Fiddler捕獲的所有請(qǐng)求嚼锄。
1.before requests
1)在Fiddler里,按如下順序點(diǎn)擊rules-> automatic breakpoint? ->before requests;
2)操作瀏覽器或App蔽豺,看到Fiddler里左側(cè)url的標(biāo)識(shí)帶有T標(biāo)簽說(shuō)明斷點(diǎn)設(shè)置成功
3)在Fiddler里找到需要修改的請(qǐng)求区丑,點(diǎn)擊Inspectors,再點(diǎn)擊Webforms標(biāo)簽茫虽,修改指定的參數(shù)內(nèi)容后,點(diǎn)擊break on response“響應(yīng)膽到了fiddler”既们,再點(diǎn)擊Run to Completion“響應(yīng)到了瀏覽器或App”;
4)查看瀏覽器或App該接口頁(yè)面內(nèi)容;
5)修改完成后濒析,關(guān)閉斷點(diǎn)操作,否則無(wú)法上網(wǎng);點(diǎn)擊rules-> automatic breakpoint? ->disabled;
2. after requests
1)在Fiddler里啥纸,按如下順序點(diǎn)擊rules-> automatic breakpoint? ->after requests;
2)操作瀏覽器或App号杏,看到Fiddler里左側(cè)url的標(biāo)識(shí)帶有T標(biāo)簽說(shuō)明斷點(diǎn)設(shè)置成功;
3)在Fiddler里找到需要修改的請(qǐng)求,點(diǎn)擊Inspectors下Response區(qū)的 transform斯棒,去掉Chunked transfer-Encoding盾致,勾選“None”,即可在TextView tab看到返回的html內(nèi)容荣暮,修改相應(yīng)的響應(yīng)內(nèi)容后庭惜,點(diǎn)擊Run to Completion即可;
4)查看瀏覽器或App該接口頁(yè)面內(nèi)容;
5)修改完成后,關(guān)閉斷點(diǎn)操作穗酥,否則無(wú)法上網(wǎng);點(diǎn)擊rules-> automatic breakpoint? ->disabled;
PS:若想要這么多帶T標(biāo)簽url里某一條可以正常發(fā)出护赊,需要在Fiddler面板點(diǎn)擊Go按鈕即可。
三砾跃、單個(gè)斷點(diǎn)
單個(gè)斷點(diǎn)是對(duì)操作瀏覽器或App某一個(gè)接口有效骏啰。
1.before requests
1) 在命令行輸入: bpu 接口地址,回車;
2)操作瀏覽器或App訪問(wèn)該接口頁(yè)面;
3)修改操作省略抽高。判耕。。
4)命令行輸入:bpu 回車翘骂,即可取消該接口斷點(diǎn)操作;
2.after requests
1) 在命令行輸入: bpafter 接口地址壁熄,回車;
2)操作瀏覽器或App訪問(wèn)該接口頁(yè)面;
3)修改操作省略。碳竟。请毛。
4)命令行輸入:bpafter并回車,即可取消該接口斷點(diǎn)操作;