Heim > Fragen und Antworten > Hauptteil
Ist es möglich, klassischen ASP-Code in einer MySQL-Datenbank zu speichern und ihn beim Abrufen ausführen zu lassen? Speichern Sie beispielsweise den Variablennamen in einer Zeichenfolge und lassen Sie ihn ASP ausführen, bevor Sie ihn anzeigen? Ich vermute, dass dies nicht möglich ist, da die MySQL-Anfrage nach dem Laden der Seite ausgeführt wird und daher nicht die Rückgabedaten ausgeführt werden, sondern nur die Variablennamen. Eine andere Sache ist, dass es sich möglicherweise um eine HTML-Codierung handelt, die möglicherweise nach der Übergabe an den MySQL-Server codiert wird, aber bisher werden nur die Variablennamen gelesen. Irgendwelche Ideen dazu, ist das unmöglich oder entschlüssele ich irgendwie:
Ich habe versucht, es so zu codieren, indem ich eine Chr-Ersetzungsfunktion verwendet habe, die anderswo funktioniert, aber die Funktion wird so verwendet:
NEWSTRING = Server.HtmlEncode(OLDSTRING)
Unabhängig davon, ob Sie versuchen zu kodieren oder nicht, werden in den Ergebnissen nur ASP Classic-Code angezeigt, etwa so:
MESSAGE TO USER <%=Session("var_FOO")%>
Während Encode die auf dem Bildschirm angezeigte Zeichenfolge nicht zu ändern scheint, zeigen die Protokollergebnisse einen Codierungsversuch, der, anstatt die Daten einzugeben, den Zeichentyp wie folgt konvertiert:
"var_Foo"
Vielleicht liege ich mit der Codierung falsch, aber wenn du einen Hammer hast, kannst du versuchen, ein paar Schrauben hineinzuschlagen, bis sie hineinpassen.
Diese Funktion ist derzeit für mich schwierig, da eine einfachere Möglichkeit darin bestünde, die Zeichenfolge wie ich in einer Datenbank zu speichern und die Variablen dann nach dem Herausziehen zur Zeichenfolge hinzuzufügen, anstatt sie in die Datenbank einzugeben. Das bedeutet natürlich, dass der Benutzer die Fehlermeldung nicht über die damit verbundene Variable steuern kann, aber ich denke, damit kann ich leben.
Bei einer ähnlichen Frage geht es darum, dies als Funktion zu tun. Wenn Sie den Rest des Beitrags lesen, werden Sie feststellen, dass es einen Unterschied gibt.
P粉8934570262024-04-07 11:42:05
是的,这是可能的。经典 ASP 提供 Eval、Execute 和 ExecuteGlobal 方法,您可以向这些方法传递包含源代码的文本字符串。
在面向公众的网站上这样做是危险的;如果网络蠕虫知道如何将任意代码写入您的数据库表,他就可以破坏、破坏或劫持您的应用程序。你并不偏执:积极主动的陌生人实际上正在密谋反对你,并寻找以这种方式运作的网站。小心点。
Eval(codeText) 运行表达式并返回结果。 ExecuteGlobal(codeText) 运行它,就好像它在顶级上下文中一样。 Execute(codeText) 在调用它的上下文(子例程或函数)中运行它。