hh: Großes (Sicherheits)Problem bei IUSER

Hi,

mir ist gerade aufgefallen, dass ich mächtig Probleme bekommen könnte, da ich in meiner asp Datei eine Batch Anwendung starten moechte. Das bedeutet aber auch, das er Rechte auf cmd.exe bekommen muesste. Das zwickt mir aber maechtig in den Schuhen. Mein Code sieht ungefähr so aus:

Function xml2pdf(strXSLPath, strXMLPath, strPDFPath, strLogFile,language_id, layer_id)
    Dim strCommand
    strCommand = Server.MapPath("fop091beta\fop.bat") & " -xsl " & strXSLPath & " -xml " & strXMLPath & " -pdf " & strPDFPath
    Set objShell = Server.CreateObject("wscript.shell")
Response.Write(strCommand)
    xml2pdf = objShell.run("cmd.exe /c " & strCommand & " > " & strLogFile,0,true)
    Set objShell = nothing
End Function

Kann ich es irgendwie umgehen, dass das die cmd.exe aufgerufen werden muss? Die fop.bat liegt in eineme Verzeichnis und es handelt sich nicht um ein installiertes Programm. Sondern es muss lediglich der Befehl in etwa so aufgerufen werden:

fop.bat -xml quelle.xml -xsl quelle.xsl -pdf datei.pdf

Bin dankbar für Ratschläge.

  1. Moin!

    mir ist gerade aufgefallen, dass ich mächtig Probleme bekommen könnte, da ich in meiner asp Datei eine Batch Anwendung starten moechte.

    Dann lass mal lesen, was diese mächtigen Probleme sein könnten:

    Das bedeutet aber auch, das er Rechte auf cmd.exe bekommen muesste. Das zwickt mir aber maechtig in den Schuhen.

    Wieso? Vielleicht sehe ich das Problem nicht, weil ich Windows nicht kenne, aber ist es nicht so, dass die gestartete cmd.exe die Rechte des Vaterprozesses, also deiner asp-Datei, erhält?

    Kann ich es irgendwie umgehen, dass das die cmd.exe aufgerufen werden muss? Die fop.bat liegt in eineme Verzeichnis und es handelt sich nicht um ein installiertes Programm. Sondern es muss lediglich der Befehl in etwa so aufgerufen werden:

    fop.bat -xml quelle.xml -xsl quelle.xsl -pdf datei.pdf

    Wenn in deiner fop.bat lediglich ein Programmaufruf verpackt ist, dann kannst du diesen doch direkt von deiner asp-Datei aus ausführen. Ansonsten gäbe es noch die Möglichkeit, die weitere Funktionalität deiner Batchdatei in ASP zu implementieren, das hängt davon ab, was die Datei anstellt.

    Viele Grüße,
    Robert

    1. Hallo Robert, danke dir fuer die Antwort, die Überschrift war wohl auch etwas unpassend gewählt. Nicht das ASP da ein Problem haette sonder eher ich habe wohl das Problem. Ich dachte ich haette meine cmd.exe für den IUSR im windows/system32 Verzeichnis freigeben muessen. Nachdem ich mich durch noch mehr Google Seiten gewuehlt habe, fand ich dann den Tipp, die cmd.exe einfach in einen Ordner zu kopieren und dort die entsprechenden Leserechte für den IUSR zu vergeben. Auch hatte ich wohl einen Denkfehler, dass der IUSR die Datei ausführen muss. Dass macht wohl aber der IWAM Account, für den ich dann auch Ausführrechte vergeben habe und es scheint jetzt zu funktionieren und meine Bedenken sind etwas gemildert. Trotzdem ist es nicht gerade schick, eine .exe im Webordner zu plazieren. Wie auch immer, ich glaube ich kann es so lassen.