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?
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