content/hifi-content/rebecca/LoadTest/entityIDVulnerability/loadTestVulnerabilityTest.js
2022-02-14 02:04:11 +01:00

33 lines
No EOL
1.4 KiB
JavaScript

(function() {
var SEARCH_RADIUS = 500;
var knownEntities = Entities.findEntities(MyAvatar.position, SEARCH_RADIUS);
var knownDomainEntities = [];
// From all the entities we know about, store the ones that are not client-only
knownEntities.foreach(function(entity) {
if (!Entities.getEntityProperties(entity, 'clientOnly').clientOnly) {
knownDomainEntities.push(entity);
}
});
function checkOnEntityAdd(entityID){
print("entityadded ", entityID);
knownDomainEntities.foreach(function(knownEntity) {
if (knownEntity === entityID) {
// this is the same as an entity we know about, start the alarm
var properties = Entities.getEntityPropeties(entityID, ['clientOnly', 'lastEditedBy']);
// We only care about checking on client-only adds, others are filtered
if (properties.clientOnly) {
// This is an avatar entity, assume malicious intent - otherwise something might have been re-added, e.g. trivia
print (entityID + " added as avatar entity but also in known domain entities");
print (entityID + " was last edited by node " + properties.lastEditedBy);
}
}
});
}
Entities.addingEntity.connect(checkOnEntityAdd);
Script.scriptEnding.disconnect(checkOnEntityAdd);
});