A secure beacon-based system (100; 500) comprising: a plurality of beacons, wherein each beacon is located in a sub-location of a geographic area, and each beacon includes hardware comprising dynamic beacon identifier generation logic, a data storage, and a short-distance transmitter, wherein the dynamic beacon ID generation logic generates a beacon ID from information in the data storage, and at least a portion of the beacon ID is dynamic and is varied at intervals or at least a portion of a payload of a beacon message is dynamic and is varied at intervals, and the short-distance transmitter periodically transmits the beacon ID, wherein the dynamic beacon ID generation logic generates the dynamic beacon ID or dynamic payload from at least one beacon ID calculation function; and a mobile application executed by a mobile device, wherein the mobile application receives the beacon ID of a beacon of the plurality of beacons via a short-distance communication interface of the mobile device, and the mobile application determines presence parameters associated with presence of the mobile device at the sub-location of the beacon; determines whether to send a request to an application server from the presence parameters; in response to determining to send the request, generates the request, wherein the request includes the beacon ID comprising at least the dynamic portion; and sends the request via a network interface of the mobile device to an application server, wherein the application server receives the request via a network, locally computes the beacon ID comprising at least the dynamic portion, compares the beacon ID from the request with the locally computed beacon ID, and determines whether the mobile device is located near the beacon from the comparison, wherein the application server stores the at least one beacon ID calculation function to locally compute the beacon ID, and wherein, to compare the beacon ID from the request with the locally computed beacon ID, the application server determines whether the beacon ID from the request matches the locally computed beacon ID to determine whether the request from the mobile application is authentic, wherein if there is a match, the mobile application is validated. a plurality of beacons, wherein each beacon is located in a sub-location of a geographic area, and each beacon includes hardware comprising dynamic beacon identifier generation logic, a data storage, and a short-distance transmitter, wherein the dynamic beacon ID generation logic generates a beacon ID from information in the data storage, and at least a portion of the beacon ID is dynamic and is varied at intervals or at least a portion of a payload of a beacon message is dynamic and is varied at intervals, and the short-distance transmitter periodically transmits the beacon ID, wherein the dynamic beacon ID generation logic generates the dynamic beacon ID or dynamic payload from at least one beacon ID calculation function; and a mobile application executed by a mobile device, wherein the mobile application receives the beacon ID of a beacon of the plurality of beacons via a short-distance communication interface of the mobile device, and the mobile application determines presence parameters associated with presence of the mobile device at the sub-location of the beacon; determines whether to send a request to an application server from the presence parameters; in response to determining to send the request, generates the request, wherein the request includes the beacon ID comprising at least the dynamic portion; and sends the request via a network interface of the mobile device to an application server, wherein the application server receives the request via a network, locally computes the beacon ID comprising at least the dynamic portion, compares the beacon ID from the request with the locally computed beacon ID, and determines whether the mobile device is located near the beacon from the comparison, wherein the application server stores the at least one beacon ID calculation function to locally compute the beacon ID, and wherein, to compare the beacon ID from the request with the locally computed beacon ID, the application server determines whether the beacon ID from the request matches the locally computed beacon ID to determine whether the request from the mobile application is authentic, wherein if there is a match, the mobile application is validated.