JoysticK Posted June 4, 2010 Share Posted June 4, 2010 Bueno pues segun el post del blog oficial: (este)Me he bajado la 1.3.1 y me he puesto a comparar los ficheros de la 1.3.1 con las instrucciones del post porque las instrucciones no me cuadraban algunos pasos asi que aqui os los voy a comentar a ver....Paso 1, Instrucción: Archivo: /config/smarty.config.inc.php Donde: Al final del archivo, antes de "?>" Añadir: $smarty->register_modifier('secureReferrer', array('Tools', 'secureReferrer')); Conclusión de la comparación:En el fichero 1.3.1 /config/smarty.config.inc.php la linea a añadir la han puesto a continuación de la 116, con lo que las lineas quedarian así, no se si el orden alterá al producto en esta situación o no pero yo os lo digo por si acaso: 116 $smarty->register_modifier('truncate', 'smarty_modifier_truncate'); 117 $smarty->register_modifier('secureReferrer', array('Tools', 'secureReferrer')); 118 119 global $link; Paso 2, Instrucciones: Archivo: /modules/paypalapi/error.tpl Donde: linéa 13 Sustituir: {$smarty.server.HTTP_REFERER} Por: {$smarty.server.HTTP_REFERER|secureReferrer} Conclusión de la comparación:El fichero de la 1.3.1 y la explicación concuerdan.Paso 3, Instrucciones: Archivo: /themes/prestashop/errors.tpl : Donde: linéa 9 Sustituir: {$smarty.server.HTTP_REFERER|escape:'htmlall':'UTF-8'} Por: {$smarty.server.HTTP_REFERER|escape:'htmlall':'UTF-8'|secureReferrer} Conclusión de la comparación:El fichero de la 1.3.1 y la explicación concuerdan.Paso 4, Instrucciones: Archivo: /themes/prestashop/shopping-cart.tpl : Donde: linéa 255 Sustituir: {$smarty.server.HTTP_REFERER|escape:'htmlall':'UTF-8'} Por: {$smarty.server.HTTP_REFERER|escape:'htmlall':'UTF-8'|secureReferrer} Conclusión de la comparación:En la 1.3 si vas a la linea indicada (255) te encuentras con esto: {if $invoice->company}{$invoice->company|escape:'htmlall':'UTF-8'}{/if} Exactamente lo mismo que te encontrarás en la linea 255 de la version 1.3.1.Si realizo la busqueda en el fichero por la cadena a sustitunir encontramos la cadena en la linea 274: « {l s='Continue shopping'} Y si miramos en el fichero de la 1.3.1 la sustitución, ciertamente, la han realizado en la linea 274, así que la sustitución hay que realizarla en la línea 274 de la version 1.3, es un bug de las instrucciones.Paso 5, Instrucciones: Archivo: /admin/login.php Donde: linéa 67 Sustituir: $cookie->passwd = $employee->passwd; $cookie->write(); Por: $cookie->passwd = $employee->passwd; $cookie->remote_addr = ip2long($_SERVER['REMOTE_ADDR']); $cookie->write(); Conclusión de la comparación:El fichero de la 1.3.1 y la explicación concuerdan.Paso 6, Instrucciones: Archivo: /admin/confirm.php Donde: linéa 22 Sustituir: $referer = rawurldecode(Tools::getValue('referer')); Por: $referer = Tools::htmlentitiesUTF8(rawurldecode(Tools::getValue('referer'))); Conclusión de la comparación:El fichero de la 1.3.1 y la explicación concuerdan.Paso 7, Instrucciones: Archivo: /classes/Tools.php Donde: linéa 17 Despues de "class Tools {" Añadir las dos funciones: /** * Get the server variable SERVER_NAME * * @param string $referrer URL referrer */ static function getServerName() { if (isset($_SERVER['HTTP_X_FORWARDED_SERVER']) AND $_SERVER['HTTP_X_FORWARDED_SERVER']) return $_SERVER['HTTP_X_FORWARDED_SERVER']; return $_SERVER['SERVER_NAME']; } /** * Secure an URL referrer * * @param string $referrer URL referrer */ static public function secureReferrer($referrer) { if (preg_match('/^http[s]?:\/\/'.self::getServerName().'\/.*$/Ui', $referrer)) return $referrer; return __PS_BASE_URI__; } Conclusión de la comparación:Lás lineas de codigo se han introducido a partir de la línea 80 pero en este caso creo que no altare para nada el funcionamiento así que creo que se le puede dar por buena las instrucciones de este paso.Paso 8, Instrucciones: Archivo: /classes/Cookie.php Donde: linéa 164 Sustituir la funciona isLoggedBack() por la funciona: function isLoggedBack() { /* Employee is valid only if it can be load and if cookie password is the same as database one */ if ($this->id_employee AND Validate::isUnsignedId($this->id_employee) AND Employee::checkPassword(intval($this->id_employee), $this->passwd) AND (!isset($this->_content['remote_addr']) OR $this->_content['remote_addr'] == ip2long($_SERVER['REMOTE_ADDR']))) return true; return false; } Conclusión de la comparación:El fichero de la 1.3.1 y la explicación concuerdan.Por ahora creo que es todo, si alguien más ve algo que no le cuadre o me he confundido en algo que lo indique aqui por favor. Link to comment Share on other sites More sharing options...
jesushp Posted June 11, 2010 Share Posted June 11, 2010 Cierto.A mi me ha ocurrido lo mismo y he buscado info hasta llegar a tu post.En el paso que dice:Archivo: /themes/prestashop/shopping-cart.tpl :Donde: linéa 255Sustituir: {$smarty.server.HTTP_REFERER|escape:'htmlall':'UTF-8'}Por: {$smarty.server.HTTP_REFERER|escape:'htmlall':'UTF-8'|secureReferrer}No es la línea 255 sino la 274.¿Algún moderador que lo pueda confirmar?Yo he hecho los cambios en la 274... Link to comment Share on other sites More sharing options...
Recommended Posts