Yahoo invisible - language-agnostic

Some friends with the help of various sites check and know when i'm invisible on yahoo messenger and keep bragging about this.
Being curious about this I've tested lots of sites that check if a user is invisible on yahoo messenger and all of them sent me a C1 packet type.
From what i've tested I'm(my ymsgr client) not sending anything back. So i only receive 1 packet from the bot that performs the check and that's it, they know if i'm invisible or not.
Next i thought that if i'm not sending anything back then maybe the yahoo server sends something back to i tested on a friend of mine and i sent him a c1 packet but i did not received anything back from nobody (neither the server neither my friend).
So how do they do that? I'm just looking for some hints, not expecting for code or someone else to solve it for me. I just like the thrill in learning and discovering by myself just that now i'm stuck with no idea :)
Thanks.

This is a new answer because it's too long to be a comment.
I looked around a bit and it would seem that the older versions of yahoo had a deal where if you were invisible and someone tried to start a voice chat with you, it would give you away. The ping packet could be trying that.
One thing I noticed on gtalk was that often a user appears online even after they have disconnected until someone sends them a ping packet. Also, if you are invisible and then you come back, the length of time that you've been online gives away the fact that you were invisible.
Could it be, then, that when you are pinged, your status, online time, etc all update on the yahoo server if you are online and what these services are doing then are checking to see if yahoo takes any action? I would presume that all yahoo is doing is not broadcasting your info if you're online, but you can still see that the server does something.
Instead of monitoring for an incoming/outgoing packet, why don't you check your registry on the yahoo server? I believe there's a url for that.
hope this helps,
Mechko

When you are invisible, basically you are online, but simply their server do not broadcast your real status (online), but a fake one (offline).
Yahoo is not fully able to "hide" your real status, but it has some "holes" in how aggressively tries: see here for details.
Actually there are lot of websites and possible spyware that make it even easier for an end-user to check.

Is it possible that sending such a packet to someone who's not online results in an error? In that case, sending the packet and not getting an error means that that person is online.

From what you are saying, I'd suggest that the bot actually checks somewhere else (if it is true that there are no packets sent at all)
Could it be that there is an online registry of users who are online and the packet that you are sent is just an artifact?

I hadn't used Yahoo Messenger is a long time, but something you said made me wonder. You said these testing websites sent you a C1 packet. I'm wondering if it is as simple a firewall rules to block all but the Yahoo servers. I don't know if chat/voice/file transfers are done P2P, if so you would have to update your firewall rules.
Back in the day I used to use my firewall to block the ad banners on the IM clients because they were served on a different URL and failure to connect to the ad server didn't disconnect my IM channel.
Maybe you can have the firewall ask for each connection and see how few connections you need in order to have the messenger work. Then have the firewall drop unsolicited packets.
If that doesn't work, you can use the firewall to block the checking sites.
Good luck.

Here are some of the methods you can use to detect if a user is invisible or really offline (some of these depend on earlier versions of the messenger application):
Start a voice chat with the user you want to check. If you get an error, the user if really offline.
Send a message to the user, then change the IMEnviorment. If you see a message saying “waiting for your friend to load the theme”, then the user if really offline.
Download (and pay for, unfortunately) Buddy Check.
Navigate to this URL in your browser: http://opi.yahoo.com/online?m=g&t=2&u=userid (change userid to the user you are testing). (This did not work for me).
There are websites that let you can check the status online, but there is no guarantee they'll work (they're only doing what I am showing you above). Basically, you can use these VIA screen scraping. Here are some of the sites:
http://www.ydetector.com/
http://www.imvisible.info/
http://www.invisible.ir/
http://www.invisible-scanner.com/ (This one has worked best for me)

Related

Phishing Detected! warning in Chrome

I have encountered the "Phishing Detected" warning in Chrome browser on my dev site. Interestingly I don't encounter the same warning in Firefox or Safari even though, as far I can tell, they are using the same phishing database (although in Safari preferences it says "google safe browsing service is unavailable"). I also don't encounter the warning on the same page of the production sites.
It first popped up on a new account verification page I created which amongst other things asked users to confirm their PayPal account with the GetVerifiedStatus API. This requires only name and email.
I have also encountered the warning on a configuration page which asks for the PayPal email address which the user wishes to receive payments to.
Neither page requests a password or any other data that would be considered a secret.
As you might gather I have zeroed in on a potential false positive on the PayPal portion of the content as if perhaps I am phishing for PayPal information beyond the payers email address. There has been no malicious code injection or any such thing. Even when i've removed all content from the page the warning is still present.
I reported the first incorrect detection to Google, and intend to do the same for the second incident, however what I really want to clear up is:
What content can lead to this warning?
How can I avoid it in the future?
How can I get some info from the "authorities" on which urls are blocked? (Webmaster Tools is not showing warnings for the dev site)
How can I flush my local cache of "bad sites" in case I want to re-test?
Clearly having a massive red alert presented to a user on a production site would be disastrous, and there is a (perhaps deliberate) lack of information about how this safe browsing service actually works.
I have been developing a website for a banking software developer and ran into the Phishing warning as well. Unlike you I had no PayPal associations in any of my code and well not even any data collection besides a simple contact form. Here are some things I managed to figure out to resolve my false positive warnings.
1) The warnings in Chrome (red gradient background) is a detection method built into the Chrome browser itself and it does not require to check any blacklists to give the warning. In fact Google themselves claim that this is one of the methods that they discover new potentially harmful sites. When your site is actually on the blacklists you get another red warning screen with diagonal lines in the background. This explains why you only see the warning in Chrome.
2) What actually triggers this warning is obviously kept kind of hidden. I could not find anything to help me debug the content of my site. You have pretty much done this, so for anybody else in need of help, I had to isolate the parts of my site to see what was triggering the warnings. Due to the nature of the site I was working on it turned out to be the combination of words and phrases in the content itself. (e.g Banking Solutions, Online Banking, Mobile Banking). Alone they did not trigger anything but when loaded together chrome would do its thing. So I'm not sure what your triggers are or even what the list of possible triggers are. Sorry...
3) I found that simply quitting Chrome completely and restarting it resets the "cache" for whether it has perviously detected a page. I closed Chrome hundreds of times while getting to the bottom of my warnings.
Thats all I have and hope it helps.
Update: My staging area was accessed via an IP address. Once I moved the site to use a domain instead all the warnings stopped in chrome.
I experienced the same today while creating an SSL test report for my web server customers. What I had there was simply something like this:
"Compare the SSL results of our server to the results of a well-known bank and its Internet banking service". I just wanted to show that the banking site had grading B whereas ours had grading A-.
I had two images from SSL-Labs (one the results for my server and the other the results of the bank). No input fields, no links to any other site and definitely no wording about then name of the bank.
One h1, two h2 titles and two paragraphs plus two images.
I moved the HTML to the page and opened it in my Chrome browser. The web server log told me that a Google service had loaded the page after 20 seconds from my first preview. Nobody else had seen it so far. The phishing site warning came to me (webmaster) in less than an hour.
So it seems to me that the damn browser is making the decision and reporting to Google which then automatically checks and blocks the site. So the site is being reported to Google by Google tools, the trial is run by Google and the sentence is given by Google. Very, very nice indeed.

Chrome basic auth and digest auth issue

I'm having some issues with Chrome canceling some HTTP requests and I'm suspecting cached authentication data to be the cause. Let me first write down some important factors about the application I'm writing.
I was using Basic Authentication scheme for some time to guard several services and resources in my web app.
In the meantime I was using/testing the app heavily using Chrome with my main Google Account fully synced. Most frequently I was using my name - "lukasz" - as the username in Basic Auth.
Recently I have switched my application to use Digest Authentication.
Now, some of the HTTP requests I'm making are failing with status=failed with no apparent reason. It only happens when I'm using user "lukasz", if I enter some other unique username - there is no problem.
I looked everywhere in the backend and frontend and I couldn't locate the issue to be in our code. I can easily reproduce this with user "lukasz" each time. So I reverted my code to Basic Auth (while not touching the rest of app) and the problem was gone.
That led me to think that there is something wrong with cached passwords. So I cleared the cache in Chrome, but that didn't help. After several hours of analyzing the issue I decided to make sure that I'm running fresh instance of Chrome, so I reinstalled it (deleting the disk data along the way). TADAAA! The problem was gone and I couldn't reproduce this anymore.
Then I synchronized my Google Account with this newly installed Chrome and after a short while the requests to my app started failing again!! So I took a deeper look at this (cleaning profile data from disk and redoing all the steps) and indeed it looks like the problem starts as soon as my account is synced with cloud!
Yes, I know it sounds dodgy. It sounds ridiculous. It sounds stupid. But I am almost sure that those two problems are somehow related (failing requests and account sync).
My idea is this: Chrome somehow remembered that I was using "lukasz/my-pass" with Basic Auth for certain services. After I switched to Digest Auth the same combination of credentials (lukasz/my-pass) is now acting funny. Perhaps under the hood Chrome still thinks that this is Basic Auth and cancels requests when it learns otherwise?
UPDATE:
I've did some low level debugging with chrome://net-internals/ and it appears that the problem is while reading cache entry. This seems to prove my initial assumption.
I did some investigation and found this article. Apparently always adding "Last-Modified" header to my http response has solved the issue in Chrome (I'm still having some problems in FF, but that's off topic).
However, it still doesn't solve my issue entirely. Why the requests were failing in the first place?
You could try using incognito mode and see what happens. It may give you some hints without having to clear the cache or re-installing Chrome.
Also take a look at How to clear basic authentication details in chrome

What library/function would I use to create a mail client?

I'm attempting to make a mail client that is HTML5/JS only where users would have to define their mail server and credentials.
I've surfed google leading to dead ends and figured that this is the next best place (or superuser.com).
I was thinking of using HTML5 WebSocket if I could to make the connection to the server but I don't know enough of smtp, imap, or pop3's architecture to understand how javascript could pass the args and perform what I want it to do.
PHP cannot be involved in this project otherwise I wouldn't be asking the question.
Any help in locating this would be fantastic.
Nothing is impossible. Except this.
In standard HTML or JavaScript, you can't make raw-socket connections, which is what you'd need to speak any of the protocols you've listed. The WebSocket API doesn't help you, because the server must also speak WebSockets, and mail servers don't. This is actually all a good thing, though. Imagine if you visited a random website and it telnetted to your home router, setting it on fire and burning down your house. That's what websites would be able to do if they could initiate plain TCP socket connections.
You have a few options I can think of, neither of which involves building a webpage. (And to be clear, you didn't say your project had to be a webpage; you merely said HTML/JS, so these are indeed legitimate options.)
First is something like node-webkit. As the readme says, "You can write native apps in HTML and Javascript with node-webkit." You'll still have to distribute it as a native app, because that's what it is.
Second is a Chrome app, specifically using the chrome.socket API. But have fun writing a TLS layer over those sockets, which you'll find is a requirement for almost any mail server these days. If you succeed in doing that, you'll be able to distribute your mail client in the Chrome Web Store, where I assure you an email client will be quite popular.
Third, write a webserver that operates locally, so your users will visit something like http://localhost:9999/mail in their browser. This will be a real pain to distribute, but you can use almost any technology you want.
I'm sure there's a fourth valid option, and someone else can chime in on that one.
Best of luck.

Webrtc no video when users are on different network

So I have a website set up. With a clienta page and a clientb page.
This is basically a split version of this site:
https://webrtc-demos.appspot.com/html/pc2.html
I am using signalr (websockets) to exchange information between the clients.
When a user opens up both cleinta and b on the same computer it works fine.
When a user opens up clienta on one computer and on another computer opens up clientb BUT both computers are on the same network, it works fine.
When a user open up clienta on one computer and on another computer opens clientb BUT on different networks there is no video or audio.
When the ice messages are exchanged i pass back a number so i know the order its sent. On the opposite end they dont always arrive the same order, but audio #1 always gets there before audio#2. and the same with video.
In all cases im using chrome dev 24.
I realize sequence and timing are everything with webrtc. Im just not understanding how it can work on separate pcs on the same network but not different networks. I should point out that when i say same network ive test both at work with 2 pcs and at home with 2 pcs. so i dont think its a firewall thing.
Any ideas?
I did check out https://apprtc.appspot.com/ as its a slightly more relevant link. This lead me to adding a couple settimeouts though they didnt seem to help.
One last thing, i did mention about the ice messages. I should also note that both sides send and receive all the messages. an offer is created and an answer is created. Hence, it working on same network machines.
Update:
Im using jsep and all the latest syntax according to webrtc.org
Update 11/15/2012:
So is there a open source package for creating a media relay?
Specifically .net, but could be php. The current site is public facing, this is how I was able to test on multiple networks. So it seems like I just need another endpoint for the media relay.
Updated 11/16/2012:
In hopes that I'll get it working or get valuable input from other developers I'm putting my code out on github.
https://github.com/thorst/RTC
Updated 11/21/2012
The code now works for everything except different network connections. (as described in this post)
Updated 5/28/2013
This years google io was much better at explaining turn, stun, and ice.
http://www.youtube.com/watch?feature=player_embedded&v=p2HzZkd2A40
For reference here are the older helped me get started
http://www.youtube.com/watch?v=E8C8ouiXHHk
http://www.youtube.com/watch?v=dAhhniqwkp8
Chrome doesn't implement TURN yet. STUN will only help with some types of NATs but not with symmetric ones which are prevalent in home routers. You need a media relay with a public IP to connect two devices that are behind symmetric NATs and the standard for that is TURN https://www.rfc-editor.org/rfc/rfc5766 .

Webapp sending email via gmail SMTP a bad idea?

TL;DR - Any webapp devs out there able to squeeze performance out of using gmail as SMTP server without a 3-10 minute delay to delivery?
I'm looking for some feedback from developers who are using gmail as a secure SMTP server for use with Webapps.
Within the past 2 weeks, my company has switched to gmail to host email for our domains.
I have a few webapps that send from our ISP server, but I'd like to refactor the code to use gmail with our domain name. I know the ISP can rig things up, but I don't want relay issues.
I have gmail sending for the Webapps and it's more or less working. On ASP/IIS, I'm using SSL and on PHP Linux, I'm using TLS.
It seems that TLS (port 587) works better than plain old SSL (port 465), but the overall performance difference seems minimal.
What concerns me is that there is often a significant delay (10-20 minutes at times) to get email to a recipient no matter which method I use to send via gmail.
While I understand this can happen in any environment, I am used to fast delivery. Use case is salespeople talking to customers and needing to get email to them very quickly using the Webapp. Before the gmail switch, usually less than a minute to deliver. Now, it is 3-4 minutes minimum.
Am I crazy to try to use gmail for this purpose? There seem to be a lot of devs using it, so just wanting to know how it works out for them/you.
Thanks for any feedback!
Ive found gmail problematic for another reason... Grey listing. My application happy works away using gmail smtp and then every now and then just stops working. Manually logging into the gmail web interface and entering a captcha "unlocks" the account and my application can send mail again. Seems at some point google determines that I may be sending spam and locks my account...? Feels like sending automated mail through gmail is a risky idea IMHO
Just a shot in the dark, but may it have to do with additional outgoing mail spam checking and therefore long output queues on GMail's side and (at least in some cases) greylisting?
To elaborate on that:
Google is known to take things seriously. Hosting a mail service that may be used by everyone nowadays is a bit of a hassle. One user posting spam/viruses through your service and bam! your servers are on someones blacklist. Therefore, additional checking on outgoing mail would be a good idea, but the mail may take longer (especially in a distributed server environment where the mail has to pass several message queues ... from the incoming ESMTP server to the spam checker to the virus checker to the message storage to the outgoing mail queue to the outgoing mail SMTP service).
If a recipient uses greylisting, his mail server first rejects a mail by stating a temporary problem, remembering the sender address and/or the message id and telling the sending server to try again later. Most spammers do not try again. But GMail's servers will try again, but due to long message queues and/or long retry intervals it will be delayed further.
And, as Ryan already stated, try to get one of the most delayed mails into your hands, including all mail headers. Check the timestamps on the Received: headers and find out which server is the bottleneck. Then you'll have at least an idea where it goes wrong.
Gmail has a pretty nice step-by-step resolution process on their support site.
Here is a direct link
You will want to do some more digging to try and isolate the issue. I'm rather surprised you are seeing 10 - 20 minute delays. One thing to look at is the email message header. This will give you a good idea how long each hop is taking. There could be an issue somewhere else that you don't know about.
I doubt you are going to be able to get your email sending as fast as it was in-house. It just comes with the territory.
On my server, debian with plesk and postfix mailserver, i seen that using gmail took a bit of time to sent the mail (~2-3 seconds to send the mail via php using phpmailer), but the mails usually arrive in 1~2 minutes.
Seldom happens that the deliver took about 10 minutes.
Using posix, instead, php send email faster, but they take more times to be delivered (in true, php is faster delivering the mail at the mail server, but then the mail server is slower to deliver the mail to the recipient).. and is a nightmare with spam.
This is my experience, my 2 cents ;)