2009-07-22 12 views
2

gibt es sowieso eine #include mit einer Datei als absoluten Pfad aufgeführt?Asp enthält mit absoluten Pfad

Ich versuche, Dateien von anderen Websites enthalten (outsite der Wurzel des Anblicks, der sie aufnehmen möge)

noch andere Vorschläge?

+0

@me: Da Sie den a-Hosting-Service verwenden, ist die direkte Antwort nein. Was lässt Sie glauben, dass der Host Ihnen den Zugriff auf Dateien außerhalb des angegebenen Anwendungsordners ermöglicht? – AnthonyWJones

Antwort

1

Sie können nur Dateien von Ihrem Server einschließen, die sich technisch außerhalb Ihrer Website befinden, wenn die Option Übergeordnete Pfade zulassen aktiviert ist oder wenn Sie ein virtuelles Include verwenden können, um auf ein anderes virtuelles Verzeichnis auf Ihrem Server zu zeigen.

Es gibt keine Möglichkeit, Dateien von Websites außerhalb Ihres Servers oder von Websites auf Ihrem Server einzuschließen, auf die Ihre Anwendung nicht zugreifen kann.

0

<!--#include file="c:\boot.ini"-->

Es gibt eine Einstellung in IIS ist für das Erlauben enthält zu übergeordneten Pfaden, überprüfen Sie, dass, wenn die oben nicht funktionieren.

+0

IIRC Deaktivieren dieser Einstellung ist möglicherweise gefährlich, weil es Angreifern ermöglichen würde http://yoursite.com/../../windows/system32 – Benjol

+0

@Benjol: Ja, aber der Angreifer müsste eine Datei auf Ihrem Server ändern um das zu tun, und wenn sie das können, könnten sie genauso gut die Datei im Code lesen, anstatt sie einzuschließen. – svinto

+1

Die Möglichkeit, das zu tun, sollte von dem tatsächlichen Benutzerkonto abhängen, auf dem Ihr Webserver Anwendungen ausführt. Persönlich benutze ich ein begrenztes Konto, dessen Berechtigungen auf die Verzeichnisse beschränkt sind, die Websites enthalten, so dass selbst wenn ich Elternpfade mit einschließen muss, bin ich geschützt – RobV

0

Sie können auch ein Verzeichnis unterhalb des Stammordners Ihrer Website erstellen und dann einen symbolischen Link zu dem Ordner erstellen, in dem sich die Datei befindet, die Sie einschließen möchten. Jetzt gibt es keine Möglichkeit, symbolische Links in Windows out of the box zu erstellen, benötigen Sie Microsoft Sysinternals Junction dafür.

+0

Ich benutze einen Hosting-Service, also habe ich wahrscheinlich nicht diese Fähigkeit, aber gute Gedanken – leora

+0

Hm, wenn Sie verwenden einen Hosting-Service. Warum sollten Sie eine Datei außerhalb Ihrer Website hinzufügen? Beachten Sie, dass es nicht möglich ist, eine Datei von einem anderen Webserver aufzunehmen, unabhängig von der Einstellung auf dem Server. (Wenn das der Fall ist, müssen Sie die Datei holen und ihren Inhalt ausgeben, aber das ist eine andere Frage und unterscheidet sich zwischen asp und asp.net.) – svinto

0

Sie können es tun, XMLHTTP und die VBscript Execute-Anweisung verwenden. Ich würde es jedoch nicht empfehlen, da es erhebliche Sicherheitsrisiken schafft.

Ein paar Links zum Einstieg:

http://www.4guysfromrolla.com/webtech/042602-1.shtml

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/script56/html/vsstmexecute.asp

http://www.4guysfromrolla.com/webtech/110100-1.shtml

Es ist ein sehr hohes Sicherheitsrisiko dar, weil jemand Code in Ihre Anwendung injizieren. Treffen Sie Ihre Vorsichtsmaßnahmen.

Ein Tipp: Die Seite, die Sie von einem anderen Server laden müssen, muss eine Erweiterung haben, die sich von .asp unterscheidet, wenn sie nicht vom anderen Server gesendet wird, wird sie bereits ausgeführt. Es scheint klar, aber ich habe es das erste Mal vergessen!

Verwandte Themen