2016-07-19 2 views
6

Um C# 6-Funktionen (wie ?.) in einer .cshtml Datei unter MVC5 zu verwenden, müssen Sie need to include csc.exe and related files in your website's bin folder when you deploy it. Ok, ich kann die Gründe dafür verstehen.Sicherheitsprobleme mit der Aufnahme von csc.exe in den bin-Ordner der Website

Dies bedeutet jedoch, dass auf meinem Webserver ein vollständiger C# -Compiler mit denselben Berechtigungen wie der Benutzer der Website installiert ist. Das lässt mich zögern - theoretisch könnte ein Angreifer damit beliebigen Code ausführen, als wäre es meine Website.

Ist das tatsächlich ein Sicherheitsrisiko?

Ich kann beiden Seiten sehen: Einerseits ist es möglich, dass Sie die Fähigkeit bereits, um beliebigen Code auszuführen brauchen würden in der Lage sein, beliebigen Code auf die csc ausführbare Datei zu übergeben. Auf der anderen Seite kann ich sehen, dass Zugriff darauf verwendet wird, um Zugriff auf interne Website-Einstellungen (wie Datenbankverbindungszeichenfolgen) zu erhalten, indem Code ausgeführt wird, den wir niemals schreiben würden.

Sollte ich besorgt sein, oder wird dies als sicher angesehen?

+0

Ich denke, der einzige Vorteil, den ein Hacker daraus ziehen würde, ist die Möglichkeit, Quellcode auf Ihre Website hochzuladen und lokal zu kompilieren, anstatt ein kompiliertes Binärprogramm hochladen zu müssen. Ich kann sehen, wie es möglich ist, dass eine Firewall den Hacker vom Hochladen von Binärdateien auf Ihren Server blockieren würde, während es ihnen möglicherweise erlauben würde, Quellcode hochzuladen - was nur Text ist. Ich denke, das ist ein rein theoretisches Risiko, aber wenn sie bereits genügend Zugriff auf Ihr System haben, um den Compiler laufen zu lassen, können sie auch andere Dinge ausführen, die weitaus gefährlicher sind. – bikeman868

Antwort

2

Wie ich es verstehe, sind MVC Razor Views in der Tat beliebiger C# -Code, der bei Bedarf nach jeder Änderung neu kompiliert wird.

So kann jeder Hacker mit Zugriff auf den Website-Server beliebigen C# -Code in jeder Version von MVC ausführen.

Ich stimme zu, es fühlt sich an wie ein Risiko, weil es ist, aber auf der anderen Seite haben Sie den Vorteil, Ansichten zu ändern, ohne die gesamte Website neu zu veröffentlichen.

Verwandte Themen