碰到 Json CSRF 怎麼辦?

2022-06-20 15:45:08 字數 981 閱讀 6156

在最近挖洞的時候,老是碰到 post 傳參採用 json 格式,而不是傳統的parameter=value的格式,之前也沒接觸過,所以也不知道該怎麼搞,所以打算學習一下,此文作為乙個筆記梳理。

當簡單的採用表單傳輸簡單引數時,content-type值為:x-www-form-urlencoded,傳輸的資料會被 url 編碼,傳輸檔案時值為:form-data

給表單新增enctype="text/plain"屬性時,content-type值為:text/plain

在使用xmlhttprequest跨域發起請求時,瀏覽器首先會先進行一次options預請求,檢視目標**是否支援跨域,如果支援,則瀏覽器會進行下一步,傳送真實請求,否則會直接報錯

下面統一假設 post 傳輸的引數為:

可以看到請求包中:

傳輸的資料變成了:

且請求頭中:content-type: text/plain,當伺服器後端嚴格校驗content-type頭時,該方法也就差不多沒用了

當目標**不支援跨域,則瀏覽器將不會發起請求,導致該方法失效

當然,除了xmlhttprequestfetch也是一樣的

可惜,現在是個瀏覽器都會詢問使用者是否開啟 flash,此舉難以成功,而且不久,flash 就會被廢棄

怎麼辦,怎麼辦?

我在一家軟體公司做程式設計師,也有一年多,我是做.net方向的,公司活還可以,就是工資給的少。本來想在工作半年的時候提出加薪的要求,可事事難料啊?就在我剛要開口的時候公司發生了變動。收購 我公司被乙個集團收購了,在收購的這段期間我們公司真是損兵折將啊,走了一大批人,其中包括我們原來的專案經理。這樣一...

當開源庫碰到錯誤怎麼辦?

開源有個好處就是免費,但是使用開源專案經常會碰到各種問題,下面列舉下我碰到的其中乙個問題。專案中使用開源庫 連線某台linux機器時碰到下面的問題 renci.sshnet.common.sshauthenticationexception no suitable authentication me...

當開源庫碰到錯誤怎麼辦?

開源有個好處就是免費,但是使用開源專案經常會碰到各種問題,下面列舉下我碰到的其中乙個問題。專案中使用開源庫 連線某台linux機器時碰到下面的問題 renci.sshnet.common.sshauthenticationexception no suitable authentication me...