|
|
Thread Tools | Display Modes |
|
#1
|
|
|
Darth SLR
|
I'm working on a smugmug-related app which is supposed to be a more than Fire-and-forget thing. Hence I need to know whether my sessionid is still valid. This will help to avoid the overhead of sending credentials over and over again and also reduce identity theft risk.
What I'm thinking about is a "ping" method which would send
The response may either be simply success/fault one, or it can be more intelligent and in case this session has (recently?) expried, try to analyze the information provided and possbly issue a new set of credentials (which would again allow to skip a login). Anyway, this would allow to keep client active and valid for as long as it is necessary. What do you think? Thanks!
__________________
"May the f/stop be with you!" Star*Explorer: on Dgrin, home; Master Class: open; Class is in session, My Facebook, @DarthSLR, #NiksTips member: NAPP, PPA, partner: Adobe Comprehending life, universe and everything - one pixel at a time |
|
|
|
|
#2
|
||||
|
#Grinner
|
Not so sure that it helps
Hi Nikolai,
Quote:
So the only question remains is how to handle unencrypted connections. Firstly, I have grave doubts about the value of using unencrypted connections, in my opinion it would be superior to always attempt to reconnect over HTTPS and then transfer any information than it would be to try and hold a session open. In Smugmug's case, this is roughly equivalent to the relative complexity of engineering your own security protocol, versus using a pre-engineered one. Experience shows that the former will almost always be superior to the latter. If HTTPS is not implemented on your target operating system (which judging on your thread on DPReview, seems extremely unlikely) then I think you're on a hiding to nothing trying to retrofit security. [Unless you're a security engineer ;)] Quote:
if you're frightened about people stealing the credentials because they're being used to much, you must be concerned about people snooping on the communications stream, if this is a genuine security problem then we must assume that an attacker could snoop on the communications stream of the ping requests. We can then assert that the attacker could use this information to hold the connection open for longer than your application intends. If the attacker could use this information to fake requests, then you're attacker has all of the power of the available API is at his command. So there may be solutions to this, using IP address tracking, using session key exchange etc... but all we are doing by adding such systems is increasing the complexity of the security system, okay so were no longer sending a potentially valuable password around, but we haven't really protected the APIs, all we've done is vastly increased the complexity of the required security system to achieve the same security. As indicated above with the general guidance on security APIs, this generally seems to mean that we have spent a lot of money making the system less secure. On the face of it your suggestion sounded like a good idea, but one further reflection I'm not so sure that it is useful. Quote:
Keep up the good work as an ideas generator Luke [font=Arial][/font] |
|||
|
|
||||
|
#3
|
|
|
Darth SLR
|
Luke,
Thank you very much for the detailed answer!
I think I inadvertedly shifted the focus of my own message towards the security/identity theft, to which, I agree, you have very valid points. However, my primary reason for this request was simply trying to avoid "zomby client" effect and also avoid unnecessary relogins. I asked before about the "session logevity period", but unfortunately didn't get any answers. So I was thinking of "ping" as a lightweight "are you there? I am here!" message, which would prevent session ID from expiration and allow the app to use it for a prolonged time interval without requesting a new one. Thanks!
__________________
"May the f/stop be with you!" Star*Explorer: on Dgrin, home; Master Class: open; Class is in session, My Facebook, @DarthSLR, #NiksTips member: NAPP, PPA, partner: Adobe Comprehending life, universe and everything - one pixel at a time |
|
|
|
|
#4
|
||
|
#Grinner
|
Ahhh OK
Hi Nikolai,
Quote:
I guess the only factor that determines whether it is a good idea is how expensive it is for Smugmug's backend to hold a connection open. For example in quite a few database setups it's preferable to re-authenticate because the connection pool is quite constrained. I guess we'd need input from Smugmug's engineers on that one. Luke Last edited by luke_church; Nov-28-2004 at 02:58 PM. Reason: Markup edit |
|
|
|
||
|
#5
|
|
|
panasonikon
|
carry on, boyz
and welcome to dgrin, luke
nice to have you and your expertise here |
|
|
|
|
#6
|
||
|
Darth SLR
|
Yep, exactly like NOOP..
Quote:
That NOOP-like method would give me a good starting point :
Stay tumed, it's commmmmming:-) Cheers
__________________
"May the f/stop be with you!" Star*Explorer: on Dgrin, home; Master Class: open; Class is in session, My Facebook, @DarthSLR, #NiksTips member: NAPP, PPA, partner: Adobe Comprehending life, universe and everything - one pixel at a time |
|
|
|
||
|
#7
|
||
|
#Grinner
|
Cheers Andy
Quote:
I saw your email a while back, my hands are improving thanks... Few more months then I should be able to type again properly :) |
|
|
|
||
|
#8
|
||
|
SmugMug CEO & Chief Geek
|
Quote:
Don |
|
|
|
||
| Tell The World! | |
| Thread Tools | |
| Display Modes | |
|
|