記一次很久以前的出現(xiàn)的線上事故。

php.ini request_order

在之前的公司,曾今出現(xiàn)了一次線上運營事故,因這個bug導(dǎo)致項目延遲上線兩小時。

故事是這樣發(fā)展的,用戶打開了http://xxx.xxx.com/xx/xx?openid=13445 這里的openid是分享鏈接帶上的參數(shù),然后根據(jù)這個openid進行了一系列的業(yè)務(wù),幫這個分享者加游戲次數(shù),加獎品。。。。。

代碼如下:$shareOpenid = $_REQUEST['openid'];然后奇跡就出現(xiàn)了,某些人訪問該鏈接時,明明url后面的openid參數(shù)是A,結(jié)果代碼中變成了B?。。?/p>

why!

聰明的人也許覺得這就是一個沙雕問題。沒錯,確實很沙雕,在第一行就寫了原因。php.ini 中的request_order設(shè)置決定了預(yù)定義變量$_REQUEST的值及排序。當(dāng)時的配置是gpc,也就是說如果querystring 中存在參數(shù)openid值為1,post fom-data中存在參數(shù)openid值為2,cookies中存在openid的cookie且值為3,那么通過$_REQUEST['openid'] 獲取到的值就是3.

就是這么基礎(chǔ)的問題。有一堆人訪問了一個歷史頁面會設(shè)置一個當(dāng)前用戶的openid的cookie,然后就炸了。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 會話(Session)跟蹤是Web程序中常用的技術(shù),用來跟蹤用戶的整個會話。常用的會話跟蹤技術(shù)是Cookie與Se...
    chinariver閱讀 5,786評論 1 49
  • Nginx 的配置文件使用的就是一門微型的編程語言,許多真實世界里的 Nginx 配置文件其實就是一個一個的小程序...
    SkTj閱讀 4,428評論 0 7
  • sqlmap用戶手冊 說明:本文為轉(zhuǎn)載,對原文中一些明顯的拼寫錯誤進行修正,并標(biāo)注對自己有用的信息。 ======...
    wind_飄閱讀 2,207評論 0 5
  • 秋聲過后的幾場淅瀝雨宴 彰顯著你的滄桑與凄美 同時也逐漸地孕育著新生的希望 風(fēng)聲變得冷冽 北風(fēng)更加狂掠 似乎意欲召...
    六月天氣閱讀 1,664評論 34 59
  • 大最近這個系列我們講述的主題是工具,工欲善其事,必先利其器,易效能就是把時間管理理念融會貫通,并通過工具來落地,今...
    Sunny婉兒閱讀 400評論 0 1

友情鏈接更多精彩內(nèi)容