Ich habe eine Webapplikation, in der der Administrator ein Backup einspielen kann, indem er von der Adminseite den Pfad eingibt, z.B. /home/user001/backups/2004_04_01_backup.zip. Natürlich könnte er auch jeden anderen Pfad eingeben, z.B. /home/user099/backups/2004_04_01_backup.zip und so anderer Leute Daten einsehen.
Es läuft 1 Tomcat (unter dem user "tomcat") und die Webapplikation ist für jeden User separat deployed. Die Applikation ist ziemlich gierig -- ich kann mit ach und krach ungefähr 6 User in 512 MByte RAM unterbringen. Wenn ich jedem User seinen eigenen Tomcat spendiere und unter dessen uid laufen lass, habe ich zwar das Sicherheitsproblem nicht, aber da der Tomcat sich selbst mit nur 1 User auf über 250 MByte aufbläht, kann ich nicht mal 2 User unterbringen.
Ein Workaround wäre, die home directories nicht erratbar zu machen, z.B. /home/user83762936 usw., aber das ist nicht wirklich eine echte Lösung.
Kann man nicht innerhalb der Context Datei z.B. ACLs oder so was angeben?
Security in Tomcat Servlet
-
majortermi
- Userprojekt

- Posts: 916
- Joined: 2002-06-17 16:09
Re: Security in Tomcat Servlet
Du kannst dafür sorgen, dass je nach Benutzer ein anderer Security Context benutzt wird. Dann kannst du einen Sicherheitsmechanismus implementieren, der IO-Zugriffe nur auf den entsprechenden Pfad zulassen. So funktioniert z.B. die Sandbox, die von den meisten Browsern zur Ausführung von Java-Applets benutzt wird. Es ist allerdings nicht ganz trivial soetwas zu implementieren. Eine gewissen Einstieg findet man z.B. im Buch "Java Security" aus dem O'Reilly Verlag.
Erst nachlesen, dann nachdenken, dann nachfragen... :)
Warum man sich an diese Reihenfolge halten sollte...
Warum man sich an diese Reihenfolge halten sollte...