{"id":"konstantinepapakonstantinou/luau-sandbox-fingerprinting","name":"luau-sandbox-fingerprinting","scope":"konstantinepapakonstantinou","platform":"roblox","description":"Fingerprinting Algorithm Within Luau Sandbox Environment","version":"1.0.0","latest":"1.0.0","versions":["1.0.0"],"license":"MIT","licenseRating":"safe","licenseCaveats":[],"licenseVerified":true,"dependencies":{},"integrity":"06bd2bccefa17712dfaf6bd6d990698496af6a2baba9d03058699ae6fa065931","likes":0,"downloads":0,"install":"forest install konstantinepapakonstantinou/luau-sandbox-fingerprinting","url":"https://forest.dev/p/roblox/konstantinepapakonstantinou/luau-sandbox-fingerprinting","files":"https://api.forest.dev/ai/package/roblox/konstantinepapakonstantinou/luau-sandbox-fingerprinting/files","readme":"# Luau Sandbox Fingerprinting\n\n[Luau](https://luau-lang.org) is a sandboxed, embeddable scripting language derived from [Lua](https://github.com/Roblox/luau). While primarily used on the [Roblox](https://github.com/Roblox) platform, Luau is gaining popularity in other projects which previously relied on [LuaJIT](https://luajit.org) and various other technologies.\n\nMany abstractions are present in the Roblox Engine to prevent developers and malicious actors alike from identifying devices, accounts, or PII. For example, Roblox's networking model consists of [\"RemoteEvents\" and \"RemoteFunctions\"](https://developer.roblox.com/en-us/articles/Remote-Functions-and-Events) which serve as an abstraction over web requests. This abstraction removes any IP-based fingerprinting options for developers.\n\nWhile the environment is heavily abstracted and sandboxed, there exist many ways to fingerprint a device. This package makes use of the `os.clock()` function on the client, which returns the CPU uptime (accurate to about one microsecond).\n\nGiven the high level of accuracy, it is unlikely that a collision would occur. However, you can further reduce the likelihood of a collision by making use of similar os-level functions to determine the device's time zone. In this case, it is recommended to use a hashing function for readability and ease of use.\n\nA common misconception surrounding this fingerprinting method lies around how the CPU uptime is reset- and this misconception is seen all around the IT world. Contrary to popular belief, shutting down and/or restarting your device does not necessary reset your CPU uptime due to the presence of fast-boot technologies within many BIOS/EUFI default configurations in addition to operating system level configurations.\n","readmeTruncated":false}