Rannh: Sicherheit in ASP

Grüss euch,

mich interessiert, wie sicher ASP-Seiten sind. Wenn ich meine ASP-Seite z.B. mit WS_FTP Pro downloade, wird nur der Code angezeigt, der nicht kritisch ist (das ist auch gut so). Ich meine ich habe einen IF-Befehl und beim FTP-Download "filtert" mir der Server das heraus, was im IF-Befehl nicht zutrifft, d.H. z.B.:

'wir nehmen an, wir haben eine Seite test.html?all aufgerufen und das hinter ? (also "all") ist in strX gespeichert.

If strX = "all" then
    'Kritischer Code....
End If

Falls der User das im Web betrachtet, wird ja der IF-Content ausgeführt. Und z.B. beim FTP-Download nicht.

Aber ist diese Methode wirklich sicher?

Noch was:
Ich glaube mir öffnet sich ein riesiges Sicherheitsloch, wenn ich z.B. dem User gestatte, beliebige Files upzuloaden.

Was ist, aber wenn er eine ASP-File uploadet, welche mir den Content aus test.html in eine Textdatei schreibt und diese dann downloadet??

Ich hoffe das ist nicht möglich.

Wenn doch, was empfiehlt ihr mir als Lösung. Upload bestimmter Dateien verhindern?

Für mich schlauer machende Leute bin ich dankbar,

mit f.g.

  1. Wenn doch, was empfiehlt ihr mir als Lösung. Upload bestimmter Dateien verhindern?

    Empfehle ich dir, ja. Du kommst ja mit

    arr = split(dateiname,".")
    extension = ubound(arr)

    an die Endung der Datei heran. Die vergleichst du dann mit zugelassenen Endungen.

    Gruss,
    Daniel

    1. Wenn doch, was empfiehlt ihr mir als Lösung. Upload bestimmter Dateien verhindern?

      Empfehle ich dir, ja. Du kommst ja mit

      arr = split(dateiname,".")
      extension = ubound(arr)

      an die Endung der Datei heran. Die vergleichst du dann mit zugelassenen Endungen.

      Gruss,
      Daniel

      Ok, das werde ich machen, hatte eh ein mulmiges Gefühl.
      Auf meinem Server läuft HMTL und ASP. Was für Files sind denn kritisch? Ist meine Liste komplett?

      html
      htm
      asp
      js
      vbs

      Was ist mit:
      bat
      com
      exe

      usw....

      1. Hi.

        meinst du eigentlich FTP-Upload oder Upload via Web ... ?

        bei FTP Upload solltest du nur denen Zugriff zum Hochladen von ausführbaren Dingen gestatten, die keinen Schaden anrichten "können"/"würden" ...  also eigentlich nur dir selbst ...

        bei Upload via Web würde ich nur Dateien zulassen, die nicht ausgeführt (das Gegenteil deiner Liste) werden können bzw. auch nur in Ordner hochladen lassen, die "nur lesen" Rechte haben ... also maximal HTML, Text und Bilder etc  anzeigen können.

        Wenn ASP Seiten mit der Include-Direktive arbeiten, würde ich diese Includes in ein Unterverzeichnis packen, was nicht mal vom Besucher der Site lesbar ist (no read, no execute, no browse) ...

        Gruß, Frank

  2. Grüss dich

    mich interessiert, wie sicher ASP-Seiten sind. Wenn ich meine ASP-Seite z.B. mit WS_FTP Pro downloade, wird nur der Code angezeigt, der nicht kritisch ist (das ist auch gut so).

    Per FTP solltest du eigentlich das ganze Skript zurückbekommen. Da spielt ASP AFAIK nicht mit.

    Falls der User das im Web betrachtet, wird ja der IF-Content ausgeführt. Und z.B. beim FTP-Download nicht.

    Aber ist diese Methode wirklich sicher?

    Du willst doch niemandem Zugriff auf deine Skripte per FTP geben, oder? Erstelle ein Unterverzeichnis und beschränke die Berechtigungen der Benutzer so weit wie nur möglich.

    Ich glaube mir öffnet sich ein riesiges Sicherheitsloch, wenn ich z.B. dem User gestatte, beliebige Files upzuloaden.

    Wenn er in Verzeichnisse hochladen kann, in denen Skripte ausgeführt und per HTTP drauf zugegriffen werden kann: JA! Beschränke die Rechte, erstelle seperate Verzeichnisse und tue nichts dergleichen, bevor du nicht ganz genau weisst, was du tust!

    Was ist, aber wenn er eine ASP-File uploadet, welche mir den Content aus test.html in eine Textdatei schreibt und diese dann downloadet??

    Das wird er mit eingeschränkten Rechten nicht können, weil er nicht per HTTP direkt auf das Verzeichnis zugreifen kann und somit die Skripte nicht ausgeführt werden. Du musst halt ein Skript schreiben, welches ihm die Daten anzeigt (per Skript kannst du auf das Verzeichnis zugreifen).

    Ich hoffe das ist nicht möglich.

    Je nach Konfiguration...

    Wenn doch, was empfiehlt ihr mir als Lösung.

    Lesen, Rechte beschränken und lokal ausprobieren.

    Upload bestimmter Dateien verhindern?

    Das wäre ev. auch nicht schlecht.

    FG & HTH

    Tom2