[英]Decode AES encryption in web application in IBM Liberty server
[英]Prevent Encryption (Krypto) Of Url Paramaters in IBM Commerce Server 6
嗨,我們正在使用IBM Commerce Sever通過如下代碼通過一個視圖移動到另一個視圖。
protected void prepareResponse(){
...
String returnUrl = "www.example.com/aNewPage.jsp?aUrlParameter=123&anotherParameter=654"
...
StringBuffer sb = new StringBuffer(returnUrl);
sb.append("&storeId=").append(commandContext.getStoreId());
sb.append("&langId=-1");
responseProperties.put(ECConstants.EC_REDIRECTURL, sb.toString());
responseProperties.put(ECConstants.EC_VIEWTASKNAME, ECConstants.EC_GENERIC_REDIRECTVIEW);
}
我們最終到達的url是www.example.com/aNewPage.jsp?krypto=ABCDF0LotsOfRandomCharacters,由於第三者的集成,很遺憾,我們的javascript正在尋找url參數的未加密形式,因此無法解密krypto參數。
這種行為是根據文檔 :
\n 將輸入參數展平為HttpRedirectView的查詢字符串\n\n 展平傳遞給重定向視圖命令的所有輸入參數\n 到用於URL重定向的查詢字符串中。 例如,假設輸入\n 重定向視圖命令包含以下屬性:\n URL =“ MyView?p1 = v1&p2 = v2”;\n ip1 =“ iv1”; //輸入到原始控制器命令\n ip2 =“ iv2”; //輸入原始控制器命令\n op1 =“ ov1”;\n op2 =“ ov2”;\n 根據前面的輸入參數,最終URL為\n MyView?p1 = v1&p2 = v2&ip1 = iv1&ip2 = iv2&op1 = ov1&op2 = ov2\n 請注意,如果該命令使用SSL,則參數將被加密\n 最終網址顯示為\n MyView?krypto = encrypted_value_of“ p1 = v1&p2 = v2&ip1 = iv1&ip2 = iv2&op1 = ov1&op2 = ov2”\n
現在的問題是:如何防止這些url參數被加密?
加密的參數由wc-server.xml中的NonEncryptedParameters節點控制。 將要保留為純文本格式的url參數添加到該節點意味着它們不會被加密。
<NonEncryptedParameters display="false">
<Parameter name="storeId"/>
<Parameter name="langId"/>
<Parameter name="catalogId"/>
<Parameter name="categoryId"/>
<Parameter name="productId"/>
</NonEncryptedParameters>
我在IBM論壇上找到了答案,並詳細說明了使用NonEncryptedParameters節點的鏈接,該節點討論了出於緩存目的執行此操作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.