AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Sind Umgebungsvariablen unsicher?

Ein Thema von Matze · begonnen am 15. Apr 2008 · letzter Beitrag vom 18. Apr 2008
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#1

Sind Umgebungsvariablen unsicher?

  Alt 15. Apr 2008, 21:06
Moin,

vorhin habe ich mich gefragt, wieso hier des öfteren gefragt wird, wie man den angemeldeten Benutzernamen unter Windows ausliest (ich weiß, es können mehrere angemeldet sein, aber ich meine nun den normalen Fall, dass eine Person am Rechner sitzt und niemand übers Netzwerk und ähnlichem darauf zugreift).

Oftmals stoße ich auf Source wie diesen, der unter gewissen Umständen nicht funktioniert. Ähnliche Ansätze sind hier auch anzutreffen.

Nun stehen solche Infos doch auch in den Umgebungsvariablen. Lassen sich diese leicht manipulieren oder wieso wird allgemein nicht einfach darauf zugegriffen?

Um auf das eben genannte Beispiel zurückzukommen, ginge dies in Delphi ja einfach mittels:

GetEnvironmentVariable('USERNAME') Evtl. habe ich falsch gesucht, doch zu diesem Thema konnte ich nichts finden und ich bin überzeugt davon, dass es einen Grund hat diese komplizierteren Vorgehensweisen zu nutzen.

Grüße,
Matze
  Mit Zitat antworten Zitat
Dezipaitor

Registriert seit: 14. Apr 2003
Ort: Stuttgart
1.701 Beiträge
 
Delphi 7 Professional
 
#2

Re: Sind Umgebungsvariablen unsicher?

  Alt 15. Apr 2008, 21:13
Man kann die Umgebungsvariable täuschen, indem man sie einfach ändert. Über die Kommanodzeile mit "set".

Den Benutzername kannst du aber auch so erhalten:
http://blog.delphi-jedi.net/2008/03/...rom-a-service/
Christian
Windows, Tokens, Access Control List, Dateisicherheit, Desktop, Vista Elevation?
Goto: JEDI API LIB & Windows Security Code Library (JWSCL)
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.117 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: Sind Umgebungsvariablen unsicher?

  Alt 15. Apr 2008, 21:40
Moin Christian,

Zitat von Dezipaitor:
Man kann die Umgebungsvariable täuschen, indem man sie einfach ändert. Über die Kommanodzeile mit "set".
Hast Du auch mal ausprobiert, wie lange diese Änderung hält?
So eine Änderung wirkt nur in dieser einen Konsole, und daraus aufgerufenen Prozessen, da sie das Environment erben.
Eine Umgebungsvariable USERNAME als solche existiert auch nicht, sondern wird, IMHO, initial durch den Aufruf von GetUserName (bzw. GetUserNameEx) gefüllt.
Die "echten" Umgebungsvariablen findet man unter
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Contro l\Session Manager\Environment

Anzeigen und ändern lassen sich diese auch über die Systemeigenschaften, und dann wirken sich Änderungen aus.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Sind Umgebungsvariablen unsicher?

  Alt 16. Apr 2008, 09:16
Zitat von Matze:
Oftmals stoße ich auf Source wie diesen, der unter gewissen Umständen nicht funktioniert. Ähnliche Ansätze sind hier auch anzutreffen.
Es gibt noch MSDN-Library durchsuchenGetUsername ohne das "Ex". Damit hatte ich noch nie Probleme.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von nicodex
nicodex

Registriert seit: 2. Jan 2008
Ort: Darmstadt
286 Beiträge
 
Delphi 2007 Professional
 
#5

Re: Sind Umgebungsvariablen unsicher?

  Alt 16. Apr 2008, 09:38
Zitat von Christian Seehase:
Moin Christian,

Zitat von Dezipaitor:
Man kann die Umgebungsvariable täuschen, indem man sie einfach ändert. Über die Kommanodzeile mit "set".
Hast Du auch mal ausprobiert, wie lange diese Änderung hält?

So eine Änderung wirkt nur in dieser einen Konsole, und daraus aufgerufenen Prozessen, da sie das Environment erben.
Diese Art des Überschreibens von Umgebungsvariablen hat durchaus seine Daseinsberechtigung
Ein möglicher Anwendungsfall: Man möchte, dass ein Setup ein alternatives TEMP-Verzeichnis verwendet (in %TEMP% ist zu wenig Platz oder der Zugriff ist zu langsam).

Zitat von Christian Seehase:
Die "echten" Umgebungsvariablen findet man unter
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Contro l\Session Manager\Environment

Anzeigen und ändern lassen sich diese auch über die Systemeigenschaften, und dann wirken sich Änderungen aus.
Die Änderungen werden nur von den Programme bemerkt, die auf die entsprechende Nachricht reagieren, die das Systemsteuerungselement an alle schickt (der Windows Explorer behandelt die Nachricht - andere Programme nicht unbedingt).
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.117 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: Sind Umgebungsvariablen unsicher?

  Alt 16. Apr 2008, 22:39
Moin Nico,

auch mal wieder da

Zitat von nicodex:
Diese Art des Überschreibens von Umgebungsvariablen hat durchaus seine Daseinsberechtigung
Ein möglicher Anwendungsfall: Man möchte, dass ein Setup ein alternatives TEMP-Verzeichnis verwendet (in %TEMP% ist zu wenig Platz oder der Zugriff ist zu langsam).
Ich wollte eigentlich nur darauf hinaus, dass man die Umgebungsvariablen nicht einfach per SET so ändern kann, dass es sich auf andere laufende Prozesse auswirkt, sondern nur auf welche, die dieses geänderte Environment vom Aufrufer erben.

Zitat von nicodex:
Die Änderungen werden nur von den Programme bemerkt, die auf die entsprechende Nachricht reagieren, die das Systemsteuerungselement an alle schickt (der Windows Explorer behandelt die Nachricht - andere Programme nicht unbedingt).
Wobei es sich auf alle Programme auswirkt, die nach der Änderung per Systemsteuerung, aus dem Explorer, oder der Konsole gestartet werden.
Die angesprochene "Umgebungsvariable" USERNAME könnte man wohl nur durch Änderung im Environment des Explorers umbiegen.
Hmmm. Das muss ich mal ausprobieren
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#7

Re: Sind Umgebungsvariablen unsicher?

  Alt 17. Apr 2008, 01:24
Kleiner Hinweis: GetTempPath() der WinAPI ist eine API Funktion und greift als erstes auf die Environmentvariablen zu.
  Mit Zitat antworten Zitat
Dezipaitor

Registriert seit: 14. Apr 2003
Ort: Stuttgart
1.701 Beiträge
 
Delphi 7 Professional
 
#8

Re: Sind Umgebungsvariablen unsicher?

  Alt 17. Apr 2008, 01:34
Also env sind net unbedingt als unsicher anzusehen.
Es ist sehr nützlich einige Variablen zu ändern. Bei Benutzername sollte man aber vorsichtig sein. Je nachdem, was damit in der App gemacht wird, kann man dumme Sachen machen. Deine App wäre nicht die erste, die abstürzt, wenn man eine Variable ungeschickt verändert.
Christian
Windows, Tokens, Access Control List, Dateisicherheit, Desktop, Vista Elevation?
Goto: JEDI API LIB & Windows Security Code Library (JWSCL)
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#9

Re: Sind Umgebungsvariablen unsicher?

  Alt 17. Apr 2008, 08:03
Der Grund warum ich nicht auf die Umgebungsvariablen zugreife ist der das ich nicht weiß ob sie in der nächsten Windowsversion noch genau so heißen. Da ist die Verwendung der Apifunktion doch bedeutend sicherer. Das Beispiel des Tempverzeichnisses ist schon perfekt. Seit XP (oder so ähnlich) gibt es zusätzlich ein Temp Verzeichnis für jeden user und wenn ich einfach das alte Temp-Verzeichnis verwende kanns fix passieren das ich dort gar keinen Zugriff habe.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von nicodex
nicodex

Registriert seit: 2. Jan 2008
Ort: Darmstadt
286 Beiträge
 
Delphi 2007 Professional
 
#10

Re: Sind Umgebungsvariablen unsicher?

  Alt 17. Apr 2008, 09:25
Zitat von Christian Seehase:
Die angesprochene "Umgebungsvariable" USERNAME könnte man wohl nur durch Änderung im Environment des Explorers umbiegen.
Hmmm. Das muss ich mal ausprobieren
Ist bei WM_SETTINGCHANGE dokumentiert:
Zitat:
To effect a change in the environment variables for the system or the user, broadcast this message with lParam set to the string "Environment".
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:46 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz