[英]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.