Quão seguro / higienizado é o wp_insert_posts ()?


13

Observando o Codex para wp_insert_post (), ele afirma que esta função "... higieniza variáveis, faz algumas verificações, preenche variáveis ​​ausentes como data / hora etc." (EDIT: Atualizei a entrada do Codex para incluir um exemplo mais robusto que inclui segurança, além de atribuição de meta e categoria)

Apenas me pergunto se preciso fazer mais higienização para evitar hackers XSS e similares ou se está sendo feito o suficiente através da função.

Para ser sincero, verifiquei a função no núcleo e não encontrei wp_kses () ou outra limpeza no post_content, por exemplo, por isso estou um pouco preocupado. Tudo o que consigo ver é stripslashes_deep () nos dados.

Então, eu deveria estar executando wp_kses () ou qualquer outra coisa quando criar meus argumentos para wp_insert_post ()?

Qual é a melhor prática aqui? O Codex é bastante descuidado com a segurança em seu exemplo.

obrigado


2
Apenas impede a injeção de SQL. Se você deseja executar o kses no conteúdo, precisará fazer isso sozinho. O WP não consegue adivinhar qual HTML remover. E se a postagem for enviada por um administrador e ele quiser inserir uma <script>dentro dela?
Onetrickpony 29/07

OK bom saber. wp_kses_post () em tudo então e wp_kses_title () no título!
Tom Auger #

Atualizado o Codex para mostrar um exemplo de validação de dados e wp_insert_posts ().
Tom Auger

Respostas:


11

Você não precisa fazer nada.

Na carga do WP:

'init' hook -> kses_init() -> kses_init_filters()

Mais tarde:

wp_insert_post() -> sanitize_post() -> sanitize_post_field() -> 'content_save_pre' -> wp_filter_post_kses()

Da mesma forma para títulos de post, texto de comentário etc.

Conclusão: wp_insert_post () é muito higienizado. :)


Obrigado Scribu por essa correção - definitivamente um caminho melhor a seguir! Embora eu desejasse que você não tivesse descartado todo esse trecho de código, porque também foi uma boa ilustração de outros aspectos do uso de wp_insert_post () que o exemplo principal não cobre.
Tom Auger

Sim, também me senti mal por isso. No entanto, estava além do escopo de wp_insert_post (). Um tutorial separado, de cima para baixo, seria melhor, eu acho.
scribu

Resposta atualizada e codex também.
scribu

lol @ última edição. às vezes é preciso cavar para encontrar todo o ouro já enterrado dentro do núcleo :) Eu perdi o fio quando o rastreava de volta. Parece que você é um detetive melhor do que eu! Obrigado por continuar com isso e atualizar o codex.
Tom Auger
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.