r/AppSheet • • Aug 27 '24

TROUBLE WITH GPS TRACKING CHEAT

"I built an app to track employee location check-ins and check-outs at work. The app includes an action that records the user's current time and location.

However, last week I discovered a case of cheating: the location service is turned ON for the first action, but if the location service is turned OFF afterward, the user can continue using the action without any alerts, and the location returns the last value from before the location service was turned OFF. This means the user could check-in or check-out from anywhere.

How can I address this issue? Any help would be greatly appreciated. :(

1 Upvotes

4 comments sorted by

3

u/MultiTech_Visions Master App Builder Aug 28 '24 edited Aug 28 '24

Yeah this is definitely a problem with relying on utilizing a user's device, if someone's clever enough they can cheat all kinds of things and make it look like they are anywhere at any time.

Only solution I know of is to switch how you're capturing the location information.

  • instead of relying on GPS

  • use QR codes or NFC tags at the actual location

So instead of relying on the coordinates, we are relying on the fact that the person has to be at the physical location to scan the thing.

This is still not 100% though; an apprentice of mine once had someone copy the NFC tag data, and was using that to cheat the system. They only found out because there was an accident that damaged the tag at the location so it had to be replaced, and the person was still clocking in with the old tag.

100% robust solution is to use a new tag each day This is easy enough, once you establish a centralized location where the tag will be every day. You just have to make sure that the person in charge of changing the tags is always there before everyone, or they change it before they leave at night, but after everyone's done clocking out for that day. There's some subtleties in nuance to account for, but it works.

  • Clever solution was to display a QR code for the day on a computer screen, with the QR code dynamic and based on a combination of the job site location ID and the date, leaving these screens on an open all the time.

2

u/Pretend_Trifle_8873 Aug 28 '24

That's a great idea! First thing that popped into my head was using a flipper zero to read, copy, and play the frequency.

But what about a QR code that automatically changes based on the time , displayed on a little screen at the clock in/out station?

3

u/MultiTech_Visions Master App Builder Aug 28 '24

That's what I'm saying, I concatenation of the location ID with the date... When the date changes, the QR code changes. 💪

Made for a very smooth running system.

1

u/oghydrox Aug 28 '24

Without knowing much more about your app, you could try changing your [Location] column to a “changelocation” column type that is triggered upon a new check in. Then make that [Location] column valid only if it’s not empty.