Inwigilacja
Tak jak pisałem wcześniej wtyczka Inwigilator już nie działa. Jednak, nadal da się sprawdzić czy ktoś się przed nami ukrywa
Nie jest to już jednak dziura serwera AQQ.eu lecz działanie każdego innego dowolnego serwera Jabber/XMPP. Czyli niezależnie z jakiego serwera pochodzi kontakt to w prosty sposób można odkryć jego prawdziwy stan!
Jak to zrobić? Przez konsolę XML wysyłamy następujący pakiet zmieniając zawartość from, to oraz id:
<iq from="naszjid@domena.com/zasob" to="jidsprawdzany@domena.com/zasob" id="jakiesID" type="get"> <ping xmlns="urn:xmpp:ping"/> </iq>
W odpowiedzi otrzymamy pakiet zależy od tego czy kontakt się ukrywa lub na prawdę jest offline. Jeśli się ukrywa to pakiet będzie wyglądać tak:
<iq from='jidsprawdzany@domena.com/zasob' to='naszjid@domena.com/zasob' id='jakiesID' type='result'/>
Natomiast gdy kontakt jest offline dostaniemy:
<iq from='jidsprawdzany@domena.com/zasob' to='naszjid@domena.com/zasob' type='error' id='jakiesID'>
<ping xmlns='urn:xmpp:ping'/>
<error code='503' type='cancel'>
<service-unavailable xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'/>
</error>
</iq>
Proste nieprawdaż? Teraz się nasuwa pewnie pytanie czemu nie dodam tego do wtyczki Inwigilator. W praniu sprawa nie jest taka prosta jak się wydaje. Gdy dostaniemy notyfikację zmiany stanu kontaktu to trzeba by było w niej wysłać pakiet XML i następnie jakoś zablokować notyfikację by odebrać pakiet XML zwrotny lub przełożyć zmianę stanu użytkownika na potem zapisując dane struktury TPluginContact do jakieś tablicy czy coś. Jak na razie nie mam po prostu pomysłów jak się za to zabrać
Dlatego też dałem wam sposób na ręczne sprawdzenie niewidoczności kontaktu