|
Author: lektran
Date: Thu Dec 10 00:53:47 2009 New Revision: 889040 URL: http://svn.apache.org/viewvc?rev=889040&view=rev Log: Reverted previous temporary security fix for request parameters being directly inserted into survey forms and changed all SurveyWrapper instances using this method to instead store the parameter map in the session temporarily. Modified: ofbiz/trunk/applications/content/src/org/ofbiz/content/survey/SurveyWrapper.java ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/ShoppingCartEvents.java ofbiz/trunk/applications/order/webapp/ordermgr/WEB-INF/actions/entry/catalog/ProductDetail.groovy ofbiz/trunk/applications/order/webapp/ordermgr/WEB-INF/controller.xml ofbiz/trunk/applications/product/src/org/ofbiz/product/store/ProductStoreWorker.java ofbiz/trunk/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/controller.xml Modified: ofbiz/trunk/applications/content/src/org/ofbiz/content/survey/SurveyWrapper.java URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/content/src/org/ofbiz/content/survey/SurveyWrapper.java?rev=889040&r1=889039&r2=889040&view=diff ============================================================================== --- ofbiz/trunk/applications/content/src/org/ofbiz/content/survey/SurveyWrapper.java (original) +++ ofbiz/trunk/applications/content/src/org/ofbiz/content/survey/SurveyWrapper.java Thu Dec 10 00:53:47 2009 @@ -101,13 +101,10 @@ * @param passThru */ public void setPassThru(Map passThru) { - /* Creates an XSS vulnerability, by passing incoming parameters straight back out to the browser - * commented until someone decides either cleanse the parameters or find an alternative solution if (passThru != null) { this.passThru = FastMap.newInstance(); this.passThru.putAll(passThru); } - */ } /** Modified: ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/ShoppingCartEvents.java URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/ShoppingCartEvents.java?rev=889040&r1=889039&r2=889040&view=diff ============================================================================== --- ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/ShoppingCartEvents.java (original) +++ ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/ShoppingCartEvents.java Thu Dec 10 00:53:47 2009 @@ -464,7 +464,8 @@ if (surveyResponseId != null) { surveyResponses = UtilMisc.toList(surveyResponseId); } else { - Map surveyContext = UtilHttp.getParameterMap(request); + String origParamMapId = UtilHttp.stashParameterMap(request); + Map<String, Object> surveyContext = UtilMisc.<String, Object>toMap("_ORIG_PARAM_MAP_ID_", origParamMapId); GenericValue userLogin = cart.getUserLogin(); String partyId = null; if (userLogin != null) { Modified: ofbiz/trunk/applications/order/webapp/ordermgr/WEB-INF/actions/entry/catalog/ProductDetail.groovy URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/webapp/ordermgr/WEB-INF/actions/entry/catalog/ProductDetail.groovy?rev=889040&r1=889039&r2=889040&view=diff ============================================================================== --- ofbiz/trunk/applications/order/webapp/ordermgr/WEB-INF/actions/entry/catalog/ProductDetail.groovy (original) +++ ofbiz/trunk/applications/order/webapp/ordermgr/WEB-INF/actions/entry/catalog/ProductDetail.groovy Thu Dec 10 00:53:47 2009 @@ -150,7 +150,8 @@ productSurvey = ProductStoreWorker.getProductSurveys(delegator, productStoreId, productId, "CART_ADD"); if (productSurvey) { survey = EntityUtil.getFirst(productSurvey); - surveyContext = UtilHttp.getParameterMap(request); + origParamMapId = UtilHttp.stashParameterMap(request); + surveyContext = ["_ORIG_PARAM_MAP_ID_" : origParamMapId]; surveyPartyId = userLogin?.partyId; wrapper = new ProductStoreSurveyWrapper(survey, surveyPartyId, surveyContext); context.surveyWrapper = wrapper; Modified: ofbiz/trunk/applications/order/webapp/ordermgr/WEB-INF/controller.xml URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/webapp/ordermgr/WEB-INF/controller.xml?rev=889040&r1=889039&r2=889040&view=diff ============================================================================== --- ofbiz/trunk/applications/order/webapp/ordermgr/WEB-INF/controller.xml (original) +++ ofbiz/trunk/applications/order/webapp/ordermgr/WEB-INF/controller.xml Thu Dec 10 00:53:47 2009 @@ -428,7 +428,7 @@ </request-map> <request-map uri="additemsurvey"> <security https="true" auth="true"/> - <event type="service" invoke="createSurveyResponse"/> + <event type="java" invoke="createSurveyResponseAndRestoreParameters" path="org.ofbiz.content.survey.SurveyEvents"/> <response name="success" type="request" value="additem"/> <response name="error" type="request" value="orderentry"/> </request-map> @@ -528,7 +528,7 @@ </request-map> <request-map uri="addGiftCertificateSurvey"> <security https="true" auth="false"/> - <event type="service" invoke="createSurveyResponse"/> + <event type="java" invoke="createSurveyResponseAndRestoreParameters" path="org.ofbiz.content.survey.SurveyEvents"/> <response name="success" type="request" value="additem"/> <response name="error" type="view" value="AddGiftCertificate"/> </request-map> Modified: ofbiz/trunk/applications/product/src/org/ofbiz/product/store/ProductStoreWorker.java URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/src/org/ofbiz/product/store/ProductStoreWorker.java?rev=889040&r1=889039&r2=889040&view=diff ============================================================================== --- ofbiz/trunk/applications/product/src/org/ofbiz/product/store/ProductStoreWorker.java (original) +++ ofbiz/trunk/applications/product/src/org/ofbiz/product/store/ProductStoreWorker.java Thu Dec 10 00:53:47 2009 @@ -421,9 +421,9 @@ return returnShippingMethods; } - public static ProductStoreSurveyWrapper getRandomSurveyWrapper(ServletRequest request, String groupName) { + public static ProductStoreSurveyWrapper getRandomSurveyWrapper(HttpServletRequest request, String groupName) { GenericValue productStore = getProductStore(request); - HttpSession session = ((HttpServletRequest)request).getSession(); + HttpSession session = request.getSession(); if (productStore == null) { return null; } @@ -434,7 +434,8 @@ } String partyId = userLogin != null ? userLogin.getString("partyId") : null; - Map<String, Object> passThruFields = UtilHttp.getParameterMap(((HttpServletRequest)request)); + String origParamMapId = UtilHttp.stashParameterMap(request); + Map<String, Object> passThruFields = UtilMisc.<String, Object>toMap("_ORIG_PARAM_MAP_ID_", origParamMapId); return getRandomSurveyWrapper(productStore.getDelegator(), productStore.getString("productStoreId"), groupName, partyId, passThruFields); } Modified: ofbiz/trunk/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/controller.xml URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/controller.xml?rev=889040&r1=889039&r2=889040&view=diff ============================================================================== --- ofbiz/trunk/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/controller.xml (original) +++ ofbiz/trunk/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/controller.xml Thu Dec 10 00:53:47 2009 @@ -247,7 +247,7 @@ <request-map uri="additemsurvey"> <security https="false" auth="false"/> - <event type="service" invoke="createSurveyResponse"/> + <event type="java" invoke="createSurveyResponseAndRestoreParameters" path="org.ofbiz.content.survey.SurveyEvents"/> <response name="success" type="request" value="additem"/> <response name="error" type="view" value="main"/> </request-map> @@ -1245,13 +1245,13 @@ </request-map> <request-map uri="profilesurvey"> <security https="true" auth="true"/> - <event type="service" invoke="createSurveyResponse"/> + <event type="java" invoke="createSurveyResponseAndRestoreParameters" path="org.ofbiz.content.survey.SurveyEvents"/> <response name="success" type="view" value="profilesurvey"/> <response name="error" type="view" value="profilesurvey"/> </request-map> <request-map uri="minipoll"> <security https="false" auth="false"/> - <event type="service" invoke="createSurveyResponse"/> + <event type="java" invoke="createSurveyResponseAndRestoreParameters" path="org.ofbiz.content.survey.SurveyEvents"/> <response name="success" type="view" value="main"/> <response name="error" type="view" value="main"/> </request-map> |
| Free forum by Nabble | Edit this page |
