Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Neubewertung der OSSL-Funktionen
#1
ich habe mich mal mit der Bewertung des Threat Levels heute auseinandergesetzt.

Dabei habe ich den folgenden Stand auch im Git implementiert:

die folgenden Rechte sind grundsätzlich vorhanden:
------------------------------------------------------------------
osSetTerrainHeight => Terraforming allowed
osGetTerrainHeight => always on
osTerrainFlush => estate manager or estate owner
osRegionRestart => estate manager or estate owner
osRegionNotice => estate manager or estate owner
osSetDynamicTextureURL => always on
osSetDynamicTextureURLBlend => always on
osSetDynamicTextureURLBlendFace => always on
osSetDynamicTextureData => always on
osSetDynamicTextureDataBlend => always on
osSetDynamicTextureDataBlendFace => always on
osConsoleCommand => estate manager or estate owner
osSetPrimFloatOnWater => always on
osTeleportOwner => always on
osGetAgents => always on
osMovePen => always on
osDrawLine => always on
osDrawText => always on
osDrawEllipse => always on
osDrawRectangle => always on
osDrawFilledRectangle => always on
osDrawFilledPolygon => always on
osDrawPolygon => always on
osSetFontSize => always on
osSetFontName => always on
osSetPenSize => always on
osSetPenColor => always on
osSetPenColour => always on, deprecated
osSetPenCap => always on
osDrawImage => always on
osGetDrawStringSize => always on
osSetRegionWaterHeight => estate manager or estate owner
osSetRegionSunSettings => estate manager or estate owner
osSetEstateSunSettings => estate manager or estate owner
osGetCurrentSunHour => always on
osSunGetParam => always on
osSunSetParam => estate manager or estate owner
osWindActiveModelPluginName => always on
osSetWindParam => estate manager or estate owner
osGetWindParam => always on
osParcelJoin => estate manager or estate owner
osParcelSubdivide => estate manager or estate owner
osParcelSetDetails => parcel owner (except owner, group, claimdate)
osList2Double => always on
osSetParcelMediaURL => parcel owner
osSetParcelSIPAddress => parcel owner
osParseJSONNew => always on
osParseJSON => always on
osMessageObject => always on
osMakeNotecard => always on
osGetNotecardLine => always on
osGetNotecard => always on
osGetNumberOfNotecardLines => always on
osAvatarName2Key => always on
osKey2Name => always on
osFormatString => always on
osMatchString => always on
osReplaceString => always on
osLoadedCreationDate => always on
osLoadedCreationTime => always on
osLoadedCreationID => always on
osGetLinkPrimitiveParams => always on
osForceCreateLink => always on
osForceBreakLink => always on
osForceBreakAllLinks => always on
osIsNpc => always on
osNpcSaveAppearance => npc owner
osNpcLoadAppearance => npc owner
osNpcGetOwner => npc owner
osNpcGetPos => npc owner
osNpcMoveTo => npc owner
osNpcMoveToTarget => npc owner
osNpcGetRot => npc owner
osNpcSetRot => npc owner
osNpcStopMoveToTarget => npc owner
osNpcSay => npc owner
osNpcShout => npc owner
osNpcSit => npc owner
osNpcStand => npc owner
osNpcRemove => npc owner
osNpcPlayAnimation => npc owner
osNpcStopAnimation => npc owner
osNpcWhisper => npc owner
osNpcTouch => npc owner
osOwnerSaveAppearance => always on
osGetMapTexture => always on
osGetRegionSize => always on
osKickAvatar => etstate manager or estate owner
osGetHealth => always on
osGetAvatarList => always on
osUnixTimeToTimestamp => always on
osGetInventoryDesc => always on
osInviteToGroup => prim owner has group invite permission
osEjectFromGroup => prim owner has group eject permission
osSetTerrainTexture => estate manager or estate owner
osSetTerrainTextureHeight => estate manager or estate owner
osIsUUID => always on
osMin => always on
osMax => always on
osGetRezzingObject => always on
osListenRegex => always on
osRegexIsMatch => always on


die folgenden Funktionen müssen explizit über opensim.ini freigegeben werden:
---------------------
osSetRot => threat level very high
osTeleportAgent => Threat Level severe
osAvatarPlayAnimation => threat level very high
osAvatarStopAnimation => threat level very high
osGetAgentIP => threat level high
osGetScriptEngineName => threat level high
osGetPhysicsEngineType => threat level high
osGetSimulatorVersion => threat level high
osGetGridNick => threat level moderate
osGetGridName => threat level moderate
osGetGridLoginURI => threat level moderate
osGetGridHomeURI => threat level moderate
osGetGridGatekeeperURI => threat level moderate
osGetGridCustom => threat level moderate
osNpcCreate => threat level high
osAgentSaveAppearance => threat level veryhigh
osGetRegionMapTexture => threat level high
osGetRegionStats => threat level moderate
osGetSimulatorMemory => threat level moderate
osSetSpeed => threat level moderate
osCauseDamage => threat level high
osCauseHealing => threat level high
osGetPrimitiveParams => threat level high
osSetPrimitiveParams => threat level high
osSetProjectionParams => threat level high
osForceAttachToAvatar => threat level high
osForceAttachToAvatarFromInventory => threat level high
osForceAttachToOtherAvatarFromInventory => threat level severe
osGetNumberOfAttachments => threat level moderate
osMessageAttachments => threat level moderate
osSetContentType => threat level high
osDropAttachment => Threat level moderate
osForceDropAttachment => threat level high
osDropAttachmentAt => threat level moderate
osForceDropAttachmentAt => threat level high


Eventuell geht aus der unteren Liste noch die ein oder andere in eine Neubewertung.

Allerdings hat sich bei der Bewertung auch gezeigt, dass die gesamte Bestands-Bewertung einer Überprüfung bedurfte.
Die ganze Welt ist ein Irrenhaus und wir sind nur die Kandidaten  ;)
Zitieren
#2
Erstmal vermute ich, die Defaults können in der OpenSim.ini überschrieben werden, wenn jemand individuell stärker einschränken will?

Folgende zwei Einstellungen sind mir als Default etwas unheimlich, vielleicht habe ich sie aber auch nicht richtig verstanden:

osSetTerrainHeight => Terraforming allowed
Werden inworld Einstellungen berücksichtigt? Können Fremde per Script nun das Land terraformen, auch wenn inworld nur bestimmte Leute das Recht haben?

osConsoleCommand => estate manager or estate owner
Was ist mit Regionen, die nicht in einer separaten OpenSim Instanz laufen? Dort sind Estate-Owner nicht zwingend deckungsgleich mit den Serverbetreibern...

Folgende Einstellungen könnte man meiner Meinung nach als Default etwas lockern:

osTeleportAgent => etstate manager or estate owner
osGetScriptEngineName => always on
osGetPhysicsEngineType => always on
osGetSimulatorVersion => always on
osGetGridNick => always on
osGetGridName => always on
osGetGridLoginURI => always on
osGetGridHomeURI => always on
osGetGridGatekeeperURI => always on
osGetGridCustom => always on
osGetRegionMapTexture => always on
osGetSimulatorMemory => etstate manager or estate owner
osGetNumberOfAttachments => always on

Begründung des Vorschlags: Wie wir gelernt haben, wird osTeleportAgent auf vielen Regionen für Teleporter eingesetzt. Die genannten Get-Funktionen zeigen keine geheimen Daten an, auch wenn ich mir derzeit meist keine sinnvolle Verwendung in einem Script vorstellen kann. (Vielleicht die Anzeige der Map-Kachel, oder auf Partys Avatare mit sehr vielen Attechments bitten was abzulegen.) "osGetSimulatorMemory" würde ich nicht allen erlauben, damit Fremde nicht erfragen können, wie sehr der Server eventuell schon auf dem letzten Loch pfeift.
Hyperweb.eu => Server-Tutorial für Linux mit OpenSim, OpenSim Arriba compiliert und für Metropolis konfiguriert!
Zitieren
#3
Vielen lieben Dank für die Neubewertung, ich hatte sowieso irwi den Eindruck, das, um sich das Denken zu ersparen, alles, was neu war, mit dem Level Severe oder very high versehen wurde....
Pubertät is nix gegen das, was einem im Alter widerfährt!


dorenas-world.de:8002:bella klara
Zitieren
#4
Na, bis das Thema durch ist warte ich noch bis zum nächsten update.Wink
Zitieren
#5
OS Funktionen - böses Teufelszeug Wink ... hätte aber die gleichen und/oder ähnlichen Einwendungen wie Mareta mit der "dringlichsten" Frage: Alle Einstellungen lassen sich in der .ini überschreiben?
if i could smile i would.
Zitieren
#6
den folgenden Funktionen kann ich tatsächlich zustimmen:
osGetGridNick => always on
osGetGridName => always on
osGetGridLoginURI => always on
osGetGridHomeURI => always on
osGetGridGatekeeperURI => always on

Die Funktionen die bereits durch andere Permission-Checks hinreichend gesichert waren, haben die Schalter komplett verloren.
Diese Permission Checks haben grösstenteils bereits existiert.

Dagegen hab ich aber mehrere Funktionen gefunden, die nicht hinreichend gesichert waren aber einen Threat Level von None aufwiesen. Diesen habe ich die vergleichbaren Rechte ähnlicher Funktionen gegeben. Aufgrund der Charakteristik einiger Funktionen werde ich diese aktuell nicht öffentlich auflisten.

osTeleportAgent => etstate manager or estate owner
stellt eher eine grössere Einschränkung dar, da dann PARCEL_OWNER nicht geht.
Nutzer dieser Funktionen würden dann plötzlich neben dem reinen Teleport eine Reihe anderer Funktionen bedienen können. Dies ist höchstwahrscheinlich nicht im Sinne des Estate Owners. Darunter im Übrigen auch die Region WindLight Settings.

Bei den folgenden Funktionen war ich mir auch erstmal nicht ganz sicher, aber die Begründungen waren teils auch eher merkwürdig in ihrer Einstufung daher als Anregung zur Bewertung verstanden:
osGetScriptEngineName => always on
osGetPhysicsEngineType => always on
osGetSimulatorVersion => always on
osGetRegionMapTexture => always on

Hierzu bitte mal zusammentragen was die gängigste Einstellung dafür ist:
osGetSimulatorMemory => etstate manager or estate owner

Bei dieser Funktion muss ich erst prüfen, was alles dort auslesbar ist:
osGetGridCustom => always on

Da die nachfolgende Funktion bei jedem Avatar die Zahl auslesen kann, muss ich die eh erst genauer prüfen, was wirklich der Problemfall sein kann.
osGetNumberOfAttachments => always on


Die OSSL-Funktionen haben oftmals dem Allow oder Creator System selbst nicht vertraut. Somit waren diese Schalter bereits ad absurdum geführt.
Die ganze Welt ist ein Irrenhaus und wir sind nur die Kandidaten  ;)
Zitieren
#7
Klasse Arbeit, Freaky.Smile
Zitieren
#8
osSetContentType ist auch neu auf always on. Die hatte ich übersehen.

Genauso hab ich bei llSetContentType die SL-kompatiblen Einschränkungen entfernt.


Gruss Freaky

Da praktisch auch eine Teildoku. Verhindere ich mal dass das untergeht.
Die ganze Welt ist ein Irrenhaus und wir sind nur die Kandidaten  ;)
Zitieren
#9
Heute habe ich versucht, die OSSL Erlaubnisse in der Ini-Datei für Metro-Arriba mal endlich anzupassen. Bisher hatte ich den OSSL-Block der Metro einfach 1:1 da reinkopiert. Dabei habe ich weiterhin offene Fragen bezüglich der Listen in diesem Thread.

1) Abschnitt "Die folgenden Rechte sind grundsätzlich vorhanden": Sind die angegebenen Berechtigungen Defaultwerte oder immer so wie angegeben? Wenn es Defaultwerte sind, darf man die in der OpenSim.ini verschärfen und abschwächen, oder nur verschärfen, oder nur abschwächen?

2) Werden die Erlaubnisse bei den jeweiligen Threat-Leveln automatisch von "false" auf "true" gesetzt, wenn man mindestens den passenden Threat-Level pauschal setzt? Oder müssen die jetzt immer explizit in der OpenSim.ini gesetzt werden?

3) Was ist mit Allow_osSetStateEvents, gibt es den Schalter in der Arriba nicht mehr?

Hier ist mein Versuch, in den Kommentarzeilen meine Vermutungen über das Verhalten der Arriba:
Code:
    ;; ========== OSSL FUNCTION BLOCK ======================================================
    ;; ADJUST as needed or desired, settings from Metropolis example if meaningful in Arriba
    ;; =====================================================================================

    ; Arriba default for Allow_osNpcGetOwner is "npc owner"
    Allow_osNpcGetOwner = true
    ; Arriba default for Allow_osNpcGetPos is "npc owner"
    Allow_osNpcGetPos = ESTATE_OWNER, ESTATE_MANAGER
    ; Arriba default for Allow_osNpcGetRot is "npc owner"
    Allow_osNpcGetRot = ESTATE_OWNER, ESTATE_MANAGER
    ; Arriba default for Allow_osNpcLoadAppearance is "npc owner"
    Allow_osNpcLoadAppearance = ESTATE_OWNER, ESTATE_MANAGER
    ; Arriba default for Allow_osNpcMoveTo is "npc owner"
    Allow_osNpcMoveTo = ESTATE_OWNER, ESTATE_MANAGER
    ; Arriba default for Allow_osNpcMoveToTarget is "npc owner"
    Allow_osNpcMoveToTarget = ESTATE_OWNER, ESTATE_MANAGER
    ; Arriba default for Allow_osNpcPlayAnimation is "npc owner"
    Allow_osNpcPlayAnimation = ESTATE_OWNER, ESTATE_MANAGER
    ; Arriba default for Allow_osNpcRemove is "npc owner"
    Allow_osNpcRemove = ESTATE_OWNER, ESTATE_MANAGER
    ; Arriba default for Allow_osNpcSaveAppearance is "npc owner"
    Allow_osNpcSaveAppearance = ESTATE_OWNER, ESTATE_MANAGER
    ; Arriba default for Allow_osNpcSay is "npc owner"
    Allow_osNpcSay = ESTATE_OWNER, ESTATE_MANAGER
    ; Arriba default for Allow_osNpcSetRot is "npc owner"
    Allow_osNpcSetRot = ESTATE_OWNER, ESTATE_MANAGER
    ; Arriba default for Allow_osNpcSit is "npc owner"
    Allow_osNpcSit = ESTATE_OWNER, ESTATE_MANAGER
    ; Arriba default for Allow_osNpcStand is "npc owner"
    Allow_osNpcStand = ESTATE_OWNER, ESTATE_MANAGER
    ; Arriba default for Allow_osNpcStopAnimation is "npc owner"
    Allow_osNpcStopAnimation = ESTATE_OWNER, ESTATE_MANAGER
    ; Arriba default for Allow_osSetSunParam is "estate manager or estate owner"
    Allow_osSetSunParam = true
    ; Arriba default for Allow_osSetEstateSunSettings is "estate manager or estate owner"
    Allow_osSetEstateSunSettings = false
    ; Arriba default for Allow_osSetRegionSunSettings is "estate manager or estate owner"
    Allow_osSetRegionSunSettings = false
    ; Arriba default for Allow_osNpcStopMoveToTarget is "npc owner"
    Allow_osNpcStopMoveToTarget = true
    ; Arriba default for Allow_osSetParcelMediaURL is "parcel owner"
    Allow_osSetParcelMediaURL = false
    ; Arriba default for Allow_osSetParcelSIPAddress is "parcel owner"
    Allow_osSetParcelSIPAddress = false
    ; Arriba default for Allow_osSetWindParam is "estate manager or estate owner"
    Allow_osSetWindParam = false
    ; Arriba default for Allow_osTerrainFlush is "estate manager or estate owner"
    Allow_osTerrainFlush = false
    ; Arriba default for Allow_osGetSimulatorMemory is "estate manager or estate owner"
    Allow_osGetSimulatorMemory = true
    ; Arriba default for Allow_osParcelJoin is "estate manager or estate owner"
    Allow_osParcelJoin = false
    ; Arriba default for Allow_osParcelSubdivide is "estate manager or estate owner"
    Allow_osParcelSubdivide = false
    ; Arriba default for Allow_osRegionRestart is "estate manager or estate owner"
    Allow_osRegionRestart = false
    ; Arriba default for Allow_osSetParcelDetails is "parcel owner (except owner, group, claimdate)"
    Allow_osSetParcelDetails = ESTATE_OWNER, ESTATE_MANAGER
    ; Arriba default for Allow_osSetRegionWaterHeight is "estate manager or estate owner"
    Allow_osSetRegionWaterHeight = ESTATE_OWNER, ESTATE_MANAGER
    ; Arriba default for Allow_osRegionNotice is "estate manager or estate owner"
    Allow_osRegionNotice = ESTATE_OWNER, ESTATE_MANAGER
    ; Arriba default for Allow_osConsoleCommand is "estate manager or estate owner"
    Allow_osConsoleCommand = false
    ; Arriba default for Allow_osKickAvatar is "estate manager or estate owner"
    Allow_osKickAvatar = ESTATE_OWNER, ESTATE_MANAGER

    ;; *** Threat-Level=Moderate, Arriba default is "false" below Threat-Level
    Allow_osGetRegionStats = false
    Allow_osSetSpeed = true
    
    ;; *** Threat-Level=High, Arriba default is "false" below Threat-Level
    Allow_osCauseDamage = ESTATE_OWNER, ESTATE_MANAGER
    Allow_osCauseHealing = ESTATE_OWNER, ESTATE_MANAGER
    Allow_osGetAgentIP = false
    Allow_osGetPrimitiveParams = ESTATE_OWNER, ESTATE_MANAGER
    Allow_osNpcCreate = ESTATE_OWNER, ESTATE_MANAGER
    Allow_osSetPrimitiveParams = ESTATE_OWNER, ESTATE_MANAGER
    Allow_osSetProjectionParams = ESTATE_OWNER, ESTATE_MANAGER
  
    ;; *** Threat-Level=VeryHigh, Arriba default is "false" below Threat-Level
    Allow_osAvatarPlayAnimation = ESTATE_OWNER, ESTATE_MANAGER
    Allow_osAvatarStopAnimation = ESTATE_OWNER, ESTATE_MANAGER
    Allow_osAgentSaveAppearance = ESTATE_OWNER, ESTATE_MANAGER
    Allow_osSetRot = ESTATE_OWNER, ESTATE_MANAGER

    ;; *** Threat-Level=Severe, Arriba default is "false" below Threat-Level
    Allow_osTeleportAgent = ESTATE_OWNER, ESTATE_MANAGER
Hyperweb.eu => Server-Tutorial für Linux mit OpenSim, OpenSim Arriba compiliert und für Metropolis konfiguriert!
Zitieren
#10
1)

Diese haben keinen Schalter mehr.

2)
der Threat Level gilt, sofern vorhanden bei der Funktion, genau wie bei der Ursprungs-OpenSim Version. Ein explizites Freigeben der Funktion mit eigenem Rechte-System ist nicht erforderlich.
Damit wird zum Beispiel bei NPCs nur noch genau eine Funktion eingestellt und das ist osNpcCreate.
Wer die osNpcCreate ausführen kann, kann auch für seine NPCs die anderen NPC-Funktionen ausführen.

Ich habe verschiedene Funktion aufgrund ihrer Charakteristik auch beschränkt.
Dazu gehören osSetSunParam und osSetWindParam.
Diese zwei Funktion können nur noch unter gleichen Bedingungen wie die LightShare-Funktionen genutzt werden.

Die Funktionen die nicht mehr am Threat-Level teilnehmen haben eigene Rechte-Systeme und somit auch nicht mehr durch Allow_* zu steuern.

Alles was ich unter "die folgenden Rechte sind grundsätzlich vorhanden:" gelistet habe, nimmt nicht mehr am Threat-Level-Rechtesystem teil. Diese Funktionen hatten bereits vorher dem Allow und Threat-Level System nicht vertraut und eigene Rechtesystem beinhaltet.

3)

osSetStateEvents war eine an sich nicht mehr vorhandene Funktion.


Anmerkung: eine Kommentierung bezüglich des Rechtesystems könnte aber dennoch in der OpenSim.ini hilfreich sein.
Die ganze Welt ist ein Irrenhaus und wir sind nur die Kandidaten  ;)
Zitieren


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste