• Nenhum resultado encontrado

Consultas SQL por XML-RPC no WordPress José Antonio Meira da Rocha

N/A
N/A
Protected

Academic year: 2021

Share "Consultas SQL por XML-RPC no WordPress José Antonio Meira da Rocha"

Copied!
16
0
0

Texto

(1)

Consultas SQL por

XML-RPC no WordPress

(2)

XML-RPC

● Chamadas a procedimentos remotos

● Formato XML

● Dave Winer, 1998

● Implementação: Servidor RPC, clientes RPC

● WordPress possui servidor

default on

(3)

Chamada XML-RPC

<?xml version="1.0"?>

<methodCall>

<methodName>examples.getStateName</methodName>

<params>

<param>

<value><i4>40</i4></value>

</param>

</params>

</methodCall>

(4)

Resposta XML-RPC

<?xml version="1.0"?>

<methodResponse>

<params>

<param>

<value><string>South Dakota</string></value>

</param>

</params>

</methodResponse>

(5)

Funções XML-RPC no WordPress

function mynamespace_subtractTwoNumbers( $args ) { $number1 = (int) $args[0];

$number2 = (int) $args[1]; return $number1 - $number2; }

function mynamespace_new_xmlrpc_methods( $methods ) { $methods['mynamespace.subtractTwoNumbers'] = 'mynamespace_subtractTwoNumbers'; return $methods; } add_filter( 'xmlrpc_methods', 'mynamespace_new_xmlrpc_methods');

(6)

Autenticação em WP XML-RPC

function mynamespace_getUserID( $args ) { global $wp_xmlrpc_server;

$wp_xmlrpc_server->escape( $args ); $blog_id = $args[0];

$username = $args[1]; $password = $args[2];

if ( ! $user = $wp_xmlrpc_server->login( $username,

$password ) )

return $wp_xmlrpc_server->error;

return $user->ID; }

function mynamespace_new_xmlrpc_methods( $methods ) {

$methods['mynamespace.getUserID'] = 'mynamespace_getUserID'; return $methods;

}

(7)

Segurança em WP XML-RPC

(8)

Autenticação em WP XML-RPC

POST /news/xmlrpc.php HTTP/1.1 Host: 127.0.0.1

User-Agent: LiveCode/7.1.1 ( Client ) Content-Type: text/xml Content-Length: 311 Authorization: b730db0864b0d4453ba6a26ad6613cd4|| 3fac15f99f7a178f922bcc4942e62dc9001b2a45118fc3a6f3aebd77d25f4d58 <?xml version="1.0"?> <methodCall> <methodName>wp.getPosts</methodName> <params> <param> <value><i4>1</i4></value> </param> <param> <value><string></string></value> </param> <param> <value><string></string></value> </param> </params> </methodCall>

(9)
(10)

Riscos desta autenticação

Para esta linha “AUTHORIZATION” ser exposta ao PHP, o servidor Web Apache pode precisar deste comando no arquivo .htaccess da raiz ou no arquivo de configuração do Apache httpd.conf (sob a tag <VirtualHost>):

SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1

Riscos

“Essa regra define uma variável de ambiente com os dados do cabeçalho de

autorização – que é exatamente como funciona a falha Shellshock exposta com strings User Agent (alguns sistemas definiam variáveis ​​de ambiente para

HTTP_USER_AGENT da mesma forma)”.

(11)

SQL query por WP XML-RPC

<?php /**

* Plugin Name: XML-RPC SQL Query * Plugin URI:

http://meiradarocha.jor.br/news/livecode/2014/09/02/plugin-wordpress-permite-consultas-sql-por-xml-rpc/

* Description: Does a SQL query through XML-RPC. * Version: 0.0.1.0

* Author: José Antonio Meira da Rocha * Author URI: http://meiradarocha.jor.br * License: GPL2

(12)

SQL query por WP XML-RPC

function vid_SQLquery( $args ) { global $wp_xmlrpc_server;

// Uncomment to use default WordPress database object //global $wpdb ; $blog_id = $args[0]; $username = $args[1]; $password = $args[2]; $server = $args[3]; $database = $args[4]; $query = $args[5];

(13)

SQL query por WP XML-RPC

if ( ! $user = $wp_xmlrpc_server->login( $username,

$password ))

return $wp_xmlrpc_server->error;

// Comment to use default WordPress database object // Constants DB_USER and DB_PASSWORD are defined // in wp_config.php.

(14)

SQL query por WP XML-RPC

$response = $wpdb->get_results($query, OBJECT);

// If there is database connection error if ($wpdb->error)

return $wpdb->error ;

// If there is SQL error if ( $wpdb->last_error)

return ("SQL error: ".$wpdb->last_error) ;

// If there is no errors return $response;

(15)

SQL query por WP XML-RPC

function vid_new_xmlrpc_methods( $methods ) {

$methods['vid.SQLquery'] = 'vid_SQLquery'; return $methods;

}

add_filter( 'xmlrpc_methods', 'vid_new_xmlrpc_methods' }

(16)

Bibliografia

Principais referências:

XML-RPC: https://en.wikipedia.org/wiki/XML-RPC

Acesso ao banco de dados WordPress:

http://codex.wordpress.org/Class_Reference/wpdb

Acesso a banco de dados diferente do default:

http://wordpress.stackexchange.com/questions/1604/using-wpdb-to-connect-to-a-separate-database

Estendendo os procedimentos remotos: http://codex.wordpress.org/XML-RPC_Extending

Página do plugin:

http://meiradarocha.jor.br/news/livecode/2014/09/02/plugin-wordpress-permite-consultas-sql-por-xml-rpc/

Referências

Documentos relacionados

 ORTO indica posições 1, 2.. 01)(Osec-SP) Quantos átomos de carbono insaturados há na estrutura do metilbenzeno? a) 7.. 02) Na construção civil o isopor tem sido

Desta forma, tendo em vista a possibilidade de homologação parcial do aumento do capital social e visando assegurar que os acionistas que desejem participar do aumento possam,

Para Hall “Estamos sempre em processo de formação cultural, a cultura não é uma questão de ontologia, de ser, mas de se tornar.” (HALL, 2006, p.. também seria nossa identidade,

As ações afirmativas, assim como várias normas dos direitos humanos, possuem problemas de eficácia devido à cultura das pessoas comuns que compõem a sociedade.. As

Os dados obtidos durante o per íodo de cultivo da tilápia do Nilo, alimentada com as rações não convencionais A, B e C e Comercial, são mostrados na Figura 1, onde

IGUALMENTE UTILIZAREMOS UNA CAMADA MUY FINA DE MORTERO DE ASENTAMIENTO O SILICONA, PARA QUE PERMITA LA DILATACIÓN NATURAL ENTRE LOS COMPONEN- TES DE HORMIGÓN, CUANDO LA BARBACOA

Considerando que o valor de bolsa e os indicadores de geração de valor são cada vez mais utilizados pelos investidores ao analisar o desempenho econômico e

Veículos do casal Rogério Onofre e Dayse foram registrados em nome Cláudio Freitas; Houve várias trocas de mensagens suspeitas, tendo elas sido codificadas com nomes