使用組件來保護你的ASP代碼(轉)

來源:互聯網
上載者:User
使用組件來保護你的ASP代碼

  
出處:

本文:

以前大家談了很多有關開啟資料庫連接安全的問題,現在我再提出一種思路
使用ActiveX DLL來保護你的代碼。(既可以不用為使用共用的加密軟體而發愁,
更重要的是可以自己來頂制加密方法了,享受一下“一切盡在掌握之中”的感覺。
同時也為了讓大家都自己動手來做出自己的組件來。)

ActiveX DLLs是被編譯過的機器代碼,如果沒有源專案檔的話是不能夠被編譯的。
這個技術使得開發人員有可能開發出公用的自動化程式,並且把它們作為shareware版本的程式發布
這個大家在chinaasp中銷售的一些組件中就可以看到這個技術的運用。
如果你想保護你的ASP中的一些代碼的安全,例如你不想讓別人看見你是使用什麼串連到
資料庫的,或者不想讓別人看到你的某個比較重要的函數是怎麼完成的,或者某個重要的
流程(cAkk可以參閱),你就可以通過不斷的開發你自己的組件,這可是個dll檔案,就是別人得到了
這個dll檔案,一時半會也根本不能夠得到你要保護的重要訊息。而且你自己開發的這些組件
給你的程式帶來了源源不斷的新功能。

下面就舉一個很常用的,大家都很關心的有關如何保密開啟資料庫的過程的例子。
例子很簡單,就是在一個下拉框中顯示資料庫中某個欄位的內容。
整個過程如下:
1。建立一個VB6的ActiveX DLL項目
2。在屬性視窗中,命名你的庫模組和專案檔。例子中為keiths_lookup項目名和lookup模組名.
   這寫名字是你在ASP中將引用到的dll函數名(在ASP中的對象名將為keiths_lookup.lookup)。
3.將項目和庫模組使用同樣的名字存檔(當然了,尾碼是不能夠一樣的哦)。
4。從VB6中的項目菜單中選擇References .然後選中Microsoft ActiveX data objects 2.0 library, Microsoft
     ActiveX Data Objects Recordset 2.0 library.
檔案的代碼如下:
  Public Function html_combo(comboname As String, Lookup_field As String) As String   
      Dim outstring As String
      Dim conn As ADODB.Connection
      Dim rst As ADODB.Recordset
      Dim sqlstring As String          

      Set conn = CreateObject("ADODB.Connection")
      Set rst = CreateObject("ADODB.Recordset")
        '下面這些資料庫中的欄位名只是為這個例子設的,你完全可以根據自己的需要修改代碼    
      Sqlstring = "SELECT [Lookup_Description],[Lookup_Key] FROM _
            [Lookup_Table] WHERE [Lookup_Field] = '" & Lookup_Field & "'"
       
    '在這可輸入你串連資料庫的使用者名稱和密碼,現在就算用戶端看見了ASP原始碼
    '他也不可能知道你使用的是什麼密碼了,呵呵
    conn.Open  "DSN=Sumnet;UID=;PWD=.;"
    rst.Open sqlstring, conn, 3, 3

      If Not rst.EOF Then
              rst.MoveFirst
              outstring = "<Select name='" & comboname & "'>"
              Do While Not rst.EOF
              outstring = outstring & "<Option Value='" &  rst.Fields("lookup_key") & "'>" & _
                  rst.Fields("lookup_description") & "</Option> "
                     rst.MoveNext
              Loop
      End If
     
      outstring = outstring & "</Select>"
      html_combo = outstring

      rst.Close
      conn.Close     
End Function
代碼結束,呵呵,基本上沒什麼技術痛點把,現在儲存你的項目並且開始編譯工作。
1。開啟Visual Studio 6中帶的Package Deployment Wizard程式。
2。選擇你剛才建立的ActiveX專案檔。
3。選擇Package
4。選擇你要打包的指令碼或使用預設指令碼
5。選擇標準安裝
6。選擇一個放置你安裝檔案的目錄
7。選擇single cab.
8。其他均預設,然後單擊下一步
9。現在安裝程式完成後,把它拿到你的IIS伺服器上安裝把。

下面給出如何調用你自己做的這個組件的代碼:
  <%@ Language="VBSCRIPT" %>
  <%
  Set look = Server.CreateObject("keiths_lookup.lookup")
  %>                          
  <HTML>
  <BODY>
  <%=look.html_combo("State","States")%>
  <BR>
  <%=look.html_combo("Position","Positions")%>


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.