Show HN: Drop-In Chat – Chatify your app
dropinchat.com
dropinchat.com
Uhh, it's possible to inject Javascript into this. There are two people that already did this. One is harmless and alerts "Wufff!" and the other redirects you to pornhub.
[edit] Now there's another that redirects you to lemonparty.
[edit 2] Now there's another that redirects you here. It's fun watching this play out live, with the nice vs. the mean HNers.
Pro-tip: Escape all user input either when it's going into the system or when it's going back out to be displayed!
Shameless plug: We develop a tool that detects vulnerabilities such as this automatically (even in JavaScript based web apps) - https://www.netsparker.com/netsparker/
There is also a free community edition which would possibly detect this vulnerability : https://www.netsparker.com/communityedition/
Sorry for the slow security fix, I was traveling after leaving YC Hacks. Please do let me know if you find anything else wrong.
My stack is django-based but I am open to any solution that works well.
http://gopkg.in/samegoal/wc.v0
Also, out of curiosity, if dropinchat provided a virtual appliance so that you didn't need to send the messages off network would that address your security concerns?
There is a Django add-on for it as well: https://pypi.python.org/pypi/django-conversejs
In the latest unreleased version (0.8), you only have to load converse.min.js and converse.min.css in your HTML.
The 0.8 release should go out within the next few weeks.
Also, if you need a generic chat, try Candy (https://candy-chat.github.io/candy/). Again, XMPP-based.
e: Ah, and somebody's already trying to inject javascript. You rascals ;)
At this point we do not have plans to add video conferencing support.
Not that I necessarily think I would need to but is it possible for the webmaster to get logs of the chats?
Please let us know if we can do anything to improve the app for a possible use case for you.
Any ideas on pricing?
I think the intent of our app is slightly different than yours. Our hope was to allow users of authenticated web applications to chat with one another. Our demo is misleading in this regard as all visitors to dropinchat.com get dropped into a single "chat group" (we din't want users to need to register in order to try it out). We think that apps this product might work well with are enterprise style collaborative applications (where users are already authenticated).
https://code.google.com/p/libevent-browserchannel-server/wik...
We open sourced the BrowserChannel library here:
https://github.com/samegoal/wc
And have a chat room demo app here:
https://github.com/samegoal/wcchat
The code we used for this particular site isn't Open Source yet. We are still trying to figure out what we want to do with it before we make that decision.
Would you be able to give a rationale on why you chose against xmpp?
XMPP seems really great in a context of needing to inter-operate with other servers. However, for our use-case all communication was in a silo of a single site so this was not a major benefit to Drop-In Chat.
Our team wants broad broad browser support (for legacy corporate deployments) and a well-tested client side module. BrowserChannel, which is used for gmail chat, is very widely deployed and well tested.
Maybe I'm missing something, but even if we went with XMPP, wouldn't Drop-In Chat still need a way to stream messages from the server to the client? If so, we would still need to rely on a transport mechanism like websockets/XHR streaming/forever iframes for the in-browser real time message delivery. BrowserChannel/WebChannel bundles up this abstraction nicely and hides all the ugliness of dealing with browser quirks for streaming message delivery.
Also joined 2 mins ago.
The documentation on dropinchat.com mentions "groups" as a set of users which are allowed to see one another and message back and forth. Our team thinks this use case might be helpful, for example, for a website administrator to limiting communication between members on a given organizational team or individuals in a certain building, etc.