導航:首頁 > 文檔加密 > 請求響應參數加密

請求響應參數加密

發布時間:2022-11-18 02:24:58

Ⅰ Spring攔截器攔截請求,獲得加密的參數,怎樣重新設置參數值

攔截器繼承HandlerInterceptorAdapter類,並重寫了preHandle();方法,在此方法中獲得了加密後的參數字元串,解密後,怎麼將解密後的參數重新設置到HttpServletRequest的URL後邊,使得Action能夠接受到這些參數?也就是替換加密的參數(request.getQueryString();方法得到的請求參數字元串,全部替換)

Ⅱ URL請求對參數前端JS加密,後台JAVA解密

數字的話可以使用 Base62 演算法,不過這只是表面的轉換,因為演算法是寫在Js里的,稍加分析就能知道怎麼去翻轉。
如果要有效加密的話,可以使用js調用RSA演算法進行加密,這樣js中只會暴露公鑰,可以實現安全的加密。
網上多得很。

Ⅲ 以https方式請求url,會對get參數進行加密嗎

SSL應該是在TCP層和HTTP層之間的,會對傳輸的數據進行加密,針對的是傳輸過程的安全。
具體的過程大概是: 客戶端輸入 - 加密 - 傳輸給伺服器 - 服務解密器處理 - 加密 - 回傳個客戶端 - 客戶端解密 - 呈現出來。
至於firebug之類的瀏覽器調試工具,因為他們得到的是客戶端加密之前/解密之後的數據,因此是明文的。
比如你用https協議站點輸入用戶名密碼,傳輸的過程中是加密的。 當然你不會輸入的時候讓其他人在你的瀏覽器用firebug查看你的輸入吧。

Ⅳ 如何加密url後的數字參數

加密參數是jsp參數傳遞中的一種安全措施,加密方法如下:

建議使用對稱加密如:DES或者是PBE演算法。
加密演算法如下:
public static String encrypt(String key, String plainText) throws Exception {
String encryptTxt = "";
try {
byte[] salt = new byte[8];
MessageDigest md = MessageDigest.getInstance("MD5");
md.update(key.getBytes());
byte[] digest = md.digest();
for (int i = 0; i < 8; i++) {
salt[i] = digest[i];
}

Ⅳ 測試工程師面試,介面測試問題總結

1、什麼是介面?

2、什麼是介面測試?

3、介面組成的要素有哪些?

4、Python 的 requests 包是干什麼的?

5、如何使用 Python 的 requests 包?

6、為什麼開展介面測試?

7、為什麼要寫介面測試用例?

8、介面測試用例設計主要考慮哪些?

9、介面測試用例包含哪些內容?

10、介面測試如何設計用例?

11、通用介面用例設計?

12、介面測試報告包含哪些內容?

13、測試指標范圍包含哪些?

14、做介面測試運用過哪些測試工具?

15、抓包工具用過哪些?

16、為什麼進行抓包測試?

17、TCP/IP 參考模型有哪幾層?

18、常用協議的埠號?

19、常見的狀態碼有哪些?

20、你們公司的介面測試流程是怎樣的?

21、請詳細闡述介面測試和 UI 測試在測試活動中是如何協同測試的?

22、介面測試注意事項?

23、介面測試執行中對比資料庫嗎?

24、請簡述一下 cookie、session 以及 token 的區別?

25、談談你對 HTTP 協議的了解?

26、你對 http 請求跟 webservice 請求的了解?

27、在介面測試中關聯是什麼含義?如何使用 Postman 設置關聯?

28、介面自動化測試框架一般分為幾層?

29、測試框架里如何做到數據和代碼分離?

1、什麼是介面?

介面就是 API,意思是應用程序編程介面。

介面本質上是程序開發的函數和方法,提供參數和返回值。

2、什麼是介面測試?

介面測試是測試系統組件間介面的一種測試,介面測試主要用於檢測外部系統和內部系統之間以及各個子系統之間的交互點。測試的重點是檢查數據的交換、傳遞和控制管理的過程,以及系統間的相互邏輯依賴關系等。

3、介面組成的要素有哪些?

介面訪問的地址、請求的方法、參數、返回值

(1)介面訪問的地址 協議://IP 地址或域名:埠號/應用名/功能名

(2)請求的方法 get、post 等

(3)參數 用戶使用介面時,需要向介面提供的數據。

(4)返回值 介面給用戶的反饋結果。

4、Python 的 requests 包是干什麼的?

requests 是一個 HTTP 庫,作用是發送 HTTP 請求,獲得響應,往往使用在網路爬蟲,介面自動化測試中。

5、如何使用 Python 的 requests 包?

(1)安裝 Python

(2)安裝 requests 模塊

(3)創建.py 文件

(4)導入 requests 模塊

(5)編寫 Python 代碼

(6)調用 requests 方法

6、為什麼開展介面測試?

介面測試屬於集成測試、測試接入越早,就越能在項目早期發現問題,修復問題成本降低。

介面測試非常快速,UI 自動化執行一個測試用例 10s 左右,介面用例執行一般毫秒級。

7、為什麼要寫介面測試用例?

(1)理清思路,避免漏測和重復測試。

(2)提高測試效率、跟進測試進度、告訴領導做過、跟進重復性工作。

(3)更好的記錄問題、發現問題、復現問題、同時這也是介面測試流程中的一個產物。

8、介面測試用例設計主要考慮哪些?

(1)功能是否正常。

(2)功能是否按照介面文檔實現、是否依賴業務、異常情況(參數異常、數據異常)、安全測試等。

9、介面測試用例包含哪些內容?

用例名稱、介面地址、請求方式、前置條件、描述、請求頭部、請求參數、狀態碼、預期返回結果

10、介面測試如何設計用例?

介面測試一般考慮入參形式的變化和介面的業務邏輯。

一般設計介面測試用例採用等價類、邊界值、場景法居多。

介面測試用例設計思路:

(1)介面業務邏輯測試,介面邏輯測試是指根據業務邏輯,輸入參數,輸出值的描述,對正常輸入情況下所得輸出值是否正確的測試,也就是測試對外提供的介面服務是否正常。

(2)模塊介面測試,模塊介面測試是為了保證數據的安全及程序在異常情況下的邏輯正確性而進行的測試模塊,介面測試主要包括以下幾個方面

a.鑒權碼 token 異常(為空、沒有、錯誤、過期)

b.其他參數的異常,必填項的檢查,參數的長度、類型、格式異常。常規的參數有數字,字元串,日期;參數長度,位數、身份證、電話的長度;參數的類型,數字精度,字母,中文,帶空格的參數,特殊字元;日期格式,日期年月日,年月日時分秒,日期格式(包含/-:等)

c.錯誤碼異常覆蓋

11、通用介面用例設計?

(1)通過性驗證:首先肯定要保證這個介面功能是好使的,也就是正常的通過性測試,按照介面文檔上的參數,正常傳入,是否可以返回正確的結果。

(2)參數組合:現在有一個操作商品的介面,有個欄位 type,傳 1 的時候代表修改商品,商品 id、商品名稱、價格有一個是必傳的,type 傳 2 的時候是刪除商品,商品 id 是必傳的,這樣就要測參數組合了,type 傳 1 的時候,只傳商品名稱能不能修改成功,id、名稱、價格都傳的時候能不能修改成功。

(3)介面安全:繞過驗證,比如說購買了一個商品,它的價格是 300 元,那我在提交訂單時候,我把這個商品的價格改成 3 元,後端有沒有做驗證,更狠點,我把錢改成-3,是不是我的余額還要增加?繞過身份授權,比如說修改商品信息介面,那必須得是賣家才能修改,那我傳一個普通用戶,能不能修改成功,我傳一個其他的賣家能不能修改成功。參數是否加密,比如說我登陸的介面,用戶名和密碼是不是加密,如果不加密的話,別人攔截到你的請求,就能獲取到你的信息了,加密規則是否容易破解。密碼安全規則,密碼的復雜程度校驗。

(4)異常驗證:所謂異常驗證,也就是我不按照你介面文檔上的要求輸入參數,來驗證介面對異常情況的校驗。比如說必填的參數不填,輸入整數類型的,傳入字元串類型,長度是 10 的,傳 11,總之就是你說怎麼來,我就不怎麼來,其實也就這三種,必傳非必傳、參數類型、入參長度。

12、介面測試報告包含哪些內容?

系統介面概況、測試目的與范圍、測試工具與資源、測試記錄及結果分析(單場景介面、混合場景介面)、測試結論

13、測試指標范圍包含哪些?

(1)被測介面接收請求和返回報文。

(2)被測介面返回狀態、被測介面對應業務邏輯處理、涉及數據沉澱的處理、復雜場景下多個介面串聯交互。

14、做介面測試運用過哪些測試工具?

(1)Postman

(2)JMeter

(3)SoapUI

(4)Python + requests

(5)Java + HttpClient

(6)Java + OkHttp

15、抓包工具用過哪些?

(1)Fiddler

(2)Charles

(3)Wireshark

16、為什麼進行抓包測試?

有些時候公司沒有標準的介面文檔,測試人員只能抓包來獲取介面信息。

抓包可以迅速找到請求,通過抓包可以查看整個請求過程,以及響應過程,可以通過抓包來分辨前台還是後台 bug。

通過抓包,可以查看是否有敏感信息泄露,比如用戶密碼和個人賬號信息等數據。

通過抓包進行測試,攔截請求,修改請求數據,查看對應響應結果,抓包本身就是介面測試的一部分。

17、TCP/IP 參考模型有哪幾層?

應用層、傳輸層、網路層、網路介面層

18、常用協議的埠號?

(1)21/tcp FTP 文件傳輸協議

(2)22/tcp SSH 安全登錄、文件傳送(SCP)和埠重定向

(3)23/tcp Telnet 不安全的文本傳送

(4)25/tcp SMTP Simple Mail Transfer Protocol(E-mail)

(5)69/udp TFTP Trivial File Transfer Protocol(微型文件傳輸協議)

(6)80/tcp HTTP 超文本傳送協議(WWW)

(7)110/tcp POP3 Post Office Protocol(E-mail)

(8)443/tcp HTTPS used for securely transferring web pages

(9)3389/tcp 遠程訪問 5631/tcp

(10)5632/udp pcanywhere 埠號

(11)1433 SqlServer 服務埠號

(12)1521 Oracle 服務埠號

(13)3306 Mysql 服務埠號

(14)8080 Tomcat 默認服務埠號

19、常見的狀態碼有哪些?

(1)1XX 信息提示,用於指定客戶端相應的某些動作。

(2)2XX 成功,用於表示請求成功。

(3)3XX 重定向,用於移動的文件並且常被包含在定位頭信息中制定的新的地址信息。

(4)4XX 客戶端錯誤,用於指出客戶端的錯誤。

(5)5XX 伺服器錯誤,用於指出伺服器的錯誤。

20、你們公司的介面測試流程是怎樣的?

(1)從開發中取得介面文檔,了解介面業務,主要包括介面地址、請求方式、入參、出參、返回格式等信息。

(2)使用 Jmeter 進行介面測試,創建一個線程組,然後建立一個 http 請求默認值,再新建很多 http 請求,一個請求是一個用例,輸入相應介面路徑、訪問方式、參數等,創建斷言和察看結果樹。

(3)最後調用並執行測試用例,編寫測試報告。

(4)在做介面測試的時候遇到過很多問題,都是自己獨立解決的,比如返回值亂碼(修改 Jmeter 的配置文件為 UTF-8)。

21、請詳細闡述介面測試和 UI 測試在測試活動中是如何協同測試的?

介面測試和 UI 測試這兩塊其實是有一部分是重疊的,UI 測試是通過前端寫的界面來調用介面,而介面測試是直接調介面。所以排除前端的處理的邏輯和調用的正確性,在理論上介面測試是可以覆蓋所有的 UI 測試。但實際過程中,如果只是在介面層覆蓋所有的業務流,在 UI 上只測試前端的邏輯,最終的結果可能會是忽視很多原有的功能點,導致了 UI 測試的不充分。所以存在多人分工且時間充分的時候可以嘗試介面去做業務流的全覆蓋,否則不要輕易嘗試。

22、介面測試注意事項?

(1)改變請求參數,看響應結果是否和介面文檔一致。

(2)查看參數是否有敏感信息(比如個人賬戶信息,資金信息)。

(3)查看是否對關鍵參數進行加密處理(密碼信息)。

(4)所有列表頁介面必須考慮排序值。

(5)介面返回的圖片地址能否打開,圖片尺寸是否符合需求。

(6)介面有翻頁時,頁碼與頁數的異常值測試。

(7)當輸出參數有聯動性時,需要校驗返回兩參數的實際結果是否都符合需求每個介面入參的默認值、異常類型、非空校驗。

(8)入參支持多個值時,要考慮傳的值的個數多的情況下,介面會不會報錯。

23、介面測試執行中對比資料庫嗎?

肯定要對比,因為介面返回值的數據來源於資料庫,介面對數據的操作還要進行深層次的資料庫檢查。

24、請簡述一下 cookie、session 以及 token 的區別?

cookie 數據存放在客戶的瀏覽器上、session 數據放在伺服器上、token 是介面測試時鑒權碼,一般情況下登陸後才可以獲取到 token,然後在每次請求介面時需要帶上 token 參數。

cookie 不安全,別人可以分析存在本地的 cookie 並進行 cookie 欺騙,考慮到安全應當使用 session 可以將登錄信息等重要信息存放為 session,其他信息可以保存在 cookie。

25、談談你對 HTTP 協議的了解?

超文本傳輸協議,埠為 80,是由請求和響應兩部分組成的。

請求是由請求頭,請求行,請求正文組成;響應是由響應頭、響應行、響應正文組成。

面向安全的話使用 https。

26、你對 http 請求跟 webservice 請求的了解?

(1)http api 介面:是走 http 協議,通過路徑來區分調用的方法,請求報文都是 key-value 形式的,返回報文一般都是 json 串,有 get 和 post 等方法,這也是最常用的兩種請求方式。可以使用的工具有 postman、RESTClient、jmeter、loadrunner 等。

(2)webservice 介面:是走 soap 協議通過 http 傳輸,請求報文和返回報文都是 xml 格式的,都是通過工具才能進行調用與測試。可以使用的工具有 SoapUI、jmeter、loadrunner 等。

27、在介面測試中關聯是什麼含義?如何使用 Postman 設置關聯?

關聯就是把上一個介面返回值的部分截取出來,作為下一個介面的參數,能讓介面串聯運行。

在 Postman 中設置關聯的步驟如下:

(1)通過正則表達式提取的方式或 json 取值的方式把下一個介面需要的信息從上一個介面截取出來。

(2)使用設置全局變數的代碼把取出來的值保存到全局變數里。

(3)在下一個介面中,使用(全局變數)代替要替換的靜態值。

28、介面自動化測試框架一般分為幾層?

自動化測試框架一般分為 5 層(配置層,腳本層,數據層,測試報告層,驅動層)

介面項目工程規劃大致可分為幾類,首先是測試結果類,比如說叫 test_rusult,裡面存放一些比如日誌文件,測試報告。然後是測試用例 testcase,裡面分模塊存放測試用例。接下來是公共方法類,比如說叫 public,或者是 tools,裡面存放一些,讀取 excel 數據的方法,發送 http 請求的方法,收集 log 日誌的方法,發送郵件,操作資料庫等方法。還有就是配置文件類,比如說叫 config,裡面存放一些指定運行部分用例的配置文件,連接資料庫的配置文件。最後是寫一個 run 方法,運行所有的用例。

29、測試框架里如何做到數據和代碼分離?

第一種:寫在 excel 表格里,像這種主要是讀取 excel 數據有點麻煩,常用的用來讀取 excel 的第三方庫有 openpyxl,xlrd 等。當然讀取 excel 數據最好用的還是用來做數據分析的 pandas 模塊,不用寫那麼多 for 循環。

第二種:數據存放到 yaml 文件里,一個模塊或者是一個功能寫一個 yaml 文件,最後寫個讀取 yaml 文件的公共方法就行了。yaml 格式的文件比較簡單。

第三種:存放在資料庫裡面。

第四種:數據存放在 json 文件里。

Ⅵ springboot feignclient調用服務請求參數加密

spring boot配置(1) 作者同類文章X <dependency> <groupId>org.springframework...如調用網路的一個api @FeignClient(url = "${map.url}",name

Ⅶ ajax請求的URL可以加密嗎

可以加密,而且對伊一些敏感度搞的項目更要加設置加密:

  1. 首先是密鑰交換的過程,Diffie-Hellman密鑰交換演算法參考維基網路的文檔:http://en.wikipedia.org/wiki/Diffie%E2%80%93Hellman_key_exchange ,client端js語言,服務端php語言 用DH密鑰交換演算法交換密鑰。

  2. js部分:

  3. varg="2";
    varp="28303789813787064911279666129";
    functiondoStaff(){
    varbig_a=randBigInt(100);
    varbig_p=str2bigInt(p,10,0);
    varbig_g=str2bigInt(g,10,0);

    varA=powMod(big_g,big_a,big_p);
    varstr_A=bigInt2str(A,10);

    varB;
    varsecret;

    $.ajax({
    url:'server.php',
    type:'GET',
    async:false,
    data:{"A":str_A},
    cache:false,
    timeout:5*1000,
    dataType:'json',
    success:function(data,status,xhr){
    B=str2bigInt(data.B,10,0);
    },
    error:function(){
    alert(2);
    }
    });

    secret=powMod(B,big_a,big_p);
    secret=bigInt2str(secret,10);
    註明:上邊的代碼中,最後的到的secret,就是最終和服務端協商一致的密鑰(這是一個很多位數字的字元串,我們的密鑰使用16位元組,那麼我們可以考慮對它md5,作為對稱加密的密鑰)。
    上述代碼中bigint相關的js,直接使用的一個開源的bigint.js(js代碼有不開源的嗎?^_^)。
  1. php部分:

  2. <?php
    $g="2";
    $p="28303789813787064911279666129";

    $b="86410430023";//TODO:.


    $A=$_REQUEST['A'];
    $B=bcpowmod($g,$b,$p);

    $secret=bcpowmod($A,$b,$p);

    echo'{"B":"'.$B.'"}';

    可見我們採用固定的g和p,這2個變數是公開的,不怕泄漏。
    js端首先生成一個100bit長的整數a,並依據公式計算出A, 用ajax的形式發送到服務端php。 服務端收到A,自己生成變數b,依據公式計算出B,響應給客戶端js。
    此時,服務端和客戶端分別可以依據公式計算出一個相同的secret。 這個secret沒有在網路中傳輸過,雙方可說是「心照不宣」,且雙方自己選定的a和b是保密的,第三方無法根據公開傳輸的數據推算出a,b,當然也無法得到secret。 這就是DH演算法的原理。

Ⅷ url參數加密

加密URL參數

插件在訪問 Web 程序時,可以使用 Get 方法或 Post 方法提交數據,無論是哪種方法,按照 HTTP 協議的規范,參數總是按照以下格式提交(每對參數名/參數值以「&」號分隔):

參數名1=參數值1&參數名2=參數值2&參數名3=參數值3...

如果您沒有使用SSL,所有的參數名和參數值都將以明文的形式通過網路傳輸到 Web 伺服器,顯然這種方式是很不安全的,為了保證插件與Web 程序的通訊安全,插件在提交參數前可以對每個參數值使用 Rijndael 加密演算法進行加密處理,並使用 Base64 編碼轉換為可讀字元串形式。

Rijndael 加密演算法是一種高效的對稱加密演算法,它是 AES(Advanced Encryption Standard,高級加密演算法標准)的實現,在加密和解密時有兩個基本參數:初始向量和密鑰,Web程序在進行解密時必須使用和插件端設置相同的初始向量和密鑰。

下面分別列出了加密和不加密的例子各一個:

a. 不加密:Username=test&Password=123456&ClientIP=192.168.0.200&CurrentTime=2005-07-06+23%3a51%3a29

b. 加密:Username=ZtlBwgvwkS5YV98N9cgO%2fw%3d%3d&Password=vBSchK4dJX7Z2zfUatu9ZQ%3d%3d&CurrentTime=mpNifqRIvBV2xZi3d%2fPli6%2bZwR9BKHs4y6t%2bNS2QIr4%3d

在 Web 程序端必須使用相同的演算法來解密各個參數值,具體如何實現取決與您所使用的 Web 程序語言,這就需要您找到特定語言的演算法實現。解密一個參數值的過程包括下面三個步驟:

1. 使用 Base64 演算法將參數值轉換為位元組數組;

2. 使用 Rijndael 演算法將 1 中得到的位元組數組解密得到另一位元組數組;

3. 將 2 中得到位元組數組用特定的字元集轉換成字元串,即得到原始的數據。

插件安裝目錄下的「GVODClassLib.dll」文件包含了加密和解密的演算法實現類 CryptoUtility,它的 Decrypt 方法可以直接將 Base64 編碼後的密文解密為原文字元串,如果您的 Web 程序使用的是 asp.net 編寫的,可以將該文件拷貝到您 Web 站點的「/bin」目錄下,然後按照下面的例子完成解密:

<%@ page language="C#" %>
<%@ import namespace="Com.GVOD" %>
<%
//定義密鑰,請改成你加密時使用的密鑰
string key = "OEtxF/yyALd2NflVW4KSMspQIozPkSRL+mEdvlBAzUQ=";

//定義初始向量,請改成你加密時使用的初始向量
string iv = "Cz3EXGTEMeIN8PXKFLiZWg==";

//定義密鑰長度,請改成你加密時使用的密鑰的長度
int keyLength = 256;

//生成 CryptoUtility 類的實例
CryptoUtility util = new CryptoUtility(key, iv, keyLength);

//解密用戶名
string username = util.Decrypt(Request["Username"]);

//解密密碼
string password = util.Decrypt(Request["Password"]);

//解密其它參數
...
%>

Ⅸ 【參數加密】前後端分離請求參數加密與響應結果加密處理

編輯更改過濾器的注冊
因注冊到spring security 組件上無法攔截ignoing 的請求,更改為spring boot 方式注冊,注意點為order 排序的設置,響應最簡單設置為最大就好。關鍵點是請求filter的位置非常重要。這里要放在 spring security 內置過濾器前,spring CorsFilter 之後,此處多次測試猜的數為-100,暫未找到更科學方法。

JsonUtils 工具類

Java結束

上訴把程序以及思路提供,可以根據自己需要的加密解密方式進行處理,以下兩種方式我進行了嘗試最終選擇了第二種。

Ⅹ 微信小程序怎麼加密所有的請求參數

這個得配合微信客戶端,多了解一下

閱讀全文

與請求響應參數加密相關的資料

熱點內容
dvd光碟存儲漢子演算法 瀏覽:758
蘋果郵件無法連接伺服器地址 瀏覽:963
phpffmpeg轉碼 瀏覽:672
長沙好玩的解壓項目 瀏覽:145
專屬學情分析報告是什麼app 瀏覽:564
php工程部署 瀏覽:833
android全屏透明 瀏覽:737
阿里雲伺服器已開通怎麼辦 瀏覽:803
光遇為什麼登錄時伺服器已滿 瀏覽:302
PDF分析 瀏覽:486
h3c光纖全工半全工設置命令 瀏覽:143
公司法pdf下載 瀏覽:383
linuxmarkdown 瀏覽:350
華為手機怎麼多選文件夾 瀏覽:683
如何取消命令方塊指令 瀏覽:350
風翼app為什麼進不去了 瀏覽:779
im4java壓縮圖片 瀏覽:362
數據查詢網站源碼 瀏覽:151
伊克塞爾文檔怎麼進行加密 瀏覽:893
app轉賬是什麼 瀏覽:163