Mejoras de seguridad en el marco de la API de Zoho CRM
Un aviso para los usuarios de la API de Zoho CRM.
Zoho CRM realizará algunas mejoras de seguridad en el marco de su API el 8 de abril del 2017. Esta mejora requiere que los usuarios de la API codifiquen algunos caracteres del valor de un parámetro. A continuación, se mencionará la lista detallada de caracteres. Estos caracteres, cuando se utilizan como valores de parámetros, dejarán de considerarse seguros después de esta actualización.
Por lo tanto, le recomendamos que examine sus llamadas de API y codifique todos los caracteres no seguros antes del 8 DE ABRIL DEL 2017. Si no lo hace, se pueden perder las llamadas de API existentes.
¿Por qué se debe realizar la codificación?
Cuando utiliza los caracteres no seguros en sus llamadas de API, corre el riesgo de ser vulnerable ante problemas de seguridad. A continuación, se presenta una breve descripción de la vulnerabilidad a la que se expone cuando utiliza caracteres no seguros:
The code that parses the HTTP request line permits invalid characters. This could be exploited, in conjunction with a proxy that may also permit the invalid characters but with a different interpretation, in order to inject data into the HTTP response. By manipulating the HTTP response, an attacker could poison a web-cache, perform an XSS attack, and/or obtain sensitive information from requests other than their own.
Por este motivo, el próximo mes realizaremos estas mejoras de seguridad. Por lo tanto, le recomendamos encarecidamente codificar caracteres no seguros en sus llamadas de API antes del 8 de abril del 2017.
Caracteres que se deben codificar
La siguiente es una lista de caracteres seguros y no seguros. Los caracteres no seguros se deben codificar.
Caracteres seguros que no necesitan codificación:
- Caracteres alfanuméricos: [0-9 a-z A-Z]
- Caracteres especiales: - $_ . + ! * ' ( ) ,
- Caracteresreservados cuando se utilizan para su finalidad reservada (por ejemplo: / ? : =
& )
Caracteres no seguros que se deben codificar
- Caracteres de control ASCII:
Rangos de caracteres ISO-8859-1 (ISO-Latin) de códigos hexadecimales 00-1F (códigos decimales 0-31) y 7F (código decimal 127). - Caracteres que no son ASCII:
Toda la "mitad superior" del conjunto ISO-Latin de código hexadecimal 80-FF (códigos decimales 128-255). - Caracteres no seguros
Espacio en blanco/vacío y "< > # % { } | \ ^ ~ [ ] ` - Caracteresreservados cuando NO SE UTILIZAN para sus finalidades reservadas o definidas.
Por ejemplo, considere la siguiente URL:
URL incorrecta:
En Amelia{Burrows), según la lista anterior, { es un carácter no seguro. Si no codifica este carácter, se generará un error después de la mejora de la seguridad.
En su lugar, esto se debe codificar como %7B.
URL correcta:
Se codificó el valor del parámetro incorrecto. Por lo tanto, la URL correcta es la que se menciona a continuación:
Consulte la lista anterior para reconocer los caracteres no seguros y codificar aquellos que aparecen en su URL correctamente antes del 8 de abril del 2017.
Cómo codificar
El siguiente es el procedimiento para codificar los caracteres en distintos idiomas.
Idioma | Script |
JAVA | URLEncoder.encode("(Last Name:Amelia{Burrows)", "UTF-8"); |
Ruby | URI::encode("(Last Name:Amelia{Burrows)") |
PHP | urlencode("(Last Name:Amelia{Burrows)") |
Si tiene alguna pregunta, envíenos un correo electrónico a support@zohocrm.com