搜尋

首頁  >  問答  >  主體

將在MYSQL資料庫中將ASP Classic程式碼儲存為字串的可能性

是否可以將 asp 經典程式碼儲存到 MySQL 資料庫中並讓它在拉取時執行程式碼?例如將變數名稱儲存到字串中並讓它在顯示之前執行ASP?我懷疑這是不可能的,因為 MySQL 請求在頁面載入後運行,因此返回資料不會被執行,而只是變數名稱。另一件事是它可能是 HTML 編碼,在將其傳遞到 MySQL 伺服器後可能會對其進行編碼,但到目前為止它只是讀取變數名稱。對此的任何想法,這是不可能的,還是我以某種方式取消編碼:

我嘗試過使用像這樣的編碼方法,使用在其他地方工作的 Chr 替換函數,但該函數的使用是這樣的:

NEWSTRING =  Server.HtmlEncode(OLDSTRING)

無論是否嘗試編碼,結果只會顯示 ASP Classic 程式碼,如下所示:

MESSAGE TO USER <%=Session("var_FOO")%>

雖然Encode似乎沒有改變螢幕上顯示的字串,但日誌結果顯示了編碼嘗試,它沒有將資料放入,而是像這樣轉換字元類型:

&quot;var_Foo&quot;

我可能用編碼找錯了樹,但如果你有錘子,你可以嘗試敲擊一些螺絲,直到它們進入。


這個功能目前對我來說很困難,因為一種更簡單的方法是像我一樣將字串儲存在資料庫中,然後在拉出字串後將變數添加到字串中,而不是放入它們進入資料庫。當然,這意味著用戶無法透過與其關聯的變數來控制錯誤訊息,但我想我可以接受這一點。

類似的問題提出將其作為函數來執行此操作,如果您閱讀帖子的其餘部分,您會發現存在差異。

P粉557957970P粉557957970264 天前574

全部回覆(1)我來回復

  • P粉893457026

    P粉8934570262024-04-07 11:42:05

    是的,這是可能的。經典 ASP 提供 Eval、Execute 和 ExecuteGlobal 方法,您可以向這些方法傳遞包含原始程式碼的文字字串。

    在面向公眾的網站上這樣做是危險的;如果網路蠕蟲知道如何將任意程式碼寫入您的資料庫表,他就可以破壞、破壞或劫持您的應用程式。你並不偏執:積極主動的陌生人實際上正在密謀反對你,並尋找以這種方式運作的網站。小心點。

    Eval(codeText) 運行表達式並傳回結果。 ExecuteGlobal(codeText) 運行它,就好像它在頂級上下文中一樣。 Execute(codeText) 在呼叫它的上下文(子程式或函數)中執行它。

    回覆
    0
  • 取消回覆