Adult Life Hero-Bild

Code

Eigene Code-Beispiele, Snippets und technische Notizen.

PHP

Der Trugschluss über Sicherheit in OpenSIM

# Instant Messages in OpenSim: Sicher? Eher nicht.

Immer wieder wird angenommen, dass Instant Messages in OpenSim ein verlässlicher und sicherer Kommunikationsweg seien. Genau diese Annahme ist gefährlich.

OpenSim ist offen, flexibel und technisch mächti
Details

    // Das XML-RPC-Request-Body für die grid_instant_message Methode
    // Struktur exakt wie vom User als funktionierend bestätigt.
    $im_xml_body = "<?xml version=\"1.0\" encoding=\"utf-8\"?>" .
                   "<methodCall><methodName>grid_instant_message</methodName><params><param><value><struct>" .
                   "<member><name>position_x</name><value><string>0</string></value></member>" .
                   "<member><name>position_y</name><value><string>0</string></value></member>" .
                   "<member><name>position_z</name><value><string>0</string></value></member>" .
                   "<member><name>to_agent_id</name><value><string>" . htmlspecialchars($to_agent_id) . "</string></value></member>" .
                   "<member><name>from_agent_session</name><value><string>00000000-0000-0000-0000-000000000000</string></value></member>" .
                   "<member><name>im_session_id</name><value><string>" . htmlspecialchars($from_agent_id) . "</string></value></member>" .
                   "<member><name>from_agent_name</name><value><string>" . htmlspecialchars($from_agent_name) . "</string></value></member>" .
                   "<member><name>from_agent_id</name><value><string>" . htmlspecialchars($from_agent_id) . "</string></value></member>" .
                   "<member><name>binary_bucket</name><value><string>AA==</string></value></member>" .
                   "<member><name>region_handle</name><value><i4>0</i4></value></member>" .
                   "<member><name>region_id</name><value><string>00000000-0000-0000-0000-000000000000</string></value></member>" .
                   "<member><name>parent_estate_id</name><value><string>1</string></value></member>" .
                   "<member><name>timestamp</name><value><string>" . time() . "</string></value></member>" .
                   "<member><name>dialog</name><value><string>AA==</string></value></member>" .
                   "<member><name>offline</name><value><string>AA==</string></value></member>" .
                   "<member><name>from_group</name><value><string>FALSE</string></value></member>" .
                   "<member><name>message</name><value><string>" . htmlspecialchars($message) . "</string></value></member>" .
                   "</struct></value></param></params></methodCall>";

    // --- CURL-Anfrage an den OpenSim Gatekeep