討論「get」和「post」安全性

2022-02-09 03:23:49 字數 1408 閱讀 3879

「get」安全,還是「post」安全?這或許是大家總結兩者必須要分析的內容,因為這涉及到我們將內容從瀏覽器傳送到伺服器的安全性,選擇不當將會帶來巨大的不安全因素,從而可能帶來巨大的損失。這篇部落格,我將闡述一下,當然更多的還是希望各位大神發表一下見解,討論一下下!

首先,我們來看一下兩者最基本的區別:

get請求通過url(請求行)提交資料,在url中可以看到所傳引數。post通過「請求體」傳遞資料,引數不會在url中顯示

get請求提交的資料有長度限制,post請求沒有限制。

get請求返回的內容可以被瀏覽器快取起來。而每次提交的post,瀏覽器在你按下f5的時候會跳出確認框,瀏覽器不會快取post請求返回的內容。

get對資料進行查詢,post主要對資料進行增刪改!簡單說,get是唯讀,post是寫。

大牛:你認為get和post兩者誰更安全一些呢?

菜鳥(我):我認為post,更安全一些,因為get傳輸方式將在url中顯示引數,更容易引發一些「不懷好意」人的興趣,例如上邊出現了username和userpwd等特殊字元時,更容易給他們一些興趣。雖然可以編碼,當是也是可以解碼的。而post則對方看不見,即使一些高手截獲這些資訊,也需要它篩選還有解碼,相對來說比get方法更加安全。當然是沒有絕對的安全的。

大牛:no!你只看了表面!http協議中提到get是安全的方法(safe method),其意思是說get方法不會改變伺服器端資料,所以不會產生***。如果是該用post的地方用了get,又說get不安全,那get也太冤枉了。也就是說,只要我們正確選擇使用get和post,那麼get是安全的。

菜鳥(我):額……

此段對話到此結束,沒有再爭論下去。因為它拿出了http協議,當做了論據,這是在it界很權威的文件。我沒有很充足的理由去辯論。當時我還是認為它的這個說法有點不合適。

在我認為,他把原因和結論弄反了。他的觀點是:只要我們正確使用二者,因為get方法中不對資料進行修改,不傳送一些保密的資訊,而這些需要由post來傳輸,所以說get不存在安全問題,而需要注意的是post傳輸的安全問題。

我看來,正確使用二者,怎麼算get和post兩者正確的選擇來使用了。這些規矩或者規範,是怎麼制定的呢?為什麼說get不能傳送加密資訊和修改資料呢?原因還是說它沒有post安全,所以http協議規定了它用來傳輸不重要的讀操作,所以才不會因為它而產生安全問題。因為它傳送的資料不值得別人去盜取,沒有價值。

所以在我看來,還是post這種方式,比get更安全。既然是做比作,比作著來學習,我們就需要來讓它們做相同的工作來看效果。總不能乙個小孩兒跑50公尺比乙個大人跑100公尺用的時間少,就說小孩兒的跑步速度比大人的快吧?

雖然爭論這個沒有太大的用處,沒有太大的意義,但是還是想寫寫,想聽聽:1,大家對「post和get安全」的看法,2,對「討論兩者安全這件事」的看法,3,對「如何對待學習知識的看法,是該囫圇吞棗,還是認真對待。那些該囫圇吞棗,那些該認真對待」的看法……

原文:

GET 和 POST安全性比較與討論

get 安全,還是 post 安全?這或許是大家總結兩者必須要分析的內容,因為這涉及到我們將內容從瀏覽器傳送到伺服器的安全性,選擇不當將會帶來巨大的不安全因素,從而可能帶來巨大的損失。get請求通過url 請求行 提交資料,在url中可以看到所傳引數。post通過 請求體 傳遞資料,引數不會在url...

strcat strncat安全性討論

char strcat char dest,const char src include include include include public.h void main 這裡對dest字串占用長度是無法判斷的,所以增加了乙個dstsize引數 需要注意 不能用sizeof函式對字串求長度,因為...

如何保證資料安全性? 討論

1 是資料本身的安全。主要是指採用現代密碼演算法對資料進行主動保護,如資料保密 資料完整性 雙向強身份認證等 2 是資料防護的安全。主要是採用現代資訊儲存手段對資料進行主動防護,如通過磁碟陣列 資料備份 異地容災等手段保證資料的安全,資料安全是一種主動的包含措施,資料本身的安全必須基於可靠的加密演算...