Joachim: Viele, viele Fragen und Lob an Stefan Münz!

HI

Da ich gerade beim Programmieren eines riesen Projekts bin hätte ich ganz viele Fragen
an euch! Ich glaube, dass jeder irgendetwas weis. :-)

1.) Großes Lob an Stefan Münz

Du hast es wirklich geschafft eine hervorragende HTML - Online-Doku zu schreiben!!
Ich hoffe auf eine Fortsetzung!!!!!

Kompliment!!!

Ich werde deine Dokumentation demnächst in meinem fast 1000 Abonnenten starken Newsletter empfehlen!

Auch die selfhtml-Gemeinde find ich voll super! Die haben mir schon oft geholfen!!

2.) cgi Passwortdateien sicher?

Sind die Passwörter eigentlich sicher wenn man sie in einer Textdatei auf dem Server speichert? Die Datei ist nötig um das vom User eingegebene Passwort auf Gültigkeit zu überprüfen. Aber wenn einer die Passworttextdateiurl weis dann kann er ja sämtliche
Passworter herrauslesen und verwenden, oder?

Was passiert wenn ich die txt-Datei im cgi-Verzeichnis speichere? Dieser Ordner ist ja vor Zugriffen geschützt oder nicht?

Was gibs da für Möglichkeiten Passwörter sicher zu speichern. Ein cgi-Programm muss aber darauf zugriff haben können!

3.) cgi langsamer als SSI?

Was ist eigentlich der große Vorteil von SSI. Die genaue Funktion ist mir ja bekannt aber..
Ich könnte auf SSI verzichten und alles mit cgi- programmieren => Hätte den gleichen
Effekt ohne größeren Aufwand!

Folgendes will ich realisieren:

Um die aktuellen Downloads der Programme auf einer Seite zu zeigen geht mit html nichts mehr.
Ich brauche Perl oder SSI!

Mit SSI währe es so zu realisieren:

<b>Programmname: Winzip 8.0</b>
Downloads: <Ssi-Code winzipdownloads.txt>

Was ist besser es mit cgi oder SSI zu realisieren?

4.) Noch ne SSI-Frage!

Ich habe bei anderen Seiten bemerkt, das SSI-Seiten erst den ganzen HTML-Code
herunterladen und erst dann das ganze Dokument anzeigen! Stimmt das?
Wie funktioniert das genau?

5.) Einige Webmaster reden schon von Onlinedatenbanken wie SAP, ASP ....
Was würde mir eine solche Datenbank gegenüber einer selbst programmierten cgi - Datenbank bringen?

6.) Wie hoch belastet eigentlich ein cgi.-Programm einen Server?
z.B.: ein 10 zeiliges Counterprogramm  
Ich möchte miich dafür entschuldigen, dass ich so blöd frage, aber ich habe eine
großes Projekt zu realisieren da ist so was von Bedeutung!

7.) Mein Virtueller Server( Omnihttpd) verweist immer auf das falsche Verzeichnis!!

Das geht:
<img src="icons/smiley.gif" width="16" height="16" border="0" alt="">

Hier verweist er auf:

C:\hp\icons\smiley.gif  => Wie erwünscht!!

Das geht nicht:
<img src="../icons/smiley.gif" width="16" height="16" border="0" alt="">

Er verweist hier auf C:\httpd\icons\smiley.gif

Das muß man sicher in den Einstellungen regeln, aber ich finde diese Option einfach nicht!

--------------------------------------

Das wär's fürs erste einmal.

Vielen Dank jetzt schon!!

  1. Hallo

    zu 1.) Na prima. Dem kann ich mich nur anschließen.

    zu 2.)
    Leg die Passwortdatei in einem Verzeichnis ab, auf dem man mit dem Webserver nicht zugreifen kann. Wenn Du beispielsweise ein Verzeichnis als Wurzel für Deine website hast, dann leg es einfach in ein Verzeichnis "darüber" oder auch auf ein anderes Laufwerk.

    zu 3.)
    SSI sollte schneller sein, weil der Perl-Interpreter nicht erst geladen werden muss.

    zu 4.)
    Bei SSI muss der WebServer (oder das entsprechende Modul) die shtml-Datei erst einlesen und dann modifizieren. Und dann wird alles in einem Rutsch nach "draußen" geschickt, während HTML-Dateien (im Prinzip) ohne Zwischenpufferung beim lesen nach draußen geschickt werden. (nur Erklärungsversuch; ich weiß nicht, wie es sich verhält)

    zu 5.)
    Du musst unterscheiden zwischen Datenbank (zum Beispiel Oracle, mySQL usw.) und die Skripte die darauf zugreifen (Perl, ASP, PHP usw.). Wenn man organisierte Daten zu verwalten hat, dann bietet sich eine Datenbank aus dem Grund an, daß eine Strukturierung schon vorgesehen ist, Services wie Sortierung schon von der Datenbank übernommen wird und auch die Speicherung effektiver ist. Das musst Du dann "nur noch" mit Perl u.ä. verwenden.

    zu 6.)
    Kommt darauf an, was es macht. CGI ist aber allgemein recht langsam, weil für jeden Zugriff ein Prozess (mit Perl-Interpreter oder auch andere Sprachen) gestartet werden muss. Besser sind die Ansätze von PHP4 oder Servlets bzw. JSP, wo das Skript startbereit im Speicher gehalten wird.

    zu 7.)Kann sein, daß icons als virtuelles Verzeichnis definiert wurde?

    Gruß
      Michael

    1. Hi Michael,

      zu 6.)
      Kommt darauf an, was es macht. CGI ist aber allgemein recht langsam, weil für jeden Zugriff ein Prozess (mit Perl-Interpreter oder auch andere Sprachen) gestartet werden muss.

      Nicht unbedingt. Unter viele Apache-Versionen haben heute Perl als Modul (mod_perl) integriert, so dass der Perl-Interpreter nicht für jede Ausführung neu geladen werden muss.

      mfg
      jens

  2. Hi Joachim!

    2.) cgi Passwortdateien sicher?
    Was passiert wenn ich die txt-Datei im cgi-Verzeichnis speichere? Dieser Ordner ist ja vor
    Zugriffen geschützt oder nicht?

    Richtig. Wenn Dein Server richtig eingerichtet ist, dann kann mann die Datei nicht einsehen...

    Was gibs da für Möglichkeiten Passwörter sicher zu speichern.
    Ein cgi-Programm muss aber darauf zugriff haben können!

    Du kannst die Passwörter ja mit crypt() verschlüssen und dann speichern. Das CGI kann braucht Authorisierung nur das angegeben Passwort wieder mit crypt verschlüsseln und das Ergebnis mit dem in der Datei vergleichen.

    7.) Mein Virtueller Server( Omnihttpd) verweist immer auf das falsche Verzeichnis!!

    Du definierts für den Server ein www-root. Dies ist die Wurzel deines Webs. Du hast Dein www-Root-Verzeichnis auf c:\hp\ gelegt. Das ist die "oberste" Ebene in dem www-Verzeichnisbaum für den Server und er greift bei

    <img src="icons/smiley.gif" width="16" height="16" border="0" alt="">

    auf das Verzeichnis icons, also "unter" www-root zu.

    C:\hp\icons\smiley.gif  => Wie erwünscht!!

    Wenn Du nun ../ angibts begibst Du dich sozusagen über Dein www-root, und das ist

    C:\httpd\icons\smiley.gif

    Damit greifst Du auf die www-root zu:
    <img src="/smiley.gif" width="16" height="16" border="0" alt="">
    also:
    C:\hp\smiley.gif

    Das muß man sicher in den Einstellungen regeln, aber ich finde diese Option einfach nicht!

    Also eigentlich macht der Server alles richtig...

    Gruß Frank

    1. Hallo!

      7.) Mein Virtueller Server( Omnihttpd) verweist immer auf das falsche Verzeichnis!!
      Das muß man sicher in den Einstellungen regeln, aber ich finde diese Option einfach nicht!
      Also eigentlich macht der Server alles richtig...

      Nein. Wenn C:\hp\ als wwwroot konfiguriert ist, dann darf es keine Moeglichkeit geben, durch Anfordern einer URL aus diesem Verzeichnis herauszugelangen. Insbesondere hat der Webserver dafuer zu sorgen, dass Angaben wie ../../autoexec.bat abgefangen werden, damit eben ausschliesslich Dokumente unterhalb von C:\hp\ abgerufen werden koennen.

      So long

      1. Hi Calocybe!

        Nein. Wenn C:\hp\ als wwwroot konfiguriert ist, dann darf es keine Moeglichkeit geben,
        durch Anfordern einer URL aus diesem Verzeichnis herauszugelangen.
        Insbesondere hat der Webserver dafuer zu sorgen, dass Angaben wie
        ../../autoexec.bat abgefangen werden, damit eben ausschliesslich Dokumente
        unterhalb von C:\hp\ abgerufen werden koennen.

        Danke, da habe ich wieder was dazugelernt! Ist aber beim genauen nachdenken auch klar...

        Gruß Frank

  3. Hallo

    Mit dem Lob kann ich mich nur anschliessen. Vor allem als Nachschlagewerk ist es unschlagbar.

    Jetzt zu deinen Fragen:

    7.) Mein Virtueller Server( Omnihttpd) verweist immer auf das falsche Verzeichnis!!

    OmniHTTP ist ein ganz schön reeler Server (bei einer Verbindung ins Internet, ist dein Rechner auch zu sehen, wenn OmniHTTP läuft).
    Ich hab nicht die neuste Version, aber bei mir ist ein Aliasverzeichniss mit dem Namen icons vorinstalliert.
    Vermutlich hat damit dein Problem zu tun.

    Das geht:
    <img src="icons/smiley.gif" width="16" height="16" border="0" alt="">

    Du hast deinen server auf c:\ eingestellt und deine HP ist im unterverzeichniss 'hp', stimmt's ?
    Dann müßte die Datei, in der oben genannter Code steht in c:\hp\ sein.
    dann wird ..src="icons/smiley.gif".. zu:

    C:\hp\icons\smiley.gif  => Wie erwünscht!!

    greifst du jetzt relativ darauf zu:

    Das geht nicht:
    <img src="../icons/smiley.gif" width="16" height="16" border="0" alt="">

    wird http://localhost/hp/../icons/smiley.gif zu http://localhost/icons/smiley.gif
    und dass dürfte die Voreinstellung unter alias sein, eben:

    Er verweist hier auf C:\httpd\icons\smiley.gif

    Das muß man sicher in den Einstellungen regeln, aber ich finde diese Option einfach nicht!

    Genau. Kuck mal unter Alias.

    Ich hoffe mal, das das die Lösung ist.

    Struppi.

  4. Hallo Joachim,

    Was passiert wenn ich die txt-Datei im cgi-Verzeichnis speichere? Dieser Ordner ist ja vor Zugriffen geschützt oder nicht?

    Was gibs da für Möglichkeiten Passwörter sicher zu speichern. Ein cgi-Programm muss aber darauf zugriff haben können!

    Wenn du die Datei im cgi-Verzeichnis speicherst, kann dir (theoretisch) nichts passieren. Vorausgesetzt die Zugriffsrechte stimmen, aber das dürfte wohl klar sein ;-)
    Du könntest eine Passwort-Datei natürlich auch bereits vor der Übertragung verschlüsseln (z.B. per JavaScript) und nur die verschlüsselten Passwörter auf dem Server speichern.
    http://www.teamone.de/selfaktuell/artikel/md5.htm

    5.) Einige Webmaster reden schon von Onlinedatenbanken wie SAP, ASP ....
    Was würde mir eine solche Datenbank gegenüber einer selbst programmierten cgi - Datenbank bringen?

    SAP und ASP sind keine Online-Datenbanken.
    ASP ist eine (M$-)Programmiersprache für serverseitige Programmierung (wie PHP, Perl nur teurer und langsamer...)

    6.) Wie hoch belastet eigentlich ein cgi.-Programm einen Server?
    z.B.: ein 10 zeiliges Counterprogramm  
    Ich möchte miich dafür entschuldigen, dass ich so blöd frage, aber ich habe eine
    großes Projekt zu realisieren da ist so was von Bedeutung!

    Das dürfte wohl im Promille-Bereich liegen.
    Sonst könnten Provider nicht tausenden Kunden die Ausführung von CGI-Programmen gestatten.
    Aber so generell kann man das natürlich nicht sagen.
    Mit einem 10-Zeilen-Perl-Programm könntest du eine Zeile Text ausgeben, oder auch in einer Endlos-Schleife alle Dateien im Verzeichnis öffnen, die Byte-Reihenfolge invertieren und wieder abspeichern...
    Du siehst, der Phantasie sind da keine Grenzen gesetzt ;-)
    Deshalb gibt es bei den meisten Providern auch einen CGI-Timeout (ca. 2 - 5 Minuten).