views:

812

answers:

5

I'm working on an enterprise iPhone application for a client, the issue at hand is customer information will show up on the phone. My client is worried that the information could be caught using the iphone screen capture feature (home + power button), then emailed or synced from the phone. Is there any way to disable the screen capture feature? Can this be done programatically or is is possible through a configuration profile?

Thanks.

A: 

There's even more to worry about than that:

http://www.wired.com/gadgetlab/2008/09/hacker-describe/

Azeem.Butt
+1  A: 

Personally, I wouldn't get too worked up over this one. Once it's displayed on the phone, the data is already revealed. It'd be just as easy for someone to type it into their laptop as they looked at the screen. In fact, I bet it would be faster than using the screenshot feature.

In short, if you don't want someone to get to your data, keep it behind the firewall and inside the database. And even that might not be good enough.

KevDog
On a personal level I completely agree, but this is a case of the "Customer is always right". It's really easy to take the info down on pen and paper, but in the customer's mind it's still a factor. So I have to look into it, otherwise they may kill the project.
Arjent
I hear you, and I've been there. I'll be there again tomorrow morning. Even if you don't have any luck convincing them that they're shooting money down the drain, I'm virtually certain that what they are asking for can't be done. You can't get programmatic access to so many iPhone feature I would be stunned if you could get to this. Screenshots are a integral part of the UI (used in zooming on quitting app) that there is zero chance that you disable it. In fact, the only way I know of doing it is jailbreaking the phone, as seen here: http://www.wired.com/gadgetlab/2008/09/hacker-says-sec/
KevDog
A: 

Since this is for an enterprise app, perhaps you could put a transparent overlay view atop everything, that in a drawRect went opaque when it detected the layer was being asked to render for a screen shot (perhaps by looking back up the tack trace?)

You might try setting debug points in every possible view and layer drawing methods, and see if anything is triggered by a screenshot.

Kendall Helmstetter Gelner
A: 

Forget about capturing text/passwords, security, etc...

How about an app that shows copyrighted images, like photos or book scans, and the client doesn't want the content captured and/or used as a screen saver, transfered to a PC, etc...

Nicolás
A: 

I have an app been develped now and i have requested them to find a way to disable the screen shot.

I know you can not disable the home button but maybe the other button can be disabled when running the app.

I will know within 24 hours, and if i hae a solution i will post.

Thanks

john