Aprimoramentos de segurança no Zoho CRM API Framework
Uma notícia para usuários do Zoho CRM API.
O Zoho CRM fará alguns aprimoramentos de segurança para sua estrutura de API em 8 de abril de 2017. Esse aprimoramento implica que os usuários de API codifiquem alguns caracteres de um valor de parâmetro. A lista detalhada de caracteres é apresentada abaixo. Esses caracteres, quando usado como valores de parâmetros, não serão mais considerados seguros após essa atualização.
Portanto, é altamente recomendável que você examine suas chamadas de API e codifique todos os caracteres não seguros antes de 8 de abril de 2017. Não fazê-lo pode resultar em quebra das chamadas de API existentes.
Por que a codificação é necessária
Quando você usa caracteres não seguros em suas chamadas de API, você enfrenta o risco de estar vulnerável a problemas de segurança. Eis uma breve descrição da vulnerabilidade a que você está exposto quando usa caracteres não 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 esse motivo, estamos fazendo esses aprimoramentos de segurança no próximo mês. Assim, incentivamos você a codificar os caracteres não seguros em suas chamadas de API antes de 8 de abril de 2017.
Caracteres a serem codificados
A seguir, a lista de caracteres seguros e não seguros. Os caracteres não seguros precisam ser codificados.
Os caracteres seguros não precisam de codificação:
- Caracteres alfanuméricos: [0-9 a-z A-Z]
- Caracteresespeciais: $ -_ . + ! * ' ( ) ,
- Caracteresreservados quando usados para fins reservados(por ex., / ? : =
& )
Caracteres não seguros que precisam de codificação
- Caracteres de controle ASCII:
Caracteres ISO-8859-1 (ISO-Latin) na faixa 00-1F hex (0-31 decimal) e 7F (127 decimal.) - Caracteres não-ASCII:
Toda a “metade superior” do conjunto ISO-Latin 80-FF hex (128-255 decimal.) - Caracteres não seguros
Espaço em branco/vazio e "< > # % { } | \ ^ ~ [ ] ` - Caracteresreservados quando NÃO USADOS para fins reservados ou definidos.
Para exemplo, considere o seguinte URL:
URL incorreto:
Em Amelia{Burrows), pela lista acima, { é um caractere não seguro. Se você não codificar esse caractere, isso resultará em um erro depois do aprimoramento de segurança.
O caractere tem de ser codificado como %7B.
URL correto:
O valor de parâmetro incorreto foi codificado. Desse modo, o URL correto é o seguinte:
Consulte a lista acima para conhecer os caracteres não seguros e codifique aqueles nos URLs adequadamente antes de 8 de abril de 2017.
Como codificar
Eis o procedimento para codificar os caracteres em idiomas diferentes.
Idioma | Script |
JAVA | URLEncoder.encode("(Last Name:Amelia{Burrows)", "UTF-8"); |
Ruby | URI::encode("(Last Name:Amelia{Burrows)") |
PHP | urlencode("(Last Name:Amelia{Burrows)") |
Se você tiver alguma dúvida, envie-nos um e-mail em support@zohocrm.com