💻 WordPress

Como utilizar http_request_host_is_external() no WordPress1 min leitura

Exemplo prático de código para utilizar a função PHP http_request_host_is_external() do WordPress.

Com a função PHP wp_http_validate_url() você verifica se uma URL é válida ou não, de acordo com a HTTP API.

$url = "https://www.painelwp.com.br/newsletter-wordpress-edicao-100/?teste=valor"; if ( wp_http_validate_url( $url ) ) { // URL é válida } else { // URL inválida }
Code language: PHP (php)

Diferente das funções esc_url() e esc_url_raw(), cujo foco é fazer a limpeza de caracteres inválidos de uma URL, a função wp_http_validate_url() faz várias validações, dentre elas:

  1. Uso de protocolo HTTP ou HTTPS;
  2. Se houver porta, deve ser 80, 443 ou 8080;
  3. Ausência de user ou pass;

Mas isto não significa que você não precisa mais fazer a limpeza da URL depois do seu uso. Veja o exemplo abaixo:

$url = "https://www.painelwp.com.br/newsletter-wordpress-edicao-100/?teste=<script>alert('oi');</script>"; if ( wp_http_validate_url( $url ) ) { // URL é válida echo "URL é: " . $url; } else { // URL inválida echo "URL inválida, digite uma nova URL."; }
Code language: PHP (php)

A URL é válida, mas como não foi feito a limpeza o código em Java Script adicionado na URL será executado. A maneira segura de utilizar o código acima seria utilizar o esc_url() na exibição da URL:

$url = "https://www.painelwp.com.br/newsletter-wordpress-edicao-100/?test=<script>alert('oi');</script>"; if ( wp_http_validate_url( $url ) ) { // URL é válida echo "URL é: " . esc_url( $url ); } else { // URL inválida echo "URL inválida, digite uma nova URL."; }
Code language: PHP (php)

Similar Posts

Você tem algo construtivo sobre este texto para dizer? Então comente abaixo