✅ Notícias, temas e plug-ins da WEB e do WordPress. Aqui compartilhamos dicas e as melhores soluções para sites.

Higienizando URLs no WordPress

10

Trabalhar com campos centrados no usuário no WordPress – como inputelementos, textareaelementos ou qualquer tipo de campo em que um usuário possa fornecer seus próprios valores é um local que deve sempre ser alvo de sanitização.

Felizmente, a API do WordPress fornece várias funções para ajudar nisso. Dependendo do seu caso de uso, pode ser necessário seguir um destes procedimentos:

E tudo isso é muito bom, mas também existem maneiras pelas quais você pode trabalhar para limpar os dados usando funções fornecidas pelo PHP.

Claro, às vezes as expressões regulares são o caminho a seguir, mas, outras vezes, você pode querer usar recursos que estão embutidos na linguagem, mais fáceis de entender e mais fáceis de seguir.

Ao escrever meu próprio código (e ao revisar outros), tento manter isso em mente. Então, com isso dito, aqui está um processo que você pode usar que pode facilitar seus esforços ao trabalhar com URLs no WordPress.

Se você não estiver pronto para a discussão completa sobre isso, você pode pular para o título na parte inferior da postagem que descreve o código e como usá-lo em seu trabalho.

Digamos que você tenha um inputelemento aberto e queira permitir que o usuário forneça uma URL que eventualmente será renderizada no front-end, talvez em um link, em algum tipo de esquema ou simplesmente como está.

É possível ser realmente agressivo e simplesmente fazer algo como “Se este não for um URL válido, não o salve".

E, para ser claro, não estou dizendo que uma URL válida não retorna um 404 (porque às vezes as páginas existem e anos depois elas não). Estou definindo um URL válido como aquele que está formatado corretamente e não inclui nenhuma informação estranha.

Então, digamos, para este exemplo simples, você está oferecendo um campo de texto que eventualmente será salvo na tabela de metadados de postagem. Além disso, você eliminará tudo o que for ilegal em uma URL e deixará apenas o que criaria uma URL válida.

Para fazer isso, acho as seguintes funções mais úteis:

  • strip_tags. Retire as tags HTML e PHP de uma string.
  • tiras barras. Retira as aspas de uma string entre aspas.
  • filter_var. Filtra uma variável com um filtro especificado.

O último parece um pouco confuso porque se baseia na ideia de que você entende o que os filtros realmente são. No PHP, os filtros podem ser divididos em dois casos de uso:

  1. Validação
  2. Sanitização

E eles são essencialmente formas pré-construídas para processarmos dados de tal forma que processe dados para determinar se é o tipo de informação, geralmente uma string ou uma matriz, que estamos procurando.

Colocando para funcionar

Com isso em mente, veja como você pode tentar salvar informações no banco de dados sem nenhum tipo de higienização (o que é ruim):

Com o código acima, o usuário pode literalmente inserir qualquer coisa no campo e salvá-lo no banco de dados. Por isso a higienização é importante. Sem ele, o usuário pode causar estragos na experiência do usuário ou em toda a instalação do WordPress.

Então, como é aplicar o código acima ao limpar URLs? De um modo geral, fica assim :

Primeiro, o código é executado por meio de um filtro PHP que valida uma URL. Se a string passada para a função de filtro nem funcionar como URL, a função retornará false.

Se, por outro lado, funcionar como um URL válido, podemos remover quaisquer barras que não sejam necessárias. Isso significa que podemos “tirar as aspas de qualquer string entre aspas”. Mais precisamente, isso removerá a primeira barra invertida consecutiva (porque, no PHP, as barras invertidas são usadas para escapar de uma barra invertida). Claro? 🙂

Por fim, optamos por remover as tags porque queremos apenas a própria URL. Não queremos nenhuma marcação, tags ou qualquer coisa que possa sabotar os dados que estão sendo gravados no banco de dados. Isso significa que, se você optar por executar algo como:

Você ficará com:

"https://tommcfarlin.com/alert('hello world!');"

Então, juntando todo o código acima usando esta string:

Resultará na seguinte saída:

https://tommcfarlin.com/alert('hello world!');

Obviamente, essa não é uma URL válida, mas é limpa, segura e permite que você execute qualquer outro trabalho necessário para validar que a URL é segura para o usuário.

Fonte de gravação: tommcfarlin.com

Este site usa cookies para melhorar sua experiência. Presumiremos que você está ok com isso, mas você pode cancelar, se desejar. Aceitar Consulte Mais informação