導航:首頁 > 文檔加密 > 前端統一在getpost加密

前端統一在getpost加密

發布時間:2022-05-17 02:23:12

1. 如何在前端調用js對密碼進行加密

加密和解密原則上都應該在後台完成才合乎常理,如果在前端加密,就好比在眾目睽睽之下化妝易容,然後聲稱自己是另一個人一樣,沒意義啊。
如果一定要在前端加密,可以這樣:
<input type="submit" name="submit" value="注冊" onclick="var pwd=document.getElementsByName('password')[0];pwd.value=md5(pwd.value);"/>

2. html中get和post的區別和使用

1、Get是用來從伺服器上獲得數據,而Post是用來向伺服器上傳遞數據。
2、Get將表單中數據的按照variable=value的形式,添加到action所指向的URL後面,並且兩者使用「?」連接,而各個變數之間使用「&」連接;Post是將表單中的數據放在form的數據體中,按照變數和值相對應的方式,傳遞到action所指向URL。
3、Get是不安全的,因為在傳輸過程,數據被放在請求的URL中,而如今現有的很多伺服器、代理伺服器或者用戶代理都會將請求URL記錄到日誌文件中,然後放在某個地方,這樣就可能會有一些隱私的信息被第三方看到。另外,用戶也可以在瀏覽器上直接看到提交的數據,一些系統內部消息將會一同顯示在用戶面前。Post的所有操作對用戶來說都是不可見的。
4、Get傳輸的數據量小,這主要是因為受URL長度限制;而Post可以傳輸大量的數據,所以在上傳文件只能使用Post(當然還有一個原因,將在後面的提到)。
5、Get限制Form表單的數據集的值必須為ASCII字元;而Post支持整個ISO10646字元集。默認是用ISO-8859-1編碼
6、Get是Form的默認方法。
以下的比較非常非常使用:
java的web開發有段日子了,有個問題老是困擾著我,就是亂碼問題,基本上是網上查找解決方案(網上資料真的很多),都是一大堆的介紹如何解決此類的亂碼問題,但是沒幾個把問題的來龍去脈說清楚的,有時候看了些文章後,以為自己懂了,但是在開發中亂碼問題又像鬼魂一樣出來嚇人,真是頭大了!這篇文章是我長時間和亂碼做斗爭的一些理解的積累,還希望有更多的朋友給出指點和補充。
form有2中方法把數據提交給伺服器,get和post,分別說下吧。
(一)get提交
1.首先說下客戶端(瀏覽器)的form表單用get方法是如何將數據編碼後提交給伺服器端的吧。

對於get方法來說,都是把數據串聯在請求的url後面作為參數,如:http://localhost:8080/servlet?msg=abc
(很常見的一個亂碼問題就要出現了,如果url中出現中文或其它特殊字元的話,如:http://localhost:8080 /servlet?msg=杭州,伺服器端容易得到亂碼),url拼接完成後,瀏覽器會對url進行URL encode,然後發送給伺服器,URL encode的過程就是把部分url做為字元,按照某種編碼方式(如:utf-8,gbk等)編碼成二進制的位元組碼,然後每個位元組用一個包含3個字元的字元串 "%xy" 表示,其中xy為該位元組的兩位十六進製表示形式。我這里說的可能不清楚,具體介紹可以看下java.net.URLEncoder類的介紹在這里。了解了 URL encode的過程,我們能看到2個很重要的問題,第一:需要URL encode的字元一般都是非ASCII的字元(籠統的講),再通俗的講就是除了英文字母以外的文字(如:中文,日文等)都要進行URL encode,所以對於我們來說,都是英文字母的url不會出現伺服器得到亂碼問題,出現亂碼都是url裡面帶了中文或特殊字元造成的;第二:URL encode到底按照那種編碼方式對字元編碼?這里就是瀏覽器的事情了,而且不同的瀏覽器有不同的做法,中文版的瀏覽器一般會默認的使用GBK,通過設置瀏覽器也可以使用UTF-8,可能不同的用戶就有不同的瀏覽器設置,也就造成不同的編碼方式,所以很多網站的做法都是先把url裡面的中文或特殊字元用 javascript做URL encode,然後再拼接url提交數據,也就是替瀏覽器做了URL encode,好處就是網站可以統一get方法提交數據的編碼方式。 完成了URL encode,那麼現在的url就成了ASCII范圍內的字元了,然後以iso-8859-1的編碼方式轉換成二進制隨著請求頭一起發送出去。這里想多說幾句的是,對於get方法來說,沒有請求實體,含有數據的url都在請求頭裡面,之所以用URL encode,我個人覺的原因是:對於請求頭來說最終都是要用iso-8859-1編碼方式編碼成二進制的101010.....的純數據在互聯網上傳送,如果直接將含有中文等特殊字元做iso-8859-1編碼會丟失信息,所以先做URL encode是有必要的。
2。伺服器端(tomcat)是如何將數據獲取到進行解碼的。
第一步是先把數據用iso-8859-1進行解碼,對於get方法來說,tomcat獲取數據的是ASCII范圍內的請求頭字元,其中的請求url裡面帶有參數數據,如果參數中有中文等特殊字元,那麼目前還是URL encode後的%XY狀態,先停下,我們先說下開發人員一般獲取數據的過程。通常大家都是request.getParameter("name")獲取參數數據,我們在request對象或得的數據都是經過解碼過的,而解碼過程中程序里是無法指定,這里要說下,有很多新手說用 request.setCharacterEncoding("字元集")可以指定解碼方式,其實是不可以的,看servlet的官方API說明有對此方法的解釋:Overrides the name of the character encoding used in the body of this request. This method must be called prior to reading request parameters or reading input using getReader().可以看出對於get方法他是無能為力的。那麼到底用什麼編碼方式解碼數據的呢,這是tomcat的事情了,默認預設用的是 iso-8859-1,這樣我們就能找到為什麼get請求帶中文參數為什麼在伺服器端得到亂碼了,原因是在客戶端一般都是用UTF-8或GBK對數據 URL encode,這里用iso-8859-1方式URL decoder顯然不行,在程序里我們可以直接
Java代碼
1. new String(request.getParameter("name").getBytes("iso-8859-1"),"客戶端指定的URL encode編碼方式")
還原回位元組碼,然後用正確的方式解碼數據,網上的文章通常是在tomcat裡面做個配置
Xml代碼
1. <Connector port="8080" protocol="HTTP/1.1" maxThreads="150" connectionTimeout="20000" redirectPort="8443" URIEncoding="GBK"/>
這樣是讓tomcat在獲取數據後用指定的方式URL decoder,URL decoder的介紹在這里
(一)post提交
1.客戶端(瀏覽器)的form表單用post方法是如何將數據編碼後提交給伺服器端的。
在post方法里所要傳送的數據也要URL encode,那麼他是用什麼編碼方式的呢?
在form所在的html文件里如果有段<meta http-equiv="Content-Type" content="text/html; charset=字元集(GBK,utf-8等)"/>,那麼post就會用此處指定的編碼方式編碼。一般大家都認為這段代碼是為了讓瀏覽器知道用什麼字元集來對網頁解釋,所以網站都會把它放在html代碼的最前端,盡量不出現亂碼,其實它還有個作用就是指定form表單的post方法提交數據的 URL encode編碼方式。從這里可以看出對於get方法來數,瀏覽器對數據的URL encode的編碼方式是有瀏覽器設置來決定,(可以用js做統一指定),而post方法,開發人員可以指定。
2。伺服器端(tomcat)是如何將數據獲取到進行解碼的。
如果用tomcat默認預設設置,也沒做過濾器等編碼設置,那麼他也是用iso-8859-1解碼的,但是request.setCharacterEncoding("字元集")可以派上用場。

3. 怎麼對post方法加密

首先來說,目前常用的方式有兩種,
瀏覽器端安全控制項,淘寶、銀行等均採用該方式,優點是安全系數高,缺點是投資較大;
使用ssl方式完成登陸,安全系數一般,投資較低(需要申請ssl證書)
至於使用js在post前加密從原理上來說是根本沒有意義的,就像你說的,js是明文的,所以破解並不難。

如果你要開發的應用對安全性有要求,建議採用ssl方式即可,如果對安全性要求極高,選擇安全控制項。

事實上,對於80%的網站,登錄信息安全問題並不重要,尤其是抓包導致泄露的幾率極低。因為抓包這個事其實技術門檻還是很高的,如果盜取的賬號沒有極高的價值很少有人會去做。就像微博,QQ等,服務商也只是提供了各種密保,而沒有針對賬號提交過程提供太大的保護。

99%的賬號丟失問題來自於木馬,通過監控鍵盤事件完成盜取,而這種行為js根本無能為力。甚至前面說過的兩種加密方式也同樣。


於普通的網站,通常的手法就是要求認證用戶的安全郵箱,當密碼丟失的時候可以通過安全郵箱重置密碼,這就足夠了。不建議嘗試額外的手機找回密碼、身份證綁
定之類的功能,除非您的網站已經足夠強大,否則有一點安全知識的人都不會在莫名其妙的網站上輸入自己的手機號和身份證的。同理,就算你提供了安全控制項,很
多人可能也不會選擇安裝,因為你沒辦法證明自己提供的安全控制項是安全的。

不要把抓包想的太容易哦,誰知道用戶什麼時
候會登錄,從什麼地方過來,發到哪裡,總不能24小時盯著吧?費這么大勁偷到了,連幾千塊錢都不值,他不是白費力氣吧?能用這種方式盜取信息的人,你覺得
他會對萬把塊的小錢感興趣嗎?除非是有人花錢請他對你的網站惡意攻擊。也簡單,平時注意備份就好了。和洪水地震的幾率差不多。

4. https會對GET或POST參數加密嗎

HTTPS實際是SSL over HTTP, 該協議通過SSL在發送方把原始數據進行加密,在接收方解 密,因此,所傳送的數據不容易被網路黑客截獲和破解。本文介紹HTTPS的三種實現方法 。 方法一 靜態超鏈接 這是目前網站中使用得較多的方法,也最簡單。在要求使...

5. 前端面試get和post區別是什麼ajax跨域如何解決

GET和POST的核心區別就是:

GET通過URL傳輸數據,位於HTTP請求頭中

POST通過HTTP請求體傳遞數據


Ajax跨域幾種方法:

  1. CORS跨域

  2. postMessage跨域

  3. document.domain同主域,不同子域之間跨域

  4. iframe的hash跨域

  5. window.name跨域

  6. JSONP跨域

  7. 後端代理跨域

其中1、2、3、6是最常用的,一定要說

6. php怎麼在post前加密用戶名 密碼

用戶名 密碼 都加上一個用戶的注冊時間 然後md5(); 這樣客戶端不能知道真正的信息,但是你可以知道。 前提是你必須記錄下這個用戶名的加密值來進行用戶識別。

7. UCWEB 瀏覽器使用的是標準的HTTP協議嗎它GET和POST中的漢字如何加密的

原理介紹:理論上說,GET是從伺服器上請求數據,POST是發送數據到伺服器。事實上,GET方法是把數據參數隊列(query string)加到一個URL上,值和表單是一一對應的。

比如說,name=John。在隊列里,值和表單用一個&符號分開,空格用+號替換,特 殊的符號轉換成十六進制的代碼。因為這一隊列在URL里邊,這樣隊列的參數就能看得到,可以被記錄下來,或更改。通常GET方法還限制字元的大小(大概是 256位元組 )。事實上POST方法可以沒有時間限制的傳遞數據到伺服器,用戶在瀏覽器端是看不到這一過程的,所以POST方法比較適合用於發送一個保密的(比如信用 卡號)或者比較大量的數據到伺服器。

區別:
Post是允許傳輸大量數據的方法,而Get方法會將所要傳輸的數據附在網址後面,然後一起送達伺服器,因此傳送的數據量就會受到限制,但是執行效率卻比Post方法好。

建議:
1、get方式的安全性較Post方式要差些,包含機密信息的話,建議用Post數據提交方式;
2、在做數據查詢時,建議用Get方式;而在做數據添加、修改或刪除時,建議用Post方式;

8. 熱門前端面試題之get和post的區別

1、get是從伺服器獲取數據 -----"取"
post是向伺服器提交數據 -----「發」
2、form表單默認的method為"GET"
3、get將數據按照variable = value 的形式,加上URL的後面,中間用"?"連接,各個變數之間用"&"連接
post將數據不像get方式那樣
4、參數上面3的數據傳輸方式,可以得出:post安全性比get方式要高
5、URL不存在參數上限的問題,HTTP協議沒有對URL長度進行限制,限制的是部分瀏覽器和伺服器的限制。
IE對URL長度的限制為2083KB
get方式是通過URL傳輸的數據的,數據量一般在2KB左右,但是執行效率比post高
理論上post方式沒有大小限制,HTTP協議規范也沒進行大小限制。post數據沒有限制,限制的是伺服器處理程序的能力

9. POST數據加密問題

首先來說,目前常用的方式有兩種,

  1. 瀏覽器端安全控制項,淘寶、銀行等均採用該方式,優點是安全系數高,缺點是投資較大;

  2. 使用ssl方式完成登陸,安全系數一般,投資較低(需要申請ssl證書)

至於使用js在post前加密從原理上來說是根本沒有意義的,就像你說的,js是明文的,所以破解並不難。


如果你要開發的應用對安全性有要求,建議採用ssl方式即可,如果對安全性要求極高,選擇安全控制項。


事實上,對於80%的網站,登錄信息安全問題並不重要,尤其是抓包導致泄露的幾率極低。因為抓包這個事其實技術門檻還是很高的,如果盜取的賬號沒有極高的價值很少有人會去做。就像微博,QQ等,服務商也只是提供了各種密保,而沒有針對賬號提交過程提供太大的保護。


99%的賬號丟失問題來自於木馬,通過監控鍵盤事件完成盜取,而這種行為js根本無能為力。甚至前面說過的兩種加密方式也同樣。


對於普通的網站,通常的手法就是要求認證用戶的安全郵箱,當密碼丟失的時候可以通過安全郵箱重置密碼,這就足夠了。不建議嘗試額外的手機找回密碼、身份證綁定之類的功能,除非您的網站已經足夠強大,否則有一點安全知識的人都不會在莫名其妙的網站上輸入自己的手機號和身份證的。同理,就算你提供了安全控制項,很多人可能也不會選擇安裝,因為你沒辦法證明自己提供的安全控制項是安全的。


不要把抓包想的太容易哦,誰知道用戶什麼時候會登錄,從什麼地方過來,發到哪裡,總不能24小時盯著吧?費這么大勁偷到了,連幾千塊錢都不值,他不是白費力氣吧?能用這種方式盜取信息的人,你覺得他會對萬把塊的小錢感興趣嗎?除非是有人花錢請他對你的網站惡意攻擊。也簡單,平時注意備份就好了。和洪水地震的幾率差不多。

10. 對於一個GET或者post包md5加密怎麼辦

在JAVA中,使用MD5加密,為什麼網上有人直接用MD5Code創建一個對象,然後直接調用它的一個內置方法,進行加密如:MD5Codemd5=newMD5Code();..user.setUserpwd(md5.getMD5ofStr(userForm.getUserpwd()));..加入Action的實現

閱讀全文

與前端統一在getpost加密相關的資料

熱點內容
卡爾曼濾波演算法書籍 瀏覽:769
安卓手機怎麼用愛思助手傳文件進蘋果手機上 瀏覽:844
安卓怎麼下載60秒生存 瀏覽:803
外向式文件夾 瀏覽:240
dospdf 瀏覽:431
怎麼修改騰訊雲伺服器ip 瀏覽:392
pdftoeps 瀏覽:496
為什麼鴻蒙那麼像安卓 瀏覽:736
安卓手機怎麼拍自媒體視頻 瀏覽:186
單片機各個中斷的初始化 瀏覽:724
python怎麼集合元素 瀏覽:481
python逐條解讀 瀏覽:833
基於單片機的濕度控制 瀏覽:499
ios如何使用安卓的帳號 瀏覽:883
程序員公園采訪 瀏覽:812
程序員實戰教程要多長時間 瀏覽:979
企業數據加密技巧 瀏覽:135
租雲伺服器開發 瀏覽:814
程序員告白媽媽不同意 瀏覽:337
攻城掠地怎麼查看伺服器 瀏覽:601